yanyuan
2023-11-10 143ef74e2eeee697ac8fda3d9032a790fbb4e146
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
Quintiq file version 2.0
#parent: #root
Method InitializeRecurrencePeriod (
  shadow[LibCal_RecurrencePeriod] sRecurrencePeriod_i,
  Date startDate_i
) id:Method_LibCal_dlgEvent_InitializeRecurrencePeriod
{
  #keys: '[131094.0.1357896159]'
  Body:
  [*
    // First initialize everything as new...
    this.InitializeRecurrencePeriodAsNew( startDate_i );
    
    // ... then take over the existing period (if applicable)
    if( not isnull( sRecurrencePeriod_i ) )
    {
      datStartOfPeriod.Date( sRecurrencePeriod_i.StartDate() );
      vhStartOfPeriod .Data( sRecurrencePeriod_i.StartDate() );
    
      // NoEnd
      if( sRecurrencePeriod_i.istype( shadow[LibCal_RecurrencePeriodWithoutEnd] ) )
      {
        // Is already initialized
      }
    
      // NrOfOccurences
      else if( sRecurrencePeriod_i.istype( shadow[LibCal_RecurrencePeriodNrOfOccurrences] ) )
      {
        period := sRecurrencePeriod_i.astype( shadow[LibCal_RecurrencePeriodNrOfOccurrences] );
    
        ckbNoEndDate.Checked( false );
        ckbEndAfter. Checked(  true );
    
        edtNrOfOccurrences.Text( [String]period.NrOfOccurrences() );
      }
    
      // WithEndDate
      else if( sRecurrencePeriod_i.istype( shadow[LibCal_RecurrencePeriodWithEndDate] ) )
      {
        period := sRecurrencePeriod_i.astype( shadow[LibCal_RecurrencePeriodWithEndDate] );
    
        ckbNoEndDate.Checked( false );
        ckbEndBy.    Checked(  true );
    
        datEndOfPeriod.Date( period.EndDate() );
      }
    }
    
    this.SetEndOfPeriod();
  *]
}