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(); 
 | 
  *] 
 | 
} 
 |