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 );
|
//Product
|
productcolumnelement := xmlDOM.CreateElement( "column" );
|
productnameelement := xmlDOM.CreateElement( "name" );
|
producttypeelement := xmlDOM.CreateElement( "type" );
|
productnameelement.TextContent( 'Product' );
|
producttypeelement.TextContent( "String" );
|
productcolumnelement.AppendChild( productnameelement );
|
productcolumnelement.AppendChild( producttypeelement );
|
//Unit
|
unitcolumnelement := xmlDOM.CreateElement( "column" );
|
unitnameelement := xmlDOM.CreateElement( "name" );
|
unittypeelement := xmlDOM.CreateElement( "type" );
|
unitnameelement.TextContent( 'Unit' );
|
unittypeelement.TextContent( "String" );
|
unitcolumnelement.AppendChild( unitnameelement );
|
unitcolumnelement.AppendChild( unittypeelement );
|
//Attribute
|
attricolumnelement := xmlDOM.CreateElement( "column" );
|
attrinameelement := xmlDOM.CreateElement( "name" );
|
attritypeelement := xmlDOM.CreateElement( "type" );
|
attrinameelement.TextContent( 'Attribute' );
|
attritypeelement.TextContent( "String" );
|
attricolumnelement.AppendChild( attrinameelement );
|
attricolumnelement.AppendChild( attritypeelement );
|
|
tableElement.AppendChild( productcolumnelement );
|
tableElement.AppendChild( unitcolumnelement );
|
tableElement.AppendChild( attricolumnelement );
|
traverse ( table, InventorySummaryColumn, 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, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() );
|
|
traverse ( cells, Elements, c ) {
|
if( column.Index() = 0 ){
|
row := c.InventroySummaryRow();
|
//Product
|
productcellElement1 := xmlDOM.CreateElement( "cell" );
|
productcellElement1.SetAttribute( "value", row.Name() );
|
productcolumnelement.AppendChild( productcellElement1 );
|
productcellElement2 := xmlDOM.CreateElement( "cell" );
|
productcellElement2.SetAttribute( "value", row.Name() );
|
productcolumnelement.AppendChild( productcellElement2 );
|
productcellElement3 := xmlDOM.CreateElement( "cell" );
|
productcellElement3.SetAttribute( "value", row.Name() );
|
productcolumnelement.AppendChild( productcellElement3 );
|
productcellElement4 := xmlDOM.CreateElement( "cell" );
|
productcellElement4.SetAttribute( "value", row.Name() );
|
productcolumnelement.AppendChild( productcellElement4 );
|
//Unit
|
unitcellElement1 := xmlDOM.CreateElement( "cell" );
|
unitcellElement1.SetAttribute( "value", row.Unit() );
|
unitcolumnelement.AppendChild( unitcellElement1 );
|
unitcellElement2 := xmlDOM.CreateElement( "cell" );
|
unitcellElement2.SetAttribute( "value", row.Unit() );
|
unitcolumnelement.AppendChild( unitcellElement2 );
|
unitcellElement3 := xmlDOM.CreateElement( "cell" );
|
unitcellElement3.SetAttribute( "value", row.Unit() );
|
unitcolumnelement.AppendChild( unitcellElement3 );
|
unitcellElement4 := xmlDOM.CreateElement( "cell" );
|
unitcellElement4.SetAttribute( "value", row.Unit() );
|
unitcolumnelement.AppendChild( unitcellElement4 );
|
//Attribute
|
//期末库存
|
endcellElement := xmlDOM.CreateElement( "cell" );
|
endcellElement.SetAttribute( "value", 'EndingInventory' );
|
attricolumnelement.AppendChild( endcellElement );
|
//最小库存
|
mincellElement := xmlDOM.CreateElement( "cell" );
|
mincellElement.SetAttribute( "value", 'MinimumInventory' );
|
attricolumnelement.AppendChild( mincellElement );
|
//最大库存
|
maxcellElement := xmlDOM.CreateElement( "cell" );
|
maxcellElement.SetAttribute( "value", 'MaximumInventory' );
|
attricolumnelement.AppendChild( maxcellElement );
|
//平均库存
|
avecellElement := xmlDOM.CreateElement( "cell" );
|
avecellElement.SetAttribute( "value", 'AverageInventory' );
|
attricolumnelement.AppendChild( avecellElement );
|
}
|
//期末库存
|
endcellElement := xmlDOM.CreateElement( "cell" );
|
endcellElement.SetAttribute( "value", [String]c.EndingInventory() );
|
columnelement.AppendChild( endcellElement );
|
//最小库存
|
mincellElement := xmlDOM.CreateElement( "cell" );
|
mincellElement.SetAttribute( "value", [String]c.MinimumInventory() );
|
columnelement.AppendChild( mincellElement );
|
//最大库存
|
maxcellElement := xmlDOM.CreateElement( "cell" );
|
maxcellElement.SetAttribute( "value", [String]c.MaximumInventory() );
|
columnelement.AppendChild( maxcellElement );
|
//平均库存
|
avecellElement := xmlDOM.CreateElement( "cell" );
|
avecellElement.SetAttribute( "value", [String]c.AverageInventory() );
|
columnelement.AppendChild( avecellElement );
|
}
|
tableElement.AppendChild( columnelement );
|
}
|
|
xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM );
|
|
//info( xmlString );
|
|
tableGroupHandle := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() );
|
tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
|
tableGroupHandle.Add( tableHandle );
|
|
binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
|
|
return binaryData.AsBinaryValue();
|
*]
|
}
|