| | |
| | | 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 ); |
| | |
| | | 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(); |
| | | *] |