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