| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod Download ( | 
|   MacroPlan macroPlan | 
| ) as BinaryValue | 
| { | 
|   Description: '下载财务报表数据' | 
|   TextBody: | 
|   [* | 
|     //获取查询行数 | 
|     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 ); | 
|     //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        := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Product' ); | 
|     //Unit | 
|     unitcolumnelement           := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' ); | 
|     //Attribute | 
|     attricolumnelement          := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Attribute' ); | 
|     traverse ( table, InventorySummaryColumn, column ) { | 
|       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() ); | 
|           InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() ); | 
|           InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() ); | 
|           //Unit | 
|           InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() ); | 
|           InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() ); | 
|           InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() ); | 
|           InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() ); | 
|           //Attribute | 
|           //期末库存 | 
|           InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '期末库存' );//EndingInventory | 
|           //最小库存 | 
|           InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '最小库存' );//MinimumInventory | 
|           //最大库存 | 
|           InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '最大库存' );//MaximumInventory | 
|           //平均库存 | 
|           InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '平均库存' );//AverageInventory | 
|      | 
|         } | 
|         //期末库存 | 
|         InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.EndingInventory() ); | 
|         //最小库存 | 
|         InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.MinimumInventory() ); | 
|         //最大库存 | 
|         InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.MaximumInventory() ); | 
|         //平均库存 | 
|         InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.AverageInventory() ); | 
|       } | 
|      | 
|       tableElement.AppendChild( columnelement );   | 
|     } | 
|      | 
|     xmlString                   := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); | 
|      | 
|     tableGroupHandle            := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() ); | 
|     tableHandle                 := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); | 
|     tableGroupHandle.Add( tableHandle ); | 
|      | 
|     binaryData                  := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); | 
|      | 
|     return binaryData.AsBinaryValue(); | 
|   *] | 
| } |