Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Export (
|
MacroPlan macroPlan
|
) as BinaryValue
|
{
|
TextBody:
|
[*
|
xmlDOMI := XMLDOMImplementation::Create();
|
xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name></table>' );
|
|
tableElement := xmlDOM.GetElementByTagName( "table", 0 );
|
|
// 第一列(名称)
|
mrcrs := selectsortedset( macroPlan, MaterialRackCustomRow, tempMRCR, true, tempMRCR.Name() );
|
firstColumn := xmlDOM.CreateElement( "column" );
|
firstName := xmlDOM.CreateElement( "name" );
|
firstType := xmlDOM.CreateElement( "type" );
|
firstName.TextContent( "*" );
|
firstType.TextContent( "String" );
|
firstColumn.AppendChild( firstName );
|
firstColumn.AppendChild( firstType );
|
traverse ( mrcrs, Elements, mrcr ) {
|
firstCell := xmlDOM.CreateElement( "cell" );
|
firstCell.SetAttribute( "value", mrcr.Name() );
|
firstColumn.AppendChild( firstCell );
|
}
|
tableElement.AppendChild( firstColumn );
|
|
// 时间列
|
mrcs := selectsortedset( macroPlan, MaterialRackColumn, tempMRC, true, tempMRC.Month() );
|
traverse ( mrcs, Elements, mrc ) {
|
cellColumn := xmlDOM.CreateElement( "column" );
|
cellName := xmlDOM.CreateElement( "name" );
|
cellType := xmlDOM.CreateElement( "type" );
|
cellName.TextContent( [String]mrc.Month() );
|
cellType.TextContent( "Real" );
|
cellColumn.AppendChild( cellName );
|
cellColumn.AppendChild( cellType );
|
cells := selectsortedset( mrc, MaterialRackCustomCell, tempMRCCell, true, tempMRCCell.MaterialRackCustomRow().Name() );
|
traverse ( cells, Elements, c ) {
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.Quantity() ); // 料架总数量
|
cellColumn.AppendChild( cell );
|
}
|
tableElement.AppendChild( cellColumn );
|
}
|
|
xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
|
|
//info( xmlString );
|
|
tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
|
tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
|
tableGroupHandle.Add( tableHandle );
|
|
binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
|
|
return binaryData.AsBinaryValue();
|
*]
|
}
|