From 7fa9d2c7f76651853d80ebe3726a7b7decad5a9f Mon Sep 17 00:00:00 2001
From: admin <admin@admin.com>
Date: 星期二, 27 八月 2024 08:29:44 +0800
Subject: [PATCH] 导出
---
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def | 10 +++
_Main/BL/Type_CC_EngineRackCell/StaticMethod_Export.qbl | 123 +++++++++++++++++++++++++++++++++++++++++
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Response_pHeader_bExport_OnClick.def | 22 +++++++
3 files changed, 155 insertions(+), 0 deletions(-)
diff --git a/_Main/BL/Type_CC_EngineRackCell/StaticMethod_Export.qbl b/_Main/BL/Type_CC_EngineRackCell/StaticMethod_Export.qbl
new file mode 100644
index 0000000..1f82c2f
--- /dev/null
+++ b/_Main/BL/Type_CC_EngineRackCell/StaticMethod_Export.qbl
@@ -0,0 +1,123 @@
+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 );
+
+ // 绗竴鍒楋紙鍚嶇О锛�
+ cerrs := selectsortedset( macroPlan, CC_EngineRackRow, tempCERR, true, tempCERR.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 ( cerrs, Elements, cerr ) {
+ firstCell := xmlDOM.CreateElement( "cell" );
+ firstCell.SetAttribute( "value", cerr.Name() );
+ firstColumn.AppendChild( firstCell );
+
+ for ( i := 0; i < 9; i++ ) {
+ firstCell := xmlDOM.CreateElement( "cell" );
+ firstCell.SetAttribute( "value", "" );
+ firstColumn.AppendChild( firstCell );
+ }
+ }
+ tableElement.AppendChild( firstColumn );
+
+
+ // 绗簩鍒�
+ attrs := construct( Strings ); attrs.Add( "鏂欐灦绌烘暟閲�" ); attrs.Add( "绌烘枡鏋舵暟閲�" ); attrs.Add( "澶栫搴撳叆搴撹垂鐢�" ); attrs.Add( "澶栫搴撳嚭搴撹垂鐢�" ); attrs.Add( "澶栫搴撹繍杈撹垂鐢�" );
+ attrs.Add( "澶栫搴撲粨鍌ㄨ垂鐢�" ); attrs.Add( "娓呮礂璐圭敤" ); attrs.Add( "棰勮鎬昏垂鐢�" ); attrs.Add( "绯绘暟" ); attrs.Add( "鎬昏垂鐢�" );
+ 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 < cerrs.Size(); i++ ) {
+ traverse ( attrs, Elements, attr ) {
+ secondCell := xmlDOM.CreateElement( "cell" );
+ secondCell.SetAttribute( "value", attr );
+ secondColumn.AppendChild( secondCell );
+ }
+ }
+ tableElement.AppendChild( secondColumn );
+
+ // 鏃堕棿鍒�
+ cercs := selectsortedset( macroPlan, CC_EngineRackColumn, tempCERC, true, tempCERC.StartDate() );
+ traverse ( cercs, Elements, cerc ) {
+ cellColumn := xmlDOM.CreateElement( "column" );
+ cellName := xmlDOM.CreateElement( "name" );
+ cellType := xmlDOM.CreateElement( "type" );
+ cellName.TextContent( cerc.StartDate().Format( "M2/D2/Y" ) );
+ cellType.TextContent( "Number" );
+ cellColumn.AppendChild( cellName );
+ cellColumn.AppendChild( cellType );
+ cells := selectsortedset( cerc, CC_EngineRackCell, tempCELL, true, tempCELL.CC_EngineRackRow().Name() );
+ traverse ( cells, Elements, c ) {
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.TotalQuantityOfMaterialRacks() ); // 鏂欐灦鎬绘暟閲�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.NumberOfEmptyShelves() ); // 绌烘枡鏋舵暟閲�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.StorageFeesForRentedWarehouses() ); // 澶栫搴撳叆搴撹垂鐢�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.OutboundExpensesForRentedWarehouses() ); // 澶栫搴撳嚭搴撹垂鐢�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.ExternalRentalWarehouseTransportationCosts() ); // 澶栫搴撹繍杈撹垂鐢�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.RentalWarehouseStorageFees() ); // 澶栫搴撲粨鍌ㄨ垂鐢�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.CleaningCost() ); // 娓呮礂璐圭敤
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.EstimatedTotalCost() ); // 棰勮鎬昏垂鐢�
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.Coefficient() ); // 绯绘暟
+ cellColumn.AppendChild( cell );
+
+ cell := xmlDOM.CreateElement( "cell" );
+ cell.SetAttribute( "value", [String]c.TotalCost() ); // 鎬昏垂鐢�
+ 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();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def
index 67e1268..633af51 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def
@@ -15,6 +15,16 @@
Taborder: 0
]
}
+ Component bExport
+ {
+ #keys: '[415754.0.151340681]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Taborder: 1
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Response_pHeader_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Response_pHeader_bExport_OnClick.def
new file mode 100644
index 0000000..e3be1bf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Response_pHeader_bExport_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: pHeader/bExport
+Response OnClick () id:Response_pHeader_bExport_OnClick
+{
+ #keys: '[415754.0.151312042]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ binaryValue := CC_EngineRackCell::Export( MacroPlan );
+
+ Application.Download( "闀挎槬鍙戝姩鏈烘枡鏋舵姤琛�.xlsx", binaryValue.AsBinaryData() );
+ *]
+ GroupServerCalls: false
+ }
+}
--
Gitblit v1.9.3