_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
_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(); *] _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(); *] _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(); *]