From b02a3586a97064c94087c0e3ca2eac36cd9d9b42 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期一, 21 十月 2024 17:36:04 +0800
Subject: [PATCH] 库存汇总报表导出格式修改

---
 _Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl |  133 ++++++++------------------------------------
 1 files changed, 24 insertions(+), 109 deletions(-)

diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
index 6edd436..73339a8 100644
--- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
@@ -1,11 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Download (
-  MacroPlan macroPlan,
-  Factorys factorys,
-  ProductGenerations generations,
-  ProductPowers powers,
-  ProductMLBMQBs mlbmqls
+  MacroPlan macroPlan
 ) as BinaryValue
 {
   Description: '涓嬭浇璐㈠姟鎶ヨ〃鏁版嵁'
@@ -18,123 +14,42 @@
     xmlDOM                        := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
     
     tableElement                  := xmlDOM.GetElementByTagName( "table", 0 );
-    //Search
-    searchcolumnelement           := xmlDOM.CreateElement( "column" );
-    searchnameelement             := xmlDOM.CreateElement( "name" );
-    searchtypeelement             := xmlDOM.CreateElement( "type" );
-    searchnameelement.TextContent( 'Search' );
-    searchtypeelement.TextContent( "String" );
-    searchcolumnelement.AppendChild( searchnameelement );
-    searchcolumnelement.AppendChild( searchtypeelement );
+    //Factory
+    searchunitcolumn              := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' );
+    //Generation
+    generationcolumn              := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Generation' );
+    //Power
+    powercolumn                   := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Power' );
+    //MLBMQBS
+    mlbmqbcolumn                  := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'MLBMQB' );
     //Product
-    productcolumnelement          := xmlDOM.CreateElement( "column" );
-    productnameelement            := xmlDOM.CreateElement( "name" );
-    producttypeelement            := xmlDOM.CreateElement( "type" );
-    productnameelement.TextContent( 'Product' );
-    producttypeelement.TextContent( "String" );
-    productcolumnelement.AppendChild( productnameelement );
-    productcolumnelement.AppendChild( producttypeelement );
+    productcolumnelement          := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Product' );
     //Unit
-    unitcolumnelement             := xmlDOM.CreateElement( "column" );
-    unitnameelement               := xmlDOM.CreateElement( "name" );
-    unittypeelement               := xmlDOM.CreateElement( "type" );
-    unitnameelement.TextContent( 'Unit' );
-    unittypeelement.TextContent( "String" );
-    unitcolumnelement.AppendChild( unitnameelement );
-    unitcolumnelement.AppendChild( unittypeelement );
+    unitcolumnelement             := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' );
     
-    tableElement.AppendChild( searchcolumnelement ); 
-    tableElement.AppendChild( productcolumnelement ); 
-    tableElement.AppendChild( unitcolumnelement ); 
-    searchtotal                   := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 4 ;
-    searchunitElement             := xmlDOM.CreateElement( "cell" );
-    searchunitElement.SetAttribute( "value", 'Unit' );
-    searchcolumnelement.AppendChild( searchunitElement );
-    traverse( factorys, Elements, factory ){
-      searchunitcellElement       := xmlDOM.CreateElement( "cell" );
-      searchunitcellElement.SetAttribute( "value", factory.Name() );
-      searchcolumnelement.AppendChild( searchunitcellElement );
-    }
-    searchgenerationElement       := xmlDOM.CreateElement( "cell" );
-    searchgenerationElement.SetAttribute( "value", 'Generation' );
-    searchcolumnelement.AppendChild( searchgenerationElement );
-    traverse( generations, Elements, generation ){
-      generationcellElement       := xmlDOM.CreateElement( "cell" );
-      generationcellElement.SetAttribute( "value", generation.Generation() );
-      searchcolumnelement.AppendChild( generationcellElement );
-    }
-    searchpowerElement            := xmlDOM.CreateElement( "cell" );
-    searchpowerElement.SetAttribute( "value", 'Power' );
-    searchcolumnelement.AppendChild( searchpowerElement );
-    traverse( powers, Elements, power ){
-      searchpowercellElement      := xmlDOM.CreateElement( "cell" );
-      searchpowercellElement.SetAttribute( "value", power.Power() );
-      searchcolumnelement.AppendChild( searchpowercellElement );
-    }
-    searchmlbmqlElement           := xmlDOM.CreateElement( "cell" );
-    searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' );
-    searchcolumnelement.AppendChild( searchmlbmqlElement );
-    traverse( mlbmqls, Elements, mlbmql ){
-      searchmlbmqlcellElement     := xmlDOM.CreateElement( "cell" );
-      searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() );
-      searchcolumnelement.AppendChild( searchmlbmqlcellElement );
-    }
-    
-    for( i := searchtotal; i < table.FinancialSalesRow( relsize ); i := i + 1 ){
-      searchcellElement           := xmlDOM.CreateElement( "cell" );
-      searchcellElement.SetAttribute( "value", '' );
-      searchcolumnelement.AppendChild( searchcellElement );
-    }
-    
-    minindex        := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() );
+    minindex                      := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() );
     traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) {
-      columnelement               := xmlDOM.CreateElement( "column" );
-      nameelement                 := xmlDOM.CreateElement( "name" );
-      typeelement                 := xmlDOM.CreateElement( "type" );
-      nameelement.TextContent( column.Name() );
-      typeelement.TextContent( "String" );
-      columnelement.AppendChild( nameelement );
-      columnelement.AppendChild( typeelement );
+      columnelement               := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name() );
       
       cells := selectsortedset( column, FinancialSalesCell, cell, cell.FinancialSalesRow().RowNr() );
     
       traverse ( cells, Elements, c ) {
         if( column.Index() = minindex ){
           row                     := c.FinancialSalesRow();
+          //Factory
+          InventorySummarySource::CreateCellElement( xmlDOM, searchunitcolumn, row.Factory() );
+          //Generation
+          InventorySummarySource::CreateCellElement( xmlDOM, generationcolumn, row.Product_MP().Generation() );
+          //Power
+          InventorySummarySource::CreateCellElement( xmlDOM, powercolumn, row.Product_MP().Power() );
+          //MLBMQBS
+          InventorySummarySource::CreateCellElement( xmlDOM, mlbmqbcolumn, row.Product_MP().MQBMLB() );
           //Product
-          productcellElement      := xmlDOM.CreateElement( "cell" );
-          productcellElement.SetAttribute( "value", row.Name() );
-          productcolumnelement.AppendChild( productcellElement );
+          InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
           //Unit
-          unitcellElement         := xmlDOM.CreateElement( "cell" );
-          unitcellElement.SetAttribute( "value", row.Unit() );
-          unitcolumnelement.AppendChild( unitcellElement );
-          if( cells.Size() > searchtotal ){
-            for( i := searchtotal; i < cells.Size(); i := i + 1 ){
-              searchcellElement1  := xmlDOM.CreateElement( "cell" );
-              searchcellElement1.SetAttribute( "value", '' );
-              searchcolumnelement.AppendChild( searchcellElement1 );
-            }
-          }
+          InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
         }
-        cellElement               := xmlDOM.CreateElement( "cell" );
-        cellElement.SetAttribute( "value", c.Value() ); 
-        columnelement.AppendChild( cellElement );
-      }
-      for( i := cells.Size(); i < searchtotal; i := i + 1 ){
-        searchcellElement         := xmlDOM.CreateElement( "cell" );
-        searchcellElement.SetAttribute( "value", '' );
-        columnelement.AppendChild( searchcellElement );
-        
-        if( column.Index() = minindex ){
-          productcellElement      := xmlDOM.CreateElement( "cell" );
-          productcellElement.SetAttribute( "value", '' );
-          productcolumnelement.AppendChild( productcellElement );
-          //Unit
-          unitcellElement         := xmlDOM.CreateElement( "cell" );
-          unitcellElement.SetAttribute( "value", '' );
-          unitcolumnelement.AppendChild( unitcellElement );
-        }
+        InventorySummarySource::CreateCellElement( xmlDOM, columnelement, c.Value() );
       }
       tableElement.AppendChild( columnelement );  
     }

--
Gitblit v1.9.3