lazhen
2024-11-05 765e976a9b0798d5128895c85ca908f0ad74b3e4
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg
已重命名4个文件
已添加81个文件
已修改15个文件
2132 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_LocalValue_RecycleBin_RecycleBin_LocalValue.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport#1.qbl 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalValue/Attribute_IsCheck.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalValue/Attribute_StringValue.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalValue/StaticMethod_CreateProduct_MPAttribute.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalValue/_ROOT_Type_LocalValue.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_ListGenerations#61.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_ListMQBMLB#670.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_ListPowers#667.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon#799.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listActionBarPage245#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listActionBarPage519#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listActionBarPage963#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listContextMenu319#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listContextMenu623#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listContextMenu687#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pGeneration#100.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pMQBMLB#653.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pPower#969.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pProductAttributeFilter#697.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProducts_OnDataChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegments_OnDataChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pGeneration_100_dhCheckGenerations_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pGeneration_100_dhGenerations_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pMQBMLB_653_dhMQBMLB_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pPower_969_dhCheckPowers_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pPower_969_dhPowers_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/_ROOT_Component_FormOfflinePlanChanges#701.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_ListGenerations.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_ListMQBMLB#327.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_ListPowers.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon#805.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listActionBarPage245.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listActionBarPage519.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listActionBarPage963.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listContextMenu319.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listContextMenu623.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listContextMenu687.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pGeneration.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pMQBMLB.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pPower.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pProductAttributeFilter.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pGeneration_dhCheckGenerations_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pGeneration_dhGenerations_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pMQBMLB_dhCheckMQBMLB_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pMQBMLB_dhMQBMLB_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pPower_dhCheckPowers_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pPower_dhPowers_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_ListGenerations#61.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_ListMQBMLB#670.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_ListPowers#667.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelDemandComparison.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelDemandComparison294.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listActionBarPage245#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listActionBarPage519#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listActionBarPage963#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listContextMenu319#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listContextMenu623#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listContextMenu687#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pGeneration#100.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pMQBMLB#653.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pPower#969.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pProductAttributeFilter#697.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pGeneration_100_dhCheckGenerations_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pGeneration_100_dhGenerations_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pMQBMLB_653_dhMQBMLB_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pPower_969_dhCheckPowers_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pPower_969_dhPowers_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/_ROOT_Component_FormDemandComparison.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_ListGenerations#61.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_ListMQBMLB#670.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_ListPowers#667.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison#634.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listActionBarPage245#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listActionBarPage519#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listActionBarPage963#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listContextMenu319#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listContextMenu623#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listContextMenu687#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pGeneration#100.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pMQBMLB#653.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pPower#969.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pProductAttributeFilter#697.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProducts_OnDataChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegments_OnDataChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pGeneration_100_dhCheckGenerations_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pGeneration_100_dhGenerations_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pMQBMLB_653_dhMQBMLB_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pPower_969_dhCheckPowers_OnDataChanged.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pPower_969_dhPowers_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/_ROOT_Component_FormOfflinePlanComparison.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_LocalValue_RecycleBin_RecycleBin_LocalValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation LocalValue_RecycleBin_RecycleBin_LocalValue
{
  #keys: '1[414996.1.191854794]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide RecycleBin
  {
    #keys: '3[414996.1.191854796][414996.1.191854795][414996.1.191854797]'
    Cardinality: '0to1'
    ObjectDefinition: LocalValue
    OwningSide: 'Reference'
  }
  RelationSide.RightSide LocalValue
  {
    #keys: '3[414996.1.191854799][414996.1.191854798][414996.1.191854800]'
    Cardinality: '1toN'
    ObjectDefinition: RecycleBin
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport#1.qbl
@@ -18,10 +18,12 @@
    column3  := table.LocalColumn( relnew,CustomName := "生产天数" ,CustomIndex := 3);
    
    column4  := table.LocalColumn( relnew,CustomName := "加班/欠工时长" ,CustomIndex := 4);
    column5  := table.LocalColumn( relnew,CustomName := "节假日加班时长" ,CustomIndex := 6);
    column5  := table.LocalColumn( relnew,CustomName := "节假日加班时长" ,CustomIndex := 5);
    
    column6  := table.LocalColumn( relnew,CustomName := "加班/欠工费" ,CustomIndex := 8);
    column7 := table.LocalColumn( relnew,CustomName := "节假日加班费" ,CustomIndex := 10);
    column6  := table.LocalColumn( relnew,CustomName := "加班/欠工费" ,CustomIndex := 6);
    column7 := table.LocalColumn( relnew,CustomName := "节假日加班费" ,CustomIndex := 7);
    column8 := table.LocalColumn( relnew,CustomName := "总计加班/欠工费" ,CustomIndex := 8);
    
    units := selectset( shiftPlans,Elements.UnitPeriodTime.Unit,unit,true );
    
@@ -92,7 +94,8 @@
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -102,7 +105,8 @@
              defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + nextDayOvertime );
            }
          }
        }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //  }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
        }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
          // ä¼‘息日加班 
          overtime := shiftPlan.GetBreakDayOvertimeHour( false );
          breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + overtime );
@@ -112,7 +116,8 @@
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -131,7 +136,8 @@
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -143,7 +149,8 @@
          }
        }
      }else{
        if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) )){
    //  if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) )){
        if( not shiftPlan.IsHoliday() and not ( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 )){
          qiangongCell := LocalCell_Default::GetCell(  rowKey + column4.CustomName(), cellIndexTree, cells, row, column4 );
          qiangongCell.RealValue( qiangongCell.RealValue() - 8 );
        }
@@ -188,10 +195,11 @@
      jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiejiariCell.RealValue()));
      
      qiangongCell := LocalCell_Default::GetCell(  rowKey + column4.CustomName(), cellIndexTree, cells, row, column4 );
      qiangongCell.RealValue( qiangongCell.RealValue() - 8 );
      qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column6.CustomName(), cellIndexTree, cells, row, column6 );
      qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,qiangongCell.RealValue() ));
      total := LocalCell_Default::GetCell(  rowKey + column8.CustomName(), cellIndexTree, cells, row, column8 );
      total.RealValue( jiejiarifeiCell.RealValue() + qiangongfeiCell.RealValue() );
    }
    
    return table;
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl
@@ -27,6 +27,8 @@
    column10 := table.LocalColumn( relnew,CustomName := "节假日加班费" ,CustomIndex := 10);
    column11 := table.LocalColumn( relnew,CustomName := "欠工费" ,CustomIndex := 11);
    
    column12 := table.LocalColumn( relnew,CustomName := "总加班费" ,CustomIndex := 12);
    units := selectset( shiftPlans,Elements.UnitPeriodTime.Unit,unit,true );
    
    rows := construct( LocalRows );
@@ -95,7 +97,8 @@
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //        }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -105,7 +108,8 @@
              defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + nextDayOvertime );
            }
          }
        }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //  }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
        }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
          // ä¼‘息日加班
          overtime := shiftPlan.GetBreakDayOvertimeHour( false );
          breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + overtime );
@@ -114,7 +118,8 @@
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -133,7 +138,8 @@
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
    //      }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
            }else if( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
@@ -145,7 +151,8 @@
          }
        }
      }else{
        if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) )){
    //  if( not shiftPlan.IsHoliday() and not ( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) )){
        if( not shiftPlan.IsHoliday() and not ( shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 6 or  shiftPlan.UnitPeriodTime().Period_MP().StartDate().DayOfWeek() = 7 )){
          qiangongCell := LocalCell_Default::GetCell(  rowKey + column7.CustomName(), cellIndexTree, cells, row, column7 );
          qiangongCell.RealValue( qiangongCell.RealValue() + 8 );
        }
@@ -202,12 +209,14 @@
      
      // æ¬ å·¥è´¹
      qiangongCell := LocalCell_Default::GetCell(  rowKey + column7.CustomName(), cellIndexTree, cells, row, column7 );
      qiangongCell.RealValue( qiangongCell.RealValue() );
      qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column11.CustomName(), cellIndexTree, cells, row, column11 );
      qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,qiangongMultiplier,qiangongCell.RealValue() ));
      
      
      // æ€»åŠ ç­è´¹
      totalOvertimePay := LocalCell_Default::GetCell(  rowKey + column12.CustomName(), cellIndexTree, cells, row, column12 );
      totalOvertimePay.RealValue( jiejiarifeiCell.RealValue() + xiuxifeiCell.RealValue() + jiabanfeiCell.RealValue())
      // å·¥ä½œæ—¥
      workingDayCell := LocalCell_Default::GetCell(  rowKey + column3.CustomName(), cellIndexTree, cells, row, column3 );
      workingDayCell.RealValue( workingDayCell.RealValue() );
_Main/BL/Type_LocalValue/Attribute_IsCheck.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCheck
{
  #keys: '3[414996.1.191830948][414996.1.191830947][414996.1.191830949]'
  ValueType: Boolean
}
_Main/BL/Type_LocalValue/Attribute_StringValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StringValue
{
  #keys: '3[414996.1.191854808][414996.1.191854807][414996.1.191854809]'
  ValueType: String
}
_Main/BL/Type_LocalValue/StaticMethod_CreateProduct_MPAttribute.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateProduct_MPAttribute (
  RecycleBin owner,
  const MacroPlan macroPlan,
  String attributeName
) as owning LocalValues
{
  TextBody:
  [*
    // Akari Nov-5-2024 (created)
    result := construct( LocalValues );
    if( attributeName.ToLower() = "generation" ){
      generations := selectuniquevalues( macroPlan,Product_MP,product,product.Generation() );
      traverse( generations,Elements,generation ){
        localValue := owner.LocalValue( relnew,StringValue := generation );
        result.Add( localValue );
      }
    }
    if( attributeName.ToLower() = "power" ){
      powers := selectuniquevalues( macroPlan,Product_MP,product,product.Power() );
      traverse( powers,Elements,power ){
        localValue := owner.LocalValue( relnew,StringValue := power );
        result.Add( localValue );
      }
    }
    if( attributeName.ToLower() = "mqbmlb" ){
      mqbmlbs := selectuniquevalues( macroPlan,Product_MP,product,product.MQBMLB() );
      traverse( mqbmlbs,Elements,mqbmlb ){
        localValue := owner.LocalValue( relnew,StringValue := mqbmlb );
        result.Add( localValue );
      }
    }
    return &result;
  *]
}
_Main/BL/Type_LocalValue/_ROOT_Type_LocalValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LocalValue
{
  #keys: '5[414996.1.191854791][414996.1.191854789][0.0.0][414996.1.191854790][414996.1.191854792]'
  BaseType: Object
  StructuredName: 'LocalValues'
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_ListGenerations#61.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListGenerations id:ListGenerations_61
{
  #keys: '[414996.1.191962761]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor989
    {
      #keys: '[414996.1.191962762]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhGenerations'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage963_1
    Component DataSetLevel191
    {
      #keys: '[414996.1.191962764]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu687_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu687'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_ListMQBMLB#670.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListMQBMLB id:ListMQBMLB_670
{
  #keys: '[414996.1.191962779]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor472
    {
      #keys: '[414996.1.191962780]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhMQBMLB'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage519_1
    Component DataSetLevel527
    {
      #keys: '[414996.1.191962782]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu319_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu319'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_ListPowers#667.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListPowers id:ListPowers_667
{
  #keys: '[414996.1.191962770]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor671
    {
      #keys: '[414996.1.191962771]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhPowers'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage245_1
    Component DataSetLevel995
    {
      #keys: '[414996.1.191962773]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu623_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu623'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def
@@ -15,14 +15,14 @@
        Taborder: 1
      ]
    }
    Component dhCheckedProduct
    Component dhCheckedProducts
    {
      #keys: '[412672.1.78210542]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[Product_MP]*'
      Children:
      [
        Component deCheckedProduct
        Component deCheckedProducts
        {
          #keys: '[412672.1.78210543]'
          BaseType: 'WebDataExtractor'
@@ -50,14 +50,14 @@
        Taborder: 2
      ]
    }
    Component dhCheckedSalesSegment
    Component dhCheckedSalesSegments
    {
      #keys: '[412672.1.78210545]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[SalesSegment_MP]*'
      Children:
      [
        Component deCheckedSalesSegment
        Component deCheckedSalesSegments
        {
          #keys: '[412672.1.78210546]'
          BaseType: 'WebDataExtractor'
@@ -114,6 +114,6 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon#799.def
@@ -11,6 +11,6 @@
  Properties:
  [
    FixedSize: true
    Taborder: 0
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listActionBarPage245#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage245 id:listActionBarPage245_1
{
  #keys: '[414996.1.191962772]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listActionBarPage519#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage519 id:listActionBarPage519_1
{
  #keys: '[414996.1.191962781]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listActionBarPage963#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage963 id:listActionBarPage963_1
{
  #keys: '[414996.1.191962763]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listContextMenu319#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu319 id:listContextMenu319_1
{
  #keys: '[414996.1.191962783]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listContextMenu623#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu623 id:listContextMenu623_1
{
  #keys: '[414996.1.191962774]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_listContextMenu687#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu687 id:listContextMenu687_1
{
  #keys: '[414996.1.191962765]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pGeneration#100.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pGeneration id:pGeneration_100
{
  #keys: '[414996.1.191962760]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListGenerations_61
    Component dhGenerations
    {
      #keys: '[414996.1.191962766]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckGenerations
    {
      #keys: '[414996.1.191962767]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckGenerations
        {
          #keys: '[414996.1.191962768]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhGenerations'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 0
    Title: 'Generation'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pMQBMLB#653.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pMQBMLB id:pMQBMLB_653
{
  #keys: '[414996.1.191962778]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListMQBMLB_670
    Component dhMQBMLB
    {
      #keys: '[414996.1.191962784]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckMQBMLB
    {
      #keys: '[414996.1.191962785]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckMQBMLB
        {
          #keys: '[414996.1.191962786]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhMQBMLB'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 2
    Title: 'MQB/MLB'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pPower#969.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pPower id:pPower_969
{
  #keys: '[414996.1.191962769]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListPowers_667
    Component dhPowers
    {
      #keys: '[414996.1.191962775]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckPowers
    {
      #keys: '[414996.1.191962776]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckPowers
        {
          #keys: '[414996.1.191962777]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhPowers'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 1
    Title: 'Power'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_pProductAttributeFilter#697.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component pProductAttributeFilter id:pProductAttributeFilter_697
{
  #keys: '[414996.1.191962759]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pGeneration_100
    #child: pPower_969
    #child: pMQBMLB_653
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProducts_OnDataChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: PanelDemandComparison/dhCheckedProduct
Response OnDataChanged () id:Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged
#parent: PanelDemandComparison/dhCheckedProducts
Response OnDataChanged () id:Response_PanelDemandComparison_dhCheckedProducts_OnDataChanged
{
  #keys: '[412672.1.78210527]'
  CanBindMultiple: false
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegments_OnDataChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: PanelDemandComparison/dhCheckedSalesSegment
Response OnDataChanged () id:Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged
#parent: PanelDemandComparison/dhCheckedSalesSegments
Response OnDataChanged () id:Response_PanelDemandComparison_dhCheckedSalesSegments_OnDataChanged
{
  #keys: '[412672.1.78210525]'
  CanBindMultiple: false
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pGeneration_100_dhCheckGenerations_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pGeneration_100/dhCheckGenerations
Response OnDataChanged () id:Response_pGeneration_100_dhCheckGenerations_OnDataChanged
{
  #keys: '[414996.1.191962753]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProducts.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Generation()));
        dhFinelProducts.Data( &products );
      }else{
        if( dhCheckedProducts.Data().Size() <> 0 ){
          dhFinelProducts.Data( dhCheckedProducts.Data().Copy() );
        }else{
          dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pGeneration_100_dhGenerations_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pGeneration_100/dhGenerations
Response OnCreated () id:Response_pGeneration_100_dhGenerations_OnCreated
{
  #keys: '[414996.1.191962754]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pMQBMLB_653/dhCheckMQBMLB
Response OnDataChanged () id:Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged
{
  #keys: '[414996.1.191962747]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProducts.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.MQBMLB()));
        dhFinelProducts.Data( &products );
      }else{
        if( dhCheckedProducts.Data().Size() <> 0 ){
          dhFinelProducts.Data( dhCheckedProducts.Data().Copy() );
        }else{
          dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pMQBMLB_653_dhMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pMQBMLB_653/dhMQBMLB
Response OnCreated () id:Response_pMQBMLB_653_dhMQBMLB_OnCreated
{
  #keys: '[414996.1.191962748]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pPower_969_dhCheckPowers_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pPower_969/dhCheckPowers
Response OnDataChanged () id:Response_pPower_969_dhCheckPowers_OnDataChanged
{
  #keys: '[414996.1.191962750]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProducts.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Power()));
        dhFinelProducts.Data( &products );
      }else{
        if( dhCheckedProducts.Data().Size() <> 0 ){
          dhFinelProducts.Data( dhCheckedProducts.Data().Copy() );
        }else{
          dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_pPower_969_dhPowers_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pPower_969/dhPowers
Response OnCreated () id:Response_pPower_969_dhPowers_OnCreated
{
  #keys: '[414996.1.191962751]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/_ROOT_Component_FormOfflinePlanChanges#701.def
@@ -9,6 +9,7 @@
  [
    #child: PanelRibbon_799
    #child: PanelDemandComparison
    #child: pProductAttributeFilter_697
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_ListGenerations.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListGenerations
{
  #keys: '[414996.1.190631965]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor989
    {
      #keys: '[414996.1.190631966]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhGenerations'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage963
    Component DataSetLevel191
    {
      #keys: '[414996.1.190631971]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu687
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu687'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_ListMQBMLB#327.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListMQBMLB
{
  #keys: '[414996.1.190632131]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor472
    {
      #keys: '[414996.1.190632132]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhMQBMLB'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage519
    Component DataSetLevel527
    {
      #keys: '[414996.1.190632137]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu319
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu319'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_ListPowers.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListPowers
{
  #keys: '[414996.1.190632049]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor671
    {
      #keys: '[414996.1.190632050]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhPowers'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage245
    Component DataSetLevel995
    {
      #keys: '[414996.1.190632055]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu623
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu623'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def
@@ -89,6 +89,6 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon#805.def
@@ -10,6 +10,6 @@
  Properties:
  [
    FixedSize: true
    Taborder: 0
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listActionBarPage245.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage245
{
  #keys: '[414996.1.190632052]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listActionBarPage519.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage519
{
  #keys: '[414996.1.190632134]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listActionBarPage963.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage963
{
  #keys: '[414996.1.190631968]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listContextMenu319.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu319
{
  #keys: '[414996.1.190632139]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listContextMenu623.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu623
{
  #keys: '[414996.1.190632057]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_listContextMenu687.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu687
{
  #keys: '[414996.1.190631973]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pGeneration
{
  #keys: '[414996.1.190631800]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhGenerations
    {
      #keys: '[414996.1.190632215]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: ListGenerations
    Component dhCheckGenerations
    {
      #keys: '[414996.1.192863350]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckGenerations
        {
          #keys: '[414996.1.192863372]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhGenerations'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 0
    Title: 'Generation'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pMQBMLB
{
  #keys: '[414996.1.190631824]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhMQBMLB
    {
      #keys: '[414996.1.190632452]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: ListMQBMLB
    Component dhCheckMQBMLB
    {
      #keys: '[414996.1.192863416]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckMQBMLB
        {
          #keys: '[414996.1.192863417]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhMQBMLB'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 2
    Title: 'MQB/MLB'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pPower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pPower
{
  #keys: '[414996.1.190631812]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhPowers
    {
      #keys: '[414996.1.190632336]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: ListPowers
    Component dhCheckPowers
    {
      #keys: '[414996.1.192863404]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckPowers
        {
          #keys: '[414996.1.192863405]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhPowers'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 1
    Title: 'Power'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pProductAttributeFilter.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component pProductAttributeFilter
{
  #keys: '[414996.1.190631744]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pGeneration
    #child: pPower
    #child: pMQBMLB
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged.def
@@ -11,7 +11,7 @@
    Body:
    [*
      if( this.Data().Size() <> 0 ){
        dhFinelProduct.Data( this.Data().Copy() );
        dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
      }else{
        dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
      }
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pGeneration_dhCheckGenerations_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pGeneration/dhCheckGenerations
Response OnDataChanged () id:Response_pGeneration_dhCheckGenerations_OnDataChanged
{
  #keys: '[414996.1.192863654]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProduct.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Generation()));
        dhFinelProduct.Data( &products );
      }else{
        if( dhCheckedProduct.Data().Size() <> 0 ){
          dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
        }else{
          dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pGeneration_dhGenerations_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pGeneration/dhGenerations
Response OnCreated () id:Response_pGeneration_dhGenerations_OnCreated
{
  #keys: '[414996.1.192824501]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pMQBMLB_dhCheckMQBMLB_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pMQBMLB/dhCheckMQBMLB
Response OnDataChanged () id:Response_pMQBMLB_dhCheckMQBMLB_OnDataChanged
{
  #keys: '[414996.1.191962173]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProduct.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.MQBMLB()));
        dhFinelProduct.Data( &products );
      }else{
        if( dhCheckedProduct.Data().Size() <> 0 ){
          dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
        }else{
          dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pMQBMLB_dhMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pMQBMLB/dhMQBMLB
Response OnCreated () id:Response_pMQBMLB_dhMQBMLB_OnCreated
{
  #keys: '[414996.1.190691936]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pPower_dhCheckPowers_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pPower/dhCheckPowers
Response OnDataChanged () id:Response_pPower_dhCheckPowers_OnDataChanged
{
  #keys: '[414996.1.191962161]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProduct.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Power()));
        dhFinelProduct.Data( &products );
      }else{
        if( dhCheckedProduct.Data().Size() <> 0 ){
          dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
        }else{
          dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pPower_dhPowers_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pPower/dhPowers
Response OnCreated () id:Response_pPower_dhPowers_OnCreated
{
  #keys: '[414996.1.192782879]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def
@@ -9,6 +9,7 @@
  [
    #child: PanelRibbon_805
    #child: PanelAnnualPlan
    #child: pProductAttributeFilter
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_ListGenerations#61.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListGenerations id:ListGenerations_61
{
  #keys: '[414996.1.192703098]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor989
    {
      #keys: '[414996.1.192703099]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhGenerations'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage963_1
    Component DataSetLevel191
    {
      #keys: '[414996.1.192703101]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu687_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu687'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_ListMQBMLB#670.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListMQBMLB id:ListMQBMLB_670
{
  #keys: '[414996.1.192703116]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor472
    {
      #keys: '[414996.1.192703117]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhMQBMLB'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage519_1
    Component DataSetLevel527
    {
      #keys: '[414996.1.192703119]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu319_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu319'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_ListPowers#667.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListPowers id:ListPowers_667
{
  #keys: '[414996.1.192703107]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor671
    {
      #keys: '[414996.1.192703108]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhPowers'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage245_1
    Component DataSetLevel995
    {
      #keys: '[414996.1.192703110]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu623_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu623'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelDemandComparison.def
@@ -79,6 +79,6 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelDemandComparison294.def
@@ -12,6 +12,6 @@
  Properties:
  [
    FixedSize: true
    Taborder: 0
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listActionBarPage245#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage245 id:listActionBarPage245_1
{
  #keys: '[414996.1.192703109]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listActionBarPage519#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage519 id:listActionBarPage519_1
{
  #keys: '[414996.1.192703118]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listActionBarPage963#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage963 id:listActionBarPage963_1
{
  #keys: '[414996.1.192703100]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listContextMenu319#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu319 id:listContextMenu319_1
{
  #keys: '[414996.1.192703120]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listContextMenu623#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu623 id:listContextMenu623_1
{
  #keys: '[414996.1.192703111]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_listContextMenu687#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu687 id:listContextMenu687_1
{
  #keys: '[414996.1.192703102]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pGeneration#100.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pGeneration id:pGeneration_100
{
  #keys: '[414996.1.192703097]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListGenerations_61
    Component dhGenerations
    {
      #keys: '[414996.1.192703103]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckGenerations
    {
      #keys: '[414996.1.192703104]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckGenerations
        {
          #keys: '[414996.1.192703105]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhGenerations'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 0
    Title: 'Generation'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pMQBMLB#653.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pMQBMLB id:pMQBMLB_653
{
  #keys: '[414996.1.192703115]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListMQBMLB_670
    Component dhMQBMLB
    {
      #keys: '[414996.1.192703121]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckMQBMLB
    {
      #keys: '[414996.1.192703122]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckMQBMLB
        {
          #keys: '[414996.1.192703123]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhMQBMLB'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 2
    Title: 'MQB/MLB'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pPower#969.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pPower id:pPower_969
{
  #keys: '[414996.1.192703106]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListPowers_667
    Component dhPowers
    {
      #keys: '[414996.1.192703112]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckPowers
    {
      #keys: '[414996.1.192703113]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckPowers
        {
          #keys: '[414996.1.192703114]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhPowers'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 1
    Title: 'Power'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pProductAttributeFilter#697.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component pProductAttributeFilter id:pProductAttributeFilter_697
{
  #keys: '[414996.1.192703096]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pGeneration_100
    #child: pPower_969
    #child: pMQBMLB_653
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pGeneration_100_dhCheckGenerations_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pGeneration_100/dhCheckGenerations
Response OnDataChanged () id:Response_pGeneration_100_dhCheckGenerations_OnDataChanged
{
  #keys: '[414996.1.192703090]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProduct.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Generation()));
        dhFinelProduct.Data( &products );
      }else{
        if( dhCheckedProduct.Data().Size() <> 0 ){
          dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
        }else{
          dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pGeneration_100_dhGenerations_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pGeneration_100/dhGenerations
Response OnCreated () id:Response_pGeneration_100_dhGenerations_OnCreated
{
  #keys: '[414996.1.192703091]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pMQBMLB_653/dhCheckMQBMLB
Response OnDataChanged () id:Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged
{
  #keys: '[414996.1.192703084]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProduct.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.MQBMLB()));
        dhFinelProduct.Data( &products );
      }else{
        if( dhCheckedProduct.Data().Size() <> 0 ){
          dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
        }else{
          dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pMQBMLB_653_dhMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pMQBMLB_653/dhMQBMLB
Response OnCreated () id:Response_pMQBMLB_653_dhMQBMLB_OnCreated
{
  #keys: '[414996.1.192703085]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pPower_969_dhCheckPowers_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pPower_969/dhCheckPowers
Response OnDataChanged () id:Response_pPower_969_dhCheckPowers_OnDataChanged
{
  #keys: '[414996.1.192703087]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProduct.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Power()));
        dhFinelProduct.Data( &products );
      }else{
        if( dhCheckedProduct.Data().Size() <> 0 ){
          dhFinelProduct.Data( dhCheckedProduct.Data().Copy() );
        }else{
          dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pPower_969_dhPowers_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pPower_969/dhPowers
Response OnCreated () id:Response_pPower_969_dhPowers_OnCreated
{
  #keys: '[414996.1.192703088]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/_ROOT_Component_FormDemandComparison.def
@@ -9,6 +9,7 @@
  [
    #child: PanelDemandComparison
    #child: PanelDemandComparison294
    #child: pProductAttributeFilter_697
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_ListGenerations#61.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListGenerations id:ListGenerations_61
{
  #keys: '[414996.1.191962661]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor989
    {
      #keys: '[414996.1.191962662]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhGenerations'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage963_1
    Component DataSetLevel191
    {
      #keys: '[414996.1.191962664]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu687_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu687'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_ListMQBMLB#670.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListMQBMLB id:ListMQBMLB_670
{
  #keys: '[414996.1.191962679]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor472
    {
      #keys: '[414996.1.191962680]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhMQBMLB'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage519_1
    Component DataSetLevel527
    {
      #keys: '[414996.1.191962682]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu319_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu319'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_ListPowers#667.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListPowers id:ListPowers_667
{
  #keys: '[414996.1.191962670]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor671
    {
      #keys: '[414996.1.191962671]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LocalValue]'
        Source: 'dhPowers'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage245_1
    Component DataSetLevel995
    {
      #keys: '[414996.1.191962673]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu623_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCheck","title":"IsCheck","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCheck"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StringValue","title":"StringValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StringValue"}}]'
        ContextMenu: 'listContextMenu623'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison#634.def
@@ -16,14 +16,14 @@
        Taborder: 1
      ]
    }
    Component dhCheckedProduct
    Component dhCheckedProducts
    {
      #keys: '[412672.1.61940684]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[Product_MP]*'
      Children:
      [
        Component deCheckedProduct
        Component deCheckedProducts
        {
          #keys: '[412672.1.61940685]'
          BaseType: 'WebDataExtractor'
@@ -51,14 +51,14 @@
        Taborder: 2
      ]
    }
    Component dhCheckedSalesSegment
    Component dhCheckedSalesSegments
    {
      #keys: '[412672.1.61940687]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[SalesSegment_MP]*'
      Children:
      [
        Component deCheckedSalesSegment
        Component deCheckedSalesSegments
        {
          #keys: '[412672.1.61940688]'
          BaseType: 'WebDataExtractor'
@@ -114,6 +114,6 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon.def
@@ -11,6 +11,6 @@
  Properties:
  [
    FixedSize: true
    Taborder: 0
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listActionBarPage245#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage245 id:listActionBarPage245_1
{
  #keys: '[414996.1.191962672]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listActionBarPage519#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage519 id:listActionBarPage519_1
{
  #keys: '[414996.1.191962681]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listActionBarPage963#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage963 id:listActionBarPage963_1
{
  #keys: '[414996.1.191962663]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listContextMenu319#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu319 id:listContextMenu319_1
{
  #keys: '[414996.1.191962683]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listContextMenu623#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu623 id:listContextMenu623_1
{
  #keys: '[414996.1.191962674]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_listContextMenu687#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu687 id:listContextMenu687_1
{
  #keys: '[414996.1.191962665]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pGeneration#100.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pGeneration id:pGeneration_100
{
  #keys: '[414996.1.191962660]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListGenerations_61
    Component dhGenerations
    {
      #keys: '[414996.1.191962666]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckGenerations
    {
      #keys: '[414996.1.191962667]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckGenerations
        {
          #keys: '[414996.1.191962668]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhGenerations'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 0
    Title: 'Generation'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pMQBMLB#653.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pMQBMLB id:pMQBMLB_653
{
  #keys: '[414996.1.191962678]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListMQBMLB_670
    Component dhMQBMLB
    {
      #keys: '[414996.1.191962684]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckMQBMLB
    {
      #keys: '[414996.1.191962685]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckMQBMLB
        {
          #keys: '[414996.1.191962686]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhMQBMLB'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 2
    Title: 'MQB/MLB'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pPower#969.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pPower id:pPower_969
{
  #keys: '[414996.1.191962669]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListPowers_667
    Component dhPowers
    {
      #keys: '[414996.1.191962675]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    Component dhCheckPowers
    {
      #keys: '[414996.1.191962676]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LocalValue]*'
      Children:
      [
        Component deCheckPowers
        {
          #keys: '[414996.1.191962677]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[LocalValue]'
            FixedFilter: 'object.IsCheck()'
            Source: 'dhPowers'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 20
    Taborder: 1
    Title: 'Power'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_pProductAttributeFilter#697.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component pProductAttributeFilter id:pProductAttributeFilter_697
{
  #keys: '[414996.1.191962659]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pGeneration_100
    #child: pPower_969
    #child: pMQBMLB_653
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProducts_OnDataChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged.def ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: PanelDemandComparison_634/dhCheckedProduct
Response OnDataChanged () id:Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged
#parent: PanelDemandComparison_634/dhCheckedProducts
Response OnDataChanged () id:Response_PanelDemandComparison_634_dhCheckedProducts_OnDataChanged
{
  #keys: '[412672.1.61940669]'
  CanBindMultiple: false
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegments_OnDataChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged.def ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: PanelDemandComparison_634/dhCheckedSalesSegment
Response OnDataChanged () id:Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged
#parent: PanelDemandComparison_634/dhCheckedSalesSegments
Response OnDataChanged () id:Response_PanelDemandComparison_634_dhCheckedSalesSegments_OnDataChanged
{
  #keys: '[412672.1.61940667]'
  CanBindMultiple: false
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pGeneration_100_dhCheckGenerations_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pGeneration_100/dhCheckGenerations
Response OnDataChanged () id:Response_pGeneration_100_dhCheckGenerations_OnDataChanged
{
  #keys: '[414996.1.191962653]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProducts.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Generation()));
        dhFinelProducts.Data( &products );
      }else{
        if( dhCheckedProducts.Data().Size() <> 0 ){
          dhFinelProducts.Data( dhCheckedProducts.Data().Copy() );
        }else{
          dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pGeneration_100_dhGenerations_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pGeneration_100/dhGenerations
Response OnCreated () id:Response_pGeneration_100_dhGenerations_OnCreated
{
  #keys: '[414996.1.191962654]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pMQBMLB_653/dhCheckMQBMLB
Response OnDataChanged () id:Response_pMQBMLB_653_dhCheckMQBMLB_OnDataChanged
{
  #keys: '[414996.1.191962647]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProducts.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.MQBMLB()));
        dhFinelProducts.Data( &products );
      }else{
        if( dhCheckedProducts.Data().Size() <> 0 ){
          dhFinelProducts.Data( dhCheckedProducts.Data().Copy() );
        }else{
          dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pMQBMLB_653_dhMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pMQBMLB_653/dhMQBMLB
Response OnCreated () id:Response_pMQBMLB_653_dhMQBMLB_OnCreated
{
  #keys: '[414996.1.191962648]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pPower_969_dhCheckPowers_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pPower_969/dhCheckPowers
Response OnDataChanged () id:Response_pPower_969_dhCheckPowers_OnDataChanged
{
  #keys: '[414996.1.191962650]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      products := dhFinelProducts.Data();
      if( this.Data().Size() <> 0 ){
        products := selectset( products,Elements,product,exists( this.Data(),Elements,element,element.StringValue() = product.Power()));
        dhFinelProducts.Data( &products );
      }else{
        if( dhCheckedProducts.Data().Size() <> 0 ){
          dhFinelProducts.Data( dhCheckedProducts.Data().Copy() );
        }else{
          dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_pPower_969_dhPowers_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pPower_969/dhPowers
Response OnCreated () id:Response_pPower_969_dhPowers_OnCreated
{
  #keys: '[414996.1.191962651]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      generations := LocalValue::CreateProduct_MPAttribute( RecycleBin,MacroPlan,"generation" );
      this.Data( &generations );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/_ROOT_Component_FormOfflinePlanComparison.def
@@ -9,6 +9,7 @@
  [
    #child: PanelRibbon
    #child: PanelDemandComparison_634
    #child: pProductAttributeFilter_697
  ]
  Properties:
  [