From f9c8e9e3438d19dc7a3ee087b631dbe593663112 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 09 十月 2024 11:34:43 +0800
Subject: [PATCH] 机加管线报表的数据bug

---
 _Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl b/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
index c4e150b..f579568 100644
--- a/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
@@ -10,21 +10,29 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
+    startofplanning           := owner.StartOfPlanning();
+    startofyear               := startofplanning.StartOfYear().Date();
+    startofendyear            := startofplanning.StartOfNextYear().Date();
     //鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴
-    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() );
+    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() );
         }
       }
     }

--
Gitblit v1.9.3