Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Download ( 
 | 
  MacroPlan macroPlan 
 | 
) as BinaryValue 
 | 
{ 
 | 
  Description: '下载财务报表数据' 
 | 
  TextBody: 
 | 
  [* 
 | 
     
 | 
    table := macroPlan.FinancialWeeklyReport(); 
 | 
     
 | 
    xmlDOMI := XMLDOMImplementation::Create(); 
 | 
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); 
 | 
     
 | 
    tableElement := xmlDOM.GetElementByTagName( "table", 0 ); 
 | 
    //行名 
 | 
    rowcolumnelement := xmlDOM.CreateElement( "column" ); 
 | 
    rownameelement   := xmlDOM.CreateElement( "name" ); 
 | 
    rowtypeelement   := xmlDOM.CreateElement( "type" ); 
 | 
    rownameelement.TextContent( '' ); 
 | 
    rowtypeelement.TextContent( "String" ); 
 | 
    rowcolumnelement.AppendChild( rownameelement ); 
 | 
    rowcolumnelement.AppendChild( rowtypeelement ); 
 | 
     
 | 
    tableElement.AppendChild( rowcolumnelement );  
 | 
    traverse ( table, FinancialWeeklyColumn, 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, FinancialWeeklyCell, cell, cell.FinancialWeeklyRow().RowNr() ); 
 | 
     
 | 
      traverse ( cells, Elements, c ) { 
 | 
        if( column.Index() = 0 ){ 
 | 
          row := c.FinancialWeeklyRow(); 
 | 
          //行名 
 | 
          rowcellElement := xmlDOM.CreateElement( "cell" ); 
 | 
          rowcellElement.SetAttribute( "value", row.Name() ); 
 | 
          rowcolumnelement.AppendChild( rowcellElement ); 
 | 
        } 
 | 
        cellElement := xmlDOM.CreateElement( "cell" ); 
 | 
        cellElement.SetAttribute( "value", c.Value() );  
 | 
        columnelement.AppendChild( cellElement ); 
 | 
      } 
 | 
      tableElement.AppendChild( columnelement );   
 | 
    } 
 | 
     
 | 
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); 
 | 
     
 | 
    //info( xmlString ); 
 | 
     
 | 
    tableGroupHandle := TableGroupHandle::Create( FinancialWeeklyReport::GetDefaultName() ); 
 | 
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); 
 | 
    tableGroupHandle.Add( tableHandle ); 
 | 
     
 | 
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); 
 | 
     
 | 
    return binaryData.AsBinaryValue(); 
 | 
  *] 
 | 
} 
 |