| | |
| | | Description: '生成日期列' |
| | | TextBody: |
| | | [* |
| | | // 甄兰鸽 Jun-25-2024 (created) |
| | | // 甄兰鸽 Jun-25-2024 (created) |
| | | timeunit := guard( this.InterfaceDataset().AssemblyOnlinePlanVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ; |
| | | weekstart := periods.Element( 0 ); |
| | | |
| | | monthstart := periods.Element( 0 ); |
| | | traverse( periods, Elements, periodtime ){ |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | |
| | | 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() ); |
| | | 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( ( 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( 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( 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() ); |
| | | |
| | | 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(); |
| | | } |
| | | weekstart := periodtime.StartOfNextWeek(); |
| | | monthstart := periodtime.StartOfNextMonth(); |
| | | } |
| | | *] |
| | | } |