Quintiq file version 2.0 #parent: #root Method ApplyConfigurationQuery ( KpiQuery kpiQuery ) id:Method_Kpi_frmKpiMatrix_ApplyConfigurationQuery { #keys: '[146874.0.1463046408]' Body: [* // Applies the configuration query from a KpiQuery to radio button groups, List, and selector. selKpiCompareLabel.BoundValue( kpiQuery.SeriesSelection() ); rbgTimeType.BoundValue( kpiQuery.Timetype() ); // Expand all so the selection (in collapsed list) will be recorded in DataHolder lstKpiLabelFilter.ExpandAll(); // Clear selection in list lstKpiLabelCompare.SelectByKey( Key::ZeroKey() ); lstKpiLabelFilter.SelectByKey( Key::ZeroKey() ); compareLabels := construct( KpiLabelValues ); fixedLabels := construct( KpiLabelValues ); traverse( kpiQuery.LabelFilters().Tokenize( "," ), Elements, lv ) { label := select( KpiTracker, Label.Value, labelvalue, labelvalue.Value() = lv ); if ( not isnull( label ) ) { if( label.Label() = selKpiCompareLabel.Data() ) { lstKpiLabelCompare.ExtendSelectByKey( label.Key() ); compareLabels.Add( label ); } else { lstKpiLabelFilter.ExtendSelectByKey( label.Key() ); fixedLabels.Add( label ); } } } lstFilterKpis.SelectByKey( Key::ZeroKey() ); traverse( kpiQuery.MetaDatas().Tokenize( "," ), Elements, md ) { metadata := select( KpiTracker, MetaData, metadata, metadata.DisplayName() = md ); if ( not isnull( metadata ) ) { lstFilterKpis.ExtendSelectByKey( metadata.Key() ); } } // 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 := selKpiCompareLabel.Data(); data := KpiTracker.SnapshotRetrieval().GetLastSnapshotsForCompareLabelWithLabelFilterNvt( compareLabels, fixedLabels ); set := Kpi_GlobalState.ConvertNvtToShadowSnapshotSetData( data ); Kpi_GlobalState.PropagateLabel( set, compareLabel.Name() ); Kpi_GlobalState.PropagateTimeStamp( set, rbgTimeType.BoundValue() ); // 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 ); *] }