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 ); 
 | 
           
 | 
          product13cellElement := xmlDOM.CreateElement( "cell" ); 
 | 
          product13cellElement.SetAttribute( "value", row.Name() ); 
 | 
          productcolumnelement.AppendChild( product13cellElement ); 
 | 
          //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 ); 
 | 
          //大连外租库其他费用 
 | 
          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", c.CCRentInCost().Format( 'N(Dec)' )  ); 
 | 
        columnelement.AppendChild( ccrententercostcellElement ); 
 | 
        //长春外租库出库费用 
 | 
        ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        ccrentoutcostcellElement.SetAttribute( "value", c.CCRentOutOfCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( ccrentoutcostcellElement ); 
 | 
        //长春长途运输费用 
 | 
        cclongtranscostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        cclongtranscostcellElement.SetAttribute( "value", c.CCLongTransCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( cclongtranscostcellElement ); 
 | 
        //长春短途运输费用 
 | 
        ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        ccshorttranscostcellElement.SetAttribute( "value", c.CCShorTransCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( ccshorttranscostcellElement ); 
 | 
        //长春外租库仓储费用 
 | 
        ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        ccrentstoragecostcellElement.SetAttribute( "value", c.CCRentStorCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( ccrentstoragecostcellElement ); 
 | 
        //大连外租库入库费用 
 | 
        dlrententercostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        dlrententercostcellElement.SetAttribute( "value", c.DLRentInCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( dlrententercostcellElement ); 
 | 
        //大连外租库出库费用 
 | 
        dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        dlrentoutcostcellElement.SetAttribute( "value", c.DLRentOutOfCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( dlrentoutcostcellElement ); 
 | 
        //厂内到外租库运输费用 
 | 
        factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        factorytorenttranscostcellElement.SetAttribute( "value", c.WerkToDLRentTransCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( factorytorenttranscostcellElement ); 
 | 
        //大连外租库仓储费用 
 | 
        dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        dlrentstoragecostcellElement.SetAttribute( "value", c.DLRentStorCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( dlrentstoragecostcellElement ); 
 | 
        //大连外租库其他费用 
 | 
        dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        dlrentstoragecostcellElement.SetAttribute( "value", c.DLRentOtherCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( dlrentstoragecostcellElement ); 
 | 
        //预计总费用 
 | 
        estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        estimatedtotalcostcellElement.SetAttribute( "value", c.EstimateTotalCost().Format( 'N(Dec)' ) ); 
 | 
        columnelement.AppendChild( estimatedtotalcostcellElement ); 
 | 
        //系数 
 | 
        coefficientcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        coefficientcellElement.SetAttribute( "value", c.CoefficientValue() ); 
 | 
        columnelement.AppendChild( coefficientcellElement ); 
 | 
        //总费用 
 | 
        totalcostcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        totalcostcellElement.SetAttribute( "value", c.AllCost().Format( 'N(Dec)' ) ); 
 | 
        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(); 
 | 
  *] 
 | 
} 
 |