From 94ab2bd0381925ecf01a2f1a812b114d0f82d5bb Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 14 八月 2024 14:52:52 +0800
Subject: [PATCH] 报表页面中文

---
 _Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl |   99 ++++++++++++++++++++++++-------------------------
 1 files changed, 48 insertions(+), 51 deletions(-)

diff --git a/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl b/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl
index 77b75de..0d45aa5 100644
--- a/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl
@@ -10,10 +10,11 @@
     owner.EnginePipelineSource( relflush );
     //ccunit                    := EnginePipelineReport::GetDefaultCCUnit();
     //dlunit                    := EnginePipelineReport::GetDefaultDLUnit();
-    ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
-    dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
-    ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
-    dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
+    productparent             := EnginePipelineReport::GetDefaultProductParent();
+    ccalineunit               := EnginePipelineReport::GetDefaultCCALineUnit();
+    dlalienunit               := EnginePipelineReport::GetDefaultDLALineUnit()
+    ccmplineunit              := EnginePipelineReport::GetDefaultCCMPLineUnit()
+    dlmplineunit              := EnginePipelineReport::GetDefaultDLMPLineUnit();
     //allunit                   := EnginePipelineReport::GetDefaultAllUnit();
     source                    := owner.EnginePipelineSource( relnew, Name := EnginePipelineReport::GetDefaultName() );
     table                     := source.Report( relnew, ID := source.Name(), Name := source.Name() );
@@ -35,62 +36,58 @@
       //鏄惁灞炰簬澶ц繛宸ュ巶
       isdl         := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
       
-      traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() ){
-        product               := pisp.Product_MP();
-        productparents        := product.GetAllParent();
-        if( exists( productparents, Elements, e, e.ID() = '鍙戝姩鏈�' ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
-          weekstart           := owner.StartOfPlanning().Date();
-          pispips             := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() 
+      traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() 
+                and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent ) 
+                and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ) ) ){
+        weekstart           := owner.StartOfPlanning().Date();
+        pispips             := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() 
                                                     and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() );
-          row := table.GetRow( pisp.ProductID() );
-          traverse( pispips, Elements, pispip ){
-            //澶�
-            daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
-            //鍛�
-            weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
-            supplyquantity    := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
-            inventoryquantity := [Number]pispip.PlannedInventoryLevelEnd();//鍥涜垗浜斿叆
-            //浜ч噺鏄姞鎬�
-            if( iscc or isdl ){
-              row.SetCellProductionValue( daycolumn, iscc, [Real]supplyquantity );
-              row.SetCellProductionValue( weekcolumn, iscc, [Real]supplyquantity );
-            }
-            //搴撳瓨闇�瑕佸彇鏈�鍚庝竴澶�
-            row.SetCellInventoryValue( daycolumn, [Real]inventoryquantity );
-      
-            if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
-              weekstart       := ( weekstart + Duration::Days( 7 ) ).Date();
-              
-              row.SetCellInventoryValue( weekcolumn, [Real]inventoryquantity );
-            } 
+        row := table.GetRow( pisp.ProductID() );
+        traverse( pispips, Elements, pispip ){
+          //澶�
+          daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
+          //鍛�
+          weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
+          supplyquantity    := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
+          inventoryquantity := [Number]pispip.PlannedInventoryLevelEnd();//鍥涜垗浜斿叆
+          //浜ч噺鏄姞鎬�
+          if( iscc or isdl ){
+            row.SetCellProductionValue( daycolumn, iscc, [Real]supplyquantity );
+            row.SetCellProductionValue( weekcolumn, iscc, [Real]supplyquantity );
           }
+          //搴撳瓨闇�瑕佸彇鏈�鍚庝竴澶�
+          row.SetCellInventoryValue( daycolumn, [Real]inventoryquantity );
+      
+          if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
+            weekstart       := ( weekstart + Duration::Days( 7 ) ).Date();
+              
+            row.SetCellInventoryValue( weekcolumn, [Real]inventoryquantity );
+          } 
         }
       }
     }
     
     //鐢熸垚闇�姹傛暟鎹�
-    traverse( owner, SalesDemand.astype( Forecast ), forecast ){
-      product               := forecast.Product_MP();
-      productparents        := product.GetAllParent();
-      if( exists( productparents, Elements, e, e.ID() = '鍙戝姩鏈�' ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
-        row                 := table.GetRow( forecast.ProductID() );
-        weekstart           := owner.StartOfPlanning().Date();
-        traverse( forecast, PlanningSalesDemandInPeriod, psdip ){
-          //澶�
-          daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), psdip.StartDate() );
-          //鍛�
-          weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
+    traverse( owner, SalesDemand.astype( Forecast ), forecast, forecast.StartDate() < endperiod.StartDate() and forecast.Quantity() <> 0 
+              and exists( forecast.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent )
+              and exists( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ) ){
+      row                 := table.GetRow( forecast.ProductID() );
+      weekstart           := owner.StartOfPlanning().Date();
+      traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){
+        //澶�
+        daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), psdip.StartDate() );
+        //鍛�
+        weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
           
-          if( not isnull( daycolumn ) ){
-            row.SetCellDemandValue( daycolumn, forecast.SalesSegmentName(), forecast.Quantity() );
-          }
-          if( not isnull( weekcolumn ) ){
-            row.SetCellDemandValue( weekcolumn, forecast.SalesSegmentName(), forecast.Quantity() );
-          }
-          if( psdip.StartDate() = ( weekstart + Duration::Days( 6 ) ).Date() or psdip.PeriodStart() = endperiod.StartDate() ){
-            weekstart       := ( weekstart + Duration::Days( 7 ) ).Date();
-          } 
+        if( not isnull( daycolumn ) ){
+          row.SetCellDemandValue( daycolumn, forecast.SalesSegmentName(), forecast.Quantity() );
         }
+        if( not isnull( weekcolumn ) ){
+          row.SetCellDemandValue( weekcolumn, forecast.SalesSegmentName(), forecast.Quantity() );
+        }
+        if( psdip.StartDate() = ( weekstart + Duration::Days( 6 ) ).Date() or psdip.PeriodStart() = endperiod.StartDate() ){
+          weekstart       := ( weekstart + Duration::Days( 7 ) ).Date();
+        } 
       }
     }
     

--
Gitblit v1.9.3