| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod Download ( | 
|   MacroPlan macroPlan | 
| ) as BinaryValue | 
| { | 
|   Description: '下载财务报表数据' | 
|   TextBody: | 
|   [* | 
|      | 
|     table := selectobject( macroPlan, DLEngineLogisticsCostReport, 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 ); | 
|     //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( attricolumnelement ); | 
|     traverse ( table, Column, 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, Cell, cell, cell.Row().RowNr() ); | 
|      | 
|       traverse ( cells, Elements, c ) { | 
|         if( column.Index() = 0 ){ | 
|           row := c.Row(); | 
|           //Product | 
|           product1cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product1cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product1cellElement ); | 
|            | 
|           product2cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product2cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product2cellElement ); | 
|            | 
|           product3cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product3cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product3cellElement ); | 
|            | 
|           product4cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product4cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product4cellElement ); | 
|            | 
|           product5cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product5cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product5cellElement ); | 
|            | 
|           product6cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product6cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product6cellElement ); | 
|            | 
|           product7cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product7cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product7cellElement ); | 
|            | 
|           product8cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product8cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product8cellElement ); | 
|            | 
|           product9cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product9cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product9cellElement ); | 
|            | 
|           product10cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product10cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product10cellElement ); | 
|            | 
|           product11cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product11cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product11cellElement ); | 
|            | 
|           product12cellElement := xmlDOM.CreateElement( "cell" ); | 
|           product12cellElement.SetAttribute( "value", row.Name() ); | 
|           productcolumnelement.AppendChild( product12cellElement ); | 
|           //Attribute | 
|           //长春外租库入库费用 | 
|           ccrententercostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           ccrententercostcellElement.SetAttribute( "value", '长春外租库入库费用' );//CCRentEnterCost | 
|           attricolumnelement.AppendChild( ccrententercostcellElement ); | 
|           //长春外租库出库费用 | 
|           ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           ccrentoutcostcellElement.SetAttribute( "value", '长春外租库出库费用' );//CCRentOutCost | 
|           attricolumnelement.AppendChild( ccrentoutcostcellElement ); | 
|           //长春长途运输费用 | 
|           cclongtranscostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           cclongtranscostcellElement.SetAttribute( "value", '长春长途运输费用' );//CCLongTransCost | 
|           attricolumnelement.AppendChild( cclongtranscostcellElement ); | 
|           //长春短途运输费用 | 
|           ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           ccshorttranscostcellElement.SetAttribute( "value", '长春短途运输费用' );//CCShortTransCost | 
|           attricolumnelement.AppendChild( ccshorttranscostcellElement ); | 
|           //长春外租库仓储费用 | 
|           ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           ccrentstoragecostcellElement.SetAttribute( "value", '长春外租库仓储费用' );//CCRentStorageCost | 
|           attricolumnelement.AppendChild( ccrentstoragecostcellElement ); | 
|           //大连外租库入库费用 | 
|           dlrententercostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           dlrententercostcellElement.SetAttribute( "value", '大连外租库入库费用' );//DLRentEnterCost | 
|           attricolumnelement.AppendChild( dlrententercostcellElement ); | 
|           //大连外租库出库费用 | 
|           dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           dlrentoutcostcellElement.SetAttribute( "value", '大连外租库出库费用' );//DLRentOutCost | 
|           attricolumnelement.AppendChild( dlrentoutcostcellElement ); | 
|           //厂内到外租库运输费用 | 
|           factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           factorytorenttranscostcellElement.SetAttribute( "value", '厂内到外租库运输费用' );//FactoryToRentTransCost | 
|           attricolumnelement.AppendChild( factorytorenttranscostcellElement ); | 
|           //大连外租库仓储费用 | 
|           dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           dlrentstoragecostcellElement.SetAttribute( "value", '大连外租库仓储费用' );//DLRentStorageCost | 
|           attricolumnelement.AppendChild( dlrentstoragecostcellElement ); | 
|           //预计总费用 | 
|           estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           estimatedtotalcostcellElement.SetAttribute( "value", '预计总费用' );//EstimatedTotalCost | 
|           attricolumnelement.AppendChild( estimatedtotalcostcellElement ); | 
|           //系数 | 
|           coefficientcellElement := xmlDOM.CreateElement( "cell" ); | 
|           coefficientcellElement.SetAttribute( "value", '系数' );//Coefficient | 
|           attricolumnelement.AppendChild( coefficientcellElement ); | 
|           //总费用 | 
|           totalcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|           totalcostcellElement.SetAttribute( "value", '总费用' );//TotalCost | 
|           attricolumnelement.AppendChild( totalcostcellElement ); | 
|         } | 
|         //长春外租库入库费用 | 
|         ccrententercostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         ccrententercostcellElement.SetAttribute( "value", [String]c.CCRentEnterCost() ); | 
|         columnelement.AppendChild( ccrententercostcellElement ); | 
|         //长春外租库出库费用 | 
|         ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         ccrentoutcostcellElement.SetAttribute( "value", [String]c.CCRentOutCost() ); | 
|         columnelement.AppendChild( ccrentoutcostcellElement ); | 
|         //长春长途运输费用 | 
|         cclongtranscostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         cclongtranscostcellElement.SetAttribute( "value", [String]c.CCLongTransCoat() ); | 
|         columnelement.AppendChild( cclongtranscostcellElement ); | 
|         //长春短途运输费用 | 
|         ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         ccshorttranscostcellElement.SetAttribute( "value", [String]c.CCShortTransCost() ); | 
|         columnelement.AppendChild( ccshorttranscostcellElement ); | 
|         //长春外租库仓储费用 | 
|         ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         ccrentstoragecostcellElement.SetAttribute( "value", [String]c.CCRentStorageCost() ); | 
|         columnelement.AppendChild( ccrentstoragecostcellElement ); | 
|         //大连外租库入库费用 | 
|         dlrententercostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         dlrententercostcellElement.SetAttribute( "value", [String]c.DLRentEnterCost() ); | 
|         columnelement.AppendChild( dlrententercostcellElement ); | 
|         //大连外租库出库费用 | 
|         dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         dlrentoutcostcellElement.SetAttribute( "value", [String]c.DLRentOutCost() ); | 
|         columnelement.AppendChild( dlrentoutcostcellElement ); | 
|         //厂内到外租库运输费用 | 
|         factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         factorytorenttranscostcellElement.SetAttribute( "value", [String]c.FactoryToDLRentTransCost() ); | 
|         columnelement.AppendChild( factorytorenttranscostcellElement ); | 
|         //大连外租库仓储费用 | 
|         dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         dlrentstoragecostcellElement.SetAttribute( "value", [String]c.DLRentStorageCost() ); | 
|         columnelement.AppendChild( dlrentstoragecostcellElement ); | 
|         //预计总费用 | 
|         estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimatedTotalCost() ); | 
|         columnelement.AppendChild( estimatedtotalcostcellElement ); | 
|         //系数 | 
|         coefficientcellElement := xmlDOM.CreateElement( "cell" ); | 
|         coefficientcellElement.SetAttribute( "value", [String]c.Coefficient() ); | 
|         columnelement.AppendChild( coefficientcellElement ); | 
|         //总费用 | 
|         totalcostcellElement := xmlDOM.CreateElement( "cell" ); | 
|         totalcostcellElement.SetAttribute( "value", [String]c.TotalCost() ); | 
|         columnelement.AppendChild( totalcostcellElement ); | 
|       } | 
|       tableElement.AppendChild( columnelement );   | 
|     } | 
|      | 
|     xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ) | 
|      | 
|     //info( xmlString ); | 
|      | 
|     tableGroupHandle := TableGroupHandle::Create( DLEngineLogisticsCostReport::GetDefaultName() ); | 
|     tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); | 
|     tableGroupHandle.Add( tableHandle ); | 
|      | 
|     binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); | 
|      | 
|     return binaryData.AsBinaryValue(); | 
|   *] | 
| } |