lazhen
2024-10-09 f9c8e9e3438d19dc7a3ee087b631dbe593663112
_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl
@@ -11,20 +11,29 @@
  [*
    // 甄兰鸽 Jun-25-2024 (created)
    //查询日期返回需要在计划日期之内
    weekstart             := owner.StartOfPlanning().Date();
    traverse( owner, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
      if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Day() ){
        periodtime          := period.StartDate();
        periodname          := periodtime.Format( "M2/D2/Y" );
        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
    startofplanning           := owner.StartOfPlanning();
    startofyear               := startofplanning.StartOfYear().Date();
    startofendyear            := startofplanning.StartOfNextYear().Date();
    //查询日期返回需要在计划日期之内
    if( startdate < startofendyear and enddate > startofyear ){
      if( startdate < startofyear ){
        startdate             := startofyear;
      }
      if( enddate > startofendyear ){
        enddate               := startofendyear;
      }
      if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Day() ){
        for( start := startdate; start <= enddate; start := start.DateTime().StartOfNextDay().Date() ){
          periodname          := start.Format( "M2/D2/Y" );
          this.Column( relnew, Name := periodname, StartDate := start, EndDate := start, TimeUnit := Translations::MP_GlobalParameters_Day() );
        }
      }
      if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){
        if( period.StartDate() = weekstart ){
          weekperiodname    := weekstart.Format( "M2/D2/Y" );
          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
          weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
        for( start := startdate; start <= enddate; start := start.StartOfNextWeek() ){
          periodname          := start.Format( "M2/D2/Y" );
          weekend             := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();
          this.Column( relnew, Name := periodname, StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
        }
      }
    }