Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method InitializeDate ( 
 | 
  LibCal_SubscriberEventTable table, 
 | 
  DateTime starttime, 
 | 
  DateTime endtime, 
 | 
  String desc 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // 甄兰鸽 May-29-2024 (created) 
 | 
    startTime     := starttime; 
 | 
    nextweektime  := starttime; 
 | 
    nextmonthtime := starttime; 
 | 
    while( startTime < endtime ){ 
 | 
    //for(  startTime := starttime; startTime < endtime; startTime := startTime.StartOfNextDay() ){ 
 | 
      //天 
 | 
      daytime         := this.GetTimeByTimeUnit( starttime, startTime, Translations::MP_GlobalParameters_Day() ); 
 | 
      daycolumn       := table.GetColumnByTimeUnit( table, daytime, Translations::MP_GlobalParameters_Day() ); 
 | 
      daycell         := daycolumn.GetCellByTimeUnit( this, desc ); 
 | 
       
 | 
      dayvalue        := [Real]daycell.Value(); 
 | 
      if( startTime.StartOfNextDay() > endtime ){ 
 | 
        duration      := endtime - startTime; 
 | 
        dayvalue      := dayvalue + duration.HoursAsReal(); 
 | 
        daycell.Period( relnew, Start := startTime.Format( 'M/D/Y H:m' ), End := endtime.Format( 'M/D/Y H:m' ) ); 
 | 
      }else{ 
 | 
        duration      := startTime.StartOfNextDay() - startTime; 
 | 
        dayvalue      := dayvalue + duration.HoursAsReal(); 
 | 
        daycell.Period( relnew, Start := startTime.Format( 'M/D/Y H:m' ), End := startTime.StartOfNextDay().Format( 'M/D/Y H:m' ) ); 
 | 
      } 
 | 
      daycell.Value( [String]dayvalue ); 
 | 
      //周 
 | 
      if( nextweektime = startTime ){ 
 | 
        weektime      := this.GetTimeByTimeUnit( starttime, startTime, Translations::MP_GlobalParameters_Week() ); 
 | 
        weekcolumn    := table.GetColumnByTimeUnit( table, weektime, Translations::MP_GlobalParameters_Week() ); 
 | 
        weekcell      := weekcolumn.GetCellByTimeUnit( this, desc ); 
 | 
         
 | 
        weekvalue     := [Real]weekcell.Value(); 
 | 
        if( startTime.StartOfNextWeek() > endtime ){ 
 | 
          duration    := endtime - startTime; 
 | 
          weekvalue   := weekvalue + duration.HoursAsReal(); 
 | 
          weekcell.Period( relnew, Start := startTime.Format( 'M/D/Y H:m' ), End := endtime.Format( 'M/D/Y H:m' ) ); 
 | 
        }else{ 
 | 
          duration    := startTime.StartOfNextWeek() - startTime; 
 | 
          weekvalue   := weekvalue + duration.HoursAsReal(); 
 | 
          weekcell.Period( relnew, Start := startTime.Format( 'M/D/Y H:m' ), End := startTime.StartOfNextWeek().Format( 'M/D/Y H:m' ) ); 
 | 
        } 
 | 
        weekcell.Value( [String]weekvalue ); 
 | 
        nextweektime := startTime.StartOfNextWeek(); 
 | 
      } 
 | 
    //  info( '-----------------------------1------------------------', nextmonthtime, startTime, nextweektime ); 
 | 
      //月 
 | 
      if( nextmonthtime = startTime ){ 
 | 
        monthtime     := this.GetTimeByTimeUnit( starttime, startTime, Translations::MP_GlobalParameters_Month() ); 
 | 
        monthcolumn   := table.GetColumnByTimeUnit( table, monthtime, Translations::MP_GlobalParameters_Month() ); 
 | 
        monthcell     := monthcolumn.GetCellByTimeUnit( this, desc ); 
 | 
        info( nextmonthtime, startTime, monthtime, isnull( monthcolumn ), isnull( monthcell ) ); 
 | 
        monthvalue    := [Real]monthcell.Value(); 
 | 
        if( startTime.StartOfNextMonth() > endtime ){ 
 | 
          duration    := endtime - startTime; 
 | 
          monthvalue  := monthvalue + duration.HoursAsReal(); 
 | 
          monthcell.Period( relnew, Start := startTime.Format( 'M/D/Y H:m' ), End := endtime.Format( 'M/D/Y H:m' ) ); 
 | 
        }else{ 
 | 
          duration    := startTime.StartOfNextMonth() - startTime; 
 | 
          monthvalue  := monthvalue + duration.HoursAsReal(); 
 | 
          monthcell.Period( relnew, Start := startTime.Format( 'M/D/Y H:m' ), End := startTime.StartOfNextMonth().Format( 'M/D/Y H:m' ) ); 
 | 
        } 
 | 
        monthcell.Value( [String]monthvalue ); 
 | 
        nextmonthtime := startTime.StartOfNextMonth(); 
 | 
      } 
 | 
      startTime := startTime.StartOfNextDay(); 
 | 
    } 
 | 
  *] 
 | 
} 
 |