From c68366f4601f543e90ff2e81633c2a166e0c819d Mon Sep 17 00:00:00 2001
From: hongji.li <hongji.a.li@capgemini.com>
Date: 星期三, 08 十一月 2023 15:36:20 +0800
Subject: [PATCH] 优化手动添加模组&面板对应关系

---
 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingAllResult#103.def                                          |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bPullCapacityAllocationRule_OnClick.def |   16 ++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel#211.def                                        |   15 ++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence.def            |   10 +
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence#1.def                 |   10 +
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116#568.def                                    |   17 +-
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence.def              |   25 +++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/_ROOT_Component_FormModulePanelCorrespondence.def                   |   16 +-
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_MenuSelectAll_OnClick.def    |   17 ++
 _Main/UI/MacroPlannerWebApp/Views/模组_面板关系.vw                                                                                            |   13 +
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence.def                         |   20 +-
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bAddModule_OnClick.def                  |   16 ++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence#358.def                          |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct#844.def                                                        |   11 +
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelButton_bAutoGenerateRelation_OnClick.def              |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence#1.def               |   10 +
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelButton.def                                           |   26 +++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bDeleteModule_OnClick.def               |    6 
 _Main/BL/Type_ModulePanelCorrespondence/StaticMethod_CreateModule.qbl                                                                   |   18 +-
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule#217.def                                       |   15 ++
 _Main/Sys/ImgAttr/Product_MP.dme                                                                                                        |   19 ++
 /dev/null                                                                                                                               |   16 --
 _Main/BL/Type_ModulePanelCorrespondence/StaticMethod_AutoGenerateRelation.qbl                                                           |   43 ++++++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655#129.def                                          |   13 +
 _var/_Main/ProjSettings/MacroPlanner/Views/X_分析视图_[414702.1.50321581].vw                                                                |    2 
 _Main/UI/MacroPlannerWebApp/Views/Pegging分析.vw                                                                                          |   13 +
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelContent.def                                          |   16 ++
 27 files changed, 346 insertions(+), 71 deletions(-)

diff --git a/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_AutoGenerateRelation.qbl b/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_AutoGenerateRelation.qbl
new file mode 100644
index 0000000..6f9bedf
--- /dev/null
+++ b/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_AutoGenerateRelation.qbl
@@ -0,0 +1,43 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod AutoGenerateRelation (
+  GlobalOTDSOP globalOTDSOP,
+  Product_MPs panelProduct_MPs
+)
+{
+  TextBody:
+  [*
+    globalOTDSOP.ModulePanelCorrespondence( relflush );
+    
+    panelProductIDs := selectuniquevalues( panelProduct_MPs, Elements, tempPMP, true, tempPMP.ID() );
+    
+    traverse ( globalOTDSOP, PeggingProduct_MP.PeggingProductInSalesDemandBase, ppisdb, [Number]ppisdb.SalesDemandBaseID() = 1100 ) {
+      zeroPeggingResult := selectset( ppisdb, PeggingResult, tempPR, tempPR.NumberOfPlies() = 0 );
+      traverse ( zeroPeggingResult, Elements, zpr ) {
+        maxNumberOfPlies := max( zpr, AllChild, tempZPR, true, tempZPR.NumberOfPlies() );
+        for ( i := maxNumberOfPlies; i > 0; i-- ) {
+          targetNumberOfPliesProductIDs := selectuniquevalues( zpr, AllChild, tempZPR, tempZPR.NumberOfPlies() = i, tempZPR.ProductID() );
+          intersectResult := panelProductIDs.Intersect( targetNumberOfPliesProductIDs );
+          if ( intersectResult.Size() > 0 ) {
+            targetModulePanelCorrespondence := select( globalOTDSOP, ModulePanelCorrespondence, tempMPC, 
+                                                       tempMPC.ModuleProductID() = ppisdb.PeggingProduct_MP().ProductID() and
+                                                       tempMPC.ModuleStockingPointID() = ppisdb.StockingPointID() );
+            if ( isnull( targetModulePanelCorrespondence ) ) {
+              targetModulePanelCorrespondence := globalOTDSOP.ModulePanelCorrespondence( relnew, 
+                                                                                         ModuleProductID       := ppisdb.PeggingProduct_MP().ProductID(),
+                                                                                         ModuleStockingPointID := ppisdb.StockingPointID(),
+                                                                                         IsModule              := true );
+            }
+            traverse ( intersectResult, Elements, ir ) {
+              if ( not exists( targetModulePanelCorrespondence, Panel, tempP, tempP.PanelProductID() = ir ) ) {
+                panel := globalOTDSOP.ModulePanelCorrespondence( relnew, PanelProductID := ir );
+                panel.Module( relset, targetModulePanelCorrespondence );
+              }
+            }
+            i := 0;
+          }
+        }
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_CreateModule.qbl b/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_CreateModule.qbl
index 93a7d86..986ec04 100644
--- a/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_CreateModule.qbl
+++ b/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_CreateModule.qbl
@@ -2,18 +2,18 @@
 #parent: #root
 StaticMethod CreateModule (
   GlobalOTDSOP globalOTDSOP,
-  ProductInStockingPoint_MPs pisps
+  Product_MPs product_MPs
 )
 {
   TextBody:
   [*
-    traverse ( pisps, Elements, pisp ) {
-      targetModulePanelCorrespondence := select( globalOTDSOP, ModulePanelCorrespondence, tempMPC, 
-                                                 tempMPC.ModuleProductID() = pisp.ProductID() and 
-                                                 tempMPC.ModuleStockingPointID() = pisp.StockingPointID() );
-      if ( isnull( targetModulePanelCorrespondence ) ) { 
-        globalOTDSOP.ModulePanelCorrespondence( relnew, ModuleProductID := pisp.ProductID(), ModuleStockingPointID := pisp.StockingPointID(), IsModule := true );
-      }
-    }
+    //traverse ( product_MPs, Elements, pisp ) {
+    //  targetModulePanelCorrespondence := select( globalOTDSOP, ModulePanelCorrespondence, tempMPC, 
+    //                                             tempMPC.ModuleProductID() = pisp.ProductID() and 
+    //                                             tempMPC.ModuleStockingPointID() = pisp.StockingPointID() );
+    //  if ( isnull( targetModulePanelCorrespondence ) ) { 
+    //    globalOTDSOP.ModulePanelCorrespondence( relnew, ModuleProductID := pisp.ProductID(), ModuleStockingPointID := pisp.StockingPointID(), IsModule := true );
+    //  }
+    //}
   *]
 }
diff --git a/_Main/Sys/ImgAttr/Product_MP.dme b/_Main/Sys/ImgAttr/Product_MP.dme
index a660d95..ac4f0ae 100644
--- a/_Main/Sys/ImgAttr/Product_MP.dme
+++ b/_Main/Sys/ImgAttr/Product_MP.dme
@@ -45,6 +45,25 @@
       }
     ]
   }
+  ImageDataMember ImgIsPanel
+  {
+    #keys: '1[414702.1.418500741]'
+    ImageSpecifications:
+    [
+      ImageDataMemberImageSpecification
+      {
+        Image: 'CHECK'
+        Quill: 'object.IsPanelMaterial()'
+        Value: 'IsPanel'
+      }
+      ImageDataMemberImageSpecification
+      {
+        Image: 'DELETE2'
+        Quill: 'not object.IsPanelMaterial()'
+        Value: 'NotIsPanel'
+      }
+    ]
+  }
   ImageDataMember Type
   {
     #keys: '1[11660.0.24511487]'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence.def "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence\043358.def"
similarity index 80%
rename from _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence\043358.def"
index 215a4bb..b354c6d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModuleCorrespondence\043358.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component ListModuleCorrespondence
+Component ListModuleCorrespondence id:ListModuleCorrespondence_358
 {
-  #keys: '[414702.1.377958446]'
+  #keys: '[414702.1.424620478]'
   BaseType: 'WebList'
   Children:
   [
     Component DataExtractorModuleCorrespondence
     {
-      #keys: '[414702.1.377958447]'
+      #keys: '[414702.1.424620479]'
       BaseType: 'WebDataExtractor'
       Properties:
       [
@@ -18,14 +18,14 @@
         Transformation: 'Panel'
       ]
     }
-    #child: listActionBarPageModuleCorrespondence
+    #child: listActionBarPageModuleCorrespondence_1
     Component DataSetLevelModuleCorrespondence
     {
-      #keys: '[414702.1.377958452]'
+      #keys: '[414702.1.424620481]'
       BaseType: 'WebDataSetLevel'
       Children:
       [
-        #child: listContextMenuModuleCorrespondence
+        #child: listContextMenuModuleCorrespondence_1
       ]
       Properties:
       [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence\043612.def" b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence.def
similarity index 80%
rename from "_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence\043612.def"
rename to _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence.def
index fa5f646..859a0fe 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence\043612.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_ListModulePanelCorrespondence.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component ListModulePanelCorrespondence id:ListModulePanelCorrespondence_612
+Component ListModulePanelCorrespondence
 {
-  #keys: '[414702.1.376801881]'
+  #keys: '[414702.1.421613640]'
   BaseType: 'WebList'
   Children:
   [
     Component DataExtractorModulePanelCorrespondence
     {
-      #keys: '[414702.1.376801882]'
+      #keys: '[414702.1.421613641]'
       BaseType: 'WebDataExtractor'
       Properties:
       [
@@ -18,14 +18,14 @@
         Transformation: 'ModulePanelCorrespondence'
       ]
     }
-    #child: listActionBarPageModulePanelCorrespondence_1
+    #child: listActionBarPageModulePanelCorrespondence
     Component DataSetLevelModulePanelCorrespondence
     {
-      #keys: '[414702.1.376801884]'
+      #keys: '[414702.1.421613643]'
       BaseType: 'WebDataSetLevel'
       Children:
       [
-        #child: listContextMenuModulePanelCorrespondence_1
+        #child: listContextMenuModulePanelCorrespondence
       ]
       Properties:
       [
@@ -41,9 +41,9 @@
   ]
   ResponseDefinitions:
   [
-    DelegatedResponseDefinition OnClick id:Responsedef_ListModulePanelCorrespondence_612_WebButton_OnClick
+    DelegatedResponseDefinition OnClick id:Responsedef_ListModulePanelCorrespondence_WebButton_OnClick
     {
-      #keys: '[414702.1.379607377]'
+      #keys: '[414702.1.421613630]'
       Initiator: 'WebButton'
       IsInherited: false
       ResponseType: 'OnClick'
@@ -56,9 +56,9 @@
         }
       ]
     }
-    DelegatedResponseDefinition OnClick id:Responsedef_ListModulePanelCorrespondence_612_WebMenu_OnClick
+    DelegatedResponseDefinition OnClick id:Responsedef_ListModulePanelCorrespondence_WebMenu_OnClick
     {
-      #keys: '[414702.1.379530536]'
+      #keys: '[414702.1.421613629]'
       Initiator: 'WebMenu'
       IsInherited: false
       ResponseType: 'OnClick'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655.def "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655\043129.def"
similarity index 69%
rename from _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655\043129.def"
index 28bba2f..5b81ccf 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_Panel655\043129.def"
@@ -1,24 +1,25 @@
 Quintiq file version 2.0
-Component Panel655
+Component Panel655 id:Panel655_129
 {
-  #keys: '[414702.1.380172392]'
+  #keys: '[414702.1.424620483]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component bAddPanel id:bAddPanel_662
+    Component bAddPanel
     {
-      #keys: '[414702.1.381249855]'
+      #keys: '[414702.1.424620484]'
       BaseType: 'WebButton'
       Properties:
       [
         Image: 'ADD'
         Label: '娣诲姞闈㈡澘'
         Taborder: 0
+        Visible: false
       ]
     }
-    Component bDeletePanel id:bDeletePanel_254
+    Component bDeletePanel
     {
-      #keys: '[414702.1.381203006]'
+      #keys: '[414702.1.424620485]'
       BaseType: 'WebButton'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelButton.def
new file mode 100644
index 0000000..e5e4d68
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelButton.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component PanelButton
+{
+  #keys: '[414702.1.424795497]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component bAutoGenerateRelation
+    {
+      #keys: '[414702.1.421614203]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'APPLE'
+        Label: '璁㈠崟妯$粍鐗╂枡鑷姩鐢熸垚闈㈡澘鐗╂枡瀵瑰簲鍏崇郴'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelContent.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelContent.def
new file mode 100644
index 0000000..23aa774
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelContent.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelContent
+{
+  #keys: '[414702.1.424112406]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelModule_217
+    #child: PanelPanel_211
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule\043217.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule\043217.def"
new file mode 100644
index 0000000..43673cc
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule\043217.def"
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelModule id:PanelModule_217
+{
+  #keys: '[414702.1.421613639]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelModule116_568
+    #child: ListModulePanelCorrespondence
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule.def
deleted file mode 100644
index 4624180..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule.def
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-Component PanelModule
-{
-  #keys: '[414702.1.377900594]'
-  BaseType: 'WebPanel'
-  Children:
-  [
-    #child: ListModulePanelCorrespondence_612
-    #child: PanelModule116
-  ]
-  Properties:
-  [
-    Taborder: 0
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116\043568.def"
similarity index 68%
rename from _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116\043568.def"
index f603415..b1106db 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116\043568.def"
@@ -1,41 +1,44 @@
 Quintiq file version 2.0
-Component PanelModule116
+Component PanelModule116 id:PanelModule116_568
 {
-  #keys: '[414702.1.380132983]'
+  #keys: '[414702.1.421613646]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component bAddModule id:bAddModule_100
+    Component bAddModule
     {
-      #keys: '[414702.1.381202718]'
+      #keys: '[414702.1.421613647]'
       BaseType: 'WebButton'
       Properties:
       [
         Image: 'ADD'
         Label: '娣诲姞鍏崇郴'
         Taborder: 0
+        Visible: false
       ]
     }
-    Component bDeleteModule id:bDeleteModule_801
+    Component bDeleteModule
     {
-      #keys: '[414702.1.381202749]'
+      #keys: '[414702.1.421613648]'
       BaseType: 'WebButton'
       Properties:
       [
         Image: 'DELETE2'
         Label: '娓呯┖鍏崇郴'
         Taborder: 1
+        Visible: false
       ]
     }
     Component bPullCapacityAllocationRule
     {
-      #keys: '[414702.1.402246903]'
+      #keys: '[414702.1.421613649]'
       BaseType: 'WebButton'
       Properties:
       [
         Image: 'THICK_ARROW_DOWN_LIGHT_BLUE'
         Label: '鎷夊彇浜ц兘鍒嗛厤瑙勫垯'
         Taborder: 2
+        Visible: false
       ]
     }
   ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel\043211.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel\043211.def"
new file mode 100644
index 0000000..939f20b
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel\043211.def"
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelPanel id:PanelPanel_211
+{
+  #keys: '[414702.1.424620477]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: Panel655_129
+    #child: ListModuleCorrespondence_358
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel.def
deleted file mode 100644
index fa01494..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelPanel.def
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-Component PanelPanel
-{
-  #keys: '[414702.1.376861496]'
-  BaseType: 'WebPanel'
-  Children:
-  [
-    #child: ListModuleCorrespondence
-    #child: Panel655
-  ]
-  Properties:
-  [
-    Taborder: 1
-  ]
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence\0431.def"
new file mode 100644
index 0000000..cafd677
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageModuleCorrespondence id:listActionBarPageModuleCorrespondence_1
+{
+  #keys: '[414702.1.424620480]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence.def
deleted file mode 100644
index 2d9a203..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModuleCorrespondence.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listActionBarPageModuleCorrespondence
-{
-  #keys: '[414702.1.377958449]'
-  BaseType: 'listActionBarPage'
-  Properties:
-  [
-    Taborder: 1
-  ]
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence\0431.def"
deleted file mode 100644
index 50dc333..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence\0431.def"
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listActionBarPageModulePanelCorrespondence id:listActionBarPageModulePanelCorrespondence_1
-{
-  #keys: '[414702.1.376801883]'
-  BaseType: 'listActionBarPage'
-  Properties:
-  [
-    Taborder: 1
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence.def
new file mode 100644
index 0000000..c0e772c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listActionBarPageModulePanelCorrespondence.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageModulePanelCorrespondence
+{
+  #keys: '[414702.1.421613642]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence\0431.def"
new file mode 100644
index 0000000..9a0d834
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuModuleCorrespondence id:listContextMenuModuleCorrespondence_1
+{
+  #keys: '[414702.1.424620482]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence.def
deleted file mode 100644
index 3ce3009..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModuleCorrespondence.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listContextMenuModuleCorrespondence
-{
-  #keys: '[414702.1.377958454]'
-  BaseType: 'listContextMenu'
-  Properties:
-  [
-    Taborder: 0
-  ]
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence\0431.def"
deleted file mode 100644
index f4d87f1..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence\0431.def"
+++ /dev/null
@@ -1,25 +0,0 @@
-Quintiq file version 2.0
-Component listContextMenuModulePanelCorrespondence id:listContextMenuModulePanelCorrespondence_1
-{
-  #keys: '[414702.1.376801885]'
-  BaseType: 'listContextMenu'
-  Children:
-  [
-    Component MenuSelectAll id:MenuSelectAll_958
-    {
-      #keys: '[414702.1.379687162]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'SELECTION'
-        Shortcut: 'Ctrl+A'
-        Taborder: 3
-        Title: '鍏ㄩ��'
-      ]
-    }
-  ]
-  Properties:
-  [
-    Taborder: 0
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence.def
new file mode 100644
index 0000000..37e88b6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_listContextMenuModulePanelCorrespondence.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component listContextMenuModulePanelCorrespondence
+{
+  #keys: '[414702.1.421613644]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component MenuSelectAll
+    {
+      #keys: '[414702.1.421613645]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'SELECTION'
+        Shortcut: 'Ctrl+A'
+        Taborder: 3
+        Title: '鍏ㄩ��'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_MenuSelectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_MenuSelectAll_OnClick.def
deleted file mode 100644
index 1159f2b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_MenuSelectAll_OnClick.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ListModulePanelCorrespondence_612
-Response OnClick () id:Response_ListModulePanelCorrespondence_612_MenuSelectAll_OnClick
-{
-  #keys: '[414702.1.378245513]'
-  CanBindMultiple: false
-  DefinitionID => /ListModulePanelCorrespondence_612/Responsedef_ListModulePanelCorrespondence_612_WebMenu_OnClick
-  Initiator: 'MenuSelectAll'
-  QuillAction
-  {
-    Body:
-    [*
-      this.SelectAll();
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_bAddPanel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_bAddPanel_OnClick.def
deleted file mode 100644
index 7a74f72..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_bAddPanel_OnClick.def
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: ListModulePanelCorrespondence_612
-Response OnClick (
-  structured[ModulePanelCorrespondence] selection
-) id:Response_ListModulePanelCorrespondence_612_bAddPanel_OnClick
-{
-  #keys: '[414702.1.379686642]'
-  CanBindMultiple: false
-  DefinitionID => /ListModulePanelCorrespondence_612/Responsedef_ListModulePanelCorrespondence_612_WebButton_OnClick
-  Initiator: 'bAddPanel'
-  QuillAction
-  {
-    Body:
-    [*
-      ModulePanelCorrespondence::CreatePanel( GlobalOTDSOP, selection, DataHolderSelectedProductInStocking_MP.Data() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_bDeletePanel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_bDeletePanel_OnClick.def
deleted file mode 100644
index 147bf0f..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_612_bDeletePanel_OnClick.def
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: ListModulePanelCorrespondence_612
-Response OnClick (
-  structured[ModulePanelCorrespondence] selection
-) id:Response_ListModulePanelCorrespondence_612_bDeletePanel_OnClick
-{
-  #keys: '[414702.1.381349481]'
-  CanBindMultiple: false
-  DefinitionID => /ListModulePanelCorrespondence_612/Responsedef_ListModulePanelCorrespondence_612_WebButton_OnClick
-  Initiator: 'bDeletePanel'
-  QuillAction
-  {
-    Body:
-    [*
-      ModulePanelCorrespondence::DeletePanel( selection, DataHolderSelectedProductInStocking_MP.Data() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_MenuSelectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_MenuSelectAll_OnClick.def
new file mode 100644
index 0000000..c178ebb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_ListModulePanelCorrespondence_MenuSelectAll_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListModulePanelCorrespondence
+Response OnClick () id:Response_ListModulePanelCorrespondence_MenuSelectAll_OnClick
+{
+  #keys: '[414702.1.421613634]'
+  CanBindMultiple: false
+  DefinitionID => /ListModulePanelCorrespondence/Responsedef_ListModulePanelCorrespondence_WebMenu_OnClick
+  Initiator: 'MenuSelectAll'
+  QuillAction
+  {
+    Body:
+    [*
+      this.SelectAll();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelButton_bAutoGenerateRelation_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelButton_bAutoGenerateRelation_OnClick.def
new file mode 100644
index 0000000..548fbe3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelButton_bAutoGenerateRelation_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelButton/bAutoGenerateRelation
+Response OnClick () id:Response_PanelButton_bAutoGenerateRelation_OnClick
+{
+  #keys: '[414702.1.424103250]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( GlobalOTDSOP );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      ModulePanelCorrespondence::AutoGenerateRelation( GlobalOTDSOP, DataHolderSelectedProduct.Data() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bAddModule_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bAddModule_OnClick.def
new file mode 100644
index 0000000..c512240
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bAddModule_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelModule116_568/bAddModule
+Response OnClick () id:Response_PanelModule116_568_bAddModule_OnClick
+{
+  #keys: '[414702.1.421613637]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ModulePanelCorrespondence::CreateModule( GlobalOTDSOP, DataHolderSelectedProduct.Data() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bDeleteModule_OnClick\043462.def" b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bDeleteModule_OnClick.def
similarity index 70%
rename from "_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bDeleteModule_OnClick\043462.def"
rename to _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bDeleteModule_OnClick.def
index 143ebd0..c5b2d08 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bDeleteModule_OnClick\043462.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bDeleteModule_OnClick.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelModule116/bDeleteModule_801
-Response OnClick () id:Response_PanelModule_bDeleteModule_OnClick_462
+#parent: PanelModule116_568/bDeleteModule
+Response OnClick () id:Response_PanelModule116_568_bDeleteModule_OnClick
 {
-  #keys: '[414702.1.381202748]'
+  #keys: '[414702.1.421613636]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bPullCapacityAllocationRule_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bPullCapacityAllocationRule_OnClick.def
new file mode 100644
index 0000000..3ab50e8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_568_bPullCapacityAllocationRule_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelModule116_568/bPullCapacityAllocationRule
+Response OnClick () id:Response_PanelModule116_568_bPullCapacityAllocationRule_OnClick
+{
+  #keys: '[414702.1.421613635]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ModulePanelCorrespondence::PullCapacityAllocationRule( GlobalOTDSOP );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bAddModule_OnClick\04361.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bAddModule_OnClick\04361.def"
deleted file mode 100644
index d58737e..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bAddModule_OnClick\04361.def"
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelModule116/bAddModule_100
-Response OnClick () id:Response_PanelModule_bAddModule_OnClick_61
-{
-  #keys: '[414702.1.381202717]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebButton_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      ModulePanelCorrespondence::CreateModule( GlobalOTDSOP, DataHolderSelectedProductInStocking_MP.Data() );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def
deleted file mode 100644
index 47bd96b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelModule116/bPullCapacityAllocationRule
-Response OnClick () id:Response_PanelModule116_bPullCapacityAllocationRule_OnClick
-{
-  #keys: '[414702.1.400703767]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebButton_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      ModulePanelCorrespondence::PullCapacityAllocationRule( GlobalOTDSOP );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/_ROOT_Component_FormModulePanelCorrespondence.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/_ROOT_Component_FormModulePanelCorrespondence.def
index 6338ca0..f743b7a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/_ROOT_Component_FormModulePanelCorrespondence.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/_ROOT_Component_FormModulePanelCorrespondence.def
@@ -7,13 +7,11 @@
   BaseType: 'WebForm'
   Children:
   [
-    #child: PanelModule
-    #child: PanelPanel
-    Component DataHolderSelectedProductInStocking_MP
+    Component DataHolderSelectedProduct
     {
       #keys: '[414702.1.378291666]'
       BaseType: 'WebDataHolder'
-      Databinding: 'structured[ProductInStockingPoint_MP]*'
+      Databinding: 'structured[Product_MP]*'
       Children:
       [
         Component DataExtractor666
@@ -22,10 +20,11 @@
           BaseType: 'WebDataExtractor'
           Properties:
           [
-            DataType: 'ProductInStockingPoint_MP'
-            ExtractionMode: 'Selected'
-            Source: 'FormProductInStockingPoints.ListProductInStockingPointsForProductsView'
+            DataType: 'MacroPlan'
+            FixedFilter: 'object.IsPanelMaterial()'
+            Source: 'MacroPlan'
             Taborder: 0
+            Transformation: 'Product_MP'
           ]
         }
       ]
@@ -34,11 +33,12 @@
         Taborder: 2
       ]
     }
+    #child: PanelContent
+    #child: PanelButton
   ]
   Properties:
   [
     Image: 'BRUSH2'
-    Orientation: 'horizontal'
     Title: '妯$粍&闈㈡澘瀵瑰簲鍏崇郴'
   ]
 }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingAllResult\043103.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingAllResult\043103.def"
index 3677be0..f28b1a9 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingAllResult\043103.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingAllResult\043103.def"
@@ -29,7 +29,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PeggingProductInSalesDemandBase.SalesDemandBaseID","title":"璁㈠崟ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PeggingProductInSalesDemandBase.SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐笽D","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"寮�濮嬫椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyQuantity","title":"渚涘簲鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ActualFulfillmentQuantity","title":"瀹為檯闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ActualFulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfillmentQuantity","title":"璁㈠崟闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyType","title":"渚涘簲绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasurementName","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasurementName"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PeggingProductInSalesDemandBase.SalesDemandBaseID","title":"璁㈠崟ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PeggingProductInSalesDemandBase.SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐笽D","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"寮�濮嬫椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyQuantity","title":"渚涘簲鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ActualFulfillmentQuantity","title":"瀹為檯闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ActualFulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfillmentQuantity","title":"璁㈠崟闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyType","title":"渚涘簲绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasurementName","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasurementName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPlies","title":"灞傛暟","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPlies"}}]'
         ContextMenu: 'listContextMenuPeggingAllResult'
         Taborder: 2
       ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct\043844.def"
index 92f21a9..ea52399 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct\043844.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct\043844.def"
@@ -8,6 +8,17 @@
       Children:
       [
         #child: listContextMenuProduct_1
+        Component DataSetLevelChildProduct #extension
+        {
+          Properties:
+          [
+            Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPanel","title":"ImgIsPanel","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPanel"}}]'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPanel","title":"ImgIsPanel","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPanel"}}]'
       ]
     }
   ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw" "b/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw"
index 7311b81..ea6bfd7 100644
--- "a/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw"
+++ "b/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw"
@@ -407,7 +407,7 @@
               dataType: 'string'
               index: 7
               subtotals: ''
-              width: 150
+              width: 121
             }
             column_UnitOfMeasurementName
             {
@@ -416,7 +416,16 @@
               dataType: 'string'
               index: 8
               subtotals: ''
-              width: 150
+              width: 70
+            }
+            column_NumberOfPlies
+            {
+              columnId: 'NumberOfPlies'
+              dataPath: 'NumberOfPlies'
+              dataType: 'number'
+              index: 9
+              subtotals: ''
+              width: 52
             }
           }
           FormPeggingResult_ListPeggingAllResultProductInStockingPoint_MP
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\346\250\241\347\273\204_\351\235\242\346\235\277\345\205\263\347\263\273.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\346\250\241\347\273\204_\351\235\242\346\235\277\345\205\263\347\263\273.vw"
index e60a4c3..25e2646 100644
--- "a/_Main/UI/MacroPlannerWebApp/Views/\346\250\241\347\273\204_\351\235\242\346\235\277\345\205\263\347\263\273.vw"
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\346\250\241\347\273\204_\351\235\242\346\235\277\345\205\263\347\263\273.vw"
@@ -38,7 +38,7 @@
               title: '鍚嶇О'
               index: 0
               subtotals: ''
-              width: 185
+              width: 218
             }
           }
           FormProducts_DataSetLevelChildProduct
@@ -53,7 +53,16 @@
               title: '鍚嶇О'
               index: 0
               subtotals: ''
-              width: 202
+              width: 193
+            }
+            column_ImgIsPanel
+            {
+              columnId: 'ImgIsPanel'
+              dataPath: 'ImgIsPanel'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 30
             }
           }
         }
diff --git "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
index 3da570a..2d7dbd9 100644
--- "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
+++ "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
@@ -16,7 +16,7 @@
   CREATIONUSER 'quintiq/hongjli'
   UPDATEDATETIME '2023-11-01T11:42:14'
   UPDATEUSER 'quintiq/hongjli'
-  LASTACCESSDATE '2023-11-07'
+  LASTACCESSDATE '2023-11-08'
   VIEWSCOPE 0
 }
 AUTHORIZATIONS

--
Gitblit v1.9.3