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_FinancialSalesSource/StaticMethod_Download.qbl | 95 +++++++++------ _Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl | 160 ++++++++++++++------------ _Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl | 103 +++++++++-------- 3 files changed, 193 insertions(+), 165 deletions(-) diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl index ac8db97..bad3460 100644 --- a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl +++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl @@ -12,32 +12,32 @@ TextBody: [* - table := selectobject( macroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() ); + table := selectobject( macroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and 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 ); @@ -46,94 +46,99 @@ tableElement.AppendChild( searchcolumnelement ); tableElement.AppendChild( productcolumnelement ); tableElement.AppendChild( unitcolumnelement ); - searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 4 ; - searchunitElement := xmlDOM.CreateElement( "cell" ); + 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 := 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 ); } - minindex := min( table, FinancialProductionColumn, column, not column.IsDay(), column.Index() ); + for( i := searchtotal; i < table.FinancialProductionRow( relsize ); i := i + 1 ){ + searchcellElement := xmlDOM.CreateElement( "cell" ); + searchcellElement.SetAttribute( "value", '' ); + searchcolumnelement.AppendChild( searchcellElement ); + } + + minindex := min( table, FinancialProductionColumn, column, not column.IsDay(), column.Index() ); traverse ( table, FinancialProductionColumn, column, not column.IsDay() ) { - 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, FinancialProductionCell, cell, cell.FinancialProductionRow().RowNr() ); + cells := selectsortedset( column, FinancialProductionCell, cell, cell.FinancialProductionRow().RowNr() ); traverse ( cells, Elements, c ) { if( column.Index() = minindex ){ - row := c.FinancialProductionRow(); + row := c.FinancialProductionRow(); //Product - productcellElement := xmlDOM.CreateElement( "cell" ); + productcellElement := xmlDOM.CreateElement( "cell" ); productcellElement.SetAttribute( "value", row.Name() ); productcolumnelement.AppendChild( productcellElement ); //Unit - unitcellElement := xmlDOM.CreateElement( "cell" ); + 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 ); - } - } } - cellElement := xmlDOM.CreateElement( "cell" ); + cellElement := xmlDOM.CreateElement( "cell" ); cellElement.SetAttribute( "value", c.Value() ); columnelement.AppendChild( cellElement ); } - 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(); 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 ); } } tableElement.AppendChild( columnelement ); } - xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ) + xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ) - //info( xmlString ); - - tableGroupHandle := TableGroupHandle::Create( FinancialProductionReport::GetDefaultName() ); - tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); + tableGroupHandle := TableGroupHandle::Create( FinancialProductionReport::GetDefaultName() ); + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); tableGroupHandle.Add( tableHandle ); - binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); + binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); return binaryData.AsBinaryValue(); *] diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl index 1bdd2e2..6edd436 100644 --- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl +++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl @@ -12,32 +12,32 @@ TextBody: [* - table := selectobject( macroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() ); + table := selectobject( macroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and 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 ); @@ -46,44 +46,51 @@ tableElement.AppendChild( searchcolumnelement ); tableElement.AppendChild( productcolumnelement ); tableElement.AppendChild( unitcolumnelement ); - searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 4 ; - searchunitElement := xmlDOM.CreateElement( "cell" ); + 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 := 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 ); } + + 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() ); traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) { - 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 ); @@ -93,46 +100,52 @@ traverse ( cells, Elements, c ) { if( column.Index() = minindex ){ - row := c.FinancialSalesRow(); + row := c.FinancialSalesRow(); //Product - productcellElement := xmlDOM.CreateElement( "cell" ); + productcellElement := xmlDOM.CreateElement( "cell" ); productcellElement.SetAttribute( "value", row.Name() ); productcolumnelement.AppendChild( productcellElement ); //Unit - unitcellElement := xmlDOM.CreateElement( "cell" ); + 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 := xmlDOM.CreateElement( "cell" ); searchcellElement1.SetAttribute( "value", '' ); searchcolumnelement.AppendChild( searchcellElement1 ); } } } - cellElement := xmlDOM.CreateElement( "cell" ); + cellElement := xmlDOM.CreateElement( "cell" ); cellElement.SetAttribute( "value", c.Value() ); columnelement.AppendChild( cellElement ); } - 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(); 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 ); } } tableElement.AppendChild( columnelement ); } - xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); + xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); - //info( xmlString ); - - tableGroupHandle := TableGroupHandle::Create( FinancialSalesReport::GetDefaultName() ); - tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); + tableGroupHandle := TableGroupHandle::Create( FinancialSalesReport::GetDefaultName() ); + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); tableGroupHandle.Add( tableHandle ); - binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); + binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); return binaryData.AsBinaryValue(); *] 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