xiaoding721
2023-11-07 a081fef1222f0df3bacf3f4eb93f7bc070441ad4
添加优先级因子新增和删除方法
已重命名3个文件
已添加12个文件
已修改23个文件
已删除1个文件
2747 ■■■■ 文件已修改
_Main/BL/Relations/Relation_PriorityFactorDetail_PriorityFactor_PriorityFactor_PriorityFactorDe.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Flag/_ROOT_Type_Flag.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/Method_CreatePrioitifyFacotrDetail.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/_ROOT_Type_PriorityFactorDetail.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_ClickBtnOK.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_ClickBtnOK.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_Edit.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_New.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/_ROOT_Component_DialogEditPriorityFactorDetail.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_listContextMenuSD_MenuSyncInterfaceData_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDeletePriorityFactor_OnClick.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEditPriorityFactor_OnClick#325.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick#106.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_DataHolderPriorityFactor_OnDataChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEditPriorityFactorGrading_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuNewPriorityFactorGrading_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw 2199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityFactorDetail_PriorityFactor_PriorityFactor_PriorityFactorDe.qbl
ÎļþÃû´Ó _Main/BL/Relations/Relation_PriorityFactorDetails_PriorityFactor_PriorityFactor_PriorityFactorD.qbl ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
Relation PriorityFactorDetails_PriorityFactor_PriorityFactor_PriorityFactorDetails
Relation PriorityFactorDetail_PriorityFactor_PriorityFactor_PriorityFactorDetail
{
  #keys: '1[414382.0.444850082]'
  DefaultRelationStrategy
@@ -10,10 +10,10 @@
  {
    #keys: '3[414382.0.444850084][414382.0.444850083][414382.0.444850085]'
    Cardinality: '0to1'
    ObjectDefinition: PriorityFactorDetails
    ObjectDefinition: PriorityFactorDetail
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PriorityFactorDetails
  RelationSide.RightSide PriorityFactorDetail
  {
    #keys: '3[414382.0.444850087][414382.0.444850086][414382.0.444850088]'
    Cardinality: '1toN'
_Main/BL/Type_Flag/_ROOT_Type_Flag.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type Flag
{
  #keys: '5[414996.0.33484648][414996.0.33484646][0.0.0][414996.0.33484647][414996.0.33484649]'
  BaseType: Object
  Description: '标志位'
  StructuredName: 'Flags'
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl
@@ -34,12 +34,17 @@
                                                    false
                                                   );
      targetCustomerOrder.BusinessType( gmco.BusinessType() );
      targetCustomerOrder.OrderType( gmco.OrderType() );
      // CustomerPolicy
      targetCustomerOrder.IsAvailable( gmco.IsAvailable() );
      // IsLocked
      // LastModify
      // LastModifyTime
      // OrderTag
      targetCustomerOrder.OrderTime( gmco.OrderTime() );
      targetCustomerOrder.OrderType( gmco.OrderType() );
      targetCustomerOrder.ProductGrade( gmco.ProductGrade() );
      targetCustomerOrder.SegmentPriority( gmco.SegmentPriority() );
      targetCustomerOrder.SheetProfitability( gmco.SheetProfitability() );
      targetCustomerOrder.OrderTime( gmco.OrderTime() );
    }
  *]
}
_Main/BL/Type_PriorityFactor/Method_CreatePrioitifyFacotrDetail.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
Method CreatePrioitifyFacotrDetail (
  PriorityFactorDetail priorityFactorDetails
)
{
  TextBody:
  [*
    // Akari Nov-7-2023 (created)
  *]
}
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -36,7 +36,7 @@
          
          traverse( priorityFactorList,Elements,e)
          {
              PriorityFactorDetails::InitData( owner,e);
              PriorityFactorDetail::InitData( owner,e);
          }
    
    }
_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl
@@ -3,14 +3,14 @@
StaticMethod GetDataByPriorityFactor (
  PriorityFactor priorityFactor,
  MacroPlan owner
) as owning PriorityFactorDetailss
) as owning PriorityFactorDetails
{
  Description: '根据事优先级因子获取优先级因子细分集合'
  TextBody:
  [*
    // NBoTk Sep-18-2023 (created)
    
    list := selectset( owner,PriorityFactor.PriorityFactorDetails,p,
    list := selectset( owner,PriorityFactor.PriorityFactorDetail,p,
                       p.BusinessType() = priorityFactor.BusinessType() and priorityFactor.Name() = p.PriorityFactorName()
                       );
    
_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
@@ -18,85 +18,85 @@
    
    if( priorityFactor.Name() = "大张盈利水平" )
    {
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "大盈",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "小盈",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
                                                IsRange := false,GradingName := "持平",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
                                                IsRange := false,GradingName := "小亏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
                                                IsRange := false,GradingName := "大亏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
    }
    
    if( priorityFactor.Name() = "客户策略" )
    {
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "81%≤X≤100%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
                                                IsRange := false,GradingName := "61%≤X≤80%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "41%≤X≤60%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
                                                IsRange := false,GradingName := "21%≤X≤40%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
                                                IsRange := false,GradingName := "1%≤X≤20%",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
    }
    
    if( priorityFactor.Name() = "细分市场等级" )
    {
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "战略",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "重点",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
                                                IsRange := false,GradingName := "潜力",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
    }
    
    if( priorityFactor.Name() = "订单下单时间" )
    {
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "120",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 4,
                                                IsRange := false,GradingName := "90",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "60",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 2,
                                                IsRange := false,GradingName := "30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
                                                IsRange := false,GradingName := "0",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
    }
    
    if( priorityFactor.Name() = "需求类型" )
    {
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "有预测",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "无预测",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
                                                IsRange := false,GradingName := "纯预测",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
    }
    
    if( priorityFactor.Name() = "客户等级" )
    {
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "战略",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "重点",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), 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.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                            IsRange := false,GradingName := "<7",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                                IsRange := false,GradingName := "<15",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
                                                IsRange := false,GradingName := "<30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
        priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
        priorityFactor.PriorityFactorDetail(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 1,
                                                IsRange := false,GradingName := ">30",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());                                                                                     
    }
  *]
_Main/BL/Type_PriorityFactorDetails/_ROOT_Type_PriorityFactorDetail.qbl
ÎļþÃû´Ó _Main/BL/Type_PriorityFactorDetails/_ROOT_Type_PriorityFactorDetails.qbl ÐÞ¸Ä
@@ -1,10 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type PriorityFactorDetails
Type PriorityFactorDetail
{
  #keys: '5[414382.0.440655013][414382.0.440655011][0.0.0][414382.0.440655012][414382.0.440655014]'
  BaseType: Object
  Description: '优先级因子细分'
  StructuredName: 'PriorityFactorDetailss'
  StructuredName: 'PriorityFactorDetails'
}
_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
@@ -32,7 +32,7 @@
    {
            if( "客户策略" =  priorityFactor.Name())
            {
                 obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "客户策略" and p.GradingName() = customerOrder.CustomerPolicy());
                 obj := selectobject( priorityFactor,PriorityFactorDetail,p , p.PriorityFactorName() = "客户策略" and p.GradingName() = customerOrder.CustomerPolicy());
                 gradeTarget := 1.0;
                 if( not isnull( obj ) )
                 {
@@ -43,7 +43,7 @@
            
            if( "大张盈利水平" =  priorityFactor.Name())
            {
                 obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "大张盈利水平" and  p.GradingName() = customerOrder.SheetProfitability());
                 obj := selectobject( priorityFactor,PriorityFactorDetail,p , p.PriorityFactorName() = "大张盈利水平" and  p.GradingName() = customerOrder.SheetProfitability());
                 gradeTarget := 1.0;
                 if( not isnull( obj ) )
                 {
@@ -78,7 +78,7 @@
            
            if( "细分市场等级" =  priorityFactor.Name())
            {
                 obj := selectobject( priorityFactor,PriorityFactorDetails,p , p.PriorityFactorName() = "细分市场等级" and p.GradingName() = customerOrder.SegmentPriority());
                 obj := selectobject( priorityFactor,PriorityFactorDetail,p , p.PriorityFactorName() = "细分市场等级" and p.GradingName() = customerOrder.SegmentPriority());
                 gradeTarget := 1.0;
                 if( not isnull( obj ) )
                 {
@@ -90,7 +90,7 @@
            if( "需求类型" =  priorityFactor.Name())
            {     
                // æœ‰é¢„测 æ— é¢„测 çº¯é¢„测
                 obj := selectobject( priorityFactor,PriorityFactorDetails,p,p.GradingName() = customerOrder.OrderType());
                 obj := selectobject( priorityFactor,PriorityFactorDetail,p,p.GradingName() = customerOrder.OrderType());
                 gradeTarget := 1.0;
                 if( not isnull( obj ) )
                 {
@@ -116,8 +116,8 @@
                 // ä¸‹å•æ—¶é—´
                 orderTime := customerOrder.OrderTime();
                 days := orderTime.TotalInDays() - customerOrder.EndDate().TotalInDays();
                 obj := null( PriorityFactorDetails);
                 sortDetail := selectsortedset( priorityFactor,PriorityFactorDetails,p,[Number]p.GradingName());
                 obj := null( PriorityFactorDetail);
                 sortDetail := selectsortedset( priorityFactor,PriorityFactorDetail,p,[Number]p.GradingName());
                 traverse( sortDetail,Elements,e )
                 {
                       if( days >= [Number]e.GradingName() )
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_ClickBtnOK.def
@@ -5,7 +5,6 @@
  #keys: '[414382.0.464433014]'
  Body:
  [*
    btnOk.Enabled(false,'');
    
    // OnOk
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
@@ -7,7 +7,7 @@
  Precondition:
  [*
    feedback := Translations::FilllingCapacity_ValidateInput();
    checkValue := not Coefficient.Text() = ''
    checkValue := not Coefficient.Text() = '' and not PriorityFactorName.Text() = '';
    
    if(not checkValue )
    {
@@ -23,7 +23,12 @@
  {
    Body:
    [*
      Form.ClickBtnOK();
      priortyFactor := select( MacroPlan,PriorityFactor,pf,pf.Name() = PriorityFactorName.Text());
      if( not isnull( priortyFactor )){
        WebMessageBox::Error( "系统内已存在该优先级因子");
      }else {
        Form.ClickBtnOK();
      }
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
@@ -11,7 +11,7 @@
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.GradeTarget'
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.GradeTarget'
        Label: '分级目标值'
        Taborder: 2
      ]
@@ -22,7 +22,7 @@
      BaseType: 'WebCheckbox'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.IsRange'
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.IsRange'
        Label: '分级范围:'
        Taborder: 3
      ]
@@ -33,7 +33,7 @@
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMax'
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.RangeMax'
        Label: '最大值'
        Taborder: 4
        Visible: false
@@ -45,7 +45,7 @@
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMin'
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.RangeMin'
        Label: '最小值'
        ReadOnly: true
        Taborder: 6
@@ -57,7 +57,7 @@
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.GradeDesc'
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.GradeDesc'
        FixedSize: false
        Label: '描述'
        SizeRatio: 3
@@ -70,20 +70,9 @@
      BaseType: 'WebLabel'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.PriorityFactorName'
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.PriorityFactor.Name'
        Label: '优先级因子'
        Taborder: 0
      ]
    }
    Component PriorityFactorDetailsName
    {
      #keys: '[414382.0.486013052]'
      BaseType: 'WebLabel'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.GradingName'
        Label: '细分名称'
        Taborder: 1
      ]
    }
    Component RangeMaxTest
@@ -107,6 +96,17 @@
        Taborder: 7
      ]
    }
    Component PriorityFactorDetailsName
    {
      #keys: '[414996.0.36000637]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetail.Data.GradingName'
        Label: '细分名称'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_ClickBtnOK.def
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOK () id:Method_DialogEditPriorityFactorDetails_ClickBtnOK
Method ClickBtnOK () id:Method_DialogEditPriorityFactorDetail_ClickBtnOK
{
  #keys: '[414382.0.482495783]'
  Body:
@@ -9,7 +9,9 @@
    
    // OnOk
    this.ApplyChanges();
    DataHolderEditPriorityFactorDetails.Data().Commit();
    //DataHolderEditPriorityFactorDetails.Data( ).Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_Edit.def
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  PriorityFactorDetails selection
) id:Method_DialogEditPriorityFactorDetails_Edit
  PriorityFactorDetail selection
) id:Method_DialogEditPriorityFactorDetail_Edit
{
  #keys: '[414382.0.482495781]'
  Body:
@@ -13,8 +13,8 @@
    {
        isRange.Checked(true);
    }
    DataHolderEditPriorityFactorDetails.Data( &data);
    PriorityFactorDetailsName.Enabled( false,"" );
    DataHolderEditPriorityFactorDetail.Data( selection );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method New (
  PriorityFactor owner
) id:Method_DialogEditPriorityFactorDetail_New
{
  #keys: '[414996.0.35320212]'
  Body:
  [*
    data := owner.PriorityFactorDetail(relnew);
    info( isnull( owner ));
    info( isnull( data ));
    DataHolderEditPriorityFactorDetail.Data( data );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
@@ -21,7 +21,7 @@
  {
    Body:
    [*
      Form.ClickBtnOK();
      DialogEditPriorityFactorDetail.ClickBtnOK();
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
@@ -20,9 +20,9 @@
          RangeMax.Visible(false);
          RangeMin.Visible(false);
          RangeMaxTest.Visible(true) 
          RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMax());
          RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetail.Data().RangeMax());
          RangeMinText.Visible(true) 
          RangeMinText.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMin());
          RangeMinText.Text([String]DataHolderEditPriorityFactorDetail.Data().RangeMin());
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def
@@ -20,9 +20,9 @@
          RangeMax.Visible(false);
          RangeMin.Visible(false);
          RangeMaxTest.Visible(true) 
          RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMax());
          RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetail.Data().RangeMax());
          RangeMinText.Visible(true) 
          RangeMinText.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMin());
          RangeMinText.Text([String]DataHolderEditPriorityFactorDetail.Data().RangeMin());
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/_ROOT_Component_DialogEditPriorityFactorDetail.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/_ROOT_Component_DialogEditPriorityFactorDetails.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogEditPriorityFactorDetails
OrphanComponent DialogEditPriorityFactorDetail
{
  #keys: '[414382.0.482374517]'
  BaseType: 'WebForm'
@@ -9,11 +9,11 @@
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderEditPriorityFactorDetails
    Component DataHolderEditPriorityFactorDetail
    {
      #keys: '[414382.0.482495927]'
      #keys: '[414996.0.38864386]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[PriorityFactorDetails]*'
      Databinding: 'PriorityFactorDetail'
      Properties:
      [
        Taborder: 2
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
@@ -9,7 +9,7 @@
      BaseType: 'WebMenu'
      Properties:
      [
        Taborder: 10
        Taborder: 11
        Title: '事业部优先级计算'
      ]
    }
@@ -19,7 +19,7 @@
      BaseType: 'WebMenu'
      Properties:
      [
        Taborder: 11
        Taborder: 12
        Title: '修改客户订单优先级因子信息'
      ]
    }
@@ -31,7 +31,7 @@
      [
        Description: '订单拆行'
        Image: 'ARROW_FORK'
        Taborder: 13
        Taborder: 14
        Title: '拆行'
      ]
    }
@@ -42,7 +42,17 @@
      Properties:
      [
        Separator: true
        Taborder: 12
        Taborder: 13
      ]
    }
    Component MenuSyncInterfaceData
    {
      #keys: '[414996.0.32330708]'
      BaseType: 'WebMenu'
      Properties:
      [
        Taborder: 10
        Title: '同步接口数据到Customer orders'
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_listContextMenuSD_MenuSyncInterfaceData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
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 );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def
@@ -11,10 +11,10 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[PriorityFactor]'
        Source: 'DataHolderPriorityFactorSelect'
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'Elements'
        Transformation: 'PriorityFactor'
      ]
    }
    #child: listActionBarPagePriorityFactor
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
@@ -16,6 +16,39 @@
        Title: '初始化'
      ]
    }
    Component MenuNewPriorityFactor
    {
      #keys: '[414996.0.32331011]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_ADD'
        Taborder: 4
        Title: 'New'
      ]
    }
    Component MenuEditPriorityFactor
    {
      #keys: '[414996.0.32331061]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 5
        Title: 'Edit'
      ]
    }
    Component MenuDeletePriorityFactor
    {
      #keys: '[414996.0.32331135]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_DELETE'
        Taborder: 6
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDeletePriorityFactor_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick (
  structured[PriorityFactor] selection
) id:Response_ListPriorityFactor_MenuDeletePriorityFactor_OnClick
{
  #keys: '[414996.0.35089240]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuDeletePriorityFactor'
  QuillAction
  {
    Body:
    [*
      number := WebMessageBox::Question( "Are you sure delete this priority factor?","Yes|No" );
      if( number = 0 ){
        traverse( selection,Elements,element){
          element.Delete();
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEditPriorityFactor_OnClick#325.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick (
  PriorityFactor selection
) id:Response_ListPriorityFactor_MenuEditPriorityFactor_OnClick_325
{
  #keys: '[414996.0.34858367]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuEditPriorityFactor'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditPriorityFactor );
      dlg.Edit( selection);
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick (
  PriorityFactor selection
) id:Response_ListPriorityFactor_MenuNewPriorityFactor_OnClick
{
  #keys: '[414996.0.39511535]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuNewPriorityFactor'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditPriorityFactorDetail );
      dlg.New( selection );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick#106.def
@@ -11,8 +11,8 @@
  {
    Body:
    [*
      detaisls := PriorityFactorDetails::GetDataByPriorityFactor( selection, MacroPlan);
      DataHolderPriorityFactorDetailsSelect.Data(&detaisls);
      //detaisls := PriorityFactorDetails::GetDataByPriorityFactor( selection, MacroPlan);
      //DataHolderPriorityFactorDetailsSelect.Data(&detaisls);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def
@@ -11,9 +11,7 @@
  {
    Body:
    [*
      info( "selecion change" );
      detaisls := PriorityFactorDetails::GetDataByPriorityFactor( selection, MacroPlan);
      DataHolderPriorityFactorDetailsSelect.Data(&detaisls);
      DataHolderPriorityFactorSelect.Data(selection);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: listContextMenuPriorityFactor/MenuNewPriorityFactor
Response OnClick () id:Response_listContextMenuPriorityFactor_MenuNewPriorityFactor_OnClick
{
  #keys: '[414996.0.32331254]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditPriorityFactor );
      dlg.New( MacroPlan,"");
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -11,22 +11,7 @@
    {
      #keys: '[414382.0.453562359]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityFactor]*'
      Children:
      [
        Component DataExtractorPriorityFactorSelect
        {
          #keys: '[414382.0.608512605]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'PriorityFactor'
          ]
        }
      ]
      Databinding: 'PriorityFactor'
      Properties:
      [
        Taborder: 1
@@ -48,7 +33,7 @@
    {
      #keys: '[414382.0.482103344]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityFactorDetails]*'
      Databinding: 'structured[PriorityFactorDetail]*'
      Properties:
      [
        Taborder: 3
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def
@@ -36,7 +36,7 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
  ResponseDefinitions:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def
@@ -3,6 +3,42 @@
{
  #keys: '[414382.0.479530873]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEditPriorityFactorGrading
    {
      #keys: '[414996.0.32342387]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 4
        Title: 'Edit'
      ]
    }
    Component MenuDeletePriorityFactorGrading
    {
      #keys: '[414996.0.32342398]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_DELETE'
        Taborder: 5
        Title: 'Delete'
      ]
    }
    Component MenuNewPriorityFactorGrading
    {
      #keys: '[414996.0.40230778]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_ADD'
        Taborder: 3
        Title: 'New'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_DataHolderPriorityFactor_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: DataHolderPriorityFactor
Response OnDataChanged () id:Response_FormPriorityFactorGrading_DataHolderPriorityFactor_OnDataChanged
{
  #keys: '[414996.0.32302660]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  QuillAction
  {
    Body:
    [*
      if( not isnull( this.Data( ) )){
        detaisls := PriorityFactorDetail::GetDataByPriorityFactor( this.Data( ), MacroPlan);
        DataHolderPriorityFactorGrading.Data( &detaisls );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: ListPriorityFactorGrading
Response OnClick (
  structured[PriorityFactorDetail] selction
) id:Response_ListPriorityFactorGrading_MenuDeletePriorityFactorGrading_OnClick
{
  #keys: '[414996.0.36022233]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactorGrading/Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuDeletePriorityFactorGrading'
  QuillAction
  {
    Body:
    [*
      number := WebMessageBox::Question( "Are you sure delete this priority factor?","Yes|No" );
      if( number = 0 ){
        traverse( selction,Elements,element){
          element.Delete();
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEditPriorityFactorGrading_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
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 );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuNewPriorityFactorGrading_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
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( ));
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
@@ -11,17 +11,28 @@
    {
      #keys: '[414382.0.478480902]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityFactorDetails]*'
      Databinding: 'structured[PriorityFactorDetail]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: ListPriorityFactorGrading
    Component DataHolderPriorityFactor
    {
      #keys: '[414996.0.35059952]'
      BaseType: 'WebDataHolder'
      Databinding: 'PriorityFactor'
      Children:
      [
        Component DataExtractorPriorityFactorGrading
        Component DataExtractorPriorityFactor
        {
          #keys: '[414382.0.478480916]'
          #keys: '[414996.0.35059968]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[PriorityFactorDetails]'
            Source: 'FormPriorityFactor.DataHolderPriorityFactorDetailsSelect'
            DataType: 'PriorityFactor'
            Source: 'FormPriorityFactor.DataHolderPriorityFactorSelect'
            Taborder: 0
          ]
        }
@@ -31,7 +42,6 @@
        Taborder: 0
      ]
    }
    #child: ListPriorityFactorGrading
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Views/PriorityTest.vw
@@ -35,6 +35,26 @@
              width: 150
            }
          }
          FormBusinessType_PanelBusinessType
          {
            sizeRatio: 1
          }
          FormBusinessType_ListOrganCode
          {
          }
          FormBusinessType_DataSetLevelOrganCode
          {
            groupDepth: -1
            column_OrganCodeName
            {
              columnId: 'OrganCodeName'
              dataPath: 'OrganCodeName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPriorityResult
@@ -417,7 +437,7 @@
              dataType: 'real'
              index: 1
              subtotals: ''
              width: 496
              width: 71
            }
            column_Desc
            {
@@ -554,2187 +574,14 @@
          }
        }
      }
      form_FormOptimizerPuzzles
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 1
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_1
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 2
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_1
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 3
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_2
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 4
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_2
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 5
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_3
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 6
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_3
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 7
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_4
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 8
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_4
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 9
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_5
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 10
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_5
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 11
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_6
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 12
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_6
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 13
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_7
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 14
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_7
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 15
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormSanityCheck
      {
        title: 'Sanity Check'
        shown: false
        componentID: 'FormSanityCheck'
        layout
        {
          mode: 'dockright'
          index: 16
        }
        components
        {
          FormSanityCheck_PanelSanityCheckToolbar
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckContent
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckGroup
          {
            sizeRatio: 4
          }
          FormSanityCheck_ListSanityCheckGroup
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckGroup
          {
            groupDepth: -1
            sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Group
            {
              columnId: 'Group'
              dataPath: 'Group'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 270
            }
            column__Expr3
            {
              columnId: '_Expr3'
              dataPath: '_Expr3'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 95
            }
          }
          FormSanityCheck_PanelSanityCheckMessage
          {
            sizeRatio: 5
          }
          FormSanityCheck_ListSanityCheckMessage
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckMessage
          {
            groupDepth: -1
            sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Messages
            {
              columnId: 'Messages'
              dataPath: 'Messages'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 32
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 585
            }
          }
        }
      }
      form_FormOptimizerPuzzles_8
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 17
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_8
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 18
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_9
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 19
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_9
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 20
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_10
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 21
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_10
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 22
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_11
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 23
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_11
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 24
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_12
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 25
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_12
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 26
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_13
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 27
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_13
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 28
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_14
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 29
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_14
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 30
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormOptimizerPuzzles_15
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 31
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_15
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 32
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormSanityCheck_1
      {
        title: 'Sanity Check'
        shown: false
        componentID: 'FormSanityCheck'
        layout
        {
          mode: 'dockright'
          index: 33
        }
        components
        {
          FormSanityCheck_PanelSanityCheckToolbar
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckContent
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckGroup
          {
            sizeRatio: 4
          }
          FormSanityCheck_ListSanityCheckGroup
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckGroup
          {
            groupDepth: -1
            sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Group
            {
              columnId: 'Group'
              dataPath: 'Group'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 270
            }
            column__Expr3
            {
              columnId: '_Expr3'
              dataPath: '_Expr3'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 95
            }
          }
          FormSanityCheck_PanelSanityCheckMessage
          {
            sizeRatio: 5
          }
          FormSanityCheck_ListSanityCheckMessage
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckMessage
          {
            groupDepth: -1
            sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Messages
            {
              columnId: 'Messages'
              dataPath: 'Messages'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 32
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 585
            }
          }
        }
      }
      form_FormKPI_16
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 34
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Metals_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
              Food_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
              Empty_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 0
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormKPI_17
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 35
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPIDashboard'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Metals_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
              Food_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
              Empty_KPISetting: 'Fulfillment;Fulfillment target;On time fulfillment;On time in full;Sales'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 0
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_FormPriorities
      {
        title: 'Priorities'
        shown: true
        componentID: 'FormPriorities'
        layout
        {
          mode: 'dockright'
          index: 36
        }
        components
        {
          FormPriorities_ListPriority
          {
          }
          FormPriorities_DataSetLevelPriority
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_ImgHasSalesDemand
            {
              columnId: 'ImgHasSalesDemand'
              dataPath: 'ImgHasSalesDemand'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 30
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 95
            }
            column_Weight
            {
              columnId: 'Weight'
              dataPath: 'Weight'
              dataType: 'real'
              index: 3
              subtotals: ''
              width: 95
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    index: 0
    image: ''
    page: ''
    group: ''
    index: 15
    image: ''
    description: ''
  }
  formatversion: 2