| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ApplyConfigurationQuery ( | 
|   KpiQuery kpiQuery | 
| ) id:Method_Kpi_frmKpiQueryCompare_ApplyConfigurationQuery | 
| { | 
|   #keys: '[146874.0.1482143428]' | 
|   Body: | 
|   [* | 
|     // Applies the configuration query from a KpiQuery to radio button groups, List, and selector. | 
|     label := select( KpiTracker, Label, l, l.Name() = kpiQuery.SeriesSelection() ); | 
|     dhCompareLabel.Data( guard( label, null( KpiLabel ) ) ); | 
|     dhTimetype.Data( kpiQuery.Timetype() ); | 
|      | 
|     // Flush dataholder. | 
|     dhFilterLabels.Data().Flush(); | 
|     dhCompareLabels.Data().Flush(); | 
|      | 
|     traverse( kpiQuery.LabelFilters().Tokenize( "," ), Elements, lv ) | 
|     { | 
|       labelValue := select( KpiTracker, Label.Value, labelvalue, labelvalue.Value() = lv ); | 
|       if ( not isnull( labelValue ) ) | 
|       { | 
|         if( labelValue.Label() = dhCompareLabel.Data() ) | 
|         { | 
|           dhCompareLabels.Data().Add( labelValue); | 
|         } | 
|         else | 
|         { | 
|           dhFilterLabels.Data().Add( labelValue ); | 
|         } | 
|       } | 
|     } | 
|      | 
|     // Flush dataholder before insert Kpi selection | 
|     dhMetaDatas.Data().Flush(); | 
|      | 
|     traverse( kpiQuery.MetaDatas().Tokenize( "," ), Elements, md ) | 
|     { | 
|       metaData := select( KpiTracker, MetaData, metadata, metadata.DisplayName() = md ); | 
|       if ( not isnull( metaData ) ) | 
|       { | 
|         dhMetaDatas.Data().Add( metaData ); | 
|       } | 
|     } | 
|      | 
|      | 
|     // Refresh data - Queries the KPI Tracker for the KPI compare data | 
|     // Do this because the DataHolder has independency on drop down selector and is not reflect the changes immediately. | 
|     compareLabel := dhCompareLabel.Data(); | 
|     compareLabels := selectset( dhCompareLabels.Data(), Elements, val,  | 
|                                 val.Label() = compareLabel ); | 
|      | 
|     fixedLabels := selectset( dhFilterLabels.Data(), Elements, val,  | 
|                               val.Label() <> compareLabel ); | 
|                                | 
|      | 
|     set := Kpi_GlobalState.QueryDataFromServer( compareLabels, fixedLabels ); | 
|      | 
|     Kpi_GlobalState.PropagateLabel( set, guard( compareLabel.Name(), "" ) ); | 
|     Kpi_GlobalState.PropagateTimeStamp( set, dhTimetype.Data() ); | 
|      | 
|     // Set relations | 
|     traverse( set, SnapshotData.Value, v ) | 
|     { | 
|       v.UI_CompareLabel( relset, select( compareLabels, Elements, s, s.Value() = v.UI_LabelValue() ) ); | 
|       v.UI_Kpi( relset, select( KpiTracker, MetaData, k, k.Name() = v.Name() ) ); | 
|     } | 
|      | 
|     dhSnapshotData.Data( &set ); | 
|   *] | 
| } |