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