| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan, |
| | | Factorys factorys, |
| | | ProductGenerations generations, |
| | | ProductPowers powers, |
| | | ProductMLBMQBs mlbmqls, |
| | | InventorySummarySearch search |
| | | MacroPlan macroPlan |
| | | ) as BinaryValue |
| | | { |
| | | Description: '下载财务报表数据' |
| | | TextBody: |
| | | [* |
| | | //获取查询行数 |
| | | searchrowsize := InventorySummarySource::GetSearchRows( factorys, generations, powers, mlbmqls ); |
| | | 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>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //Product/Unit |
| | | factoryvalues := selectuniquevalues( factorys, Elements, factory, factory.Name() ); |
| | | productcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, factoryvalues, 'Unit', searchrowsize ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, 'Product' ); |
| | | //Unit/Generation |
| | | generationvalues := selectuniquevalues( generations, Elements, generation, generation.Generation() ); |
| | | unitcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, generationvalues, 'Generation', searchrowsize ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, 'Unit' ); |
| | | //Attribute/Power |
| | | powervalues := selectuniquevalues( powers, Elements, power, power.Power() ); |
| | | attricolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, powervalues, 'Power', searchrowsize ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, 'Attribute' ); |
| | | //Factory |
| | | searchunitcolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' ); |
| | | //Generation |
| | | generationcolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Generation' ); |
| | | //Power |
| | | powercolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Power' ); |
| | | //MLBMQBS |
| | | mlbmqbvalues := selectuniquevalues( mlbmqls, Elements, mlbmqb, mlbmqb.MLBMQB() ); |
| | | mlbmqlcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, mlbmqbvalues, 'MLBMQB', searchrowsize ); |
| | | //Start date |
| | | startcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, search.StartDate().Format( 'M2/D2/Y' ), 'Start date', searchrowsize ); |
| | | //End date |
| | | endcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, search.EndDate().Format( 'M2/D2/Y' ), 'End date', searchrowsize ); |
| | | //Period |
| | | periodcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, search.Category(), 'Period', searchrowsize ); |
| | | |
| | | searchcolumn := 7 ; |
| | | rowsize := table.InventroySummaryRow( relsize ) * 4; |
| | | for( i := table.InventorySummaryColumn( relsize ); i < searchcolumn - 3; i := i + 1 ){ |
| | | if( i = 0 ){ |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqlcolumnelement, '', rowsize ); |
| | | }else if( i = 1 ){ |
| | | InventorySummarySource::CreateCellElement( xmlDOM, startcolumnelement, '', rowsize ); |
| | | }else if( i = 2 ){ |
| | | InventorySummarySource::CreateCellElement( xmlDOM, endcolumnelement, '', rowsize ); |
| | | }else if( i = 3 ){ |
| | | InventorySummarySource::CreateCellElement( xmlDOM, periodcolumnelement, '', rowsize ); |
| | | } |
| | | } |
| | | |
| | | mlbmqbcolumn := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'MLBMQB' ); |
| | | //Product |
| | | productcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Product' ); |
| | | //Unit |
| | | unitcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' ); |
| | | //Attribute |
| | | attricolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Attribute' ); |
| | | traverse ( table, InventorySummaryColumn, column ) { |
| | | columnelement := null( XMLDOMElement ); |
| | | if( column.Index() = 0 ){ |
| | | columnelement := mlbmqlcolumnelement; |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqlcolumnelement, column.Name() ); |
| | | }else if( column.Index() = 1 ){ |
| | | columnelement := startcolumnelement |
| | | InventorySummarySource::CreateCellElement( xmlDOM, startcolumnelement, column.Name() ); |
| | | }else if( column.Index() = 2 ){ |
| | | columnelement := endcolumnelement; |
| | | InventorySummarySource::CreateCellElement( xmlDOM, endcolumnelement, column.Name() ); |
| | | }else if( column.Index() = 3 ){ |
| | | columnelement := periodcolumnelement; |
| | | InventorySummarySource::CreateCellElement( xmlDOM, periodcolumnelement, column.Name() ); |
| | | }else{ |
| | | columnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name(), rowsize ); |
| | | } |
| | | columnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name() ); |
| | | |
| | | cells := selectsortedset( column, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = 0 ){ |
| | | row := c.InventroySummaryRow(); |
| | | //Factory |
| | | InventorySummarySource::CreateCellElement( xmlDOM, searchunitcolumn, row.Factory() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, searchunitcolumn, row.Factory() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, searchunitcolumn, row.Factory() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, searchunitcolumn, row.Factory() ); |
| | | //Generation |
| | | InventorySummarySource::CreateCellElement( xmlDOM, generationcolumn, row.Generation() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, generationcolumn, row.Generation() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, generationcolumn, row.Generation() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, generationcolumn, row.Generation() ); |
| | | //Power |
| | | InventorySummarySource::CreateCellElement( xmlDOM, powercolumn, row.Power() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, powercolumn, row.Power() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, powercolumn, row.Power() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, powercolumn, row.Power() ); |
| | | //MLBMQBS |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqbcolumn, row.MLBMQB() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqbcolumn, row.MLBMQB() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqbcolumn, row.MLBMQB() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, mlbmqbcolumn, row.MLBMQB() ); |
| | | //Product |
| | | InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() ); |
| | | InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() ); |