lazhen
2024-11-21 4534d2c0921049d9d150ba0c31f76cb445bdd365
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GenerateColumn.qbl
@@ -9,40 +9,40 @@
  TextBody:
  [*
    // 甄兰鸽 Jun-25-2024 (created)
    timeunit              := guard( this.InterfaceDataset().InventoryPlanArchiveVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
    weekstart             := periods.Element( 0 );
    monthstart            := periods.Element( 0 );
    //timeunit              := guard( this.InterfaceDataset().InventoryPlanArchiveVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
    //weekstart             := periods.Element( 0 );
    //
    //monthstart            := periods.Element( 0 );
    traverse( periods, Elements, periodtime ){
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
        periodname        := periodtime.Format( "M2/D2/Y" );
        
        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      }
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
          weekstart       := periodtime;
        }
        if( periodtime = weekstart ){
          weekperiodname  := weekstart.Format( "M2/D2/Y" );
          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
        }
        weekstart         := periodtime.StartOfNextWeek();
      }
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
          monthstart      := periodtime;
        }
        if( periodtime = monthstart ){
          monthperiodname := monthstart.Format( "M2/D2/Y" );
          enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
          this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
        }
        monthstart        := periodtime.StartOfNextMonth();
      }
        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime );//, TimeUnit := Translations::MP_GlobalParameters_Day()
    //  }
    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
    //    weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
    //    if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
    //      weekstart       := periodtime;
    //    }
    //    if( periodtime = weekstart ){
    //      weekperiodname  := weekstart.Format( "M2/D2/Y" );
    //      this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
    //
    //    }
    //    weekstart         := periodtime.StartOfNextWeek();
    //  }
    //  if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
    //    if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
    //      monthstart      := periodtime;
    //    }
    //    if( periodtime = monthstart ){
    //      monthperiodname := monthstart.Format( "M2/D2/Y" );
    //      enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
    //      this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
    //
    //    }
    //    monthstart        := periodtime.StartOfNextMonth();
    //  }
    }
  *]
}