| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod DownloadTemplate ( | 
|   MacroPlan macroPlan | 
| ) as BinaryValue | 
| { | 
|   TextBody: | 
|   [* | 
|     xmlDOMI := XMLDOMImplementation::Create(); | 
|     xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name><column><name>Product</name><type>String</type></column><column><name>Unit</name><type>String</type></column></table>' ); | 
|      | 
|     tableElement              := xmlDOM.GetElementByTagName( "table", 0 ); | 
|      | 
|     startofyear               := macroPlan.StartOfPlanning().StartOfYear(); | 
|     startofnextyear           := macroPlan.StartOfPlanning().StartOfNextYear(); | 
|      | 
|     for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){ | 
|       columnElement := xmlDOM.CreateElement( "column" ); | 
|       nameElement   := xmlDOM.CreateElement( "name" ); | 
|       typeElement   := xmlDOM.CreateElement( "type" ); | 
|       nameElement.TextContent( start.Format( "M2/D2/Y" ) ); | 
|       typeElement.TextContent( "String" ); | 
|       columnElement.AppendChild( nameElement ); | 
|       columnElement.AppendChild( typeElement ); | 
|       tableElement.AppendChild( columnElement );   | 
|     } | 
|      | 
|     xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ) | 
|      | 
|     //info( xmlString ); | 
|      | 
|     tableGroupHandle := TableGroupHandle::Create( FinancialSalesReport::GetDefaultName() ); | 
|     tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); | 
|     tableGroupHandle.Add( tableHandle ); | 
|      | 
|     binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); | 
|      | 
|     return binaryData.AsBinaryValue(); | 
|   *] | 
| } |