From 19e23a072fd48b81abb745cb5c8e8cd406cab9c9 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 18 十月 2024 12:34:20 +0800
Subject: [PATCH] 财务产量/销量,库存汇总的导出bug
---
_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl | 160 ++++++++++++++++++++++++++++-------------------------
1 files changed, 85 insertions(+), 75 deletions(-)
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
index 06cfb30..c989643 100644
--- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
@@ -13,40 +13,40 @@
TextBody:
[*
- table := selectobject( macroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
+ table := selectobject( macroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
- xmlDOMI := XMLDOMImplementation::Create();
- xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
+ xmlDOMI := XMLDOMImplementation::Create();
+ xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
- tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+ tableElement := xmlDOM.GetElementByTagName( "table", 0 );
//Search
- searchcolumnelement := xmlDOM.CreateElement( "column" );
- searchnameelement := xmlDOM.CreateElement( "name" );
- searchtypeelement := xmlDOM.CreateElement( "type" );
+ searchcolumnelement := xmlDOM.CreateElement( "column" );
+ searchnameelement := xmlDOM.CreateElement( "name" );
+ searchtypeelement := xmlDOM.CreateElement( "type" );
searchnameelement.TextContent( 'Search' );
searchtypeelement.TextContent( "String" );
searchcolumnelement.AppendChild( searchnameelement );
searchcolumnelement.AppendChild( searchtypeelement );
//Product
- productcolumnelement := xmlDOM.CreateElement( "column" );
- productnameelement := xmlDOM.CreateElement( "name" );
- producttypeelement := xmlDOM.CreateElement( "type" );
+ productcolumnelement := xmlDOM.CreateElement( "column" );
+ productnameelement := xmlDOM.CreateElement( "name" );
+ producttypeelement := xmlDOM.CreateElement( "type" );
productnameelement.TextContent( 'Product' );
producttypeelement.TextContent( "String" );
productcolumnelement.AppendChild( productnameelement );
productcolumnelement.AppendChild( producttypeelement );
//Unit
- unitcolumnelement := xmlDOM.CreateElement( "column" );
- unitnameelement := xmlDOM.CreateElement( "name" );
- unittypeelement := xmlDOM.CreateElement( "type" );
+ unitcolumnelement := xmlDOM.CreateElement( "column" );
+ unitnameelement := xmlDOM.CreateElement( "name" );
+ unittypeelement := xmlDOM.CreateElement( "type" );
unitnameelement.TextContent( 'Unit' );
unittypeelement.TextContent( "String" );
unitcolumnelement.AppendChild( unitnameelement );
unitcolumnelement.AppendChild( unittypeelement );
//Attribute
- attricolumnelement := xmlDOM.CreateElement( "column" );
- attrinameelement := xmlDOM.CreateElement( "name" );
- attritypeelement := xmlDOM.CreateElement( "type" );
+ attricolumnelement := xmlDOM.CreateElement( "column" );
+ attrinameelement := xmlDOM.CreateElement( "name" );
+ attritypeelement := xmlDOM.CreateElement( "type" );
attrinameelement.TextContent( 'Attribute' );
attritypeelement.TextContent( "String" );
attricolumnelement.AppendChild( attrinameelement );
@@ -56,159 +56,169 @@
tableElement.AppendChild( productcolumnelement );
tableElement.AppendChild( unitcolumnelement );
tableElement.AppendChild( attricolumnelement );
- searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 10 ;
- searchunitElement := xmlDOM.CreateElement( "cell" );
+ searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 10 ;
+ searchunitElement := xmlDOM.CreateElement( "cell" );
searchunitElement.SetAttribute( "value", 'Unit' );
searchcolumnelement.AppendChild( searchunitElement );
traverse( factorys, Elements, factory ){
- searchunitcellElement := xmlDOM.CreateElement( "cell" );
+ searchunitcellElement := xmlDOM.CreateElement( "cell" );
searchunitcellElement.SetAttribute( "value", factory.Name() );
searchcolumnelement.AppendChild( searchunitcellElement );
}
- searchgenerationElement := xmlDOM.CreateElement( "cell" );
+ searchgenerationElement := xmlDOM.CreateElement( "cell" );
searchgenerationElement.SetAttribute( "value", 'Generation' );
searchcolumnelement.AppendChild( searchgenerationElement );
traverse( generations, Elements, generation ){
- generationcellElement := xmlDOM.CreateElement( "cell" );
+ generationcellElement := xmlDOM.CreateElement( "cell" );
generationcellElement.SetAttribute( "value", generation.Generation() );
searchcolumnelement.AppendChild( generationcellElement );
}
- searchpowerElement := xmlDOM.CreateElement( "cell" );
+ searchpowerElement := xmlDOM.CreateElement( "cell" );
searchpowerElement.SetAttribute( "value", 'Power' );
searchcolumnelement.AppendChild( searchpowerElement );
traverse( powers, Elements, power ){
- searchpowercellElement := xmlDOM.CreateElement( "cell" );
+ searchpowercellElement := xmlDOM.CreateElement( "cell" );
searchpowercellElement.SetAttribute( "value", power.Power() );
searchcolumnelement.AppendChild( searchpowercellElement );
}
- searchmlbmqlElement := xmlDOM.CreateElement( "cell" );
+ searchmlbmqlElement := xmlDOM.CreateElement( "cell" );
searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' );
searchcolumnelement.AppendChild( searchmlbmqlElement );
traverse( mlbmqls, Elements, mlbmql ){
- searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" );
+ searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" );
searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() );
searchcolumnelement.AppendChild( searchmlbmqlcellElement );
}
- searchstartdateElement := xmlDOM.CreateElement( "cell" );
+ searchstartdateElement := xmlDOM.CreateElement( "cell" );
searchstartdateElement.SetAttribute( "value", 'Start date' );
searchcolumnelement.AppendChild( searchstartdateElement );
- searchstartdatecellElement := xmlDOM.CreateElement( "cell" );
+ searchstartdatecellElement := xmlDOM.CreateElement( "cell" );
searchstartdatecellElement.SetAttribute( "value", search.StartDate().Format( 'M2/D2/Y' ) );
searchcolumnelement.AppendChild( searchstartdatecellElement );
- searchenddateElement := xmlDOM.CreateElement( "cell" );
+ searchenddateElement := xmlDOM.CreateElement( "cell" );
searchenddateElement.SetAttribute( "value", 'End date' );
searchcolumnelement.AppendChild( searchenddateElement );
- searchenddatecellElement := xmlDOM.CreateElement( "cell" );
+ searchenddatecellElement := xmlDOM.CreateElement( "cell" );
searchenddatecellElement.SetAttribute( "value", search.EndDate().Format( 'M2/D2/Y' ) );
searchcolumnelement.AppendChild( searchenddatecellElement );
- searchcellElement1 := xmlDOM.CreateElement( "cell" );
- searchcellElement1.SetAttribute( "value", 'Periods' );
- searchcolumnelement.AppendChild( searchcellElement1 );
- searchcellElement1 := xmlDOM.CreateElement( "cell" );
- searchcellElement1.SetAttribute( "value", search.Category() );
- searchcolumnelement.AppendChild( searchcellElement1 );
+ searchperiodElement := xmlDOM.CreateElement( "cell" );
+ searchperiodElement.SetAttribute( "value", 'Periods' );
+ searchcolumnelement.AppendChild( searchperiodElement );
+ searchperiodcellElement := xmlDOM.CreateElement( "cell" );
+ searchperiodcellElement.SetAttribute( "value", search.Category() );
+ searchcolumnelement.AppendChild( searchperiodcellElement );
+
+ for( i := searchtotal; i < table.InventroySummaryRow( relsize ) * 4; i := i + 1 ){
+ searchcellElement := xmlDOM.CreateElement( "cell" );
+ searchcellElement.SetAttribute( "value", '' );
+ searchcolumnelement.AppendChild( searchcellElement );
+ }
+
traverse ( table, InventorySummaryColumn, column ) {
- columnelement := xmlDOM.CreateElement( "column" );
- nameelement := xmlDOM.CreateElement( "name" );
- typeelement := xmlDOM.CreateElement( "type" );
+ 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 );
- cells := selectsortedset( column, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() );
+ cells := selectsortedset( column, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() );
traverse ( cells, Elements, c ) {
if( column.Index() = 0 ){
- row := c.InventroySummaryRow();
+ row := c.InventroySummaryRow();
//Product
- productcellElement1 := xmlDOM.CreateElement( "cell" );
+ productcellElement1 := xmlDOM.CreateElement( "cell" );
productcellElement1.SetAttribute( "value", row.Name() );
productcolumnelement.AppendChild( productcellElement1 );
- productcellElement2 := xmlDOM.CreateElement( "cell" );
+ productcellElement2 := xmlDOM.CreateElement( "cell" );
productcellElement2.SetAttribute( "value", row.Name() );
productcolumnelement.AppendChild( productcellElement2 );
- productcellElement3 := xmlDOM.CreateElement( "cell" );
+ productcellElement3 := xmlDOM.CreateElement( "cell" );
productcellElement3.SetAttribute( "value", row.Name() );
productcolumnelement.AppendChild( productcellElement3 );
- productcellElement4 := xmlDOM.CreateElement( "cell" );
+ productcellElement4 := xmlDOM.CreateElement( "cell" );
productcellElement4.SetAttribute( "value", row.Name() );
productcolumnelement.AppendChild( productcellElement4 );
//Unit
- unitcellElement1 := xmlDOM.CreateElement( "cell" );
+ unitcellElement1 := xmlDOM.CreateElement( "cell" );
unitcellElement1.SetAttribute( "value", row.Unit() );
unitcolumnelement.AppendChild( unitcellElement1 );
- unitcellElement2 := xmlDOM.CreateElement( "cell" );
+ unitcellElement2 := xmlDOM.CreateElement( "cell" );
unitcellElement2.SetAttribute( "value", row.Unit() );
unitcolumnelement.AppendChild( unitcellElement2 );
- unitcellElement3 := xmlDOM.CreateElement( "cell" );
+ unitcellElement3 := xmlDOM.CreateElement( "cell" );
unitcellElement3.SetAttribute( "value", row.Unit() );
unitcolumnelement.AppendChild( unitcellElement3 );
- unitcellElement4 := xmlDOM.CreateElement( "cell" );
+ unitcellElement4 := xmlDOM.CreateElement( "cell" );
unitcellElement4.SetAttribute( "value", row.Unit() );
unitcolumnelement.AppendChild( unitcellElement4 );
//Attribute
//鏈熸湯搴撳瓨
- endcellElement := xmlDOM.CreateElement( "cell" );
+ endcellElement := xmlDOM.CreateElement( "cell" );
endcellElement.SetAttribute( "value", '鏈熸湯搴撳瓨' );//EndingInventory
attricolumnelement.AppendChild( endcellElement );
//鏈�灏忓簱瀛�
- mincellElement := xmlDOM.CreateElement( "cell" );
+ mincellElement := xmlDOM.CreateElement( "cell" );
mincellElement.SetAttribute( "value", '鏈�灏忓簱瀛�' );//MinimumInventory
attricolumnelement.AppendChild( mincellElement );
//鏈�澶у簱瀛�
- maxcellElement := xmlDOM.CreateElement( "cell" );
+ maxcellElement := xmlDOM.CreateElement( "cell" );
maxcellElement.SetAttribute( "value", '鏈�澶у簱瀛�' );//MaximumInventory
attricolumnelement.AppendChild( maxcellElement );
//骞冲潎搴撳瓨
- avecellElement := xmlDOM.CreateElement( "cell" );
+ avecellElement := xmlDOM.CreateElement( "cell" );
avecellElement.SetAttribute( "value", '骞冲潎搴撳瓨' );//AverageInventory
attricolumnelement.AppendChild( avecellElement );
-
- if( cells.Size() > searchtotal ){
- for( i := searchtotal; i < cells.Size(); i := i + 1 ){
- searchcellElement1 := xmlDOM.CreateElement( "cell" );
- searchcellElement1.SetAttribute( "value", '' );
- searchcolumnelement.AppendChild( searchcellElement1 );
- }
- }
+
}
//鏈熸湯搴撳瓨
- endcellElement := xmlDOM.CreateElement( "cell" );
+ endcellElement := xmlDOM.CreateElement( "cell" );
endcellElement.SetAttribute( "value", [String]c.EndingInventory() );
columnelement.AppendChild( endcellElement );
//鏈�灏忓簱瀛�
- mincellElement := xmlDOM.CreateElement( "cell" );
+ mincellElement := xmlDOM.CreateElement( "cell" );
mincellElement.SetAttribute( "value", [String]c.MinimumInventory() );
columnelement.AppendChild( mincellElement );
//鏈�澶у簱瀛�
- maxcellElement := xmlDOM.CreateElement( "cell" );
+ maxcellElement := xmlDOM.CreateElement( "cell" );
maxcellElement.SetAttribute( "value", [String]c.MaximumInventory() );
columnelement.AppendChild( maxcellElement );
//骞冲潎搴撳瓨
- avecellElement := xmlDOM.CreateElement( "cell" );
+ avecellElement := xmlDOM.CreateElement( "cell" );
avecellElement.SetAttribute( "value", [String]c.AverageInventory() );
columnelement.AppendChild( avecellElement );
}
- if( cells.Size() < searchtotal ){
- for( i := cells.Size(); i < searchtotal; i := i + 1 ){
- searchcellElement1 := xmlDOM.CreateElement( "cell" );
- searchcellElement1.SetAttribute( "value", '' );
- searchcolumnelement.AppendChild( searchcellElement1 );
+ for( i := cells.Size() * 4; i < searchtotal; i := i + 1 ){
+ searchcellElement := xmlDOM.CreateElement( "cell" );
+ searchcellElement.SetAttribute( "value", '' );
+ columnelement.AppendChild( searchcellElement );
+ if( column.Index() = 0 ){
+ productcellElement := xmlDOM.CreateElement( "cell" );
+ productcellElement.SetAttribute( "value", '' );
+ productcolumnelement.AppendChild( productcellElement );
+
+ unitcellElement := xmlDOM.CreateElement( "cell" );
+ unitcellElement.SetAttribute( "value", '' );
+ unitcolumnelement.AppendChild( unitcellElement );
+
+ endcellElement := xmlDOM.CreateElement( "cell" );
+ endcellElement.SetAttribute( "value", '' );//EndingInventory
+ attricolumnelement.AppendChild( endcellElement );
+
}
}
tableElement.AppendChild( columnelement );
}
- xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM );
+ xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM );
- //info( xmlString );
-
- tableGroupHandle := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() );
- tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+ tableGroupHandle := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() );
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
tableGroupHandle.Add( tableHandle );
- binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+ binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
return binaryData.AsBinaryValue();
*]
--
Gitblit v1.9.3