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_MachiningPipelineSource0/StaticMethod_Initialize.qbl |   71 +++++++++++++++++++----------------
 1 files changed, 39 insertions(+), 32 deletions(-)

diff --git a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
index 1a69f9f..3b9867c 100644
--- a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
@@ -8,6 +8,7 @@
   [*
     // 鐢勫叞楦� Jun-24-2024 (created)
     owner.FinancialProductionSource( relflush );
+    productparent             := MachiningPipelineReport::GetDefaultProductParent();
     ccunit                    := MachiningPipelineReport::GetDefaultCCUnit();
     dlunit                    := MachiningPipelineReport::GetDefaultDLUnit();
     //allunit                   := EnginePipelineReport::GetDefaultAllUnit();
@@ -39,39 +40,45 @@
       //鏄惁灞炰簬澶ц繛鏈哄姞浜х嚎
       isdlproduction          := unit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() );
       if( iscc or isdl ){
-        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() ){
-          row := table.GetRow( pisp.ProductID() );
-          
-          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() );
-          
-          traverse( pispips, Elements, pispip ){
-            //澶�
-            daycolumn           := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
-            //鍛�
-            weekcolumn          := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
+        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 ) ) ){
+          product             := pisp.Product_MP();
+          productparents      := product.GetAllParent();
+          if( exists( productparents, Elements, e, e.ID() = productparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
+            row               := table.GetRow( pisp.ProductID() );
+            products.Add( pisp.Product_MP() );
+            weekstart         := owner.StartOfPlanning().Date();
+            pispips           := selectsortedset( 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 ), pispip.Start() );
             
-            supplyquantity      := [Number]pispip.NewSupplyQuantity();//鍥涜垗浜斿叆
-            inventoryquantity   := [Number]pispip.PlannedInventoryLevelEnd();//鍥涜垗浜斿叆
-            
-            //瑁呴厤绾�
-            if( isccassemnly or isdlassemnly ){
-              row.SetCellAssemblyValue( daycolumn, isccassemnly, [Real]supplyquantity );
-              row.SetCellAssemblyValue( weekcolumn, isccassemnly, [Real]supplyquantity );
-            }
-            
-            //鏈哄姞绾�
-            if( isccproduction or isdlproduction ){
-              row.SetCellProductionValue( daycolumn, isccproduction, [Real]supplyquantity );
-              row.SetCellProductionValue( weekcolumn, isccproduction, [Real]supplyquantity );
-            }
-            //搴撳瓨
-            if( iscc or isdl ){
-              row.SetCellInventoryValue( daycolumn, iscc, [Real]inventoryquantity );
-              if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
-                weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
-                row.SetCellInventoryValue( weekcolumn, iscc, [Real]inventoryquantity );
+            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( isccassemnly or isdlassemnly ){
+                row.SetCellAssemblyValue( daycolumn, isccassemnly, [Real]supplyquantity );
+                row.SetCellAssemblyValue( weekcolumn, isccassemnly, [Real]supplyquantity );
+              }
+              
+              //鏈哄姞绾�
+              if( isccproduction or isdlproduction ){
+                row.SetCellProductionValue( daycolumn, isccproduction, [Real]supplyquantity );
+                row.SetCellProductionValue( weekcolumn, isccproduction, [Real]supplyquantity );
+              }
+              //搴撳瓨
+              if( iscc or isdl ){
+                row.SetCellInventoryValue( daycolumn, iscc, [Real]inventoryquantity );
+                if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
+                  weekstart      := ( weekstart + Duration::Days( 7 ) ).Date();
+                  row.SetCellInventoryValue( weekcolumn, iscc, [Real]inventoryquantity );
+                }
               }
             }
           }

--
Gitblit v1.9.3