Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method FilterDataOnSelectedLabels ( 
 | 
  Boolean isLabelFilteringEnabled, 
 | 
  structured[KpiLabelValue] selectedLabels 
 | 
) as String id:Method_Kpi_GlobalState_FilterDataOnSelectedLabels 
 | 
{ 
 | 
  #keys: '[146874.0.1589145116]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Sets/unsets the filter on the snapshots based on the selection in the label filter. 
 | 
    filter := ""; 
 | 
     
 | 
    if( isLabelFilteringEnabled ) 
 | 
    { 
 | 
      filters := construct( structured[String] ); 
 | 
     
 | 
      traverse( selectedLabels, Elements.Label, label ) 
 | 
      { 
 | 
        values := construct( structured[String] ); 
 | 
        traverse( label, Value, value, 
 | 
                  exists( selectedLabels, Elements, selected, selected = value) ) 
 | 
        { 
 | 
          values.Add( 'exists( object, Label, l, l.Name() = "' 
 | 
                       + label.Name() 
 | 
                       + '" and l.Value() = "' 
 | 
                       + value.Value() 
 | 
                       + '") ' ); 
 | 
     
 | 
        } 
 | 
        filters.Add( '(' + values.ToString( ' or ' ) + ')' ); 
 | 
      } 
 | 
      filter := filters.ToString( ' and ' ); 
 | 
      debuginfo( ' >>> Generated Label filter = ', filter ); 
 | 
    } 
 | 
     
 | 
    return filter; 
 | 
  *] 
 | 
} 
 |