| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan, |
| | | Factorys factorys, |
| | | ProductGenerations generations, |
| | | ProductPowers powers, |
| | | ProductMLBMQBs mlbmqls |
| | | MacroPlan macroPlan |
| | | ) as BinaryValue |
| | | { |
| | | Description: '下载财务报表数据' |
| | |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //Search |
| | | searchcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | searchnameelement := xmlDOM.CreateElement( "name" ); |
| | | searchtypeelement := xmlDOM.CreateElement( "type" ); |
| | | searchnameelement.TextContent( 'Search' ); |
| | | searchtypeelement.TextContent( "String" ); |
| | | searchcolumnelement.AppendChild( searchnameelement ); |
| | | searchcolumnelement.AppendChild( searchtypeelement ); |
| | | //Factory |
| | | searchunitcolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' ); |
| | | //Generation |
| | | generationcolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Generation' ); |
| | | //Power |
| | | powercolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Power' ); |
| | | //MLBMQBS |
| | | mlbmqbcolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'MLBMQB' ); |
| | | //Product |
| | | productcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | productnameelement := xmlDOM.CreateElement( "name" ); |
| | | producttypeelement := xmlDOM.CreateElement( "type" ); |
| | | productnameelement.TextContent( 'Product' ); |
| | | producttypeelement.TextContent( "String" ); |
| | | productcolumnelement.AppendChild( productnameelement ); |
| | | productcolumnelement.AppendChild( producttypeelement ); |
| | | productcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Product' ); |
| | | //Unit |
| | | unitcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | unitnameelement := xmlDOM.CreateElement( "name" ); |
| | | unittypeelement := xmlDOM.CreateElement( "type" ); |
| | | unitnameelement.TextContent( 'Unit' ); |
| | | unittypeelement.TextContent( "String" ); |
| | | unitcolumnelement.AppendChild( unitnameelement ); |
| | | unitcolumnelement.AppendChild( unittypeelement ); |
| | | unitcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' ); |
| | | |
| | | tableElement.AppendChild( searchcolumnelement ); |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( unitcolumnelement ); |
| | | searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 4 ; |
| | | searchunitElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitElement.SetAttribute( "value", 'Unit' ); |
| | | searchcolumnelement.AppendChild( searchunitElement ); |
| | | traverse( factorys, Elements, factory ){ |
| | | searchunitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitcellElement.SetAttribute( "value", factory.Name() ); |
| | | searchcolumnelement.AppendChild( searchunitcellElement ); |
| | | } |
| | | searchgenerationElement := xmlDOM.CreateElement( "cell" ); |
| | | searchgenerationElement.SetAttribute( "value", 'Generation' ); |
| | | searchcolumnelement.AppendChild( searchgenerationElement ); |
| | | traverse( generations, Elements, generation ){ |
| | | generationcellElement := xmlDOM.CreateElement( "cell" ); |
| | | generationcellElement.SetAttribute( "value", generation.Generation() ); |
| | | searchcolumnelement.AppendChild( generationcellElement ); |
| | | } |
| | | searchpowerElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowerElement.SetAttribute( "value", 'Power' ); |
| | | searchcolumnelement.AppendChild( searchpowerElement ); |
| | | traverse( powers, Elements, power ){ |
| | | searchpowercellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowercellElement.SetAttribute( "value", power.Power() ); |
| | | searchcolumnelement.AppendChild( searchpowercellElement ); |
| | | } |
| | | searchmlbmqlElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlElement ); |
| | | traverse( mlbmqls, Elements, mlbmql ){ |
| | | searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlcellElement ); |
| | | } |
| | | |
| | | for( i := searchtotal; i < table.FinancialSalesRow( relsize ); i := i + 1 ){ |
| | | searchcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement ); |
| | | } |
| | | |
| | | minindex := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() ); |
| | | minindex := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() ); |
| | | traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | | typeelement := xmlDOM.CreateElement( "type" ); |
| | | nameelement.TextContent( column.Name() ); |
| | | typeelement.TextContent( "String" ); |
| | | columnelement.AppendChild( nameelement ); |
| | | columnelement.AppendChild( typeelement ); |
| | | columnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name() ); |
| | | |
| | | cells := selectsortedset( column, FinancialSalesCell, cell, cell.FinancialSalesRow().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = minindex ){ |
| | | row := c.FinancialSalesRow(); |
| | | //Factory |
| | | InventorySummarySource::CreateCellElement( xmlDOM, searchunitcolumn, row.Factory() ); |
| | | //Generation |
| | | InventorySummarySource::CreateCellElement( xmlDOM, generationcolumn, row.Product_MP().Generation() ); |
| | | //Power |
| | | InventorySummarySource::CreateCellElement( xmlDOM, powercolumn, row.Product_MP().Power() ); |
| | | //MLBMQBS |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqbcolumn, row.Product_MP().MQBMLB() ); |
| | | //Product |
| | | productcellElement := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement.SetAttribute( "value", row.Name() ); |
| | | productcolumnelement.AppendChild( productcellElement ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() ); |
| | | //Unit |
| | | unitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement ); |
| | | if( cells.Size() > searchtotal ){ |
| | | for( i := searchtotal; i < cells.Size(); i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() ); |
| | | } |
| | | cellElement := xmlDOM.CreateElement( "cell" ); |
| | | cellElement.SetAttribute( "value", c.Value() ); |
| | | columnelement.AppendChild( cellElement ); |
| | | } |
| | | for( i := cells.Size(); i < searchtotal; i := i + 1 ){ |
| | | searchcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement.SetAttribute( "value", '' ); |
| | | columnelement.AppendChild( searchcellElement ); |
| | | |
| | | if( column.Index() = minindex ){ |
| | | productcellElement := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement.SetAttribute( "value", '' ); |
| | | productcolumnelement.AppendChild( productcellElement ); |
| | | //Unit |
| | | unitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement.SetAttribute( "value", '' ); |
| | | unitcolumnelement.AppendChild( unitcellElement ); |
| | | } |
| | | InventorySummarySource::CreateCellElement( xmlDOM, columnelement, c.Value() ); |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |