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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method GenerateInstances () id:Method_FormKPIChart_GenerateInstances 
 |  { 
 |    #keys: '[145136.0.62364416]' 
 |    Body: 
 |    [* 
 |      owner := DataHolderOwner.Data(); 
 |      if ( not isnull( owner ) ) // happens sometimes the first time the form is loaded. Might be because this is created before the DataHolderShadowChartKPI is created; 
 |      { 
 |        owner.UIChartKPI( relflush ); 
 |        traverse( DataHolderKPIS.Data(), Elements, kpi ) 
 |        { 
 |          datetimes := RealVector::Construct( kpi.DateTime() ); 
 |          vector := RealVector::Construct( kpi.Values() ); 
 |       
 |          for ( x:=0; x < datetimes.Size(); x++ ) 
 |          { 
 |            value := vector.Get( x ); 
 |       
 |            owner.UIChartKPI( relnew ,  
 |                              X := Duration::Minutes( datetimes.Get( x ) ),  
 |                              Y := value,  
 |                              Name := [String] kpi.BTS().RunNr() ); 
 |          } 
 |        } 
 |         
 |        all_targets := selectset( DataHolderKPIS.Data(), Elements.TargetKPI, target, true ); 
 |        min_x := min( owner, UIChartKPI, kpi, true, kpi.X() ); 
 |        max_x := max( owner, UIChartKPI, kpi, true, kpi.X() ); 
 |        target_values := selectuniquevalues( all_targets, Elements, target, true, target.Value() ); 
 |        traverse( target_values, Elements, target_value ) 
 |        { 
 |          targets := selectset( all_targets, Elements, target, target.Value() = target_value ); 
 |          name := ''; 
 |          if( target_values.Size() > 1 ) 
 |          { 
 |            name := selectvalues( DataHolderKPIS.Data(), Elements, kpi, targets.Find( kpi.TargetKPI() ) >= 0, kpi.BTS().RunNr() ).Sort().ToString( ', ' );     
 |          } 
 |          owner.UIChartKPI( relnew , 
 |                        X := min_x, 
 |                        Y := target_value, 
 |                        Name := name, 
 |                        Group := 'Target' ); 
 |          owner.UIChartKPI( relnew , 
 |                        X := max_x, 
 |                        Y := target_value, 
 |                        Name := name, 
 |                        Group := 'Target' ); 
 |        } 
 |      } 
 |    *] 
 |  } 
 |  
  |