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 ); *] }