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