Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method RefreshData () id:Method_FormKpiMatrix_RefreshData 
 | 
{ 
 | 
  #keys: '[146450.0.591381725]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Queries the Kpi Tracker for the Kpi compare data 
 | 
    compareLabel := DataHolderKpiLabel.Data(); 
 | 
    compareLabels := selectset( DataHolderSelectedCompareLabelValues.Data(), Elements, val, 
 | 
                                val.Label() = compareLabel ); 
 | 
     
 | 
    fixedLabels := selectset( DataHolderSelectedFilterLabelValues.Data(), Elements, val, 
 | 
                              val.Label() <> compareLabel ); 
 | 
     
 | 
    set := GlobalStateKpiTracker.QueryDataFromServer( compareLabels, fixedLabels ); 
 | 
     
 | 
    GlobalStateKpiTracker.PropagateLabel( set, compareLabel.Name() ); 
 | 
    GlobalStateKpiTracker.PropagateTimeStamp( set, RadioButtonGroupSelectionList.BoundValue() ); 
 | 
     
 | 
    //Remove duplicate values and set relations 
 | 
    uniquesetdatavalues := construct( Strings ) 
 | 
    sortedsetsnapshots := selectsortedset( set, SnapshotData, snapshot, true, DateTime::Now() - snapshot.ServerDateTime() ) 
 | 
     
 | 
    traverse( sortedsetsnapshots, Elements, snapshot ) 
 | 
    {                                                
 | 
      traverse( snapshot, Value, datavalue ) 
 | 
      { 
 | 
        uniquestring := datavalue.Name() + ";" + datavalue.UI_LabelValue() 
 | 
        if( exists( uniquesetdatavalues, Elements, value, value = uniquestring ) ) 
 | 
        { //remove older duplicate    
 | 
          datavalue.Delete(); 
 | 
        }                     
 | 
        else 
 | 
        {                       
 | 
          uniquesetdatavalues.Add( uniquestring) 
 | 
        } 
 | 
      } 
 | 
    }  
 | 
     
 | 
    // 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() ) ); 
 | 
    } 
 | 
     
 | 
    DataHolderSnapshotData.Data( &set ); 
 | 
  *] 
 | 
} 
 |