From 4be2a228025a44c7cc4a1fec31d5ade0f84a988b Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期一, 14 十月 2024 16:49:11 +0800
Subject: [PATCH] 财务产量/销量报表查询条件多选

---
 _Main/BL/Type_FinancialSalesReport/Method_Generate.qbl |   47 ++++++++++-------------------------------------
 1 files changed, 10 insertions(+), 37 deletions(-)

diff --git a/_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl b/_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl
index d62492f..cba9d49 100644
--- a/_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl
+++ b/_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl
@@ -2,51 +2,24 @@
 #parent: #root
 Method Generate (
   FinancialSalesSearch search,
-  Product_MPs products
+  Factorys factorys,
+  Strings productids
 )
 {
   TextBody:
   [*
     // 鐢勫叞楦� Jun-25-2024 (created)
     table      := selectobject( this, FinancialSalesSource.FinancialSalesReport, report, not report.IsShow() );
-    allunit    := '<All>';
     //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
     this.Clear();
-    //骞存眹鎬�
-    yearcolumn := this.FinancialSalesColumn( relnew, Name := '姹囨��', Period := search.MacroPlan().StartOfPlanning().StartOfNextYear().Date() );
-    //杩囨护鍚庣殑浜у搧id
-    productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() )
-                                      and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() )
-                                      and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() );
-    sumrow     := this.FinancialSalesRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.FinancialSalesRow( relsize ) );
-    sumyearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
-    sumrow.FinancialSalesCell( relinsert, sumyearcell );
-    traverse( table, FinancialSalesRow, row, row.Unit() = search.Unit() ){
-      productid  := construct( Strings );
-      productid.Add( row.Name() );
-      
-      if( productids.ContainsAll( productid ) ){
-        showrow := this.FinancialSalesRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() );
-        yearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
-        showrow.FinancialSalesCell( relinsert, yearcell );
-        
-        traverse( row, FinancialSalesCell, cell, not cell.FinancialSalesColumn().IsDay() ){
-          column   := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() and not column.IsDay());
-          
-          sumcell  := selectobject( column, FinancialSalesCell, c, c.FinancialSalesRow() = sumrow );
-          if( isnull( sumcell ) ){
-            sumcell := column.FinancialSalesCell( relnew, Value := '0' );
-            sumrow.FinancialSalesCell( relinsert, sumcell );
-          }
-          
-          showcell := column.FinancialSalesCell( relnew, Value := cell.Value() );
-          showrow.FinancialSalesCell( relinsert, showcell );
-          yearcell.Value( [String]( [Real]yearcell.Value() + [Real]cell.Value() ) );
-          sumyearcell.Value( [String]( [Real]sumyearcell.Value() + [Real]cell.Value() ) );
-          value := [Real]cell.Value() + [Real]sumcell.Value();
-          sumcell.Value( [String]value );
-        }
-      }
+    traverse( factorys, Elements, factory ){
+      this.GenerateShow( table, productids, factory.ID() );
+    }
+    rows                    := selectsortedset( this, FinancialSalesRow, row, row.Name() );
+    i                       := 0;
+    traverse( rows, Elements, e ){
+      e.RowNr( i );
+      i                    := i + 1;
     }
   *]
 }

--
Gitblit v1.9.3