yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
  *]
}