From eb703e956320ef3f51ef085447e18bbd4747e1d3 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期一, 28 十月 2024 15:55:24 +0800
Subject: [PATCH] 财务产量/销量导入从1月开始报错

---
 _Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl |   40 ++++++++++++----------------------------
 1 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
index f9b03a6..612bf56 100644
--- a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -11,7 +11,7 @@
     owner.FinancialWeeklyReport( relflush );
     ccunit                    := FinancialWeeklyReport::GetDefaultCCUnit();
     dlunit                    := FinancialWeeklyReport::GetDefaultDLUnit();
-    allunit                   := FinancialWeeklyReport::GetDefaultAllUnit();
+    //allunit                   := FinancialWeeklyReport::GetDefaultAllUnit();
     defaultname               := FinancialWeeklyReport::GetDefaultName();
     startofplanning           := owner.StartOfPlanning();
     
@@ -29,17 +29,13 @@
     dlsales                   := table.FinancialWeeklyRow( relnew, Name := 'DL閿�閲�', RowNr := 5 );
     ccsales                   := table.FinancialWeeklyRow( relnew, Name := 'CC閿�閲�', RowNr := 6 );
     //SUM
-    totalpvaluesum            := [Real]0;
     dlpvaluesum               := [Real]0;
     ccpvaluesum               := [Real]0;
-    totalsvaluesum            := [Real]0;
     dlsvaluesum               := [Real]0;
     ccsvaluesum               := [Real]0;
     //绱閲�
-    totalpvaluecumulant       := [Real]0;
     dlpvaluecumulant          := [Real]0;
     ccpvaluecumulant          := [Real]0;
-    totalsvaluecumulant       := [Real]0;
     dlsvaluecumulant          := [Real]0;
     ccsvaluecumulant          := [Real]0;
     
@@ -48,18 +44,12 @@
       salescolumn           := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() and not scolumn.IsDay() );
       
       //浜ч噺姹囨��
-      totalpvalue           := [Real]0;
       dlpvalue              := [Real]0;
       ccpvalue              := [Real]0;
       traverse( productioncolumn, FinancialProductionCell, cell, cell.Quantity() > 0 ){
         unit                := cell.FinancialProductionRow().Unit();
         
-        if( unit = allunit ){
-          totalpvalue       := totalpvalue + cell.Quantity();
-          if( column.Period() = startofplanning.StartOfMonth().Date() ){
-            totalpvaluecumulant := totalpvaluecumulant - cell.PlanValue();
-          }
-        }else if( unit = dlunit ){
+        if( unit = dlunit ){
           dlpvalue          := dlpvalue + cell.Quantity();
           if( column.Period() = startofplanning.StartOfMonth().Date() ){
             dlpvaluecumulant := dlpvaluecumulant - cell.PlanValue();
@@ -71,7 +61,7 @@
           }
         }
       }
-      totalpcell            := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvalue ) );
+      totalpcell            := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]( dlpvalue + ccpvalue ) ) );
       totalproduction.FinancialWeeklyCell( relinsert, totalpcell );
       dlpcell               := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]dlpvalue ) );
       dlproduction.FinancialWeeklyCell( relinsert, dlpcell );
@@ -79,20 +69,18 @@
       ccproduction.FinancialWeeklyCell( relinsert, ccpcell );
       
       //閿�閲忔眹鎬�
-      totalsvalue           := [Real]0;
       dlsvalue              := [Real]0;
       ccsvalue              := [Real]0;
       traverse( salescolumn, FinancialSalesCell, cell, [Real]cell.Value() > 0 ){
         unit                := cell.FinancialSalesRow().Unit();
-        if( unit = allunit ){
-          totalsvalue       := totalsvalue + [Real]cell.Value();
-        }else if( unit = dlunit ){
+    
+        if( unit = dlunit ){
           dlsvalue          := dlsvalue + [Real]cell.Value();
         }else if( unit = ccunit ){
           ccsvalue          := ccsvalue + [Real]cell.Value();
         }
       }
-      totalscell            := column.FinancialWeeklyCell( relnew, Value := [String]totalsvalue );
+      totalscell            := column.FinancialWeeklyCell( relnew, Value := [String]( dlsvalue + ccsvalue ) );
       totalsales.FinancialWeeklyCell( relinsert, totalscell );
       dlscell               := column.FinancialWeeklyCell( relnew, Value := [String]dlsvalue );
       dlsales.FinancialWeeklyCell( relinsert, dlscell );
@@ -100,17 +88,13 @@
       ccsales.FinancialWeeklyCell( relinsert, ccscell );
       
       if( column.Period() < startofplanning.StartOfMonth().Date() ){
-        totalpvaluecumulant := totalpvaluecumulant + totalpvalue;
         dlpvaluecumulant    := dlpvaluecumulant + dlpvalue;
         ccpvaluecumulant    := ccpvaluecumulant + ccpvalue;
-        totalsvaluecumulant := totalsvaluecumulant + totalsvalue;
         dlsvaluecumulant    := dlsvaluecumulant + dlsvalue;
         ccsvaluecumulant    := ccsvaluecumulant + ccsvalue;
       }
-      totalpvaluesum        := totalpvaluesum + totalpvalue;
       dlpvaluesum           := dlpvaluesum + dlpvalue;
       ccpvaluesum           := ccpvaluesum + ccpvalue;
-      totalsvaluesum        := totalsvaluesum + totalsvalue;
       dlsvaluesum           := dlsvaluesum + dlsvalue;
       ccsvaluesum           := ccsvaluesum + ccsvalue;
     }
@@ -118,33 +102,33 @@
     cumulantcolumn            := table.FinancialWeeklyColumn( relnew, Name := '绱閲�' );
     proportioncolumn          := table.FinancialWeeklyColumn( relnew, Name := '鍗犳瘮' );
     //SUM
-    totalpcellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvaluesum ) );
+    totalpcellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( [Number]( dlpvaluesum + ccpvaluesum ) ) );
     totalproduction.FinancialWeeklyCell( relinsert, totalpcellsum );
     dlpcellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( [Number]dlpvaluesum ) );
     dlproduction.FinancialWeeklyCell( relinsert, dlpcellsum );
     ccpcellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( [Number]ccpvaluesum ) );
     ccproduction.FinancialWeeklyCell( relinsert, ccpcellsum );
-    totalscellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluesum );
+    totalscellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( dlsvaluesum + ccsvaluesum ) );
     totalsales.FinancialWeeklyCell( relinsert, totalscellsum );
     dlscellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluesum );
     dlsales.FinancialWeeklyCell( relinsert, dlscellsum );
     ccscellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluesum );
     ccsales.FinancialWeeklyCell( relinsert, ccscellsum );
     //绱閲�
-    totalpcellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant );
+    totalpcellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]( dlpvaluecumulant + ccpvaluecumulant ) );
     totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant );
     dlpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant );
     dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant );
     ccpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant );
     ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant );
-    totalscellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant );
+    totalscellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]( dlsvaluecumulant + ccsvaluecumulant ) );
     totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant );
     dlscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant );
     dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant );
     ccscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant );
     ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant );
     //鍗犳瘮
-    totalpvalueproportion   := guard( ( totalpvaluecumulant / totalpvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    totalpvalueproportion   := guard( ( ( dlpvaluecumulant + ccpvaluecumulant ) / ( dlpvaluesum + ccpvaluesum ) ).Format( 'N(Dec(2))' ), '0.00' );
     totalpcellproportion    := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalpvalueproportion );
     totalproduction.FinancialWeeklyCell( relinsert, totalpcellproportion );
     
@@ -156,7 +140,7 @@
     ccpcellproportion       := proportioncolumn.FinancialWeeklyCell( relnew, Value := ccpvalueproportion );
     ccproduction.FinancialWeeklyCell( relinsert, ccpcellproportion );
     
-    totalsvalueproportion   := guard( ( totalsvaluecumulant / totalsvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
+    totalsvalueproportion   := guard( ( ( dlsvaluecumulant + ccsvaluecumulant ) / ( dlsvaluesum + ccsvaluesum ) ).Format( 'N(Dec(2))' ), '0.00' );
     totalscellproportion    := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalsvalueproportion );
     totalsales.FinancialWeeklyCell( relinsert, totalscellproportion );
     

--
Gitblit v1.9.3