Quintiq file version 2.0
#parent: #root
Method FilterDataOnSelectedKpis () id:Method_Kpi_frmKpiSnapshots_FilterDataOnSelectedKpis #extension
{
  Body:
  [*
    // Sets the filter on the KpiValues list to match the selected KPIs and the 
    // LastSnapshotOnly checkbox.
    dslKpiValues.Filter( "" );
    
    filterKpis := dhSelectedKpis.Data();
    
    if ( not isnull( filterKpis ) )
    {
      filters := construct( structured[String] );
      traverse( filterKpis, Elements, kpi ) 
      {
        filters.Add( "object.Name() = " + kpi.Name().AsQUILL() );
      }
     //in case filterKPIs.Size()=0, due to data in list not populated yet 
      filter := ifexpr( filters.Size()>0, "( " + filters.ToString( ' or ' ) + " )", "true" );
      
      
      if ( cbOnlyLastSnapshot.Checked() and not isnull( selSeries.Data() ) ) 
      {
        filter := filter + " and ( object.UI_IsLast() ) "
      }
      
      dslKpiValues.Filter( filter );
    }
  *]
}
