Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Export (
|
MacroPlan macroPlan,
|
PackagingPlanRows pprs
|
) 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 );
|
|
// 第一列(名称)
|
pprs := selectsortedset( pprs, Elements, tempPPR, true, tempPPR.ProductID(), tempPPR.StockingPointID() );
|
firstColumn := xmlDOM.CreateElement( "column" );
|
firstName := xmlDOM.CreateElement( "name" );
|
firstType := xmlDOM.CreateElement( "type" );
|
firstName.TextContent( "*" );
|
firstType.TextContent( "String" );
|
firstColumn.AppendChild( firstName );
|
firstColumn.AppendChild( firstType );
|
traverse ( pprs, Elements, ppr ) {
|
firstCell := xmlDOM.CreateElement( "cell" );
|
firstCell.SetAttribute( "value", ppr.ProductID() );
|
firstColumn.AppendChild( firstCell );
|
|
for ( i := 0; i < 8; i++ ) {
|
firstCell := xmlDOM.CreateElement( "cell" );
|
firstCell.SetAttribute( "value", "" );
|
firstColumn.AppendChild( firstCell );
|
}
|
}
|
tableElement.AppendChild( firstColumn );
|
|
|
// 第二列
|
attrs := construct( Strings ); attrs.Add( "Demand" ); attrs.Add( "New supply" ); attrs.Add( "Inventory end" ); attrs.Add( "Transport-out" ); attrs.Add( "Transport-in" );
|
attrs.Add( "Unpackaged inventory" ); attrs.Add( "Packaged inventory" ); attrs.Add( "Package" ); attrs.Add( "Unpackage" );
|
secondColumn := xmlDOM.CreateElement( "column" );
|
secondName := xmlDOM.CreateElement( "name" );
|
secondType := xmlDOM.CreateElement( "type" );
|
secondName.TextContent( "*" );
|
secondType.TextContent( "String" );
|
secondColumn.AppendChild( secondName );
|
secondColumn.AppendChild( secondType );
|
for ( i := 0; i < pprs.Size(); i++ ) {
|
traverse ( attrs, Elements, attr ) {
|
secondCell := xmlDOM.CreateElement( "cell" );
|
secondCell.SetAttribute( "value", attr );
|
secondColumn.AppendChild( secondCell );
|
}
|
}
|
tableElement.AppendChild( secondColumn );
|
|
// 时间列
|
ppcs := selectsortedset( macroPlan, PackagingPlanColumn, tempPPC, true, tempPPC.StartDate() );
|
traverse ( ppcs, Elements, ppc ) {
|
cellColumn := xmlDOM.CreateElement( "column" );
|
cellName := xmlDOM.CreateElement( "name" );
|
cellType := xmlDOM.CreateElement( "type" );
|
cellName.TextContent( ppc.StartDate().Format( "Y-M2-D2" ) );
|
cellType.TextContent( "Real" );
|
cellColumn.AppendChild( cellName );
|
cellColumn.AppendChild( cellType );
|
cells := selectsortedset( ppc, PackagingPlanCell, tempPPCell,
|
exists( pprs, Elements, tempPPR, tempPPR = tempPPCell.PackagingPlanRow() ),
|
tempPPCell.PackagingPlanRow().ProductID(), tempPPCell.PackagingPlanRow().StockingPointID() );
|
traverse ( cells, Elements, c ) {
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.NetDemand().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.NewSupply().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.EndingInventory().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.Out().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.TransferIn().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.UnpackagedInventory().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.PackagingInventory().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.Package().Round( 0 ) );
|
cellColumn.AppendChild( cell );
|
|
cell := xmlDOM.CreateElement( "cell" );
|
cell.SetAttribute( "value", [String]c.Unpacking().Round( 2 ) );
|
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();
|
*]
|
}
|