| 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 ); | 
|     //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 ); | 
|     //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 ); | 
|     //Attribute | 
|     attricolumnelement := xmlDOM.CreateElement( "column" ); | 
|     attrinameelement   := xmlDOM.CreateElement( "name" ); | 
|     attritypeelement   := xmlDOM.CreateElement( "type" ); | 
|     attrinameelement.TextContent( 'Attribute' ); | 
|     attritypeelement.TextContent( "String" ); | 
|     attricolumnelement.AppendChild( attrinameelement ); | 
|     attricolumnelement.AppendChild( attritypeelement ); | 
|      | 
|     tableElement.AppendChild( productcolumnelement );  | 
|     tableElement.AppendChild( unitcolumnelement );  | 
|     tableElement.AppendChild( attricolumnelement ); | 
|     traverse ( table, InventorySummaryColumn, column ) { | 
|       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() ); | 
|      | 
|       traverse ( cells, Elements, c ) { | 
|         if( column.Index() = 0 ){ | 
|           row := c.InventroySummaryRow(); | 
|           //Product | 
|           productcellElement1 := xmlDOM.CreateElement( "cell" ); | 
|           productcellElement1.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( productcellElement1 ); | 
|           productcellElement2 := xmlDOM.CreateElement( "cell" ); | 
|           productcellElement2.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( productcellElement2 ); | 
|           productcellElement3 := xmlDOM.CreateElement( "cell" ); | 
|           productcellElement3.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( productcellElement3 ); | 
|           productcellElement4 := xmlDOM.CreateElement( "cell" ); | 
|           productcellElement4.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( productcellElement4 ); | 
|           //Unit | 
|           unitcellElement1 := xmlDOM.CreateElement( "cell" ); | 
|           unitcellElement1.SetAttribute( "value", row.Unit() ); | 
|           unitcolumnelement.AppendChild( unitcellElement1 ); | 
|           unitcellElement2 := xmlDOM.CreateElement( "cell" ); | 
|           unitcellElement2.SetAttribute( "value", row.Unit() ); | 
|           unitcolumnelement.AppendChild( unitcellElement2 ); | 
|           unitcellElement3 := xmlDOM.CreateElement( "cell" ); | 
|           unitcellElement3.SetAttribute( "value", row.Unit() ); | 
|           unitcolumnelement.AppendChild( unitcellElement3 ); | 
|           unitcellElement4 := xmlDOM.CreateElement( "cell" ); | 
|           unitcellElement4.SetAttribute( "value", row.Unit() ); | 
|           unitcolumnelement.AppendChild( unitcellElement4 ); | 
|           //Attribute | 
|           //期末库存 | 
|           endcellElement := xmlDOM.CreateElement( "cell" ); | 
|           endcellElement.SetAttribute( "value", '期末库存' );//EndingInventory | 
|           attricolumnelement.AppendChild( endcellElement ); | 
|           //最小库存 | 
|           mincellElement := xmlDOM.CreateElement( "cell" ); | 
|           mincellElement.SetAttribute( "value", '最小库存' );//MinimumInventory | 
|           attricolumnelement.AppendChild( mincellElement ); | 
|           //最大库存 | 
|           maxcellElement := xmlDOM.CreateElement( "cell" ); | 
|           maxcellElement.SetAttribute( "value", '最大库存' );//MaximumInventory | 
|           attricolumnelement.AppendChild( maxcellElement ); | 
|           //平均库存 | 
|           avecellElement := xmlDOM.CreateElement( "cell" ); | 
|           avecellElement.SetAttribute( "value", '平均库存' );//AverageInventory | 
|           attricolumnelement.AppendChild( avecellElement ); | 
|         } | 
|         //期末库存 | 
|         endcellElement := xmlDOM.CreateElement( "cell" ); | 
|         endcellElement.SetAttribute( "value", [String]c.EndingInventory() ); | 
|         columnelement.AppendChild( endcellElement ); | 
|         //最小库存 | 
|         mincellElement := xmlDOM.CreateElement( "cell" ); | 
|         mincellElement.SetAttribute( "value", [String]c.MinimumInventory() ); | 
|         columnelement.AppendChild( mincellElement ); | 
|         //最大库存 | 
|         maxcellElement := xmlDOM.CreateElement( "cell" ); | 
|         maxcellElement.SetAttribute( "value", [String]c.MaximumInventory() ); | 
|         columnelement.AppendChild( maxcellElement ); | 
|         //平均库存 | 
|         avecellElement := xmlDOM.CreateElement( "cell" ); | 
|         avecellElement.SetAttribute( "value", [String]c.AverageInventory() ); | 
|         columnelement.AppendChild( avecellElement ); | 
|       } | 
|       tableElement.AppendChild( columnelement );   | 
|     } | 
|      | 
|     xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); | 
|      | 
|     //info( xmlString ); | 
|      | 
|     tableGroupHandle := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() ); | 
|     tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); | 
|     tableGroupHandle.Add( tableHandle ); | 
|      | 
|     binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); | 
|      | 
|     return binaryData.AsBinaryValue(); | 
|   *] | 
| } |