From da0e358ff5eb2345e3a1abc66bd0316347e2a6dc Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期一, 18 九月 2023 11:18:52 +0800
Subject: [PATCH] 主数据对接ERP

---
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl                  |    9 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl                                          |    8 
 _Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl                     |   23 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged#567.def       |   16 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def                                    |   25 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def                                      |   59 ++++
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl                                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def          |   15 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick#124.def |   22 +
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl                                           |    8 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl                               |   35 ++
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl                              |    8 
 _Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl                     |   23 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def                  |   10 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def                           |  100 +++++++
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def               |   21 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def               |   25 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def           |   18 +
 _Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl                                   |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def                   |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def |   23 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def                               |   60 ++++
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl                                    |    8 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl                                      |    9 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl                                        |    8 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl                                        |    8 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl                                              |   38 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def                           |   40 ++
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def                              |   14 +
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def                         |   29 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def              |   29 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def |   42 +++
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl                                                |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def                                    |   25 +
 34 files changed, 781 insertions(+), 4 deletions(-)

diff --git a/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl
new file mode 100644
index 0000000..d5c842d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_MasterPlanReleaseWorkOrder_MasterPlanReleaseWorkOrderTabulation
+{
+  #keys: '1[414702.0.224201190]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MasterPlanReleaseWorkOrder
+  {
+    #keys: '3[414702.0.224201192][414702.0.224201191][414702.0.224201193]'
+    Cardinality: '0to1'
+    ObjectDefinition: MasterPlanReleaseWorkOrderTabulation
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide MasterPlanReleaseWorkOrderTabulation
+  {
+    #keys: '3[414702.0.224201195][414702.0.224201194][414702.0.224201196]'
+    Cardinality: '1toN'
+    ObjectDefinition: MasterPlanReleaseWorkOrder
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl
new file mode 100644
index 0000000..04f7cf4
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWorkOrder
+{
+  #keys: '1[414702.0.224201157]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414702.0.224201159][414702.0.224201158][414702.0.224201160]'
+    Cardinality: '0to1'
+    ObjectDefinition: MasterPlanReleaseWorkOrder
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide MasterPlanReleaseWorkOrder
+  {
+    #keys: '3[414702.0.224201162][414702.0.224201161][414702.0.224201163]'
+    Cardinality: '0to1'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl
new file mode 100644
index 0000000..a287573
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsGenerateAndPublishWorkOrders
+{
+  #keys: '3[414702.0.224201173][414702.0.224201172][414702.0.224201174]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
new file mode 100644
index 0000000..61dca2a
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateAndDistributeWorkOrders (
+  MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    macroPlan.MasterPlanReleaseWorkOrder( relflush );
+    
+    newMasterPlanReleaseWorkOrder := macroPlan.MasterPlanReleaseWorkOrder( relnew, IsGenerateAndPublishWorkOrders := true );
+    
+    universalPrefixForWorkOrderNumber := [String]Date::ActualDate().Year() + ( [String]Date::ActualDate().Month() ) +
+                                         [String]Date::ActualDate().Day() + [String]DateTime::ActualTime().HourOfDay() + 
+                                         [String]DateTime::ActualTime().MinuteOfHour();
+    orderNumber := 1;
+    
+    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() ) {
+      traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl ) {
+        plannedQuantity := sum( pispippl, NewSupply, ns, guard( not isnull( ns.Process_MP().astype( Operation ) ), false ), ns.Quantity() );
+        if ( plannedQuantity > 0 ) {
+          newMasterPlanReleaseWorkOrder.MasterPlanReleaseWorkOrderTabulation( relnew,
+                                                                              ProductionWorkOrderNumber := universalPrefixForWorkOrderNumber + [String]orderNumber,
+                                                                              ProductModel              := pisp.ProductID(),
+                                                                              MaterialDescription       := pisp.ProductID(),
+                                                                              StartDate                 := pispippl.Start().Date(),
+                                                                              EndDate                   := pispippl.End().Date(),
+                                                                              PlannedQuantity           := plannedQuantity
+                                                                             );
+          orderNumber++;
+        }
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl
new file mode 100644
index 0000000..22de573
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MasterPlanReleaseWorkOrder
+{
+  #keys: '5[414702.0.224201152][414702.0.224201150][0.0.0][414702.0.224201151][414702.0.224201153]'
+  BaseType: Object
+  StructuredName: 'MasterPlanReleaseWorkOrders'
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl
new file mode 100644
index 0000000..082a777
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[414702.0.224201255][414702.0.224201254][414702.0.224201256]'
+  Description: '缁撴潫鏃堕棿'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl
new file mode 100644
index 0000000..cc8ae05
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MaterialDescription
+{
+  #keys: '3[414702.0.224201232][414702.0.224201231][414702.0.224201233]'
+  Description: '鐗╂枡鎻忚堪'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl
new file mode 100644
index 0000000..bd6926d
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlannedQuantity
+{
+  #keys: '3[414702.0.224201265][414702.0.224201264][414702.0.224201266]'
+  Description: '璁″垝鏁伴噺'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl
new file mode 100644
index 0000000..f8432f1
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductModel
+{
+  #keys: '3[414702.0.224201216][414702.0.224201215][414702.0.224201217]'
+  Description: '浜у搧鍨嬪彿'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl
new file mode 100644
index 0000000..fd4d164
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionWorkOrderNumber
+{
+  #keys: '3[414702.0.224201206][414702.0.224201205][414702.0.224201207]'
+  Description: '鐢熶骇宸ュ崟鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl
new file mode 100644
index 0000000..4395db2
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[414702.0.224201245][414702.0.224201244][414702.0.224201246]'
+  Description: '寮�濮嬫椂闂�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl
new file mode 100644
index 0000000..a2f9f37
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkOrderStatus
+{
+  #keys: '3[414702.0.224201285][414702.0.224201284][414702.0.224201286]'
+  Description: '宸ュ崟鐘舵��'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl
new file mode 100644
index 0000000..07a22be
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkOrderType
+{
+  #keys: '3[414702.0.224201275][414702.0.224201274][414702.0.224201276]'
+  Description: '宸ュ崟绫诲瀷'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl
new file mode 100644
index 0000000..40450f1
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+  MasterPlanReleaseWorkOrderTabulations masterPlanReleaseWorkOrderTabulations
+) as BinaryValue
+{
+  TextBody:
+  [*
+    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>鐢熶骇宸ュ崟</name><column><name>鐢熶骇宸ュ崟鍙�</name><type>String</type></column><column><name>浜у搧鍨嬪彿</name><type>String</type></column><column><name>鐗╂枡鎻忚堪</name><type>String</type></column><column><name>寮�濮嬫椂闂�</name><type>String</type></column><column><name>缁撴潫鏃堕棿</name><type>String</type></column><column><name>璁″垝鏁伴噺</name><type>Number</type></column><column><name>宸ュ崟绫诲瀷</name><type>String</type></column><column><name>宸ュ崟鐘舵��</name><type>String</type></column></table>';
+    
+    xmlDOMImplementation := XMLDOMImplementation::Create();
+    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
+    
+    mprwots := selectsortedset( masterPlanReleaseWorkOrderTabulations, Elements, tempMPRWOT, true, tempMPRWOT.ProductionWorkOrderNumber() );
+    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
+    
+    traverse ( mprwots, Elements, mprwot ) {
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.ProductionWorkOrderNumber(), "鐢熶骇宸ュ崟鍙�" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.ProductModel(), "浜у搧鍨嬪彿" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.MaterialDescription(), "鐗╂枡鎻忚堪" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.StartDate().Format( "Y-M2-D2" ), "寮�濮嬫椂闂�" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.EndDate().Format( "Y-M2-D2" ), "缁撴潫鏃堕棿" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]mprwot.PlannedQuantity().Round( 0 ), "璁″垝鏁伴噺" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.WorkOrderType(), "宸ュ崟绫诲瀷" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.WorkOrderStatus(), "宸ュ崟鐘舵��" );
+    }
+    
+    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
+    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
+    
+    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
+    tableGroupHandle := TableGroupHandle::Create( "鐢熶骇宸ュ崟" );
+    tableGroupHandle.Add( tableHandle );
+    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+    
+    return tableBinaryData.AsBinaryValue();
+  *]
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl
new file mode 100644
index 0000000..4bf81d7
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MasterPlanReleaseWorkOrderTabulation
+{
+  #keys: '5[414702.0.224201184][414702.0.224201182][0.0.0][414702.0.224201183][414702.0.224201185]'
+  BaseType: Object
+  StructuredName: 'MasterPlanReleaseWorkOrderTabulations'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def
new file mode 100644
index 0000000..9245061
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[414702.0.223820969]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[414702.0.223820973]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[414702.0.223820975]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def
new file mode 100644
index 0000000..3a0d33a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def
@@ -0,0 +1,100 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[414702.0.223820967]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efProductModel
+    {
+      #keys: '[414702.0.226423878]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.ProductModel'
+        Enabled: false
+        Label: '浜у搧鍨嬪彿'
+        Taborder: 0
+      ]
+    }
+    Component efMaterialDescription
+    {
+      #keys: '[414702.0.226423897]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.MaterialDescription'
+        Enabled: false
+        Label: '鐗╂枡鎻忚堪'
+        Taborder: 1
+      ]
+    }
+    Component dsStart
+    {
+      #keys: '[414702.0.226423917]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.StartDate'
+        Enabled: false
+        Label: '寮�濮�'
+        Taborder: 2
+      ]
+    }
+    Component dsEnd
+    {
+      #keys: '[414702.0.226423929]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.EndDate'
+        Enabled: false
+        Label: '缁撴潫'
+        Taborder: 3
+      ]
+    }
+    Component efPlannedQuantity
+    {
+      #keys: '[414702.0.226690631]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.PlannedQuantity'
+        Label: '璁″垝鏁伴噺'
+        Taborder: 4
+      ]
+    }
+    Component ddlWorkOrderType
+    {
+      #keys: '[414702.0.226592544]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'WorkOrderType'
+      Children:
+      [
+        Component deContent
+        {
+          #keys: '[414702.0.226592546]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'GlobalOTDTable'
+            Source: 'GlobalOTDTable'
+            Taborder: 0
+            Transformation: 'WorkOrderType'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'TypeName'
+        Label: '宸ュ崟绫诲瀷'
+        Taborder: 5
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def
new file mode 100644
index 0000000..1bf672d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  structured[MasterPlanReleaseWorkOrderTabulation] selection
+) id:Method_DialogCreateEditIssueWorkOrder_Edit
+{
+  #keys: '[414702.0.224998029]'
+  Body:
+  [*
+    if ( selection.Size() = 1 ) {
+      data := shadow( selection.Element( 0 ) );
+    
+      DataHolderDialogData.Data( &data );
+    } else {
+      DataHolderDialogDatas.Data( selection.Copy() );
+      efProductModel.Enabled( false, "" );
+      efMaterialDescription.Enabled( false, "" );
+      dsStart.Enabled( false, "" );
+      dsEnd.Enabled( false, "" );
+      efPlannedQuantity.Enabled( false, "" );
+    }
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..cbc46b4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[414702.0.223820979]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..4e08b41
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[414702.0.223820978]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+      
+      masterPlanReleaseWorkOrderTabulation := guard( DataHolderDialogData.Data().WrappedInstance(), null( MasterPlanReleaseWorkOrderTabulation ) );
+      
+      //info( "鏄惁涓虹┖锛�", isnull( masterPlanReleaseWorkOrderTabulation ), "    Datas涓暟锛�", guard( DataHolderDialogDatas.Data().Size(), 0 ) );
+      if ( not isnull( DataHolderDialogDatas.Data() ) and DataHolderDialogDatas.Data().Size() > 1 ) {
+        traverse ( DataHolderDialogDatas.Data(), Elements, mprwot ) {
+          mprwot.WorkOrderType( ddlWorkOrderType.Data().TypeName() );
+        }
+      } else if ( not isnull( masterPlanReleaseWorkOrderTabulation ) ) {
+        masterPlanReleaseWorkOrderTabulation.PlannedQuantity( [Real]efPlannedQuantity.Text() );
+        masterPlanReleaseWorkOrderTabulation.WorkOrderType( ddlWorkOrderType.Data().TypeName() );
+      }
+      
+      Form.Close();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def
new file mode 100644
index 0000000..6e33df9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: pnlContent/ddlWorkOrderType
+Response OnCreated () id:Response_pnlContent_ddlWorkOrderType_OnCreated
+{
+  #keys: '[414702.0.228678429]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      if ( not isnull( DataHolderDialogData.Data() ) ) {
+        targetWorkOrderType := select( GlobalOTDTable, WorkOrderType, tempWOT, tempWOT.TypeName() = DataHolderDialogData.Data().WorkOrderType() );
+        if ( not isnull( targetWorkOrderType ) ) {
+          this.Data( targetWorkOrderType );
+        } else {
+          this.Data( select( GlobalOTDTable, WorkOrderType, tempWOT, true ) );
+        }
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def
new file mode 100644
index 0000000..d9cc8f2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditIssueWorkOrder
+{
+  #keys: '[414702.0.223820965]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component DataHolderDialogData
+    {
+      #keys: '[414702.0.226291622]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'shadow[MasterPlanReleaseWorkOrderTabulation]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+    Component DataHolderDialogDatas
+    {
+      #keys: '[414702.0.228162499]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[MasterPlanReleaseWorkOrderTabulation]*'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Image: 'DOCUMENT_EDIT'
+    Padding: 'false'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def
index 6076d86..ac39931 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def
@@ -5,10 +5,6 @@
   #keys: '[414702.0.215041677]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  Precondition:
-  [*
-    
-  *]
   QuillAction
   {
     Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
new file mode 100644
index 0000000..23d2fcb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
@@ -0,0 +1,60 @@
+Quintiq file version 2.0
+Component ListIssueWorkOrder
+{
+  #keys: '[414702.0.222532118]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorIssueWorkOrder
+    {
+      #keys: '[414702.0.222532119]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'MasterPlanReleaseWorkOrder.MasterPlanReleaseWorkOrderTabulation'
+      ]
+    }
+    #child: listActionBarPageIssueWorkOrder
+    Component DataSetLevelIssueWorkOrder
+    {
+      #keys: '[414702.0.222532124]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: MenuIssueEdit
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductionWorkOrderNumber","title":"ProductionWorkOrderNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductionWorkOrderNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductModel","title":"ProductModel","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductModel"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialDescription","title":"MaterialDescription","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialDescription"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlannedQuantity","title":"PlannedQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlannedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderType","title":"WorkOrderType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderStatus","title":"WorkOrderStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderStatus"}}]'
+        ContextMenu: 'MenuIssueEdit'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    SelectionCheckboxes: true
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListIssueWorkOrder_WebMenu_OnClick
+    {
+      #keys: '[414702.0.224677542]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[495.0.82724420]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def
new file mode 100644
index 0000000..c113c91
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component MenuIssueEdit
+{
+  #keys: '[414702.0.222532126]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component MenuEdit
+    {
+      #keys: '[414702.0.223801146]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        BindOnDoubleClick: true
+        Image: 'DOCUMENT_EDIT'
+        Taborder: 3
+        Title: '缂栬緫'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def
new file mode 100644
index 0000000..0faa617
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component PanelButton
+{
+  #keys: '[414702.0.222545713]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonGeneratePlannedData id:ButtonGeneratePlannedData_167
+    {
+      #keys: '[414702.0.222545840]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'WIND_ENGINE'
+        Label: '鐢熸垚涓嬪彂璁㈠崟'
+        Taborder: 0
+      ]
+    }
+    Component ButtonIDownload id:ButtonIDownload_779
+    {
+      #keys: '[414702.0.222545904]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'DOWNLOAD'
+        Label: '涓嬭浇'
+        Taborder: 1
+      ]
+    }
+    Component ButtonIPlannedRelease id:ButtonIPlannedRelease_848
+    {
+      #keys: '[414702.0.222545967]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'PARASOL'
+        Label: '璁″垝鍙戝竷'
+        Taborder: 2
+      ]
+    }
+    Component ButtonStatusRefresh id:ButtonStatusRefresh_865
+    {
+      #keys: '[414702.0.222546030]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'ARROW_CIRCLE2'
+        Label: '鐘舵�佸埛鏂�'
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def
new file mode 100644
index 0000000..c8b4caf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelIssueWorkOrder
+{
+  #keys: '[414702.0.222532093]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: ListIssueWorkOrder
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def
new file mode 100644
index 0000000..dbd461c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageIssueWorkOrder
+{
+  #keys: '[414702.0.222532121]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
new file mode 100644
index 0000000..f516650
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListIssueWorkOrder
+Response OnClick (
+  structured[MasterPlanReleaseWorkOrderTabulation] selection
+) id:Response_ListIssueWorkOrder_MenuEdit_OnClick
+{
+  #keys: '[414702.0.223821969]'
+  CanBindMultiple: false
+  DefinitionID => /ListIssueWorkOrder/Responsedef_ListIssueWorkOrder_WebMenu_OnClick
+  Initiator: 'MenuEdit'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditIssueWorkOrder );
+      
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged\043567.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged\043567.def"
new file mode 100644
index 0000000..dcb787b
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged\043567.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ListIssueWorkOrder
+Response OnUserCheckedChanged () id:Response_ListIssueWorkOrder_OnUserCheckedChanged_567
+{
+  #keys: '[414702.0.224434023]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data().Flush();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def
new file mode 100644
index 0000000..a04d9da
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListIssueWorkOrder
+Response OnUserCheckedChanged (
+  structured[MasterPlanReleaseWorkOrderTabulation] checkeditems
+) id:Response_ListIssueWorkOrder_OnUserCheckedChanged
+{
+  #keys: '[414702.0.224433947]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data( checkeditems.Copy() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def"
new file mode 100644
index 0000000..af53e7d
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def"
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelButton/ButtonGeneratePlannedData_167
+Response OnClick () id:Response_FormIssueWorkOrder_ButtonGeneratePlannedData_OnClick_124
+{
+  #keys: '[414702.0.222545839]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      MasterPlanReleaseWorkOrder::GenerateAndDistributeWorkOrders( MacroPlan );
+      
+      WebMessageBox::Success( "鐢熸垚鎴愬姛锛�", true );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def
new file mode 100644
index 0000000..dbb59de
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: PanelButton/ButtonIDownload_779
+Response OnClick () id:Response_PanelButton_ButtonIDownload_OnClick
+{
+  #keys: '[414702.0.229440598]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      tableBinaryData := MasterPlanReleaseWorkOrderTabulation::Export( DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data() ).AsBinaryData();
+      
+      fileNmae := "宸ュ崟瀵煎嚭_";
+      fileNmae := fileNmae + [String]Date::ActualDate().Year() + [String]Date::ActualDate().Month() + "鏈�.xlsx";
+      
+      Application.Download( fileNmae, tableBinaryData );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
new file mode 100644
index 0000000..24025d0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormIssueWorkOrder
+{
+  #keys: '[414702.0.223811074]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelIssueWorkOrder
+    Component DataHolderCheckedMasterPlanReleaseWorkOrderTabulation
+    {
+      #keys: '[414702.0.222552279]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[MasterPlanReleaseWorkOrderTabulation]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+    #child: PanelButton
+  ]
+  Properties:
+  [
+    Description: '涓嬪彂宸ュ崟'
+    Image: 'TREE'
+    Title: '涓嬪彂宸ュ崟'
+  ]
+}

--
Gitblit v1.9.3