From e4edcfd0b987b239526f5375881b919789782dad Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期一, 13 十一月 2023 09:32:03 +0800
Subject: [PATCH] 修改优先级因子的一些功能和关系

---
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def                                                                       |    6 
 _Main/BL/InfoMessages.qbl                                                                                                                           |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def                           |   10 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def                                         |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuEditPriorityFactorGrading_OnClick.def           |   20 
 _Main/BL/Type_PriorityPolicy/DefaultValue_isDefault.qbl                                                                                             |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def                                                           |    6 
 _Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl                                                                                 |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityFactor_OnClick.def             |   24 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityPolicy_OnClick.def             |   24 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactorGrading#1.def                                       |   10 
 _Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl                                                                                       |   60 +-
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def                                                 |    3 
 _Main/BL/Type_PriorityPolicy/Method_SetDefault.qbl                                                                                                  |   14 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def                                          |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_OnClick.def                                                                 |   18 
 _Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl                                                                                           |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResultSingle_OnClick.def               |   20 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultUrgentPin_OnClick.def                        |   25 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DropDownListBusinessType_OnSelectionChanged#144.def                               |   21 
 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def                                                              |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews#633.def                                            |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderBusinessTypeSelect_OnDataChanged.def                                    |   16 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def                                                |   15 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def                                                             |    2 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityResult_OnClick.def             |   24 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuDeletePriorityFactorGrading_OnCli.def           |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactorGrading#667.def                                                |   20 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listActionBarPagePriorityFactorGrading#1.def                                     |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def                       |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def                                     |   11 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def                                                      |   22 
 _Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl                                                                    |    4 
 _Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl                                                                                        |   38 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def                     |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def                                                     |   95 --
 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnSelectionChanged.def |   17 
 _Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl                                                                                      |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuNewPriorityFactorGrading_OnClick.def            |   18 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def                                           |    6 
 _Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl                                                                                            |   44 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def                     |    6 
 _Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl                                                                                       |    8 
 _Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl                                                                                        |   14 
 _Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl                                                                               |   53 -
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DropDownListPriorityPolicy_OnSelectionChanged.def              |   18 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderBusinessTypeSelect_OnDataChanged.def                                    |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def            |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def                                         |    1 
 _Main/BL/Type_PriorityResult/Attribute_Point.qbl                                                                                                    |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def                                                 |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnCreated.def          |   26 
 _Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def                                                              |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownListPriorityFactor_OnSel.def           |   18 
 _Main/BL/Relations/Relation_PriorityFactor_BusinessType_BusinessType_PriorityFactor.qbl                                                             |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def                                                           |   49 +
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton#713.def                                       |   48 +
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def                                           |    5 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDefault_OnClick.def                                        |   19 
 _Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw                                                                                                   |   34 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def                                                     |   46 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultSingle_OnClick.def                           |   20 
 _Main/BL/Relations/Relation_PriorityPolicy_BusinessType_BusinessType_PriorityPolicy.qbl                                                             |   23 
 _Main/BL/Relations/Relation_PriorityResult_CustomerOrder_CustomerOrder_PriorityResult.qbl                                                           |    2 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def            |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownListBusinessType_OnSelectionChanged.def                                   |   18 
 _Main/BL/Type_PriorityResult/Attribute_OldPriorityName.qbl                                                                                          |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def                                                            |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuGetCustomerOrder_OnClick.def                               |   22 
 _Main/BL/Type_PriorityPolicy/Attribute_isDefault.qbl                                                                                                |    7 
 _Main/BL/Type_CustomerOrder/Method_CalculatePriorityResult.qbl                                                                                      |   52 +
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def                   |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def                                              |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient#902.def                                           |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def                                            |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnOk_OnClick.def                                                 |    5 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def                                                           |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def                                                           |   22 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuBusinessType_OnClick.def               |   24 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_OnDoubleClick.def                                   |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def                                                |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def                                                |   35 +
 /dev/null                                                                                                                                           |   23 
 _Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl                                                                                       |   75 -
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPriority.def                                                     |   53 +
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlContent.def                                                             |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails#633.def                                               |    1 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def                                                                      |    1 
 _Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl                                                                                              |   35 
 _Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def                                                                        |    4 
 91 files changed, 1,115 insertions(+), 481 deletions(-)

diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 2d06a81..92d85de 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -18,4 +18,8 @@
   {
     DefaultText: '璇ヤ紭鍏堢骇鍥犲瓙鍚嶇О宸插瓨鍦紒'
   }
+  InfoMessage PriorityPolicy_NullName
+  {
+    DefaultText: '浼樺厛绾х瓥鐣ュ悕绉颁笉鑳戒负绌恒��'
+  }
 }
diff --git a/_Main/BL/Relations/Relation_PriorityFactor_BusinessType_BusinessType_PriorityFactor.qbl b/_Main/BL/Relations/Relation_PriorityFactor_BusinessType_BusinessType_PriorityFactor.qbl
new file mode 100644
index 0000000..3fb7213
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PriorityFactor_BusinessType_BusinessType_PriorityFactor.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PriorityFactor_BusinessType_BusinessType_PriorityFactor
+{
+  #keys: '1[414996.0.98150005]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide BusinessType
+  {
+    #keys: '3[414996.0.98150007][414996.0.98150006][414996.0.98150008]'
+    Cardinality: '0to1'
+    ObjectDefinition: PriorityFactor
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide PriorityFactor
+  {
+    #keys: '3[414996.0.98150010][414996.0.98150009][414996.0.98150011]'
+    Cardinality: '1toN'
+    ObjectDefinition: BusinessType
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_PriorityFactor_MacroPlan_MacroPlan_PriorityFactor.qbl b/_Main/BL/Relations/Relation_PriorityFactor_MacroPlan_MacroPlan_PriorityFactor.qbl
deleted file mode 100644
index dd6e961..0000000
--- a/_Main/BL/Relations/Relation_PriorityFactor_MacroPlan_MacroPlan_PriorityFactor.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation PriorityFactor_MacroPlan_MacroPlan_PriorityFactor
-{
-  #keys: '1[414382.0.475830114]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[414382.0.475830116][414382.0.475830115][414382.0.475830117]'
-    Cardinality: '0to1'
-    ObjectDefinition: PriorityFactor
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide PriorityFactor
-  {
-    #keys: '3[414382.0.475830119][414382.0.475830118][414382.0.475830120]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_PriorityPolicy_BusinessType_BusinessType_PriorityPolicy.qbl b/_Main/BL/Relations/Relation_PriorityPolicy_BusinessType_BusinessType_PriorityPolicy.qbl
new file mode 100644
index 0000000..aff6e83
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PriorityPolicy_BusinessType_BusinessType_PriorityPolicy.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PriorityPolicy_BusinessType_BusinessType_PriorityPolicy
+{
+  #keys: '1[414996.0.98054699]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide BusinessType
+  {
+    #keys: '3[414996.0.98054701][414996.0.98054700][414996.0.98054702]'
+    Cardinality: '0to1'
+    ObjectDefinition: PriorityPolicy
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide PriorityPolicy
+  {
+    #keys: '3[414996.0.98054704][414996.0.98054703][414996.0.98054705]'
+    Cardinality: '1toN'
+    ObjectDefinition: BusinessType
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy.qbl b/_Main/BL/Relations/Relation_PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy.qbl
deleted file mode 100644
index 8f753de..0000000
--- a/_Main/BL/Relations/Relation_PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy
-{
-  #keys: '1[414382.0.488041940]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[414382.0.488041942][414382.0.488041941][414382.0.488041943]'
-    Cardinality: '0to1'
-    ObjectDefinition: PriorityPolicy
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide PriorityPolicy
-  {
-    #keys: '3[414382.0.488041945][414382.0.488041944][414382.0.488041946]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_PriorityResult_CustomerOrder_CustomerOrder_PriorityResult.qbl b/_Main/BL/Relations/Relation_PriorityResult_CustomerOrder_CustomerOrder_PriorityResult.qbl
index 35f6d74..0e6b6d7 100644
--- a/_Main/BL/Relations/Relation_PriorityResult_CustomerOrder_CustomerOrder_PriorityResult.qbl
+++ b/_Main/BL/Relations/Relation_PriorityResult_CustomerOrder_CustomerOrder_PriorityResult.qbl
@@ -18,6 +18,6 @@
     #keys: '3[414996.0.57846269][414996.0.57846268][414996.0.57846270]'
     Cardinality: '0to1'
     ObjectDefinition: CustomerOrder
-    OwningSide: 'Reference'
+    OwningSide: 'Owned'
   }
 }
diff --git a/_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl b/_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl
deleted file mode 100644
index 2a02cb7..0000000
--- a/_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation PriorityResult_MacroPlan_MacroPlan_PriorityResult
-{
-  #keys: '1[414382.0.504275161]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[414382.0.504275163][414382.0.504275162][414382.0.504275164]'
-    Cardinality: '0to1'
-    ObjectDefinition: PriorityResult
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide PriorityResult
-  {
-    #keys: '3[414382.0.504275166][414382.0.504275165][414382.0.504275167]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Type_CustomerOrder/Method_CalculatePriorityResult.qbl b/_Main/BL/Type_CustomerOrder/Method_CalculatePriorityResult.qbl
new file mode 100644
index 0000000..7cbf55c
--- /dev/null
+++ b/_Main/BL/Type_CustomerOrder/Method_CalculatePriorityResult.qbl
@@ -0,0 +1,52 @@
+Quintiq file version 2.0
+#parent: #root
+Method CalculatePriorityResult (
+  PriorityPolicy priorityPolicy
+)
+{
+  Description: '璁$畻customerOrder浼樺厛绾у緱鍒�'
+  TextBody:
+  [*
+    // Akari Nov-12-2023 (created)
+    // 鍏堝垹闄ゅ巻鍙茬殑璺戝垎璇︽儏
+    this.PriorityResult(relflush );
+    
+    // 浜嬩笟閮ㄤ俊鎭�
+    businessType := priorityPolicy.BusinessType();
+    
+    // 鑾峰彇瀵瑰簲浜嬩笟閮ㄨ绠楀叕寮�
+    formula := priorityPolicy.Formula();
+    
+    // 閫掑綊澶勭悊璁$畻鍏紡 鑾峰彇褰撳墠璁㈠崟鐨勫緱鍒�
+    value := PriorityResult::CalculateScore( formula,this,businessType,0.0);
+    // 鐢熸垚浼樺厛绾у洜瀛愯窇鍒嗙粨鏋�
+    priorityResult := this.PriorityResult(relnew,CustomerOrderID := this.ID(),Customer := this.CustomerName(),CustomerID := this.CustomerID(),
+                                                DemandDate := this.EndDate(),ProductID := this.ProductID(),Quantity := this.Quantity(),SalesSegmentName := this.SalesSegmentName(),
+                                                StockingPointID := this.StockingPointID(),UnitOfMeasureName := this.UnitOfMeasureName()
+                                                );
+    // 鍒ゆ柇鏄泦鍥� 杩樻槸浜嬩笟閮�
+    if( businessType.BusinessTypeName().FindString( "闆嗗洟",0 ) <> -1){
+         priorityResult.PriorityResultGroupDetail( relnew,Customer := this.CustomerName(),CustomerID := this.CustomerID(),
+                                                   DemandDate := this.EndDate(),PriorityPolicyName := priorityPolicy.Name(),PriorityResultScore := value,
+                                                   Quantity := this.Quantity(),SalesSegmentName := this.SalesSegmentName(),StockingPointID := this.StockingPointID(),
+                                                   UnitOfMeasureName := this.UnitOfMeasureName(),PriorityTotalScore := value
+                                                   );
+    }else{
+          priorityResult.PriorityResultBusinessTypeDetail( relnew,Customer := this.CustomerName(),CustomerID := this.CustomerID(),
+                                                           DemandDate := this.EndDate(),PriorityPolicyName := priorityPolicy.Name(),PriorityResultScore := value,
+                                                           Quantity := this.Quantity(),SalesSegmentName := this.SalesSegmentName(),StockingPointID := this.StockingPointID(),
+                                                           UnitOfMeasureName := this.UnitOfMeasureName(),PriorityTotalScore := value 
+                                                           );      
+    }
+    
+    e := this.PriorityResult();
+    businessTypeScore := max( e,PriorityResultBusinessTypeDetail,p,
+                              p.PriorityTotalScore()
+                              );
+    groupScore := max( e,PriorityResultGroupDetail,p,
+                       p.PriorityTotalScore()
+                       );
+    value := maxvalue( businessTypeScore,groupScore);
+    e.PriorityResultScore( value );
+  *]
+}
diff --git a/_Main/BL/Type_PriorityFactor/Attribute_BusinessType.qbl b/_Main/BL/Type_PriorityFactor/Attribute_BusinessType.qbl
deleted file mode 100644
index a151143..0000000
--- a/_Main/BL/Type_PriorityFactor/Attribute_BusinessType.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute BusinessType
-{
-  #keys: '3[414382.0.456067060][414382.0.456067059][414382.0.456067061]'
-  Description: '浜嬩笟閮�'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_PriorityFactor/Method_CreatePrioitifyFacotrDetail.qbl b/_Main/BL/Type_PriorityFactor/Method_CreatePrioitifyFacotrDetail.qbl
deleted file mode 100644
index 1758e80..0000000
--- a/_Main/BL/Type_PriorityFactor/Method_CreatePrioitifyFacotrDetail.qbl
+++ /dev/null
@@ -1,13 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Method CreatePrioitifyFacotrDetail (
-  String PriorityFactoryDetailName,
-  String GradeTarget,
-  Boolean isRange,
-  String RangeMax,
-  String RangeMin,
-  String GradeDesc
-)
-{
-  TextBody: '// Akari Nov-7-2023 (created)'
-}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl
deleted file mode 100644
index b1761d7..0000000
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl
+++ /dev/null
@@ -1,30 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod CheckNameValid (
-  MacroPlan owner,
-  String businessType,
-  Real coefficient,
-  String desc,
-  String name
-) as Boolean
-{
-  Description: '鏍¢獙鍚嶇О鏄惁鐩稿悓'
-  TextBody:
-  [*
-    // NBoTk Sep-22-2023 (created)
-    // 鏍¢獙鍚嶇О鏄惁鐩稿悓 鍚嶇О鐩稿悓鐨勬暟鎹烦杩囧鐞�
-    value := true;
-    
-    // 鍚嶇О鐩稿悓璺宠繃
-    obj := selectobject( owner,PriorityFactor,p,
-                        p.BusinessType() = businessType and p.Coefficient() = coefficient and p.Name() = name and p.Desc() = desc
-                        );
-    
-    if(not isnull( obj) )
-    {
-        value := false;
-    }
-    
-    return value;
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
deleted file mode 100644
index 0497cd2..0000000
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
+++ /dev/null
@@ -1,20 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetCoeffcientByName (
-  MacroPlan owner,
-  String businessType,
-  String name
-) as Real
-{
-  Description: '鑾峰彇浼樺厛绾у洜瀛愮郴鏁�'
-  TextBody:
-  [*
-    // NBoTk Sep-21-2023 (created)
-    
-    data := selectobject( owner,PriorityFactor,p,
-                           p.Name() = name
-                          )
-    
-    return data.Coefficient();
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetDataByBusinessType.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetDataByBusinessType.qbl
deleted file mode 100644
index db637e1..0000000
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetDataByBusinessType.qbl
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetDataByBusinessType (
-  MacroPlan owner,
-  String businessType
-) as owning PriorityFactors
-{
-  Description: '鏍规嵁浜嬩笟閮ㄨ幏鍙栦紭鍏堢骇鍥犲瓙闆嗗悎'
-  TextBody:
-  [*
-    // NBoTk Sep-18-2023 (created)
-    
-    list := selectset( owner,PriorityFactor,p,
-                       p.BusinessType() = businessType
-                       );
-    return &list;
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
deleted file mode 100644
index 70e553c..0000000
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
+++ /dev/null
@@ -1,25 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetNameList (
-  MacroPlan owner,
-  String businessType
-) as String
-{
-  Description: '鑾峰彇浼樺厛绾у洜瀛愪笅鎷夊垪琛�'
-  TextBody:
-  [*
-    // NBoTk Sep-21-2023 (created)
-    value := "";
-    
-    strList := selectuniquevalues(  owner,PriorityFactor,p,
-                                    p.Name()
-                                   );
-    
-    if( not isnull( strList )  )
-    {
-       value := strList.Concatenate( ";" );
-    }
-    
-    return value;
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
index da99caa..ab228ba 100644
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod InitData (
-  MacroPlan owner
+  BusinessType businessType
 )
 {
   Description: '鍒濆鍖栧熀纭�鏁版嵁锛堟祴璇曢樁娈典娇鐢級'
@@ -11,32 +11,25 @@
     // businessType
     // result := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�";
     
-    businessType := "";
-    
     // 濡傛灉宸茬粡瀛樺湪浼樺厛绾ф暟鎹� 鍒欎笉鍋氬鐞�
-    list := selectset( owner,PriorityFactor,p,true);
-    if( list.Size() = 0 )
-    {
+    list := selectset( businessType,PriorityFactor,p,true);
+    if( list.Size() = 0 ){
           
           // 娣诲姞浜嬩笟閮ㄥ搴旂殑棰勫埗浼樺厛绾у洜瀛愭暟鎹�
-          owner.PriorityFactor(relnew,Name := "瀹㈡埛绛栫暐" ,Desc := "灏嗕簨涓氶儴璁$畻鐨勪紭鍏堢骇锛屾寜璇ョ粏鍒嗛」姣斾緥闃舵纭畾璇ラ」寰楀垎銆傚锛�81%鈮鈮�100% 5鍒嗭紝61%鈮鈮�80% 4鍒�", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�",BusinessType := businessType, Coefficient := 100);
-          owner.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 );
-          owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType, Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "瀹㈡埛绛栫暐" ,Desc := "灏嗕簨涓氶儴璁$畻鐨勪紭鍏堢骇锛屾寜璇ョ粏鍒嗛」姣斾緥闃舵纭畾璇ラ」寰楀垎銆傚锛�81%鈮鈮�100% 5鍒嗭紝61%鈮鈮�80% 4鍒�", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�", Coefficient := 100);
+          businessType.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", Coefficient := 100 );
+          businessType.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", Coefficient := 100 );
           
           // 浼樺厛绾у洜瀛愮粏鍒�
-          priorityFactorList := selectset( owner,PriorityFactor,p,
-                                           p.BusinessType() = businessType
-                                           );
-          
-          traverse( priorityFactorList,Elements,e)
+          traverse( businessType,PriorityFactor,e)
           {
-              PriorityFactorDetail::InitData( owner,e); 
+              PriorityFactorDetail::InitData( businessType,e); 
           }
     
     }
diff --git a/_Main/BL/Type_PriorityFactorDetails/Attribute_BusinessType.qbl b/_Main/BL/Type_PriorityFactorDetails/Attribute_BusinessType.qbl
deleted file mode 100644
index ec15488..0000000
--- a/_Main/BL/Type_PriorityFactorDetails/Attribute_BusinessType.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute BusinessType
-{
-  #keys: '3[414382.0.444830097][414382.0.444830096][414382.0.444830098]'
-  Description: '浜嬩笟閮�'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_ClearTestData.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_ClearTestData.qbl
deleted file mode 100644
index bca0897..0000000
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_ClearTestData.qbl
+++ /dev/null
@@ -1,14 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ClearTestData (
-  MacroPlan owner
-)
-{
-  Description: '娓呴櫎娴嬭瘯鏁版嵁锛堟祴璇曢樁娈碉級'
-  TextBody:
-  [*
-    // NBoTk Sep-18-2023 (created)
-    
-    owner.PriorityFactor(relflush );
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl
deleted file mode 100644
index b27e4a5..0000000
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetDataByPriorityFactor (
-  PriorityFactor priorityFactor,
-  MacroPlan owner
-) as owning PriorityFactorDetails
-{
-  Description: '鏍规嵁浜嬩紭鍏堢骇鍥犲瓙鑾峰彇浼樺厛绾у洜瀛愮粏鍒嗛泦鍚�'
-  TextBody:
-  [*
-    // NBoTk Sep-18-2023 (created)
-    
-    list := selectset( owner,PriorityFactor.PriorityFactorDetail,p,
-                       p.BusinessType() = priorityFactor.BusinessType() and priorityFactor.Name() = p.PriorityFactorName()
-                       );
-    
-    return &list;
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
index eadd506..c8b3da0 100644
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
+++ b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod InitData (
-  MacroPlan owner,
+  BusinessType businessType,
   PriorityFactor priorityFactor
 )
 {
@@ -11,92 +11,92 @@
     // NBoTk Sep-17-2023 (created)
     
     isBusinessType := false;
-    if( priorityFactor.BusinessType() <> "闆嗗洟闈㈡澘" )
+    if( priorityFactor.BusinessType().BusinessTypeName() <> "闆嗗洟闈㈡澘" )
     {
         isBusinessType := true; 
     }
     
     if( priorityFactor.Name() = "澶у紶鐩堝埄姘村钩" )
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "澶х泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "灏忕泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 0,
                                                 IsRange := false,GradingName := "鎸佸钩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := -3,
                                                 IsRange := false,GradingName := "灏忎簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := -5,
                                                 IsRange := false,GradingName := "澶т簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
     }
     
     if( priorityFactor.Name() = "瀹㈡埛绛栫暐" )
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "81%鈮鈮�100%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 4,
                                                 IsRange := false,GradingName := "61%鈮鈮�80%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "41%鈮鈮�60%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 2,
                                                 IsRange := false,GradingName := "21%鈮鈮�40%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := "1%鈮鈮�20%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
     }
     
     if( priorityFactor.Name() = "缁嗗垎甯傚満绛夌骇" )
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "鎴樼暐",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "閲嶇偣",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := "娼滃姏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
     }
     
     if( priorityFactor.Name() = "璁㈠崟涓嬪崟鏃堕棿" )
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "120",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 4,
                                                 IsRange := false,GradingName := "90",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "60",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 2,
                                                 IsRange := false,GradingName := "30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := "0",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
     }
     
     if( priorityFactor.Name() = "闇�姹傜被鍨�" )
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "鏈夐娴�",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "鏃犻娴�",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := "绾娴�",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
     }
     
     if( priorityFactor.Name() = "瀹㈡埛绛夌骇" )
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "鎴樼暐",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "閲嶇偣",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := "娼滃姏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
     }
     
     if( priorityFactor.Name() = "DOI" or priorityFactor.Name() = "DSI")
     {
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 5,
                                             IsRange := false,GradingName := "<7",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 3,
                                                 IsRange := false,GradingName := "<15",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := "<30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
-        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
+        priorityFactor.PriorityFactorDetail(relnew, IsBusinessType := isBusinessType,GradeTarget := 1,
                                                 IsRange := false,GradingName := ">30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());                                                                                     
     }
   *]
diff --git a/_Main/BL/Type_PriorityPolicy/Attribute_BusinessType.qbl b/_Main/BL/Type_PriorityPolicy/Attribute_BusinessType.qbl
deleted file mode 100644
index 221fec6..0000000
--- a/_Main/BL/Type_PriorityPolicy/Attribute_BusinessType.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute BusinessType
-{
-  #keys: '3[414382.0.488041999][414382.0.488041998][414382.0.488042000]'
-  Description: '浜嬩笟閮�'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_PriorityPolicy/Attribute_isDefault.qbl b/_Main/BL/Type_PriorityPolicy/Attribute_isDefault.qbl
new file mode 100644
index 0000000..d91311e
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/Attribute_isDefault.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute isDefault
+{
+  #keys: '3[414996.0.108641097][414996.0.108641096][414996.0.108641098]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_PriorityPolicy/DefaultValue_isDefault.qbl b/_Main/BL/Type_PriorityPolicy/DefaultValue_isDefault.qbl
new file mode 100644
index 0000000..e362545
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/DefaultValue_isDefault.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  ISOValue: 'false'
+  TargetAttribute: isDefault
+}
diff --git a/_Main/BL/Type_PriorityPolicy/Method_SetDefault.qbl b/_Main/BL/Type_PriorityPolicy/Method_SetDefault.qbl
new file mode 100644
index 0000000..b73a619
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/Method_SetDefault.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetDefault
+{
+  TextBody:
+  [*
+    // Akari Nov-12-2023 (created)
+    def := select( this.BusinessType(),PriorityPolicy,pp,pp.isDefault());
+    if( not isnull( def )){
+      def.isDefault( false ); 
+    }
+    this.isDefault( true );
+  *]
+}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl
index b8cf039..8de7b12 100644
--- a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod GetCalcFormula (
-  MacroPlan macroPlan,
+  BusinessType businessType,
   String formula
 ) as String
 {
@@ -9,15 +9,11 @@
   TextBody:
   [*
     // NBoTk Oct-7-2023 (created)
-    priorityFactor := null( PriorityFactor);
-    traverse( macroPlan,PriorityFactor,p)
-    {   
-         if( formula.StartsWith( p.Name()) )
-         {
-            priorityFactor := p;
-         }
+    priorityFactor := select( businessType,PriorityFactor,pf,formula.StartsWith( pf.Name()));
+    value := '';
+    if( not isnull( priorityFactor )){
+      value := priorityFactor.Name() + "[" + [String]priorityFactor.Coefficient() +"*L]";
     }
-    value := priorityFactor.Name() + "[" + [String]priorityFactor.Coefficient() +"*L]";
     return value;
   *]
 }
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl
index 6a7f27e..b085e86 100644
--- a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod GetCalcStr (
-  MacroPlan macroPlan,
+  BusinessType businessType,
   String formula,
   String lastCalcStr
 ) as String
@@ -21,71 +21,71 @@
             if(remindFormula.StartsWith( "+" ))
             {
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 calcStr := lastCalcStr + "+" + calcStr;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
             else if( remindFormula.StartsWith( "-" ))
             {
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 calcStr := lastCalcStr + "-" + calcStr;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
             else if( remindFormula.StartsWith( "*" ) )
             {
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 calcStr := lastCalcStr + "*" + calcStr;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
             else if( remindFormula.StartsWith( "/" ) )
             {
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 calcStr := lastCalcStr + "/" + calcStr;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
             else if( remindFormula.StartsWith( "(" ) )
             {
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 calcStr := lastCalcStr + "{" + calcStr;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
             else if( remindFormula.StartsWith( ")" ) )
             {
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 calcStr := lastCalcStr + ")" + calcStr;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
             else
             {
                 // 涓嶆槸绗﹀彿 鐩存帴鑾峰彇璁$畻鍚庣殑鏁板��
-                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
+                calcStr := PriorityPolicy::GetCalcFormula(businessType,remindFormula);
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                PriorityPolicy::GetCalcStr(  businessType,remindFormula,calcStr);
             }
       
     }
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetDataByBusinessType.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetDataByBusinessType.qbl
deleted file mode 100644
index b6c9ec4..0000000
--- a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetDataByBusinessType.qbl
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetDataByBusinessType (
-  MacroPlan owner,
-  String businessType
-) as owning PriorityPolicys
-{
-  Description: '鏍规嵁浜嬩笟閮ㄨ幏鍙栦紭鍏堢骇绛栫暐'
-  TextBody:
-  [*
-    // NBoTk Sep-20-2023 (created)
-    
-    list :=  selectset( owner,PriorityPolicy,p,
-                        p.BusinessType() = businessType
-                        );
-    
-    return &list;
-  *]
-}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
index b284e66..537f739 100644
--- a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
@@ -1,8 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod RollBackCalcStr (
-  MacroPlan owner,
-  String businessType,
+  BusinessType businessType,
   String stringData
 ) as String
 {
@@ -29,10 +28,9 @@
         } 
     }
     
-    nameList := PriorityFactor::GetDataByBusinessType(  owner,"");       
-    traverse( nameList,Elements,e)
+    traverse( businessType,PriorityFactor,priorityFactor)
     {
-        nameText := e.Name() + "[" + [String]e.Coefficient() + "*L]"
+        nameText := priorityFactor.Name() + "[" + [String]priorityFactor.Coefficient() + "*L]"
         if( stringData.EndsWith( nameText))
         {
              end := stringData.Length() - nameText.Length();
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
index 7098d73..e993e57 100644
--- a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
@@ -1,8 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod RollBackStr (
-  MacroPlan owner,
-  String businessType,
+  BusinessType businessType,
   String stringData
 ) as String
 {
@@ -27,13 +26,12 @@
              value := stringData.SubString( 0,end);
         } 
     }
-    
-    nameList := PriorityFactor::GetDataByBusinessType(  owner,"");       
-    traverse( nameList,Elements,e)
+      
+    traverse( businessType,PriorityFactor,priorityFactor)
     {
-        if( stringData.EndsWith( e.Name()))
+        if( stringData.EndsWith( priorityFactor.Name()))
         {
-             end := stringData.Length() - e.Name().Length();
+             end := stringData.Length() - priorityFactor.Name().Length();
              value := stringData.SubString( 0,end);
         } 
     }
diff --git a/_Main/BL/Type_PriorityResult/Attribute_OldPriorityName.qbl b/_Main/BL/Type_PriorityResult/Attribute_OldPriorityName.qbl
new file mode 100644
index 0000000..db4eb74
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_OldPriorityName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OldPriorityName
+{
+  #keys: '3[414996.0.111544204][414996.0.111544203][414996.0.111544205]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_Point.qbl b/_Main/BL/Type_PriorityResult/Attribute_Point.qbl
new file mode 100644
index 0000000..ab505be
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_Point.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Point
+{
+  #keys: '3[414996.0.108590068][414996.0.108590067][414996.0.108590069]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl
index 09d43bc..340cb76 100644
--- a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl
@@ -3,9 +3,7 @@
 StaticMethod CalculateBracketScore (
   String calcStr,
   CustomerOrder customerOrder,
-  String businessType,
-  MacroPlan macroPlan,
-  const GlobalOTDTable globalOTDTable
+  BusinessType businessType
 ) as Real
 {
   Description: '璁$畻鍏紡涓嫭鍙峰唴鐨勬暟鎹�'
@@ -14,6 +12,6 @@
     // NBoTk Sep-26-2023 (created)
     
     
-    return PriorityResult::CalculateScore( calcStr,customerOrder,businessType,macroPlan,0.0,globalOTDTable);
+    return PriorityResult::CalculateScore( calcStr,customerOrder,businessType,0.0);
   *]
 }
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
index dbd5fae..917e947 100644
--- a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
@@ -3,10 +3,8 @@
 StaticMethod CalculateScore (
   String formula,
   CustomerOrder customerOrder,
-  String businessType,
-  MacroPlan macroPlan,
-  Real lastScore,
-  const GlobalOTDTable globalOTDTable
+  BusinessType businessType,
+  Real lastScore
 ) as Real
 {
   Description: '閫掑綊澶勭悊浼樺厛绾х瓥鐣ュ叕寮�'
@@ -21,51 +19,51 @@
             // 浠庤捣濮嬩綅缃紑濮嬪尮閰� 
             if(remindFormula.StartsWith( "+" )){
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); 
+                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,businessType); 
                 score := lastScore + score;
     
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,score);
             }else if( remindFormula.StartsWith( "-" )){
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,businessType);
                 score := lastScore - score;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,score);
             }else if( remindFormula.StartsWith( "x" ) ){
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,businessType);
                 score := lastScore * score;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,score);
             }else if( remindFormula.StartsWith( "/" ) ){
                 remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
-                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,businessType);
                 score := lastScore / score;
                 
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,score);
             }else if( remindFormula.StartsWith( "(" ) ){
                 // 鎵惧埌绗竴涓粨鏉熺殑 )
                 // 璁$畻鎷彿涓殑鍐呭
                 rightBracket := remindFormula.FindString( ")",0);
                 calcStr := remindFormula.SubString( 1,rightBracket);
-                PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType,macroPlan,globalOTDTable);
+                PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType);
                 
                 // 鎴彇 ) 鍚庣殑瀛楃缁х画杩涜璁$畻
                 remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()-1);
             }else{
                 // 涓嶆槸绗﹀彿 鐩存帴鑾峰彇璁$畻鍚庣殑鏁板��
-                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
+                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,businessType);
                 // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻
-                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
-                score := PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
+                remindFormula := PriorityResult::GetRemindFormula( remindFormula,businessType);
+                score := PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,score);
             }
     }
     // 娌℃湁鍖归厤 鍏紡璁$畻瀹屾垚
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
index 2372923..4a40730 100644
--- a/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
@@ -3,8 +3,7 @@
 StaticMethod GetDetailsValue (
   CustomerOrder customerOrder,
   String formula,
-  MacroPlan macroPlan,
-  const GlobalOTDTable globalOTDTable
+  BusinessType businessType
 ) as Real
 {
   Description: '璁$畻浼樺厛绾у洜瀛愬緱鍒�'
@@ -12,126 +11,98 @@
   [*
     // NBoTk Sep-26-2023 (created)
     // 褰撳墠璁$畻浼樺厛绾у洜瀛愮粏鍒� 濡傛灉鑾峰彇涓嶅埌鍏ㄩ儴鍏堥粯璁や负1
+    globalOTDTable := businessType.GlobalOTDTable();
     
     value := 0.0;
     
-    priorityFactor := null( PriorityFactor);
-    traverse( macroPlan,PriorityFactor,p)
-    {   
-         if( formula.StartsWith( p.Name()) )
-         {
-            priorityFactor := p;
-         }
-    }
+    priorityFactor := select( businessType,PriorityFactor,pf,formula.StartsWith( pf.Name()));
     
-    if(isnull( priorityFactor) )
-    {
+    if(isnull( priorityFactor) ){
         value := 1.0;
-    }
-    else
-    {
-            if( "瀹㈡埛绛栫暐" =  priorityFactor.Name())
-            {
+    }else{
+            if( "瀹㈡埛绛栫暐" =  priorityFactor.Name()){
                  obj := selectobject( priorityFactor,PriorityFactorDetail,p , p.PriorityFactorName() = "瀹㈡埛绛栫暐" and p.GradingName() = customerOrder.CustomerPolicy());
                  gradeTarget := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       gradeTarget := obj.GradeTarget();
                  }
                  value := priorityFactor.Coefficient() * gradeTarget;
             }
             
-            if( "澶у紶鐩堝埄姘村钩" =  priorityFactor.Name())
-            {
+            if( "澶у紶鐩堝埄姘村钩" =  priorityFactor.Name()){
                  obj := selectobject( priorityFactor,PriorityFactorDetail,p , p.PriorityFactorName() = "澶у紶鐩堝埄姘村钩" and  p.GradingName() = customerOrder.SheetProfitability());
                  gradeTarget := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       gradeTarget := obj.GradeTarget();
                  }
                  value := priorityFactor.Coefficient() * gradeTarget;
             }
             
-            if( "DOI" =  priorityFactor.Name())
-            {
+            if( "DOI" =  priorityFactor.Name()){
                  // DOI鏁版嵁
                  obj := selectobject( globalOTDTable,Global_MappingDOI_DSI,doi,doi.ProductID() = customerOrder.ProductID())
                  doi := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       doi := [Real]obj.DOI();
                  }
                  value := priorityFactor.Coefficient() * doi;
             }
             
-            if( "DSI" =  priorityFactor.Name())
-            {
+            if( "DSI" =  priorityFactor.Name()){
                  // DOI鏁版嵁
                  obj := selectobject( globalOTDTable,Global_MappingDOI_DSI,doi,doi.ProductID() = customerOrder.ProductID())
                  dsi := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       dsi := [Real]obj.DSI();
                  }
                  value := priorityFactor.Coefficient() * dsi;
             }
             
-            if( "缁嗗垎甯傚満绛夌骇" =  priorityFactor.Name())
-            {
+            if( "缁嗗垎甯傚満绛夌骇" =  priorityFactor.Name()){
                  obj := selectobject( priorityFactor,PriorityFactorDetail,p , p.PriorityFactorName() = "缁嗗垎甯傚満绛夌骇" and p.GradingName() = customerOrder.SegmentPriority());
                  gradeTarget := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       gradeTarget := obj.GradeTarget();
                  }
                  value := priorityFactor.Coefficient() * gradeTarget;
             }
             
-            if( "闇�姹傜被鍨�" =  priorityFactor.Name())
-            {     
+            if( "闇�姹傜被鍨�" =  priorityFactor.Name()){     
                 // 鏈夐娴� 鏃犻娴� 绾娴�
                  obj := selectobject( priorityFactor,PriorityFactorDetail,p,p.GradingName() = customerOrder.OrderType());
                  gradeTarget := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       gradeTarget := obj.GradeTarget();
                  }
                  value := priorityFactor.Coefficient() * gradeTarget;
             }
             
-            if( "瀹㈡埛绛夌骇" =  priorityFactor.Name())
-            {
+            if( "瀹㈡埛绛夌骇" =  priorityFactor.Name()){
                  // 閫氳繃鏁版嵁婀栬绠楀鎴风瓑绾�
                  obj := selectobject( globalOTDTable,Global_MappingCustomerGrade,doi,doi.BusinessType() = customerOrder.BusinessType() and doi.Customer() = customerOrder.CustomerName())
                  customerGrade := 1.0;
-                 if( not isnull( obj ) )
-                 {
+                 if( not isnull( obj ) ){
                       customerGrade := [Real]obj.CustomerGrade();
                  }
                  value := priorityFactor.Coefficient() * customerGrade;
             }
             
-            if( "璁㈠崟涓嬪崟鏃堕棿" =  priorityFactor.Name())
-            {
+            if( "璁㈠崟涓嬪崟鏃堕棿" =  priorityFactor.Name()){
                  // 涓嬪崟鏃堕棿
                  orderTime := customerOrder.OrderTime();
                  days := orderTime.TotalInDays() - customerOrder.EndDate().TotalInDays();
                  obj := null( PriorityFactorDetail);
                  sortDetail := selectsortedset( priorityFactor,PriorityFactorDetail,p,[Number]p.GradingName());
-                 traverse( sortDetail,Elements,e )
-                 {
-                       if( days >= [Number]e.GradingName() )
-                       {
+                 traverse( sortDetail,Elements,e ){
+                       if( days >= [Number]e.GradingName() ){
                               obj := e;
                        }
                  }      
                  //obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "璁㈠崟涓嬪崟鏃堕棿" and days >= [Number]p.GradingName());
                  value := 0;
-                 if( not isnull( obj) )
-                 {
+                 if( not isnull( obj) ){
                     value := priorityFactor.Coefficient() * obj.GradeTarget();
                  }
-                 
             }
     }
     return value;
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl
index 8518ab1..656f0e0 100644
--- a/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl
@@ -2,27 +2,20 @@
 #parent: #root
 StaticMethod GetRemindFormula (
   String formula,
-  MacroPlan macroPlan
+  BusinessType busenessType
 ) as String
 {
   Description: '浼樺厛绾х瓥鐣ュ叕寮忔埅鍙�'
   TextBody:
   [*
     // NBoTk Sep-26-2023 (created)
-    
     str := "";
-    
-    traverse( macroPlan,PriorityFactor,p)
-    {  
-         if( formula.StartsWith( p.Name()) )
-         {
+    traverse( busenessType,PriorityFactor,p){  
+         if( formula.StartsWith( p.Name()) ){
               // 鍒ゆ柇鍓╀綑瀛楃闀垮害
-              if( p.Name().Length() = formula.Length() )
-              {
+              if( p.Name().Length() = formula.Length() ){
                  str := ""
-              }
-              else
-              {              
+              }else{              
                 str := formula.SubString( p.Name().Length(),formula.Length() - p.Name().Length());
               }
          }
diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
index bfd7213..e5a2f2c 100644
--- a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
+++ b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
@@ -1,9 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod CalculatePriorityResult (
-  String priorityPolicyName,
-  MacroPlan macroPlan,
-  GlobalOTDTable globalOTDTable
+  PriorityPolicy priorityPolicy,
+  MacroPlan macroPlan
 )
 {
   Description: '璁$畻customerOrder浼樺厛绾у緱鍒�'
@@ -11,48 +10,44 @@
   [*
     // NBoTk Sep-26-2023 (created)
     
-    // 鍏堝垹闄ゅ巻鍙茬殑璺戝垎璇︽儏
-    traverse( macroPlan,PriorityResult,p){
-          p.PriorityResultBusinessTypeDetail(relflush );
-          p.Delete(); 
-    }
     
     // 璁$畻瀹㈡埛璁㈠崟鐨勪紭鍏堢骇寰楀垎 鍥炲~鏉冮噸鏁版嵁 鐢熸垚鏂扮殑Priority鏄庣粏鏁版嵁
-    traverse( macroPlan,SalesDemand.astype( CustomerOrder ),e){
+    traverse( macroPlan,SalesDemand.astype( CustomerOrder ),customerOrder){
+          // 鍏堝垹闄ゅ巻鍙茬殑璺戝垎璇︽儏
+         customerOrder.PriorityResult(relflush );
+         
          // 浜嬩笟閮ㄤ俊鎭�
-         businessType := e.BusinessType();
+         businessType := priorityPolicy.BusinessType();
          
          // 鑾峰彇瀵瑰簲浜嬩笟閮ㄨ绠楀叕寮�
-         priorityPolicys := selectobject( macroPlan,PriorityPolicy,p,p.BusinessType() = businessType and p.Name() = priorityPolicyName);
-         formula := priorityPolicys.Formula();
+         formula := priorityPolicy.Formula();
          
          // 閫掑綊澶勭悊璁$畻鍏紡 鑾峰彇褰撳墠璁㈠崟鐨勫緱鍒�
-         value := PriorityResult::CalculateScore( formula,e,businessType,macroPlan,0.0,globalOTDTable);
+         value := PriorityResult::CalculateScore( formula,customerOrder,businessType,0.0);
          // 鐢熸垚浼樺厛绾у洜瀛愯窇鍒嗙粨鏋�
-         priorityResult := macroPlan.PriorityResult(relnew,CustomerOrderID := e.ID(),BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
-                                                     DemandDate := e.EndDate(),ProductID := e.ProductID(),Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),
-                                                     StockingPointID := e.StockingPointID(),UnitOfMeasureName := e.UnitOfMeasureName()
+         priorityResult := customerOrder.PriorityResult(relnew,CustomerOrderID := customerOrder.ID(),Customer := customerOrder.CustomerName(),CustomerID := customerOrder.CustomerID(),
+                                                     DemandDate := customerOrder.EndDate(),ProductID := customerOrder.ProductID(),Quantity := customerOrder.Quantity(),SalesSegmentName := customerOrder.SalesSegmentName(),
+                                                     StockingPointID := customerOrder.StockingPointID(),UnitOfMeasureName := customerOrder.UnitOfMeasureName()
                                                      );
-         priorityResult.CustomerOrder(relset, e);
          // 鍒ゆ柇鏄泦鍥� 杩樻槸浜嬩笟閮�
-         if( businessType.FindString( "闆嗗洟",0 ) <> -1){
-              priorityResult.PriorityResultGroupDetail( relnew,BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
-                                                        DemandDate := e.EndDate(),PriorityPolicyName := priorityPolicyName,PriorityResultScore := value,
-                                                        Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),StockingPointID := e.StockingPointID(),
-                                                        UnitOfMeasureName := e.UnitOfMeasureName(),PriorityTotalScore := value
+         if( businessType.BusinessTypeName().FindString( "闆嗗洟",0 ) <> -1){
+              priorityResult.PriorityResultGroupDetail( relnew,Customer := customerOrder.CustomerName(),CustomerID := customerOrder.CustomerID(),
+                                                        DemandDate := customerOrder.EndDate(),PriorityPolicyName := priorityPolicy.Name(),PriorityResultScore := value,
+                                                        Quantity := customerOrder.Quantity(),SalesSegmentName := customerOrder.SalesSegmentName(),StockingPointID := customerOrder.StockingPointID(),
+                                                        UnitOfMeasureName := customerOrder.UnitOfMeasureName(),PriorityTotalScore := value
                                                         );
          }else{
-               priorityResult.PriorityResultBusinessTypeDetail( relnew,BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
-                                                                DemandDate := e.EndDate(),PriorityPolicyName := priorityPolicyName,PriorityResultScore := value,
-                                                                Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),StockingPointID := e.StockingPointID(),
-                                                                UnitOfMeasureName := e.UnitOfMeasureName(),PriorityTotalScore := value 
+               priorityResult.PriorityResultBusinessTypeDetail( relnew,Customer := customerOrder.CustomerName(),CustomerID := customerOrder.CustomerID(),
+                                                                DemandDate := customerOrder.EndDate(),PriorityPolicyName := priorityPolicy.Name(),PriorityResultScore := value,
+                                                                Quantity := customerOrder.Quantity(),SalesSegmentName := customerOrder.SalesSegmentName(),StockingPointID := customerOrder.StockingPointID(),
+                                                                UnitOfMeasureName := customerOrder.UnitOfMeasureName(),PriorityTotalScore := value 
                                                                 );      
          }
     }
     
     // 浼樺厛绾у洜瀛愬鐞嗗畬鎴愬悗 鎺掑簭鍥炲~鏁版嵁
     
-    traverse( macroPlan,PriorityResult,e){
+    traverse( macroPlan,SalesDemand.astype( CustomerOrder ).PriorityResult,e){
       businessTypeScore := max( e,PriorityResultBusinessTypeDetail,p,
                                 p.PriorityTotalScore()
                                 );
@@ -64,7 +59,7 @@
       e.PriorityResultScore( value );
     }
     
-    resultList := selectsortedset( macroPlan,PriorityResult,result,
+    resultList := selectsortedset( macroPlan,SalesDemand.astype( CustomerOrder ).PriorityResult,result,
                                    true,
                                    -result.PriorityResultScore()
                                    )
@@ -87,6 +82,7 @@
             for( j := 0;j < subListCopy ; j++){
                 element := resultList.Element( count1 * subListSize + j + flag );
                 element.CustomerOrder().PriorityName( [String]point );
+                element.Point( point );
             }
             point --;
             count --;
@@ -96,6 +92,7 @@
       point := 10;
       traverse( resultList,Elements,element){
         element.CustomerOrder().PriorityName([String]point);
+        element.Point( point );
         point --;
       }
     }
diff --git a/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl b/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl
index 7e00fe2..0e1b9e3 100644
--- a/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl
+++ b/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl
@@ -11,7 +11,7 @@
     // NBoTk Sep-21-2023 (created)
     
     
-    maxPriorityResult := max( owner,PriorityResult,p,
+    maxPriorityResult := max( owner,SalesDemand.astype( CustomerOrder ).PriorityResult,p,
                               p.PriorityResultScore()
                               );
     
@@ -19,7 +19,7 @@
     businessTypeDetails.PriorityTotalScore(topScore);
     
     // 浼樺厛绾у洜瀛愬鐞嗗畬鎴愬悗 鎺掑簭鍥炲~鏁版嵁
-    resultList := selectsortedset( owner,PriorityResult,result,
+    resultList := selectsortedset( owner,SalesDemand.astype( CustomerOrder ).PriorityResult,result,
                                    true,
                                    result.PriorityResultScore()
                                    )
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
index 71b9352..7f6b660 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
@@ -18,6 +18,10 @@
     {
       #keys: '[414382.0.587601840]'
       BaseType: 'WebButton'
+      Children:
+      [
+        #child: ContextMenuPriority
+      ]
       Properties:
       [
         Image: 'QUEUE'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPriority.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPriority.def
new file mode 100644
index 0000000..7403da1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPriority.def
@@ -0,0 +1,53 @@
+Quintiq file version 2.0
+Component ContextMenuPriority
+{
+  #keys: '[414996.0.112219209]'
+  BaseType: 'WebContextMenu'
+  Children:
+  [
+    Component MenuPriorityFactor
+    {
+      #keys: '[414996.0.112219210]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Taborder: 0
+        Title: '浼樺厛绾у洜瀛愰厤缃�'
+      ]
+    }
+    Component MenuPriorityResult
+    {
+      #keys: '[414996.0.112219249]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Taborder: 2
+        Title: '浼樺厛绾х粨鏋滈〉闈�'
+      ]
+    }
+    Component MenuPriorityPolicy
+    {
+      #keys: '[414996.0.112219311]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Taborder: 1
+        Title: '浼樺厛绾х瓥鐣ラ厤缃�'
+      ]
+    }
+    Component MenuBusinessType
+    {
+      #keys: '[414996.0.112219354]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Taborder: 3
+        Title: '浜嬩笟閮�&缁勭粐缂栫爜缁存姢'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def
index feae35c..8b45c62 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def
@@ -9,7 +9,7 @@
   {
     Body:
     [*
-      ApplicationScope.ViewManager().ResetUserViewById( "PriorityTest",true);
+      // ApplicationScope.ViewManager().ResetUserViewById( "PriorityTest",true);
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuBusinessType_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuBusinessType_OnClick.def
new file mode 100644
index 0000000..f9a72c7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuBusinessType_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ContextMenuPriority/MenuBusinessType
+Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuPriority_MenuBusinessType_OnClick
+{
+  #keys: '[414996.0.112219829]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  GroupServerCalls: true
+  NavigateToAction
+  {
+    ExpressionParameter.Parameters Data
+    {
+    }
+    ParseableTypeParameter.Parameters Component
+    {
+      ParameterType: 'internal[WebForm]'
+      Value: 'FormBusinessType'
+    }
+    StringActionParameter.Parameters ShowMode
+    {
+      Value: 'open'
+    }
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityFactor_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityFactor_OnClick.def
new file mode 100644
index 0000000..a6189de
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityFactor_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ContextMenuPriority/MenuPriorityFactor
+Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityFactor_OnClick
+{
+  #keys: '[414996.0.112219530]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  GroupServerCalls: true
+  NavigateToAction
+  {
+    ExpressionParameter.Parameters Data
+    {
+    }
+    ParseableTypeParameter.Parameters Component
+    {
+      ParameterType: 'internal[WebForm]'
+      Value: 'FormPriorityFactor'
+    }
+    StringActionParameter.Parameters ShowMode
+    {
+      Value: 'open'
+    }
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityPolicy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityPolicy_OnClick.def
new file mode 100644
index 0000000..fd21bea
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityPolicy_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ContextMenuPriority/MenuPriorityPolicy
+Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityPolicy_OnClick
+{
+  #keys: '[414996.0.112219636]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  GroupServerCalls: true
+  NavigateToAction
+  {
+    ExpressionParameter.Parameters Data
+    {
+    }
+    ParseableTypeParameter.Parameters Component
+    {
+      ParameterType: 'internal[WebForm]'
+      Value: 'FormPriorityPolicy'
+    }
+    StringActionParameter.Parameters ShowMode
+    {
+      Value: 'open'
+    }
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityResult_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityResult_OnClick.def
new file mode 100644
index 0000000..de1ede4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityResult_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ContextMenuPriority/MenuPriorityResult
+Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuPriority_MenuPriorityResult_OnClick
+{
+  #keys: '[414996.0.112219733]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  GroupServerCalls: true
+  NavigateToAction
+  {
+    ExpressionParameter.Parameters Data
+    {
+    }
+    ParseableTypeParameter.Parameters Component
+    {
+      ParameterType: 'internal[WebForm]'
+      Value: 'FormPriorityResult'
+    }
+    StringActionParameter.Parameters ShowMode
+    {
+      Value: 'open'
+    }
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def
index 38aee9e..601299c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def
@@ -5,25 +5,52 @@
   BaseType: 'WebPanel'
   Children:
   [
-    Component PriorityPolicyStringList
-    {
-      #keys: '[414382.0.563131262]'
-      BaseType: 'WebDropDownStringList'
-      Properties:
-      [
-        Taborder: 0
-      ]
-    }
-    Component DataHolderChoosePriorityPolicy
+    Component DataHolderBusinessType
     {
       #keys: '[414382.0.563131279]'
       BaseType: 'WebDataHolder'
-      Databinding: 'structured[PriorityPolicy]*'
+      Databinding: 'BusinessType'
       Properties:
       [
         Taborder: 1
       ]
     }
+    Component DropDownListPriorityPolicy
+    {
+      #keys: '[414996.0.100748747]'
+      BaseType: 'WebDropDownList'
+      Children:
+      [
+        Component deContent
+        {
+          #keys: '[414996.0.100748749]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'BusinessType'
+            Source: 'DataHolderBusinessType'
+            Taborder: 0
+            Transformation: 'PriorityPolicy'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'Name'
+        Label: '浼樺厛绾х瓥鐣ワ細'
+        Taborder: 0
+      ]
+    }
+    Component DataHolderPriorityPolicySelect
+    {
+      #keys: '[414996.0.104238409]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PriorityPolicy'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def
index 3d2bf8a..f76083a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_CalculatePriorityResult.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
 #parent: #root
 Method CalculatePriorityResult (
-  String name
+  PriorityPolicy priorityPolicy
 ) id:Method_DialogChoosePriorityPolicy_CalculatePriorityResult
 {
   #keys: '[414382.0.577602130]'
   Body:
   [*
-    PriorityResult::CalculatePriorityResult(name,MacroPlan,GlobalOTDTable);
+    PriorityResult::CalculatePriorityResult(priorityPolicy,MacroPlan);
     this.Close();
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def
index bae85c8..ec4051e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def
@@ -1,10 +1,14 @@
 Quintiq file version 2.0
 #parent: #root
-Method OpenChoose () id:Method_DialogChoosePriorityPolicy_OpenChoose
+Method OpenChoose (
+  String businessType
+) id:Method_DialogChoosePriorityPolicy_OpenChoose
 {
   #keys: '[414382.0.563950563]'
   Body:
   [*
     ApplicationMacroPlanner.ShowFormModal( this );
+    temp := select( GlobalOTDTable,BusinessType,bt,bt.BusinessTypeName() = businessType);
+    DataHolderBusinessType.Data( temp );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def
index f9cb868..e62cf05 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def
@@ -8,9 +8,9 @@
   {
     Body:
     [*
-      name := PriorityPolicyStringList.Text();
+      priorityPolicy := DataHolderPriorityPolicySelect.Data( );
       dlg := construct( DialogChoosePriorityPolicy );
-      dlg.CalculatePriorityResult(name);
+      dlg.CalculatePriorityResult(priorityPolicy);
       Form.Close();
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def
deleted file mode 100644
index dd31dea..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: pnlContent/DataHolderChoosePriorityPolicy
-Response OnCreated () id:Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated
-{
-  #keys: '[414382.0.563131469]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      dataList := selectuniquevalues(  MacroPlan,PriorityPolicy,p,p.Name());
-      strings := dataList.Concatenate( ";");
-      PriorityPolicyStringList.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def
deleted file mode 100644
index 956d116..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: pnlContent/DataHolderChoosePriorityPolicy
-Response OnDataChanged () id:Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged
-{
-  #keys: '[414382.0.563131545]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      dataList := selectuniquevalues(  MacroPlan,PriorityPolicy,p,p.Name());
-      strings := dataList.Concatenate( ";");
-      PriorityPolicyStringList.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DropDownListPriorityPolicy_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DropDownListPriorityPolicy_OnSelectionChanged.def
new file mode 100644
index 0000000..9c6aabd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DropDownListPriorityPolicy_OnSelectionChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlContent/DropDownListPriorityPolicy
+Response OnSelectionChanged (
+  PriorityPolicy selection
+) id:Response_pnlContent_DropDownListPriorityPolicy_OnSelectionChanged
+{
+  #keys: '[414996.0.104020395]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderPriorityPolicySelect.Data( selection );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def
index 410a038..472f48b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Component_pnlContent.def
@@ -5,17 +5,6 @@
   BaseType: 'WebPanel'
   Children:
   [
-    Component EditBusinessType
-    {
-      #keys: '[414382.0.581576821]'
-      BaseType: 'WebEditField'
-      Properties:
-      [
-        DataBinding: 'DataHolderSelectCustomerOrder.Data.BusinessType'
-        Label: '浜嬩笟閮�'
-        Taborder: 0
-      ]
-    }
     Component EditCustomerPolicy
     {
       #keys: '[414382.0.581576840]'
@@ -82,6 +71,17 @@
         Taborder: 6
       ]
     }
+    Component DropDownStringListBusinessTypeName
+    {
+      #keys: '[414996.0.103124934]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        DataBinding: 'DataHolderSelectCustomerOrder.Data.BusinessType'
+        Label: '浜嬩笟閮細'
+        Taborder: 0
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def
index 343d6f0..5d7d0d2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Method_EditCustomerOrderPriority.def
@@ -11,6 +11,8 @@
     data := shadow( selection );
     
     DataHolderSelectCustomerOrder.Data( &data );
+    businessType := select( GlobalOTDTable,BusinessType,bt,bt.BusinessTypeName() = selection.BusinessType());
+    DataHolderSelectBusinessType.Data( businessType );
     
     ApplicationMacroPlanner.ShowFormModal( this );
   *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnCreated.def
new file mode 100644
index 0000000..3e78902
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnCreated.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: pnlContent/DropDownStringListBusinessTypeName
+Response OnCreated () id:Response_pnlContent_DropDownStringListBusinessTypeName_OnCreated
+{
+  #keys: '[414996.0.104591674]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      strings := '';
+      traverse( GlobalOTDTable,BusinessType,bt ){
+        strings := strings + bt.BusinessTypeName() + ';'; 
+      }
+      if( strings.Length() <> 0 ){
+        strings := strings.SubString( 0, strings.Length() - 1 ); 
+      }
+      DropDownStringListBusinessTypeName.Strings( strings );
+      if( DataHolderSelectCustomerOrder.Data( ).BusinessType() = ''){
+        DropDownStringListBusinessTypeName.SetSelectedElementFromString( "");
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnSelectionChanged.def
new file mode 100644
index 0000000..2e2fa84
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/Response_pnlContent_DropDownStringListBusinessTypeName_OnSelectionChanged.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlContent/DropDownStringListBusinessTypeName
+Response OnSelectionChanged () id:Response_pnlContent_DropDownStringListBusinessTypeName_OnSelectionChanged
+{
+  #keys: '[414996.0.100715406]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      businessType := select( GlobalOTDTable,BusinessType,bt,bt.BusinessTypeName() = selection);
+      DataHolderSelectBusinessType.Data( businessType );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def
index ddfdb14..429064b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditCustomerOrderPriority/_ROOT_Component_DialogEditCustomerOrderPriority.def
@@ -19,6 +19,16 @@
         Taborder: 2
       ]
     }
+    Component DataHolderSelectBusinessType
+    {
+      #keys: '[414996.0.104406471]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BusinessType'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def
index c68f389..5d4b612 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def
@@ -35,6 +35,6 @@
     Orientation: 'horizontal'
     Padding: 'true'
     Style: 'footer'
-    Taborder: 1
+    Taborder: 2
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlContent.def
index d449667..543b0fd 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlContent.def
@@ -73,6 +73,6 @@
   Properties:
   [
     Padding: 'true'
-    Taborder: 0
+    Taborder: 1
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def
index 94a80fb..a87380e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def
@@ -10,6 +10,7 @@
     data := shadow( selection );
     
     DataHolderEditPriorityFactor.Data( &data);
+    DataHolderBusinessTyoeSelect.Data( selection.BusinessType());
     ApplicationMacroPlanner.ShowFormModal( this );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def
index 94a1718..6042984 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def
@@ -1,18 +1,18 @@
 Quintiq file version 2.0
 #parent: #root
 Method New (
-  MacroPlan owner,
-  String businessType
+  BusinessType owner
 ) id:Method_DialogEditPriorityFactor_New
 {
   #keys: '[414382.0.593002251]'
   Body:
   [*
     data := owner.PriorityFactor(relshadow);
-    data.BusinessType(businessType);
     
     DataHolderEditPriorityFactor.Data(&data);
     
+    DataHolderBusinessTyoeSelect.Data( owner );
+    
     NewFlag.Checked( true );
     
     ApplicationMacroPlanner.ShowFormModal( this );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
index c2a2b92..3341541 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
@@ -6,16 +6,10 @@
   DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
-    feedback := Translations::FilllingCapacity_ValidateInput();
-    checkValue := not Coefficient.Text() = '' and not PriorityFactorName.Text() = '';
-    
-    if(not checkValue ){
-      feedback := Translations::PriorityFactor_CheckNameValid();
-      editData := DataHolderEditPriorityFactor.Data();
-      checkValue := not PriorityFactor::CheckNameValid( MacroPlan,editData.BusinessType(),[Real]Coefficient.Text(),PriorityFactorName.Text(),Desc.Text());
-    }
+    checkValue := true;
     if( PriorityFactorName.Text() = ''){
       feedback := Translations::PriorityFactor_CheckNameNull();
+      checkValue := false;
     }
     return checkValue
   *]
@@ -23,9 +17,10 @@
   {
     Body:
     [*
+      businessType := DataHolderBusinessTyoeSelect.Data( );
       if( NewFlag.Checked() ){
        // New
-        repeatOne := select( MacroPlan,PriorityFactor,pf,pf.Name() = PriorityFactorName.Text());
+        repeatOne := select( businessType,PriorityFactor,pf,pf.Name() = PriorityFactorName.Text());
         if( not isnull( repeatOne )){
           WebMessageBox::Error( Translations::PriorityFactor_CheckNameValid() ); 
         }else{
@@ -34,7 +29,7 @@
       }else {
               if (EditFlag.Checked() and PriorityFactorNameCache.Text() <>PriorityFactorName.Text()){
                   // Edit
-                  repeatOne:=select(MacroPlan, PriorityFactor, pf, pf.Name() = PriorityFactorName.Text());
+                  repeatOne:=select(businessType, PriorityFactor, pf, pf.Name() = PriorityFactorName.Text());
                   if (not isnull(repeatOne)){
                       WebMessageBox::Error (Translations::PriorityFactor_CheckNameValid () );
                   }else{
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def
index c38af58..68a3133 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def
@@ -16,7 +16,17 @@
       Databinding: 'shadow[PriorityFactor]*'
       Properties:
       [
-        Taborder: 2
+        Taborder: 3
+      ]
+    }
+    Component DataHolderBusinessTyoeSelect
+    {
+      #keys: '[414996.0.103359298]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BusinessType'
+      Properties:
+      [
+        Taborder: 0
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def
index 945cb96..34e9c9a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def
@@ -1,15 +1,13 @@
 Quintiq file version 2.0
 #parent: #root
 Method New (
-  MacroPlan owner,
-  String businessType
+  BusinessType owner
 ) id:Method_DialogNewPriorityPolicy_New
 {
   #keys: '[414382.0.489725864]'
   Body:
   [*
     data := owner.PriorityPolicy(relshadow);
-    data.BusinessType(businessType);
     
     DataHolderNewPriorityPolicy.Data(&data);
     
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnOk_OnClick.def
index 9336d6d..4ecaa6d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnOk_OnClick.def
@@ -4,6 +4,11 @@
 {
   #keys: '[414382.0.489474427]'
   DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    feedback := Translations::PriorityPolicy_NullName();
+    return PriorityPolicyName.Text() <> '';
+  *]
   QuillAction
   {
     Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_OnClick.def
new file mode 100644
index 0000000..9593a9d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListBusinessType
+Response OnClick (
+  BusinessType selection
+) id:Response_ListBusinessType_OnClick
+{
+  #keys: '[414996.0.100701217]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderBusinessType.Data( selection );
+    *]
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def"
index d9814cb..e12c265 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def"
@@ -9,6 +9,16 @@
   [
     #child: ListBusinessType
     #child: PanelBusinessType
+    Component DataHolderBusinessType
+    {
+      #keys: '[414996.0.98261558]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BusinessType'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
index c543e5d..cf4e46e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
@@ -9,8 +9,8 @@
       BaseType: 'WebMenu'
       Properties:
       [
-        Taborder: 11
-        Title: '浜嬩笟閮ㄤ紭鍏堢骇璁$畻'
+        Taborder: 10
+        Title: '浜嬩笟閮ㄤ紭鍏堢骇璁$畻(鍏ㄩ儴锛�'
       ]
     }
     Component MenuEditCustomerOrderPriority
@@ -45,14 +45,14 @@
         Taborder: 13
       ]
     }
-    Component MenuSyncInterfaceData
+    Component MenuPriorityResultSingle
     {
-      #keys: '[414996.0.32330708]'
+      #keys: '[414996.0.100747833]'
       BaseType: 'WebMenu'
       Properties:
       [
-        Taborder: 10
-        Title: '鍚屾鎺ュ彛鏁版嵁鍒癈ustomer orders'
+        Taborder: 11
+        Title: '浜嬩笟閮ㄤ紭鍏堢骇璁$畻'
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResultSingle_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResultSingle_OnClick.def
new file mode 100644
index 0000000..7ce950c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResultSingle_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListSalesDemands
+Response OnClick (
+  CustomerOrder selection
+) id:Response_ListSalesDemands_MenuPriorityResultSingle_OnClick
+{
+  #keys: '[414996.0.100748099]'
+  CanBindMultiple: false
+  DefinitionID => //FormSalesDemands/ListSalesDemands/Responsedef_ListSalesDemands_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuPriorityResultSingle'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogChoosePriorityPolicy );
+      dlg.OpenChoose(selection.BusinessType());
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def
index c4f3379..b39b65a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def
@@ -10,9 +10,8 @@
   {
     Body:
     [*
-      
       dlg := construct( DialogChoosePriorityPolicy );
-      dlg.OpenChoose();
+      // dlg.OpenChoose();
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_listContextMenuSD_MenuSyncInterfaceData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_listContextMenuSD_MenuSyncInterfaceData_OnClick.def
deleted file mode 100644
index 2a411b7..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_listContextMenuSD_MenuSyncInterfaceData_OnClick.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: listContextMenuSD/MenuSyncInterfaceData
-Response OnClick () id:Response_TIANMA_JITUAN_listContextMenuSD_MenuSyncInterfaceData_OnClick
-{
-  #keys: '[414996.0.32370756]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      Global_MappingCustomOrder::CreateCustomOrder( GlobalOTDTable,MacroPlan );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def
index 5241681..2756a6a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def
@@ -11,8 +11,8 @@
       BaseType: 'WebDataExtractor'
       Properties:
       [
-        DataType: 'MacroPlan'
-        Source: 'MacroPlan'
+        DataType: 'BusinessType'
+        Source: 'DataHolderBusinessTypeSelect'
         Taborder: 0
         Transformation: 'PriorityFactor'
       ]
@@ -36,7 +36,7 @@
   ]
   Properties:
   [
-    Taborder: 2
+    Taborder: 3
   ]
   ResponseDefinitions:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactorGrading\043667.def"
similarity index 78%
rename from _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactorGrading\043667.def"
index 8f3c40c..2e2d235 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactorGrading\043667.def"
@@ -1,30 +1,30 @@
 Quintiq file version 2.0
-Component ListPriorityFactorGrading
+Component ListPriorityFactorGrading id:ListPriorityFactorGrading_667
 {
-  #keys: '[414382.0.479530865]'
+  #keys: '[414996.0.108723948]'
   BaseType: 'WebList'
   Children:
   [
     Component DataExtractorPriorityFactorGrading961
     {
-      #keys: '[414382.0.479530866]'
+      #keys: '[414996.0.108723949]'
       BaseType: 'WebDataExtractor'
       Properties:
       [
         DataType: 'PriorityFactor'
-        Source: 'DataHolderPriorityFactor'
+        Source: 'DataHolderPriorityFactorSelect'
         Taborder: 0
         Transformation: 'PriorityFactorDetail'
       ]
     }
-    #child: listActionBarPagePriorityFactorGrading
+    #child: listActionBarPagePriorityFactorGrading_1
     Component DataSetLevelPriorityFactorGrading
     {
-      #keys: '[414382.0.479530871]'
+      #keys: '[414996.0.108723951]'
       BaseType: 'WebDataSetLevel'
       Children:
       [
-        #child: listContextMenuPriorityFactorGrading
+        #child: listContextMenuPriorityFactorGrading_1
       ]
       Properties:
       [
@@ -36,13 +36,13 @@
   ]
   Properties:
   [
-    Taborder: 1
+    Taborder: 5
   ]
   ResponseDefinitions:
   [
-    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityFactorGrading_667_WebMenu_OnClick
     {
-      #keys: '[414382.0.482374475]'
+      #keys: '[414996.0.108723941]'
       Initiator: 'WebMenu'
       IsInherited: false
       ResponseType: 'OnClick'
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listActionBarPagePriorityFactorGrading\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listActionBarPagePriorityFactorGrading\0431.def"
new file mode 100644
index 0000000..b74ff01
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listActionBarPagePriorityFactorGrading\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePriorityFactorGrading id:listActionBarPagePriorityFactorGrading_1
+{
+  #keys: '[414996.0.108723950]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactorGrading\0431.def"
similarity index 74%
rename from _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactorGrading\0431.def"
index dce2b3d..225c2c1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactorGrading\0431.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component listContextMenuPriorityFactorGrading
+Component listContextMenuPriorityFactorGrading id:listContextMenuPriorityFactorGrading_1
 {
-  #keys: '[414382.0.479530873]'
+  #keys: '[414996.0.108723952]'
   BaseType: 'listContextMenu'
   Children:
   [
     Component MenuEditPriorityFactorGrading
     {
-      #keys: '[414996.0.32342387]'
+      #keys: '[414996.0.108723953]'
       BaseType: 'WebMenu'
       Properties:
       [
@@ -18,7 +18,7 @@
     }
     Component MenuDeletePriorityFactorGrading
     {
-      #keys: '[414996.0.32342398]'
+      #keys: '[414996.0.108723954]'
       BaseType: 'WebMenu'
       Properties:
       [
@@ -29,7 +29,7 @@
     }
     Component MenuNewPriorityFactorGrading
     {
-      #keys: '[414996.0.40230778]'
+      #keys: '[414996.0.108723955]'
       BaseType: 'WebMenu'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderBusinessTypeSelect_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderBusinessTypeSelect_OnDataChanged.def
new file mode 100644
index 0000000..bc7e076
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderBusinessTypeSelect_OnDataChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: DataHolderBusinessTypeSelect
+Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderBusinessTypeSelect_OnDataChanged
+{
+  #keys: '[414996.0.110940955]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderPriorityFactorSelect.Data( null( PriorityFactor ));
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def
deleted file mode 100644
index 0ba2149..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def
+++ /dev/null
@@ -1,21 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityFactorBusinessType
-Response OnCreated () id:Response_FormPriorityFactor_DataHolderPriorityFactorBusinessType_OnCreated
-{
-  #keys: '[414382.0.539235155]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      //businessTypeList := selectset( GlobalOTDTable,BusinessType,b,true);
-      //this.Data(&businessTypeList);
-      
-      list := this.Data();
-      strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
-      DropDownStringListBusinessType.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def
deleted file mode 100644
index c492ed8..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityFactorBusinessType
-Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderPriorityFactorBusinessType_OnDataChanged
-{
-  #keys: '[414382.0.539235291]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      //businessTypeList := selectset( GlobalOTDTable,BusinessType,b,true);
-      //this.Data(&businessTypeList);
-      //strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
-      //DropDownStringListBusinessType.Strings(strings);
-      list := this.Data();
-      strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
-      DropDownStringListBusinessType.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownListBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownListBusinessType_OnSelectionChanged.def
new file mode 100644
index 0000000..f4d80ea
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownListBusinessType_OnSelectionChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DropDownListBusinessType
+Response OnSelectionChanged (
+  BusinessType selection
+) id:Response_FormPriorityFactor_DropDownListBusinessType_OnSelectionChanged
+{
+  #keys: '[414996.0.111638798]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderBusinessTypeSelect.Data( selection );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuDeletePriorityFactorGrading_OnCli.def
similarity index 62%
rename from _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuDeletePriorityFactorGrading_OnCli.def
index 9470f26..de20f98 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuDeletePriorityFactorGrading_OnCli.def
@@ -1,12 +1,12 @@
 Quintiq file version 2.0
-#parent: ListPriorityFactorGrading
+#parent: ListPriorityFactorGrading_667
 Response OnClick (
   structured[PriorityFactorDetail] selction
-) id:Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick
+) id:Response_ListPriorityFactorGrading_667_MenuDeletePriorityFactorGrading_OnClick
 {
-  #keys: '[414996.0.36022233]'
+  #keys: '[414996.0.108723946]'
   CanBindMultiple: false
-  DefinitionID => /ListPriorityFactorGrading/Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
+  DefinitionID => /ListPriorityFactorGrading_667/Responsedef_ListPriorityFactorGrading_667_WebMenu_OnClick
   GroupServerCalls: true
   Initiator: 'MenuDeletePriorityFactorGrading'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuEditPriorityFactorGrading_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuEditPriorityFactorGrading_OnClick.def
new file mode 100644
index 0000000..fcc0838
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuEditPriorityFactorGrading_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactorGrading_667
+Response OnClick (
+  PriorityFactorDetail selction
+) id:Response_ListPriorityFactorGrading_667_MenuEditPriorityFactorGrading_OnClick
+{
+  #keys: '[414996.0.108723945]'
+  CanBindMultiple: false
+  DefinitionID => /ListPriorityFactorGrading_667/Responsedef_ListPriorityFactorGrading_667_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuEditPriorityFactorGrading'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogEditPriorityFactorDetail );
+      dlg.Edit( selction );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuNewPriorityFactorGrading_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuNewPriorityFactorGrading_OnClick.def
new file mode 100644
index 0000000..d1ed03f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_MenuNewPriorityFactorGrading_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactorGrading_667
+Response OnClick () id:Response_ListPriorityFactorGrading_667_MenuNewPriorityFactorGrading_OnClick
+{
+  #keys: '[414996.0.108723944]'
+  CanBindMultiple: false
+  DefinitionID => /ListPriorityFactorGrading_667/Responsedef_ListPriorityFactorGrading_667_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuNewPriorityFactorGrading'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogEditPriorityFactorDetail );
+      dlg.New( DataHolderPriorityFactorSelect.Data( ));
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_OnDoubleClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_OnDoubleClick.def
similarity index 71%
rename from _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_OnDoubleClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_OnDoubleClick.def
index b28abf3..db5daa0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_OnDoubleClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactorGrading_667_OnDoubleClick.def
@@ -1,10 +1,10 @@
 Quintiq file version 2.0
-#parent: ListPriorityFactorGrading
+#parent: ListPriorityFactorGrading_667
 Response OnDoubleClick (
   PriorityFactorDetail selection
-) id:Response_ListPriorityFactorGrading_OnDoubleClick
+) id:Response_ListPriorityFactorGrading_667_OnDoubleClick
 {
-  #keys: '[414996.0.62960783]'
+  #keys: '[414996.0.108723942]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebList_OnDoubleClick'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def
index 83c36b1..44ab801 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def
@@ -11,7 +11,10 @@
     Body:
     [*
       // 鍒濆鍖栦紭鍏堢骇鍥犲瓙
-      PriorityFactor::InitData( MacroPlan);
+      businessType := DataHolderBusinessTypeSelect.Data( );
+      if( not isnull( businessType )){
+        PriorityFactor::InitData( businessType );
+      }
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def
index bf6db20..fd289f0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def
@@ -9,12 +9,18 @@
   DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
   GroupServerCalls: true
   Initiator: 'MenuNewPriorityFactor'
+  Precondition:
+  [*
+    busenessType := DataHolderBusinessTypeSelect.Data( );
+    return not isnull( busenessType );
+  *]
   QuillAction
   {
     Body:
     [*
+      
       dlg := construct( DialogEditPriorityFactor );
-      dlg.New( MacroPlan,"" );
+      dlg.New( DataHolderBusinessTypeSelect.Data( ) );
     *]
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def
index 564a038..66b9464 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def
@@ -6,12 +6,17 @@
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebMenu_OnClick'
   GroupServerCalls: true
+  Precondition:
+  [*
+    businessType := DataHolderBusinessTypeSelect.Data( );
+    return not isnull( businessType );
+  *]
   QuillAction
   {
     Body:
     [*
       dlg := construct( DialogEditPriorityFactor );
-      dlg.New( MacroPlan,"");
+      dlg.New( DataHolderBusinessTypeSelect.Data( ));
     *]
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
index 5cd684b..28ba152 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -14,41 +14,29 @@
       Databinding: 'PriorityFactor'
       Properties:
       [
-        Taborder: 1
-      ]
-    }
-    Component DropDownStringListBusinessType
-    {
-      #keys: '[414382.0.461144262]'
-      BaseType: 'WebDropDownStringList'
-      Properties:
-      [
-        Label: '浜嬩笟閮�:'
-        Taborder: 0
-        Visible: false
+        Taborder: 2
       ]
     }
     #child: ListPriorityFactor
-    Component DataHolderPriorityFactorDetailsSelect
+    Component DataHolderBusinessTypeSelect
     {
-      #keys: '[414382.0.482103344]'
+      #keys: '[414996.0.98260335]'
       BaseType: 'WebDataHolder'
-      Databinding: 'structured[PriorityFactorDetail]*'
+      Databinding: 'BusinessType'
       Properties:
       [
-        Taborder: 3
+        Taborder: 1
       ]
     }
-    Component DataHolderPriorityFactorBusinessType
+    Component DropDownListBusinessType
     {
-      #keys: '[414382.0.539205233]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'structured[BusinessType]*'
+      #keys: '[414996.0.111638646]'
+      BaseType: 'WebDropDownList'
       Children:
       [
-        Component DataExtractorPriorityFactorBusinessType
+        Component DataExtractorBusinessType
         {
-          #keys: '[414382.0.584060499]'
+          #keys: '[414996.0.111638648]'
           BaseType: 'WebDataExtractor'
           Properties:
           [
@@ -61,7 +49,21 @@
       ]
       Properties:
       [
+        DisplayField: 'BusinessTypeName'
+        Label: '浜嬩笟閮細'
+        Taborder: 0
+      ]
+    }
+    #child: ListPriorityFactorGrading_667
+    Component LabelPriorityFactor
+    {
+      #keys: '[414996.0.110901253]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '浼樺厛绾у洜瀛愮粏鍒嗭細'
         Taborder: 4
+        Text: ' '
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listActionBarPagePriorityFactorGrading.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listActionBarPagePriorityFactorGrading.def
deleted file mode 100644
index 8253b39..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listActionBarPagePriorityFactorGrading.def
+++ /dev/null
@@ -1,10 +0,0 @@
-Quintiq file version 2.0
-Component listActionBarPagePriorityFactorGrading
-{
-  #keys: '[414382.0.479530868]'
-  BaseType: 'listActionBarPage'
-  Properties:
-  [
-    Taborder: 1
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEditPriorityFactorGrading_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEditPriorityFactorGrading_OnClick.def
deleted file mode 100644
index 8128f71..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEditPriorityFactorGrading_OnClick.def
+++ /dev/null
@@ -1,20 +0,0 @@
-Quintiq file version 2.0
-#parent: ListPriorityFactorGrading
-Response OnClick (
-  PriorityFactorDetail selction
-) id:Response_ListPriorityFactorGrading_MenuEditPriorityFactorGrading_OnClick
-{
-  #keys: '[414996.0.32393877]'
-  CanBindMultiple: false
-  DefinitionID => /ListPriorityFactorGrading/Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
-  GroupServerCalls: true
-  Initiator: 'MenuEditPriorityFactorGrading'
-  QuillAction
-  {
-    Body:
-    [*
-      dlg := construct( DialogEditPriorityFactorDetail );
-      dlg.Edit( selction );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuNewPriorityFactorGrading_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuNewPriorityFactorGrading_OnClick.def
deleted file mode 100644
index 2a27308..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuNewPriorityFactorGrading_OnClick.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: ListPriorityFactorGrading
-Response OnClick () id:Response_ListPriorityFactorGrading_MenuNewPriorityFactorGrading_OnClick
-{
-  #keys: '[414996.0.42410722]'
-  CanBindMultiple: false
-  DefinitionID => /ListPriorityFactorGrading/Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
-  GroupServerCalls: true
-  Initiator: 'MenuNewPriorityFactorGrading'
-  QuillAction
-  {
-    Body:
-    [*
-      dlg := construct( DialogEditPriorityFactorDetail );
-      dlg.New( DataHolderPriorityFactor.Data( ));
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
deleted file mode 100644
index 3764fd4..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
+++ /dev/null
@@ -1,40 +0,0 @@
-Quintiq file version 2.0
-#root
-#parent: MacroPlannerWebApp
-OrphanComponent FormPriorityFactorGrading
-{
-  #keys: '[414382.0.447270082]'
-  BaseType: 'WebForm'
-  Children:
-  [
-    #child: ListPriorityFactorGrading
-    Component DataHolderPriorityFactor
-    {
-      #keys: '[414996.0.35059952]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'PriorityFactor'
-      Children:
-      [
-        Component DataExtractorPriorityFactor
-        {
-          #keys: '[414996.0.35059968]'
-          BaseType: 'WebDataExtractor'
-          Properties:
-          [
-            DataType: 'PriorityFactor'
-            Source: 'FormPriorityFactor.DataHolderPriorityFactorSelect'
-            Taborder: 0
-          ]
-        }
-      ]
-      Properties:
-      [
-        Taborder: 0
-      ]
-    }
-  ]
-  Properties:
-  [
-    Title: '浼樺厛绾у洜瀛愮粏鍒�'
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
index 33cfc53..75693ed 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
@@ -11,10 +11,10 @@
       BaseType: 'WebDataExtractor'
       Properties:
       [
-        DataType: 'structured[PriorityPolicy]'
-        Source: 'DataHolderPriorityPolicyShowList'
+        DataType: 'BusinessType'
+        Source: 'DataHolderBusinessTypeSelect'
         Taborder: 0
-        Transformation: 'Elements'
+        Transformation: 'PriorityPolicy'
       ]
     }
     #child: listActionBarPagePriorityPolicy
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
index 62b4cb9..58caf17 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
@@ -11,6 +11,7 @@
       BaseType: 'WebLabel'
       Properties:
       [
+        DataBinding: 'DataHolderPriorityFactorSelect.Data.Coefficient'
         Label: '鍥犲瓙鐨勭郴鏁�'
         Taborder: 0
       ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
index 297e8db..f72c836 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
@@ -11,6 +11,7 @@
       BaseType: 'WebLabel'
       Properties:
       [
+        DataBinding: 'DataHolderEditPriorityPolicy.Data.Name'
         Label: '浼樺厛绾х瓥鐣ュ悕绉�:'
         Taborder: 0
       ]
@@ -21,6 +22,7 @@
       BaseType: 'WebLabel'
       Properties:
       [
+        DataBinding: 'DataHolderEditPriorityPolicy.Data.Formula'
         Label: '鍏紡:'
         Taborder: 1
       ]
@@ -31,6 +33,7 @@
       BaseType: 'WebLabel'
       Properties:
       [
+        DataBinding: 'DataHolderEditPriorityPolicy.Data.CalculateValue'
         Label: '璁$畻鍊�:'
         Taborder: 2
       ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
index 571a83c..379fc05 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
@@ -12,7 +12,7 @@
       Properties:
       [
         Label: '娣诲姞'
-        Taborder: 1
+        Taborder: 2
       ]
     }
     Component Buttonplus
@@ -22,7 +22,7 @@
       Properties:
       [
         Label: '+'
-        Taborder: 2
+        Taborder: 3
       ]
     }
     Component ButtonSubtract
@@ -32,7 +32,7 @@
       Properties:
       [
         Label: '-'
-        Taborder: 3
+        Taborder: 4
       ]
     }
     Component ButtonMultiply
@@ -42,7 +42,7 @@
       Properties:
       [
         Label: 'x'
-        Taborder: 4
+        Taborder: 5
       ]
     }
     Component ButtonDivide
@@ -52,7 +52,7 @@
       Properties:
       [
         Label: '/'
-        Taborder: 5
+        Taborder: 6
       ]
     }
     Component ButtonLeftParenthesis
@@ -62,7 +62,7 @@
       Properties:
       [
         Label: '('
-        Taborder: 6
+        Taborder: 7
       ]
     }
     Component ButtonRightParenthesis
@@ -72,7 +72,7 @@
       Properties:
       [
         Label: ')'
-        Taborder: 7
+        Taborder: 8
       ]
     }
     Component ButtonRollBack
@@ -82,19 +82,45 @@
       Properties:
       [
         Label: '<-'
-        Taborder: 8
+        Taborder: 9
       ]
     }
-    Component DropDownStringList
+    Component DropDownListPriorityFactor
     {
-      #keys: '[414382.0.501480353]'
-      BaseType: 'WebDropDownStringList'
+      #keys: '[414996.0.100761502]'
+      BaseType: 'WebDropDownList'
+      Children:
+      [
+        Component DataExtractorPriorityPolicyOperationButton
+        {
+          #keys: '[414996.0.100761504]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'BusinessType'
+            Source: 'DataHolderBusinessTypeSelect'
+            Taborder: 0
+            Transformation: 'PriorityFactor'
+          ]
+        }
+      ]
       Properties:
       [
+        DisplayField: 'Name'
         Label: '浼樺厛绾у洜瀛�'
         Taborder: 0
       ]
     }
+    Component DataHolderPriorityFactorSelect
+    {
+      #keys: '[414996.0.104017667]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PriorityFactor'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def
index 594c493..ac47298 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def
@@ -38,6 +38,16 @@
         Title: '鍒犻櫎'
       ]
     }
+    Component MenuDefault
+    {
+      #keys: '[414996.0.112126742]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Taborder: 6
+        Title: '璁句负榛樿绛栫暐'
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderBusinessTypeSelect_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderBusinessTypeSelect_OnDataChanged.def
new file mode 100644
index 0000000..a1c0461
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderBusinessTypeSelect_OnDataChanged.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: DataHolderBusinessTypeSelect
+Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderBusinessTypeSelect_OnDataChanged
+{
+  #keys: '[414996.0.112168439]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def
deleted file mode 100644
index 09cb86c..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnCreated.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicyBusinessType
-Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyBusinessType_OnCreated
-{
-  #keys: '[414382.0.585796031]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      list := this.Data();
-      strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
-      PriorityPolicyBusinessType.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def
deleted file mode 100644
index 3aa1c62..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyBusinessType_OnDataChanged.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicyBusinessType
-Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyBusinessType_OnDataChanged
-{
-  #keys: '[414382.0.585796110]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      list := this.Data();
-      strings := selectuniquevalues( list,Elements,e,e.BusinessTypeName()).Concatenate( ";" );
-      PriorityPolicyBusinessType.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def
deleted file mode 100644
index 2ec5ac7..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnCreated.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicyFactor
-Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyFactor_OnCreated
-{
-  #keys: '[414382.0.586001511]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      list := this.Data();
-      strings := selectuniquevalues( list,Elements,e,e.Name()).Concatenate( ";" );
-      DropDownStringList.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def
deleted file mode 100644
index 93d0f9c..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicyFactor_OnDataChanged.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicyFactor
-Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicyFactor_OnDataChanged
-{
-  #keys: '[414382.0.585931640]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      list := this.Data();
-      strings := selectuniquevalues( list,Elements,e,e.Name()).Concatenate( ";" );
-      DropDownStringList.Strings(strings);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def
deleted file mode 100644
index 237513d..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicy
-Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnCreated
-{
-  #keys: '[414382.0.594152096]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      data := this.Data();
-      businessType := PriorityPolicyBusinessType.Text();
-      list := selectset( data,Elements,e,e.BusinessType() = businessType);
-      DataHolderPriorityPolicyShowList.Data(&list);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
deleted file mode 100644
index 3388972..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: DataHolderPriorityPolicy
-Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnDataChanged
-{
-  #keys: '[414382.0.595379026]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      data := this.Data();
-      businessType := PriorityPolicyBusinessType.Text();
-      list := selectset( data,Elements,e,e.BusinessType() = businessType);
-      DataHolderPriorityPolicyShowList.Data(&list);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DropDownListBusinessType_OnSelectionChanged\043144.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DropDownListBusinessType_OnSelectionChanged\043144.def"
new file mode 100644
index 0000000..7d23742
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DropDownListBusinessType_OnSelectionChanged\043144.def"
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: DropDownListBusinessType_640
+Response OnSelectionChanged (
+  BusinessType selection
+) id:Response_FormPriorityFactor_DropDownListBusinessType_OnSelectionChanged_144
+{
+  #keys: '[414996.0.108713440]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderBusinessTypeSelect.Data( selection );
+      
+      DataHolderEditPriorityPolicy.Data( shadow(null( PriorityPolicy )))
+      DataHolderPriorityFactorSelect.Data( null( PriorityFactor ));
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDefault_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDefault_OnClick.def
new file mode 100644
index 0000000..5413ec2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDefault_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListPriorityPolicy
+Response OnClick (
+  PriorityPolicy selection
+) id:Response_ListPriorityPolicy_MenuDefault_OnClick
+{
+  #keys: '[414996.0.112126800]'
+  CanBindMultiple: false
+  DefinitionID => /ListPriorityPolicy/Responsedef_ListPriorityPolicy_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuDefault'
+  QuillAction
+  {
+    Body:
+    [*
+      selection.SetDefault();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
index 96d7545..5517113 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
@@ -12,7 +12,6 @@
   {
     Body:
     [*
-      
       selection.Delete();
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
index e5eb7a8..8f6ee29 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
@@ -13,15 +13,9 @@
     Body:
     [*
       dlg := construct( DialogNewPriorityPolicy );
-      businessType := PriorityPolicyBusinessType.Text();
       dlg.Edit( selection);
       
       PanelPriorityPolicyOperationName.Text(selection.Name());
-      
-      businessType := PriorityPolicyBusinessType.Text();
-      str := PriorityFactor::GetNameList( MacroPlan, businessType);
-      DropDownStringList.Strings(str);
-      
       LabelFormula.Text(selection.Formula());
       LabelCalculateValue.Text(selection.CalculateValue());
       
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def
index c71feb9..4b7da01 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def
@@ -6,13 +6,17 @@
   CanBindMultiple: false
   DefinitionID => /ListPriorityPolicy/Responsedef_ListPriorityPolicy_WebMenu_OnClick
   Initiator: 'MenuNew'
+  Precondition:
+  [*
+    businessType :=  DataHolderBusinessTypeSelect.Data( );
+    return not isnull( businessType );
+  *]
   QuillAction
   {
     Body:
     [*
       dlg := construct( DialogNewPriorityPolicy );
-      businessType := PriorityPolicyBusinessType.Text();
-      dlg.New( MacroPlan, businessType);
+      dlg.New( DataHolderBusinessTypeSelect.Data( ));
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
index 09c165d..9ffcd2e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
@@ -11,17 +11,8 @@
   {
     Body:
     [*
-      PanelPriorityPolicyOperationName.Text(selection.Name());
-      
-      businessType := PriorityPolicyBusinessType.Text();
-      str := PriorityFactor::GetNameList( MacroPlan, businessType);
-      DropDownStringList.Strings(str);
-      
-      LabelFormula.Text(selection.Formula());
-      LabelCalculateValue.Text(selection.CalculateValue());
-      
       data := shadow( selection );
-      DataHolderEditPriorityPolicy.Data( &data );
+      DataHolderEditPriorityPolicy.Data(&data);
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
index ed5c423..6fe7889 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
@@ -16,9 +16,10 @@
   {
     Body:
     [*
-      DataHolderEditPriorityPolicy.Data().Formula(LabelFormula.Text());
-      DataHolderEditPriorityPolicy.Data().CalculateValue(LabelCalculateValue.Text());
-      DataHolderEditPriorityPolicy.Data().Commit();
+      priorityPolicy :=  DataHolderEditPriorityPolicy.Data();
+      priorityPolicy.Formula(LabelFormula.Text());
+      priorityPolicy.CalculateValue(LabelCalculateValue.Text());
+      priorityPolicy.Commit();
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
index 466bd70..8ffa844 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
@@ -11,10 +11,9 @@
     feedback := "璇峰厛閫夋嫨涓�鏉′紭鍏堢骇绛栫暐鍚庡啀杩涜缂栬緫鍏紡";
     check := PanelPriorityPolicyOperationName.Text() = "";
     
-    if( not check)
-    {
+    if( not check){
         // 鍒ゆ柇璇ヤ紭鍏堢骇鍥犲瓙鏄惁宸茬粡琚�夋嫨
-        check := LabelFormula.Text() ~ DropDownStringList.Text();
+        check := LabelFormula.Text() ~ DataHolderPriorityFactorSelect.Data().Name();
         feedback := "璇ヤ紭鍏堢骇鍥犲瓙宸茶閫夋嫨."
     }
     
@@ -25,12 +24,12 @@
     Body:
     [*
       coefficient := LabelPriorityPolicyCoefficient.Text();
-      text := DropDownStringList.Text();
+      text := DataHolderPriorityFactorSelect.Data().Name();
       
       formulaText := LabelFormula.Text() + text;
       LabelFormula.Text(formulaText);
       
-      textCalculate := DropDownStringList.Text() + "[" + coefficient + "*L]";
+      textCalculate := text + "[" + coefficient + "*L]";
       calculateText := LabelCalculateValue.Text() + textCalculate;
       LabelCalculateValue.Text(calculateText);
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
index d54ce72..72e7f88 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
@@ -16,11 +16,11 @@
   {
     Body:
     [*
-      businessType := PriorityPolicyBusinessType.Text();
-      formulaText := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelFormula.Text());
+      businessType := DataHolderBusinessTypeSelect.Data( );
+      formulaText := PriorityPolicy::RollBackStr( businessType,LabelFormula.Text());
       LabelFormula.Text(formulaText);
       
-      calculateTest := PriorityPolicy::RollBackCalcStr( MacroPlan,businessType,LabelCalculateValue.Text());
+      calculateTest := PriorityPolicy::RollBackCalcStr(businessType,LabelCalculateValue.Text());
       LabelCalculateValue.Text(calculateTest);
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownListPriorityFactor_OnSel.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownListPriorityFactor_OnSel.def
new file mode 100644
index 0000000..a2a54c9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownListPriorityFactor_OnSel.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/DropDownListPriorityFactor
+Response OnSelectionChanged (
+  PriorityFactor selection
+) id:Response_PanelPriorityPolicyOperationButton_DropDownListPriorityFactor_OnSelectionChanged
+{
+  #keys: '[414996.0.103947279]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderPriorityFactorSelect.Data( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def
deleted file mode 100644
index 992b235..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelPriorityPolicyOperationButton/DropDownStringList
-Response OnCreated () id:Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated
-{
-  #keys: '[414382.0.539822108]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      //strs := PriorityFactor::GetNameList( MacroPlan,DropDownStringList.Text());
-      //this.Strings(strs);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
deleted file mode 100644
index 9fc4b38..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelPriorityPolicyOperationButton/DropDownStringList
-Response OnSelectionChanged () id:Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionChanged
-{
-  #keys: '[414382.0.507827790]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      businessType := PriorityPolicyBusinessType.Text();
-      coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
-      LabelPriorityPolicyCoefficient.Text([String]coefficient);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
deleted file mode 100644
index ff9a42e..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
+++ /dev/null
@@ -1,20 +0,0 @@
-Quintiq file version 2.0
-#parent: PriorityPolicyBusinessType
-Response OnCreated () id:Response_FormPriorityPolicy_PriorityPolicyBusinessType_OnCreated
-{
-  #keys: '[414382.0.486330568]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      strings := BusinessType::GetScenarioNamesStr( GlobalOTDTable );
-      this.Strings(strings);
-      
-      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
-      DataHolderPriorityPolicyShowList.Data(&list);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
deleted file mode 100644
index a5937da..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: PriorityPolicyBusinessType
-Response OnSelectionChanged () id:Response_FormPriorityPolicy_PriorityPolicyBusinessType_OnSelectionChanged
-{
-  #keys: '[414382.0.486330569]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
-  QuillAction
-  {
-    Body:
-    [*
-      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
-      DataHolderPriorityPolicyShowList.Data(&list);
-      
-      PanelPriorityPolicyOperationName.Text("");
-      LabelFormula.Text("");
-      LabelCalculateValue.Text("");
-      data := shadow( null( PriorityPolicy ) );
-      DataHolderEditPriorityPolicy.Data( &data );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
index 12068c1..9ac805f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
@@ -7,63 +7,37 @@
   BaseType: 'WebForm'
   Children:
   [
-    Component PriorityPolicyBusinessType
+    #child: ListPriorityPolicy
+    #child: PanelPriorityPolicyOperation
+    Component DataHolderBusinessTypeSelect
     {
-      #keys: '[414382.0.486330570]'
-      BaseType: 'WebDropDownStringList'
+      #keys: '[414382.0.585736261]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BusinessType'
       Properties:
       [
-        Label: '浜嬩笟閮�:'
-        Taborder: 0
+        Taborder: 1
       ]
     }
-    Component DataHolderPriorityPolicy
+    Component DataHolderEditPriorityPolicy
     {
-      #keys: '[414382.0.487792124]'
+      #keys: '[414996.0.100743970]'
       BaseType: 'WebDataHolder'
-      Databinding: 'structured[PriorityPolicy]*'
-      Children:
-      [
-        Component DataExtractorPriorityPolicy216
-        {
-          #keys: '[414382.0.593061574]'
-          BaseType: 'WebDataExtractor'
-          Properties:
-          [
-            DataType: 'MacroPlan'
-            Source: 'MacroPlan'
-            Taborder: 0
-            Transformation: 'PriorityPolicy'
-          ]
-        }
-      ]
+      Databinding: 'shadow[PriorityPolicy]*'
       Properties:
       [
         Taborder: 2
       ]
     }
-    #child: ListPriorityPolicy
-    #child: PanelPriorityPolicyOperation
-    Component DataHolderEditPriorityPolicy
+    Component DropDownListBusinessType id:DropDownListBusinessType_640
     {
-      #keys: '[414382.0.505995334]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'shadow[PriorityPolicy]*'
-      Properties:
-      [
-        Taborder: 5
-      ]
-    }
-    Component DataHolderPriorityPolicyBusinessType
-    {
-      #keys: '[414382.0.585736261]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'structured[BusinessType]*'
+      #keys: '[414996.0.108713442]'
+      BaseType: 'WebDropDownList'
       Children:
       [
-        Component DataExtractorPriorityPolicyBusinessType
+        Component DataExtractorBusinessType id:DataExtractorBusinessType_582
         {
-          #keys: '[414382.0.585207663]'
+          #keys: '[414996.0.108713443]'
           BaseType: 'WebDataExtractor'
           Properties:
           [
@@ -76,42 +50,9 @@
       ]
       Properties:
       [
-        Taborder: 6
-      ]
-    }
-    Component DataHolderPriorityPolicyFactor
-    {
-      #keys: '[414382.0.585208237]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'structured[PriorityFactor]*'
-      Children:
-      [
-        Component DataExtractorPriorityPolicyFactor
-        {
-          #keys: '[414382.0.585705356]'
-          BaseType: 'WebDataExtractor'
-          Properties:
-          [
-            DataType: 'MacroPlan'
-            Source: 'MacroPlan'
-            Taborder: 0
-            Transformation: 'PriorityFactor'
-          ]
-        }
-      ]
-      Properties:
-      [
-        Taborder: 7
-      ]
-    }
-    Component DataHolderPriorityPolicyShowList
-    {
-      #keys: '[414382.0.593062135]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'structured[PriorityPolicy]*'
-      Properties:
-      [
-        Taborder: 1
+        DisplayField: 'BusinessTypeName'
+        Label: '浜嬩笟閮細'
+        Taborder: 0
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def
index cb600ee..853732f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def
@@ -14,7 +14,7 @@
         DataType: 'MacroPlan'
         Source: 'MacroPlan'
         Taborder: 0
-        Transformation: 'PriorityResult'
+        Transformation: 'SalesDemand.astype(CustomerOrder).PriorityResult'
       ]
     }
     #child: listActionBarPagePriorityResult
@@ -28,7 +28,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerOrder.PriorityName","title":"浼樺厛绾�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerOrder.PriorityName"}}]'
         ContextMenu: 'listContextMenuPriorityResult'
         Taborder: 2
       ]
@@ -38,4 +38,22 @@
   [
     Taborder: 0
   ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityResult_WebMenu_OnClick
+    {
+      #keys: '[414996.0.110950623]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[217.0.8298830]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
 }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def"
index d8d93f4..8d9352d 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def"
@@ -42,5 +42,6 @@
   [
     Taborder: 1
     Title: '浼樺厛绾х粨鏋滄槑缁�'
+    Visible: false
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def
index 33df24f..ef7a5a6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def
@@ -3,6 +3,41 @@
 {
   #keys: '[414382.0.506312202]'
   BaseType: 'listContextMenu'
+  Children:
+  [
+    Component MenuPriorityResultUrgentPin
+    {
+      #keys: '[414996.0.106332966]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Description: 'Urgent pin '
+        Taborder: 3
+        Title: '绱ф�ョ疆椤�'
+      ]
+    }
+    Component MenuPriorityResultSingle id:MenuPriorityResultSingle_265
+    {
+      #keys: '[414996.0.108722831]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Taborder: 4
+        Title: '浼樺厛绾х瓥鐣�'
+      ]
+    }
+    Component MenuGetCustomerOrder
+    {
+      #keys: '[414996.0.115030568]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Description: 'Urgent pin '
+        Taborder: 5
+        Title: '鑾峰彇璁㈠崟鏁版嵁'
+      ]
+    }
+  ]
   Properties:
   [
     Taborder: 0
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuGetCustomerOrder_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuGetCustomerOrder_OnClick.def
new file mode 100644
index 0000000..5761fca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuGetCustomerOrder_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: ListPriorityResult
+Response OnClick () id:Response_ListPriorityResult_MenuGetCustomerOrder_OnClick
+{
+  #keys: '[414996.0.113920515]'
+  CanBindMultiple: false
+  DefinitionID => /ListPriorityResult/Responsedef_ListPriorityResult_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuGetCustomerOrder'
+  QuillAction
+  {
+    Body:
+    [*
+      traverse( MacroPlan,SalesDemand.astype( CustomerOrder ),co){
+         defaultPriorityPolicy := select( GlobalOTDTable,BusinessType.PriorityPolicy,pp,pp.BusinessType().BusinessTypeName() = co.BusinessType() and pp.isDefault() );
+         if( not isnull( defaultPriorityPolicy )){
+           
+         }
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultSingle_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultSingle_OnClick.def
new file mode 100644
index 0000000..16e7bcf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultSingle_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListPriorityResult
+Response OnClick (
+  PriorityResult selection
+) id:Response_ListPriorityResult_MenuPriorityResultSingle_OnClick
+{
+  #keys: '[414996.0.108722987]'
+  CanBindMultiple: false
+  DefinitionID => /ListPriorityResult/Responsedef_ListPriorityResult_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuPriorityResultSingle'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogChoosePriorityPolicy );
+      dlg.OpenChoose(selection.CustomerOrder().BusinessType());
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultUrgentPin_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultUrgentPin_OnClick.def
new file mode 100644
index 0000000..a444091
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_MenuPriorityResultUrgentPin_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: ListPriorityResult
+Response OnClick (
+  PriorityResult selection
+) id:Response_ListPriorityResult_MenuPriorityResultUrgentPin_OnClick
+{
+  #keys: '[414996.0.110950641]'
+  CanBindMultiple: false
+  DefinitionID => /ListPriorityResult/Responsedef_ListPriorityResult_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuPriorityResultUrgentPin'
+  QuillAction
+  {
+    Body:
+    [*
+      flag := WebMessageBox::Question( "纭绱ф�ユ寚瀹氳闇�姹傚悧锛�","Yes|No");
+      if( flag = 0 ){
+         selection.OldPriorityName( selection.CustomerOrder().PriorityName());
+         selection.CustomerOrder().PriorityName( [String]11 );
+         selection.Point( 11 );
+         WebMessageBox::Question( "鎴愬姛锛�","Yes");
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw b/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw
index f338cc4..67d65a0 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw
@@ -14,8 +14,8 @@
           mode: 'open'
           rowPosition: 1
           rowSpan: 11
-          columnPosition: 9
-          columnSpan: 4
+          columnPosition: 1
+          columnSpan: 2
         }
         components
         {
@@ -65,10 +65,10 @@
         layout
         {
           mode: 'open'
-          rowPosition: 13
-          rowSpan: 11
+          rowPosition: 12
+          rowSpan: 13
           columnPosition: 1
-          columnSpan: 4
+          columnSpan: 8
         }
         components
         {
@@ -409,9 +409,9 @@
         {
           mode: 'open'
           rowPosition: 1
-          rowSpan: 12
-          columnPosition: 1
-          columnSpan: 4
+          rowSpan: 11
+          columnPosition: 3
+          columnSpan: 3
         }
         components
         {
@@ -461,8 +461,8 @@
           mode: 'open'
           rowPosition: 1
           rowSpan: 11
-          columnPosition: 5
-          columnSpan: 4
+          columnPosition: 6
+          columnSpan: 3
         }
         components
         {
@@ -510,10 +510,10 @@
         layout
         {
           mode: 'open'
-          rowPosition: 12
-          rowSpan: 14
-          columnPosition: 5
-          columnSpan: 7
+          rowPosition: 1
+          rowSpan: 19
+          columnPosition: 9
+          columnSpan: 6
         }
         components
         {
@@ -539,7 +539,7 @@
               dataType: 'string'
               index: 1
               subtotals: ''
-              width: 433
+              width: 214
             }
             column_CalculateValue
             {
@@ -548,7 +548,7 @@
               dataType: 'string'
               index: 2
               subtotals: ''
-              width: 644
+              width: 315
             }
             column_Desc
             {
@@ -578,10 +578,10 @@
     userconfigurableinformation
     {
     }
-    index: 0
     image: ''
     page: ''
     group: ''
+    index: 0
     description: ''
   }
   formatversion: 2

--
Gitblit v1.9.3