lihongji
2024-10-14 ed09bf3eb41fcf1b79b083ac3d959f110b7e613b
Merge remote-tracking branch 'origin/dev' into dev
已重命名18个文件
已复制1个文件
已修改40个文件
已添加74个文件
已删除30个文件
2916 ■■■■■ 文件已修改
_Main/BL/InfoMessages.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Import.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Import.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_GenerateColumn.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_GenerateShow.qbl 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_InitiateSearch.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesCell/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_GenerateColumn.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitiateSearch.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Forecast/Attribute_Differnce.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Forecast/Function_CalcDiffernce.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport#1.qbl 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanMDSID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableSaveTime.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTableInfo/StaticMethod_Create.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTableInfo/_ROOT_Type_OfflinePlanTableInfo.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/FinancialSalesCell.qrp 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanByMDSID.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504#801.def 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_ButtonRibbon_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated#57.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListFactory#891.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListGeneration#273.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListMQBMLB#791.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListPower#480.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_MatrixEditorTable#97.def 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport#369.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFactory#298.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReport.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelHeader.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelOperation.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelRight.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelTable#673.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_Panelleft.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPageFactory#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPageGeneration#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPageMQBMLB#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPagePower#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuFactory#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuGeneration#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuMQBMLB#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuPower#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_matrixEditorActionBarPageTable#1.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_matrixeditorContextMenuTable#1.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListFactory_891_OnCheckedChanged#57.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListFactory_891_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListGeneration_273_OnCheckedChanged#384.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListGeneration_273_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListMQBMLB_791_OnCheckedChanged#812.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListMQBMLB_791_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListPower_480_OnCheckedChanged#568.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListPower_480_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonExport696_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonSearch_OnClick.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_bRefresh_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonSearch_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelOperation_ButtonProductionExport854_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelOperation_ButtonProductionImport660_OnClick.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelUnit_ddslUnit_OnCreated.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListFactory.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListGeneration.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListMQBMLB.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListPower.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_MatrixEditorTable.def 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport#545.def 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport.def 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFactory.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReport.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportHeader.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportSearch.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelGeneration#653.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelGeneration#844.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelHeader.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelLeft.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelMQBMLB#466.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelMQBMLB#603.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelOperation.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelPower#510.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelPower#858.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelRight.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelTable#424.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelTable.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelUnit#715.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPageFactory.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPageGeneration.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPageMQBMLB.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPagePower.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuFactory.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuGeneration.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuMQBMLB.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuPower.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_matrixEditorActionBarPageTable.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_matrixeditorContextMenuTable.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListFactory_OnCheckedChanged#150.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListFactory_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListGeneration_OnCheckedChanged#670.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListGeneration_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListMQBMLB_OnCheckedChanged#475.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListMQBMLB_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListPower_OnCheckedChanged#976.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListPower_OnCheckedChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_ButtonSearch_OnClick#118.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonExport570_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonSearch_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_bRefresh_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelGeneration_844_ddslGeneration_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelGeneration_844_ddslGeneration_OnSelectionChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelMQBMLB_603_ddslMQBMLB_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelMQBMLB_603_ddslMQBMLB_OnSelectionChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelOperation_ButtonSalesExport_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelOperation_ButtonSalesImport_OnClick.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelPower_858_ddslPower_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelPower_858_ddslPower_OnSelectionChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnSelectionChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/_ROOT_Component_FormFinancialSalesReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick#715.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSearch_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/InfoMessages.qbl
@@ -174,9 +174,11 @@
  {
    DefaultText: 'The import ChangeLossNr is not positive number.'
  }
  InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist
  InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist (
    const String productids
  )
  {
    DefaultText: 'The entered product does not exist.'
    DefaultText: 'The entered products @productids@does not exist.'
  }
  InfoMessage MP_ChangeLossSettingExcel_Import_UnitNoExist
  {
_Main/BL/Relations/Relation_OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo
{
  #keys: '1[414996.1.124530089]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide RecycleBin
  {
    #keys: '3[414996.1.124530091][414996.1.124530090][414996.1.124530092]'
    Cardinality: '0to1'
    ObjectDefinition: OfflinePlanTableInfo
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OfflinePlanTableInfo
  {
    #keys: '3[414996.1.124530094][414996.1.124530093][414996.1.124530095]'
    Cardinality: '1toN'
    ObjectDefinition: RecycleBin
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdate
{
  #keys: '3[415136.0.1191950107][415136.0.1191950106][415136.0.1191950108]'
  Description: '是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdate
{
  #keys: '3[415136.0.1191950111][415136.0.1191950110][415136.0.1191950112]'
  Description: '是否被导入更新'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Import.qbl
@@ -19,7 +19,8 @@
    owner.CCEngineLogisticsCostReport( relflush );
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( "M2/D2/Y" );
    //cnv2.CustomFormatString( "M2/D2/Y" );
    cnv2.CustomFormatString( "MM/dd/yyyy" );
    
    products                  := construct( Product_MPs );
    productcolumn             := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 0 );
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Import.qbl
@@ -19,7 +19,8 @@
    owner.DLEngineLogisticsCostReport( relflush );
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( "M2/D2/Y" );
    //cnv2.CustomFormatString( "M2/D2/Y" );
    cnv2.CustomFormatString( "MM/dd/yyyy" );
    
    products                  := construct( Product_MPs );
    productcolumn             := selectobject( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() = 0 );
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
@@ -16,10 +16,10 @@
  [*
    // ç”„兰鸽 Jun-5-2024 (created)
    feedback := '';
    if( [Number]number < 0 ){
    if( [Real]number < 0 ){
      feedback := Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger();
    }
    if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or [Number]number = 0 ){
    if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or [Real]number = 0 ){
      feedback := Translations::MP_ChangeLossSetting_CheckNull();
    }
    if( product1 = product2 ){
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_CheckImport.qbl
@@ -20,8 +20,14 @@
      error( Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger() );
    }
    //导入产品是否存在
    if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Product_MP, product, product.ID() = excel.Product1() or product.ID() = excel.Product2() ) ) ){
      error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist() );
    productfirsts         := selectuniquevalues( macroplan, ChangeLossSettingExcel, excel, excel.Product1() );
    productseconds        := selectuniquevalues( macroplan, ChangeLossSettingExcel, excel, excel.Product2() );
    productids            := productfirsts.Union( productseconds );
    nonproductids         := selectuniquevalues( productids, Elements, e, not exists( macroplan, Product_MP, product, product.ID() = e ), e );
    if( nonproductids.Size() > 0 ){
      error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist( nonproductids.Concatenate( ";" ) ) );
    //if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Product_MP, product, product.ID() = excel.Product1() or product.ID() = excel.Product2() ) ) ){
    //  error( Translations::MP_ChangeLossSettingExcel_Import_ProductNoExist() );
    }
    //导入产线是否存在
    if( exists( macroplan, ChangeLossSettingExcel, excel, not exists( macroplan, Unit, unit, unit.ID() = excel.Unit() ) ) ){
_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl
@@ -6,9 +6,9 @@
  [*
    // Akari Aug-21-2024 (created)
    value := "";
    if( this.FactoryName() = "大连工厂" ){
    if( this.FactoryName().LikeUserLocale( "大连" ) or  this.FactoryName().LikeUserLocale( "DL" ) ){
      value := "DL";
    }else if( this.FactoryName() = "长春工厂"){
    }else if( this.FactoryName().LikeUserLocale( "长春" ) or  this.FactoryName().LikeUserLocale( "CC" )){
      value := "CC";
    }
    
_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl
@@ -12,19 +12,32 @@
    shiftSchedulingInformations := construct( DispatchShiftSchedulingInformations );
    if( shiftName = "3" ){
      shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 );
      shiftSchedulingInformation1.SingleShiftName( "1班" );
      shiftSchedulingInformation1.SingleShiftName( "白班" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation1 );
      
      shiftSchedulingInformation2 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 );
      shiftSchedulingInformation2.SingleShiftName( "2班" );
      shiftSchedulingInformation2.SingleShiftName( "二班" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation2 );
      
      shiftSchedulingInformation3 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 );
      shiftSchedulingInformation3.SingleShiftName( "3班" );
      shiftSchedulingInformation3.SingleShiftName( "三班" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation3 );
    }else if( shiftName = "2" ){
      shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 2 );
      shiftSchedulingInformation1.SingleShiftName( "白班" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation1 );
      shiftSchedulingInformation2 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 2 );
      shiftSchedulingInformation2.SingleShiftName( "二班" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation2 );
    }else if( shiftName = "1" ){
      shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 1 );
      shiftSchedulingInformation1.SingleShiftName( "白班" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation1 );
    }else{
      shiftSchedulingInformation := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume );
      shiftSchedulingInformations.Add( shiftSchedulingInformation );
      shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 1 );
      shiftSchedulingInformation1.SingleShiftName( "" );
      shiftSchedulingInformations.Add( shiftSchedulingInformation1 );
    }
    
    
_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl
@@ -2,57 +2,27 @@
#parent: #root
Method Generate (
  FinancialProductionSearch search,
  Product_MPs products
  Factorys factorys,
  Strings productids
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    table      := selectobject( this, FinancialProductionSource.FinancialProductionReport, report, not report.IsShow() );
    allunit    := '<All>';
    //清空之前存储的显示数据
    this.Clear();
    //年汇总
    yearcolumn := this.FinancialProductionColumn( relnew, Name := '汇总', Period := search.MacroPlan().StartOfPlanning().StartOfNextYear().Date() );
    //过滤后的产品id
    productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() )
                                      and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() )
                                      and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() );
    sumrow     := this.FinancialProductionRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.FinancialProductionRow( relsize ) );
    sumyearcell := yearcolumn.FinancialProductionCell( relnew, Quantity := 0 );
    sumrow.FinancialProductionCell( relinsert, sumyearcell );
    traverse( table, FinancialProductionRow, row, row.Unit() = search.Unit() ){
      productid  := construct( Strings );
      productid.Add( row.Name() );
      if( productids.ContainsAll( productid ) ){
        showrow := this.FinancialProductionRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() );
        yearcell := yearcolumn.FinancialProductionCell( relnew, Quantity := 0 );
        showrow.FinancialProductionCell( relinsert, yearcell );
        traverse( row, FinancialProductionCell, cell, not cell.FinancialProductionColumn().IsDay() ){
          column   := selectobject( this, FinancialProductionColumn, column, column.Name() = cell.FinancialProductionColumn().Name() and not column.IsDay() );
          sumcell  := selectobject( column, FinancialProductionCell, c, c.FinancialProductionRow() = sumrow );
          if( isnull( sumcell ) ){
            sumcell := column.FinancialProductionCell( relnew, Quantity := 0 );
            sumrow.FinancialProductionCell( relinsert, sumcell );
    traverse( factorys, Elements, factory ){
      this.GenerateShow( table, productids, factory.ID() );
          }
          showcell := column.FinancialProductionCell( relnew, Quantity := cell.Quantity() );
          showrow.FinancialProductionCell( relinsert, showcell );
          yearcell.Quantity( yearcell.Quantity() + cell.Quantity() );
          sumyearcell.Quantity( sumyearcell.Quantity() + cell.Quantity() );
    //      value := [Real]cell.Value() + [Real]sumcell.Value();
          sumcell.Quantity( sumcell.Quantity() + cell.Quantity() );
        }
      }
    }
    traverse( this, FinancialProductionRow, row ){
      traverse( row, FinancialProductionCell, cell ){
    rows                    := selectsortedset( this, FinancialProductionRow, row, row.Name() );
    i                       := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      traverse( e, FinancialProductionCell, cell ){
        cell.Value( [String]([Number]cell.Quantity()) );
      }
      i                    := i + 1;
    }
  *]
}
_Main/BL/Type_FinancialProductionReport/Method_GenerateColumn.qbl
@@ -11,11 +11,6 @@
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    //for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
    //  periodtime := start.Date();
    //  periodname := periodtime.Format( "M2/D2/Y" );
    //  this.FinancialProductionColumn( relnew, Name := periodname, Period := periodtime );
    //}
    for( start := startofyear; start < startofnextyear; start := start + Duration::Days( 1 ) ){
      periodtime := start.Date();
      periodname := periodtime.Format( "M2/D2/Y" );
_Main/BL/Type_FinancialProductionReport/Method_GenerateShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: #root
Method GenerateShow (
  FinancialProductionReport table,
  Strings productids,
  String factory
)
{
  TextBody:
  [*
    // ç”„兰鸽 Oct-12-2024 (created)
    //年汇总
    yearcolumn                := this.FinancialProductionColumn( relnew, Name := '汇总', Period := this.FinancialProductionSource().MacroPlan().StartOfPlanning().StartOfNextYear().Date() );
    sumrow                    := this.FinancialProductionRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( 'SUM' ), Unit := factory );
    sumyearcell               := yearcolumn.FinancialProductionCell( relnew, Quantity := 0 );
    sumrow.FinancialProductionCell( relinsert, sumyearcell );
    traverse( table, FinancialProductionRow, row, row.Unit() = factory ){
      productid               := construct( Strings );
      productid.Add( row.Name() );
      if( productids.ContainsAll( productid ) ){
        showrow               := this.FinancialProductionRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( row.Name() ), Unit := row.Unit() );
        yearcell              := yearcolumn.FinancialProductionCell( relnew, Quantity := 0 );
        showrow.FinancialProductionCell( relinsert, yearcell );
        traverse( row, FinancialProductionCell, cell, not cell.FinancialProductionColumn().IsDay() ){
          column   := selectobject( this, FinancialProductionColumn, column, column.Name() = cell.FinancialProductionColumn().Name() and not column.IsDay() );
          sumcell  := selectobject( column, FinancialProductionCell, c, c.FinancialProductionRow() = sumrow );
          if( isnull( sumcell ) ){
            sumcell := column.FinancialProductionCell( relnew, Quantity := 0);
            sumrow.FinancialProductionCell( relinsert, sumcell );
          }
          showcell := column.FinancialProductionCell( relnew, Quantity := cell.Quantity(), IsUpdate := cell.IsUpdate()  );
          showrow.FinancialProductionCell( relinsert, showcell );
          yearcell.Quantity( yearcell.Quantity() + cell.Quantity() );
          sumyearcell.Quantity( sumyearcell.Quantity() + cell.Quantity() );
          sumcell.Quantity( sumcell.Quantity() + cell.Quantity() );
        }
      }
    }
  *]
}
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl
@@ -8,9 +8,12 @@
    allunit := FinancialProductionReport::GetDefaultAllUnit();
    //查询需要导入的报表
    table                   := selectobject( this.MacroPlan(), FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and not table.IsShow() );
    yearday                 := this.MacroPlan().StartOfPlanning().StartOfYear();
    beforeyearday           := ( yearday - Duration::Days( 1 ) ).Date();
    cnv2                    := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( "M2/D2/Y" );
    //cnv2.CustomFormatString( "M2/D2/Y" );
    cnv2.CustomFormatString( "MM/dd/yyyy" );
    traverse( this, FinancialProductionReport, report ){
      //获取导入的产品列和工厂列
      productcolumn         := selectobject( report, FinancialProductionColumn, column, column.Name() = 'Product' );
@@ -33,15 +36,25 @@
        
        //读取每一行的单元格
        traverse( row, FinancialProductionCell, cell, cell.FinancialProductionColumn() <> productcolumn and cell.FinancialProductionColumn() <> unitcolumn ){
          period            := cnv2.Convert( cell.FinancialProductionColumn().Name() )
          tablecolumn       := construct( FinancialProductionColumn );
          if( period = beforeyearday ){
            periodname      := yearday.Format( "M2/D2/Y" );
          //获取被导入报表的日期列
            tablecolumn     := selectobject( table, FinancialProductionColumn, column, not column.IsDay() and column.Name() = periodname );
            if( isnull( tablecolumn ) ){
              tablecolumn   := table.FinancialProductionColumn( relnew, Name := periodname, Period := yearday.Date() );
            }
          }else{
          tablecolumn       := selectobject( table, FinancialProductionColumn, column, not column.IsDay() and column.Name() = cell.FinancialProductionColumn().Name() );
          if( isnull( tablecolumn ) ){
            tablecolumn     := table.FinancialProductionColumn( relnew, Name := cell.FinancialProductionColumn().Name(), Period := cnv2.Convert( cell.FinancialProductionColumn().Name() ) );
          }
          }
          //获取被导入报表的单元格
          unitcell          := selectobject( unitrow, FinancialProductionCell, unitcell, unitcell.FinancialProductionColumn() = tablecolumn );
          if( isnull( unitcell ) ){
            unitcell        := tablecolumn.FinancialProductionCell( relnew, IsUpdate := true, Quantity := [Real]cell.Value(), Value := cell.Value() );
            unitcell        := tablecolumn.FinancialProductionCell( relnew, Quantity := [Real]cell.Value(), Value := cell.Value() );
            unitrow.FinancialProductionCell( relinsert, unitcell );
          }else{
            if( unitcell.Quantity() <> [Real]cell.Value() ){
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
@@ -16,12 +16,12 @@
    table                     := source.FinancialProductionReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
    showtable                 := source.FinancialProductionReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true );
    startofplanning           := owner.StartOfPlanning().Date();
    startofyear               := ( startofplanning.StartOfYear() - Duration::Days( 1 ) ).Date();
    startofnextyear           := ( startofplanning.StartOfNextYear() - Duration::Days( 1 ) ).Date();
    //startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    search                    := owner.FinancialProductionSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
    
    products                  := construct( Product_MPs );
    productids                := construct( Strings );
    table.GenerateColumn( owner );
    //取当前版本的product planning里new supply字段,分大连和长春工厂的产线,进行加总
    traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '厂内库' ) or stockingpoint.ID() = '大连外租库' ){
@@ -30,14 +30,14 @@
      
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() 
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, pispip.Period_MP().StartDate() >= startofyear and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
          //获取工厂行
          factoryrow          := table.GetRowByUnit( pisp.Product_MP(), ifexpr( iscc, ccunit, dlunit ) );
          //获取合计行
          allrow              := table.GetRowByUnit( pisp.Product_MP(), allunit );
          products.Add( pisp.Product_MP() );
          productids.Add( pisp.ProductID() );
          //当product planning的日期区间在需要的日期区间内 
          traverse( pisp, ProductInStockingPointInPeriod, pispip, pispip.Period_MP().StartDate() >= startofyear and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
            dayperiodtime     := ( pispip.Start() + Duration::Days( 1 ) ).Date();
            dayperiodname     := dayperiodtime.Format( "M2/D2/Y" );
            periodtime        := dayperiodtime.StartOfMonth();
@@ -52,13 +52,7 @@
        }
      }
    }
    rows := selectsortedset( table, FinancialProductionRow, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    showtable.Generate( search, products );
    factorys                  := selectset( owner, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
    showtable.Generate( search, factorys, productids );
  *]
}
_Main/BL/Type_FinancialProductionSource/StaticMethod_InitiateSearch.qbl
@@ -20,8 +20,9 @@
    }
    table                     := selectobject( owner, FinancialProductionSource.FinancialProductionReport, table, table.IsShow() );
    if( not isnull( table ) ){
      products                := selectset( owner, Product_MP, product, true );
      table.Generate( search, products );
      factorys                := selectset( owner, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
      productids              := selectuniquevalues( owner, FinancialProductionSource.FinancialProductionReport.FinancialProductionRow, row, not row.FinancialProductionReport().IsShow(), row.Name() );
      table.Generate( search, factorys, productids);
    }
    return table;
  *]
_Main/BL/Type_FinancialSalesCell/Attribute_IsUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsUpdate
{
  #keys: '3[415136.0.1191964789][415136.0.1191964788][415136.0.1191964790]'
  Description: '是否被更新'
  ValueType: Boolean
}
_Main/BL/Type_FinancialSalesReport/Method_Generate.qbl
@@ -2,51 +2,24 @@
#parent: #root
Method Generate (
  FinancialSalesSearch search,
  Product_MPs products
  Factorys factorys,
  Strings productids
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    table      := selectobject( this, FinancialSalesSource.FinancialSalesReport, report, not report.IsShow() );
    allunit    := '<All>';
    //清空之前存储的显示数据
    this.Clear();
    //年汇总
    yearcolumn := this.FinancialSalesColumn( relnew, Name := '汇总', Period := search.MacroPlan().StartOfPlanning().StartOfNextYear().Date() );
    //过滤后的产品id
    productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() )
                                      and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() )
                                      and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() );
    sumrow     := this.FinancialSalesRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.FinancialSalesRow( relsize ) );
    sumyearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
    sumrow.FinancialSalesCell( relinsert, sumyearcell );
    traverse( table, FinancialSalesRow, row, row.Unit() = search.Unit() ){
      productid  := construct( Strings );
      productid.Add( row.Name() );
      if( productids.ContainsAll( productid ) ){
        showrow := this.FinancialSalesRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() );
        yearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
        showrow.FinancialSalesCell( relinsert, yearcell );
        traverse( row, FinancialSalesCell, cell, not cell.FinancialSalesColumn().IsDay() ){
          column   := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() and not column.IsDay());
          sumcell  := selectobject( column, FinancialSalesCell, c, c.FinancialSalesRow() = sumrow );
          if( isnull( sumcell ) ){
            sumcell := column.FinancialSalesCell( relnew, Value := '0' );
            sumrow.FinancialSalesCell( relinsert, sumcell );
    traverse( factorys, Elements, factory ){
      this.GenerateShow( table, productids, factory.ID() );
          }
          showcell := column.FinancialSalesCell( relnew, Value := cell.Value() );
          showrow.FinancialSalesCell( relinsert, showcell );
          yearcell.Value( [String]( [Real]yearcell.Value() + [Real]cell.Value() ) );
          sumyearcell.Value( [String]( [Real]sumyearcell.Value() + [Real]cell.Value() ) );
          value := [Real]cell.Value() + [Real]sumcell.Value();
          sumcell.Value( [String]value );
        }
      }
    rows                    := selectsortedset( this, FinancialSalesRow, row, row.Name() );
    i                       := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i                    := i + 1;
    }
  *]
}
_Main/BL/Type_FinancialSalesReport/Method_GenerateColumn.qbl
@@ -11,11 +11,6 @@
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    //for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
    //  periodtime := start.Date();
    //  periodname := periodtime.Format( "M2/D2/Y" );
    //  this.FinancialSalesColumn( relnew, Name := periodname, Period := periodtime );
    //}
    for( start := startofyear; start < startofnextyear; start := start + Duration::Days( 1 ) ){
      periodtime := start.Date();
      periodname := periodtime.Format( "M2/D2/Y" );
_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
Method GenerateShow (
  FinancialSalesReport table,
  Strings productids,
  String factory
)
{
  TextBody:
  [*
    // ç”„兰鸽 Oct-12-2024 (created)
    //年汇总
    yearcolumn := this.FinancialSalesColumn( relnew, Name := '汇总', Period := this.FinancialSalesSource().MacroPlan().StartOfPlanning().StartOfNextYear().Date() );
    sumrow     := this.FinancialSalesRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( 'SUM' ), Unit := factory, RowNr := table.FinancialSalesRow( relsize ) );
    sumyearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
    sumrow.FinancialSalesCell( relinsert, sumyearcell );
    traverse( table, FinancialSalesRow, row, row.Unit() = factory ){
      productid  := construct( Strings );
      productid.Add( row.Name() );
      if( productids.ContainsAll( productid ) ){
        showrow := this.FinancialSalesRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( row.Name() ), Unit := row.Unit(), RowNr := row.RowNr() );
        yearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
        showrow.FinancialSalesCell( relinsert, yearcell );
        traverse( row, FinancialSalesCell, cell, not cell.FinancialSalesColumn().IsDay() ){
          column   := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() and not column.IsDay());
          sumcell  := selectobject( column, FinancialSalesCell, c, c.FinancialSalesRow() = sumrow );
          if( isnull( sumcell ) ){
            sumcell := column.FinancialSalesCell( relnew, Value := '0' );
            sumrow.FinancialSalesCell( relinsert, sumcell );
          }
          showcell := column.FinancialSalesCell( relnew, Value := cell.Value(), IsUpdate := cell.IsUpdate()  );
          showrow.FinancialSalesCell( relinsert, showcell );
          yearcell.Value( [String]( [Real]yearcell.Value() + [Real]cell.Value() ) );
          sumyearcell.Value( [String]( [Real]sumyearcell.Value() + [Real]cell.Value() ) );
          value := [Real]cell.Value() + [Real]sumcell.Value();
          sumcell.Value( [String]value );
        }
      }
    }
  *]
}
_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
@@ -7,32 +7,66 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    allunit := FinancialProductionReport::GetDefaultAllUnit();
    table   := selectobject( this.MacroPlan(), FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and not table.IsShow() );
    //info( '--------------------------', table.Name() );
    yearday                 := this.MacroPlan().StartOfPlanning().StartOfYear();
    beforeyearday           := ( yearday - Duration::Days( 1 ) ).Date();
    cnv2                    := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    //cnv2.CustomFormatString( "M2/D2/Y" );
    cnv2.CustomFormatString( "MM/dd/yyyy" );
    traverse( this, FinancialSalesReport, report ){
      productcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Product' );
      unitcolumn    := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Unit' );
    //  info( '----------------------1-----------------', productcolumn.Name(), unitcolumn.Name() );
      
      traverse( report, FinancialSalesRow, row ){
        product := selectobject( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() = productcolumn );
        unit    := selectobject( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() = unitcolumn );
    //    info( '----------------------2-----------------', product.Value(), unit.Value() );
        
        unitrow := selectobject( table, FinancialSalesRow, unitrow, unitrow.Name() = product.Value() and unitrow.Unit() = unit.Value() );
        if( isnull( unitrow ) ){
          unitrow           := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := unit.Value() );
        }
        allrow  := selectobject( table, FinancialSalesRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit );
    //    info( '----------------------3-----------------', unitrow.Name(), unitrow.Unit() );
        // and product.Value() = '120 kW Rotor' and unit.Value() = 'Assembly Plant (Spain)'
        if( isnull( unitrow ) ){
          allrow            := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit );
        }
        traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn ){
          column   := cell.FinancialSalesColumn();
          unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn().Name() = column.Name() );
          allcell  := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn().Name() = column.Name() );
    //      info( isnull( unitcell ), isnull( allcell ), cell.Value(), unitcell.Value(), allcell.Value() );
          if( not isnull( unitcell ) ){
            unitcell.Value( cell.Value() );
          period            := cnv2.Convert( column.Name() )
          tablecolumn       := construct( FinancialSalesColumn );
          if( period = beforeyearday ){
            periodname      := yearday.Format( "M2/D2/Y" );
            //获取被导入报表的日期列
            tablecolumn     := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname );
            if( isnull( tablecolumn ) ){
              tablecolumn   := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
          }
          if( not isnull( allcell ) ){
            value := [Real]cell.Value() + [Real]allcell.Value();
            allcell.Value( [String]value );
          }else{
            tablecolumn     := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = column.Name() );
            if( isnull( tablecolumn ) ){
              tablecolumn   := table.FinancialSalesColumn( relnew, Name := column.Name(), Period := cnv2.Convert( column.Name() ) );
            }
          }
          unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn().Name() = column.Name() );
          if( isnull( unitcell ) ){
            unitcell        := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
            unitrow.FinancialSalesCell( relinsert, unitcell );
          }else{
            if( unitcell.Value() <> cell.Value() ){
              unitcell.Value( cell.Value() );
              unitcell.IsUpdate( true );
            }
          }
          allcell  := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn().Name() = column.Name() );
          if( isnull( unitcell ) ){
            allcell         := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
            allrow.FinancialSalesCell( relinsert, allcell );
          }else{
            if( allcell.Value() <> cell.Value() ){
              allcell.Value( cell.Value() );
              allcell.IsUpdate( true );
            }
          }
        }
      }
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
@@ -10,23 +10,20 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    owner.FinancialSalesSource( relflush );
    owner.FSImportData( relflush );
    products                  := construct( Product_MPs );
    productids                := construct( Strings );
    allunit                   := FinancialSalesReport::GetDefaultAllUnit();
    ccunit                    := FinancialSalesReport::GetDefaultCCUnit();
    dlunit                    := FinancialSalesReport::GetDefaultDLUnit();
    ccsalessegment            := FinancialSalesReport::GetSalesSegmentCC();
    tjsalessegment            := FinancialSalesReport::GetSalesSegmentTJ();
    fssalessegment            := FinancialSalesReport::GetSalesSegmentFS();
    //ccspline                  := FinancialSalesReport::GetStockingPointCCLine();
    //dlspline                  := FinancialSalesReport::GetStockingPointDLLine();
    //ccrent                    := FinancialSalesReport::GetStockingPointCCRent();
    
    source                    := owner.FinancialSalesSource( relnew, IsImport := false, Name := FinancialSalesReport::GetDefaultName() );
    table                     := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
    showtable                 := source.FinancialSalesReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true );
    startofplanning           := owner.StartOfPlanning().Date();
    startofyear               := ( startofplanning.StartOfYear() - Duration::Days( 1 ) ).Date();
    startofnextyear           := ( startofplanning.StartOfNextYear() - Duration::Days( 1 ) ).Date();
    //startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    search                    := owner.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit );
    
@@ -54,7 +51,7 @@
        //获取工厂行
        factoryrow           := table.GetRow( ifexpr( isdl, dlunit, ccunit ), product );
      
        products.Add( product );
        productids.Add( forecast.ProductID() );
        traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){
          dayperiodtime      := psdip.StartDate();
          dayperiodname      := dayperiodtime.Format( "M2/D2/Y" );
@@ -75,13 +72,13 @@
    //从Product planning查找库存点为大连发动机的长春外租库,取New supply字段按月汇总需求数量
    traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID() = '大连发动机的长春外租库' ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, pispip.Period_MP().StartDate() >= startofyear and pispip.Period_MP().StartDate() < startofnextyear
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
                              and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//产品为MQB
          product           := pisp.Product_MP();
          allrow            := table.GetRow( allunit, product );
          factoryrow        := table.GetRow( dlunit, product );
          products.Add( product );
          traverse( pisp, ProductInStockingPointInPeriod, pispip, pispip.Period_MP().StartDate() >= startofyear
          productids.Add( pisp.ProductID() );
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                    and pispip.Period_MP().StartDate() < startofnextyear 
                    and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
            dayperiodtime   := ( pispip.Start() + Duration::Days( 1 ) ).Date();
@@ -134,13 +131,7 @@
    //    }
    //  }
    //}
    rows := selectsortedset( table, FinancialSalesRow, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    showtable.Generate( search, products );
    factorys                  := selectset( owner, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
    showtable.Generate( search, factorys, productids );
  *]
}
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitiateSearch.qbl
@@ -20,8 +20,9 @@
    }
    table                     := selectobject( owner, FinancialSalesSource.FinancialSalesReport, table, table.IsShow() );
    if( not isnull( table ) ){
      products                := selectset( owner, Product_MP, product, true );
      table.Generate( search, products );
      factorys                := selectset( owner, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
      productids              := selectuniquevalues( owner, FinancialSalesSource.FinancialSalesReport.FinancialSalesRow, row, not row.FinancialSalesReport().IsShow(), row.Name() );
      table.Generate( search, factorys, productids );
    }
    return table;
  *]
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -115,7 +115,7 @@
      ccsvaluesum           := ccsvaluesum + ccsvalue;
    }
    sumcolumn                 := table.FinancialWeeklyColumn( relnew, Name := 'SUM' );
    cumulantcolumn            := table.FinancialWeeklyColumn( relnew, Name := '累计量' );
    //cumulantcolumn            := table.FinancialWeeklyColumn( relnew, Name := '累计量' );
    proportioncolumn          := table.FinancialWeeklyColumn( relnew, Name := '占比' );
    //SUM
    totalpcellsum           := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvaluesum ) );
@@ -131,18 +131,18 @@
    ccscellsum              := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluesum );
    ccsales.FinancialWeeklyCell( relinsert, ccscellsum );
    //累计量
    totalpcellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant );
    totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant );
    dlpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant );
    dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant );
    ccpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant );
    ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant );
    totalscellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant );
    totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant );
    dlscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant );
    dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant );
    ccscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant );
    ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant );
    //totalpcellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant );
    //totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant );
    //dlpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant );
    //dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant );
    //ccpcellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant );
    //ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant );
    //totalscellcumulant      := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant );
    //totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant );
    //dlscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant );
    //dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant );
    //ccscellcumulant         := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant );
    //ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant );
    //占比
    totalpvalueproportion   := guard( ( totalpvaluecumulant / totalpvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
    totalpcellproportion    := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalpvalueproportion );
@@ -168,6 +168,6 @@
    ccscellproportion       := proportioncolumn.FinancialWeeklyCell( relnew, Value := ccsvalueproportion );
    ccsales.FinancialWeeklyCell( relinsert, ccscellproportion );
    
    info( sumcolumn.FinancialWeeklyCell( relsize ), cumulantcolumn.FinancialWeeklyCell( relsize ), proportioncolumn.FinancialWeeklyCell( relsize ) );
    info( sumcolumn.FinancialWeeklyCell( relsize ), proportioncolumn.FinancialWeeklyCell( relsize ) );
  *]
}
_Main/BL/Type_Forecast/Attribute_Differnce.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Differnce
{
  #keys: '3[414996.1.124560122][414996.1.124560121][414996.1.124560123]'
  ValueType: Real
}
_Main/BL/Type_Forecast/Function_CalcDiffernce.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcDiffernce
{
  TextBody:
  [*
    // Akari Oct-14-2024 (created)
    value := this.Quantity() - this.FulfilledQuantity();
    this.Differnce( value );
  *]
}
_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl
@@ -24,7 +24,7 @@
    table                     := selectobject( owner, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
    if( not isnull( table ) ){
      factorys                := selectset( owner, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
      productids              := selectuniquevalues( table, InventroySummaryRow, row, row.Name() );
      productids              := selectuniquevalues( owner, InventorySummarySource.InventorySummaryReport.InventroySummaryRow, row, not row.InventorySummaryReport().IsShow(), row.Name() );
      table.Generate( search, factorys, productids );
    }
    return table;
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport#1.qbl
@@ -85,15 +85,16 @@
        workingDayCell.RealValue( workingDayCell.RealValue() + 1 );
        if( shiftPlan.IsHoliday() ){
          // èŠ‚å‡æ—¥åŠ ç­ 
          overtime := shiftPlan.GetBreakDayOvertimeHour( false );
          overtime := shiftPlan.GetHolidayOvertimeHour( false );
          holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + overtime );
          if( not isnull( nextShiftPlan )){
            nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
            if( nextShiftPlan.IsHoliday()){
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else{
              // ä¸‹ä¸€å¤©æ˜¯å¹³å¸¸çš„工作日
@@ -106,12 +107,14 @@
          overtime := shiftPlan.GetBreakDayOvertimeHour( false );
          breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + overtime );
          if( not isnull( nextShiftPlan )){
            nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
            if( nextShiftPlan.IsHoliday()){
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else{
              // ä¸‹ä¸€å¤©æ˜¯å¹³å¸¸çš„工作日
@@ -124,12 +127,13 @@
          overtime := shiftPlan.GetDefaultDayOvertimeHour( false );
          defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + overtime );
          if( not isnull( nextShiftPlan )){
            nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
            if( nextShiftPlan.IsHoliday()){
              // ä¸‹ä¸€å¤©æ˜¯èŠ‚å‡æ—¥
              nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true );
              holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else if( shiftPlan.DefaultRemark().LikeUserLocale( "周六" ) or shiftPlan.DefaultRemark().LikeUserLocale( "周日" ) ){
              // ä¸‹ä¸€å¤©æ˜¯å‘¨å…­æˆ–周日
              nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true );
              breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime );
            }else{
              // ä¸‹ä¸€å¤©æ˜¯å¹³å¸¸çš„工作日
@@ -150,6 +154,12 @@
    defaultMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "平时加班" );
    if( isnull( defaultMultiplier )){
      defaultMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "平时加班倍率",Multiplier := 1.5 );
    }
    // æ¬ å·¥å€çއ
    qiangongMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "欠工" );
    if( isnull( qiangongMultiplier )){
      qiangongMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "欠工",Multiplier := 1 );
    }
    
    // ä¼‘息日加班倍率
@@ -174,11 +184,13 @@
      unit := units.Element( unitIndexTree.Root().Child( unitIndexTree.GetHandle( rowKey )).GetValueAsNumber() );
      
      jiejiariCell := LocalCell_Default::GetCell(  rowKey + column5.Name(), cellIndexTree, cells, row, column5 );
      jiejiarifeiCell := LocalCell_Default::GetCell(  rowKey + column6.Name(), cellIndexTree, cells, row, column6 );
      jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,jiejiariCell.RealValue()));
      jiejiarifeiCell := LocalCell_Default::GetCell(  rowKey + column7.Name(), cellIndexTree, cells, row, column7 );
      jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiejiariCell.RealValue()));
      
      qiangongCell := LocalCell_Default::GetCell(  rowKey + column4.Name(), cellIndexTree, cells, row, column4 );
      qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column7.Name(), cellIndexTree, cells, row, column7 );
      qiangongCell.RealValue( qiangongCell.RealValue() - 8 );
      qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column6.Name(), cellIndexTree, cells, row, column6 );
      qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,qiangongCell.RealValue() ));
    }
    
_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl
@@ -157,6 +157,12 @@
      defaultMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "平时加班倍率",Multiplier := 1.5 );
    }
    
    // æ¬ å·¥å€çއ
    qiangongMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "欠工" );
    if( isnull( qiangongMultiplier )){
      qiangongMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "欠工",Multiplier := 1 );
    }
    // ä¼‘息日加班倍率
    breakDayMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "周末加班");
    if( isnull( breakDayMultiplier )){
@@ -178,28 +184,32 @@
      rowKey := row.CustomName();
      unit := units.Element( unitIndexTree.Root().Child( unitIndexTree.GetHandle( rowKey )).GetValueAsNumber() );
      
      // èŠ‚å‡æ—¥åŠ ç­è´¹
      jiejiariCell := LocalCell_Default::GetCell(  rowKey + column6.Name(), cellIndexTree, cells, row, column6 );
      jiejiarifeiCell := LocalCell_Default::GetCell(  rowKey + column10.Name(), cellIndexTree, cells, row, column10 );
      jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,jiejiariCell.RealValue()));
      jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiejiariCell.RealValue()));
      
      // ä¼‘息日加班费
      xiuxiCell := LocalCell_Default::GetCell(  rowKey + column5.Name(), cellIndexTree, cells, row, column5 );
      xiuxifeiCell := LocalCell_Default::GetCell(  rowKey + column9.Name(), cellIndexTree, cells, row, column9 );
      xiuxifeiCell.RealValue( EmployeeCost::GetSalary( unit,breakDayMultiplier,xiuxiCell.RealValue()));
      
      // å¹³æ—¶åŠ ç­è´¹
      jiabanCell := LocalCell_Default::GetCell(  rowKey + column4.Name(), cellIndexTree, cells, row, column4 );
      jiabanfeiCell := LocalCell_Default::GetCell(  rowKey + column8.Name(), cellIndexTree, cells, row, column8 );
      jiabanfeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiabanCell.RealValue()));
      jiabanfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier ,jiabanCell.RealValue()));
      
      // æ¬ å·¥è´¹
      qiangongCell := LocalCell_Default::GetCell(  rowKey + column7.Name(), cellIndexTree, cells, row, column7 );
      qiangongCell.RealValue( qiangongCell.RealValue() - 1 );
      qiangongCell.RealValue( qiangongCell.RealValue() - 8 );
      
      qiangongfeiCell := LocalCell_Default::GetCell(  rowKey + column11.Name(), cellIndexTree, cells, row, column11 );
      qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,qiangongCell.RealValue() ));
      qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,qiangongMultiplier,qiangongCell.RealValue() ));
      
      
      // å·¥ä½œæ—¥
      workingDayCell := LocalCell_Default::GetCell(  rowKey + column3.Name(), cellIndexTree, cells, row, column3 );
      workingDayCell.RealValue( workingDayCell.RealValue() + 1 );
      workingDayCell.RealValue( workingDayCell.RealValue() );
    }
    
    return table;
_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl
@@ -2,6 +2,7 @@
#parent: #root
StaticMethod Compared (
  RecycleBin recycleBin,
  const MacroPlan mactoPlan,
  String baseVersionPath,
  String compareVersionPath,
  String baseVersionName,
@@ -12,6 +13,17 @@
  [*
    // rislai Jun-20-2024 (created)
    localTable := recycleBin.LocalTable( relnew,Name := baseVersionName + "__" + compareVersionName );
    products := selectset( mactoPlan,Product_MP,product,not product.IsSystem() and product.IsUsed() );
    productIndexTree := NamedValueTree::Create();
    try{
      for( i := 0; i < products.Size(); i++){
        product := products.Element( i );
        productHandle := productIndexTree.GetHandle( product.Notes() );
        productIndexTree.Root().AddChild( productHandle,i )
      }
    }onerror{}
    
    baseVersionFile := OSFile::Construct();
    compareVersionFile := OSFile::Construct();
@@ -88,7 +100,17 @@
                             CompareVersionValue := ifexpr( isnull( compareVersionCell ),"空",compareVersionCell.Value()));
              column.IsAttrbuteColumn( true );
              if( columnName = "发动机零件号" ){
                row.ProductID( ifexpr( isnull( baseVersionCell ), ifexpr( isnull( compareVersionCell ),"空",compareVersionCell.Value()), baseVersionCell.Value()) );
                productID := ifexpr( isnull( baseVersionCell ), ifexpr( isnull( compareVersionCell ),"空",compareVersionCell.Value()), baseVersionCell.Value());
                productHanlde := productIndexTree.GetHandle( productID );
                productIndex := guard( productIndexTree.Root().Child( productHanlde ), null( NamedValue ));
                if( not isnull( productIndex )){
                  product := products.Element( productIndex.GetValueAsNumber() );
                  productID := product.ID();
                }
                row.ProductID( productID );
              }
              if( columnName = "车型" ){
                row.CustomName( " > " + ifexpr( isnull( baseVersionCell ), ifexpr( isnull( compareVersionCell ),"空",compareVersionCell.Value()), baseVersionCell.Value()) );
_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanMDSID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MacroPlanMDSID
{
  #keys: '3[414996.1.124530070][414996.1.124530069][414996.1.124530071]'
  ValueType: Key
}
_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MacroPlanName
{
  #keys: '3[414996.1.124550976][414996.1.124550975][414996.1.124550977]'
  ValueType: String
}
_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute TableName
{
  #keys: '3[414996.1.124530080][414996.1.124530079][414996.1.124530081]'
  ValueType: String
}
_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableSaveTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute TableSaveTime
{
  #keys: '3[414996.1.124540172][414996.1.124540171][414996.1.124540173]'
  ValueType: DateTime
}
_Main/BL/Type_OfflinePlanTableInfo/StaticMethod_Create.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  const constcontent MacroPlans macroPlans,
  RecycleBin owner
)
{
  TextBody:
  [*
    // Akari Oct-14-2024 (created)
    owner.OfflinePlanTableInfo( relflush );
    info( macroPlans.Size() );
    traverse( macroPlans,Elements,macroPlan ){
      mdsid := macroPlan.MDSID();
      name := macroPlan.MDSMacroPlan().Description();
      traverse( macroPlan,OfflinePlanTable,offlinePlanTable ){
        owner.OfflinePlanTableInfo( relnew,MacroPlanName := name,TableName := offlinePlanTable.SaveDateTime().Format( "Y-M2-D2 H:m:s" ),MacroPlanMDSID := mdsid ,TableSaveTime := offlinePlanTable.SaveDateTime());
      }
    }
    info( owner.OfflinePlanTableInfo( relsize ) );
  *]
}
_Main/BL/Type_OfflinePlanTableInfo/_ROOT_Type_OfflinePlanTableInfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OfflinePlanTableInfo
{
  #keys: '5[414996.1.124560137][414996.1.124560135][0.0.0][414996.1.124560136][414996.1.124560138]'
  BaseType: Object
  Description: '下线计划对应的macroPlan信息'
  StructuredName: 'OfflinePlanTableInfos'
}
_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl
@@ -29,9 +29,9 @@
        
        tempPeriod_MPs := selectset( dayPeriod_MPs,Elements,period_MP,period_MP.StartDate() >= tempStartDate and period_MP.EndDate() <= tempEndDate );
        
        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability()));
        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability()));
        unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability()));
        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()));
        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()));
        unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()));
        if( unitPeriodTimes1.Size() > 0 ){
          this.OnOK( unitPeriodTimes1,shiftPattern1 ); 
        }
@@ -49,11 +49,17 @@
        shiftPattern3 := tempShiftPattern;
      }
    }
    // è½®æ¢ç­æ¬¡ç¼“å­˜
    shiftPattern1 := this.ShiftPattern1();
    shiftPattern2 := this.ShiftPattern2();
    shiftPattern3 := this.ShiftPattern3();
    tempShiftPattern := shiftPattern1;
    if( weekPeriod_MPs.Size() <> 0 ){
      traverse( weekPeriod_MPs,Elements,period_MP ){
        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability()));
        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability()));
        unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability()));
        unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP());
        unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP());
        unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP());
        
        if( unitPeriodTimes1.Size() > 0 ){
          this.OnOK( unitPeriodTimes1,shiftPattern1 ); 
_Main/Sys/Repr/Global/FinancialSalesCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation FinancialSalesCell
{
  AttributeRepresentation Value
  {
    AttributeKey: '[415136.0.857450649]'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF6666'
        ConditionBody: 'object.IsUpdate()'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  RelationRepresentation AsFirstCellInColumn { RelationKey: '[415136.0.857450670]' Visibility: 'Normal' }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def
@@ -26,16 +26,6 @@
        Taborder: 2
      ]
    }
    Component dhMDSHandles
    {
      #keys: '[414996.1.116451655]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[internal[ExternalMDSHandle]]*'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanByMDSID.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: #root
Method GetMacroPlanByMDSID (
  OfflinePlanTableInfo offlinePlanInfo
) as MacroPlan id:Method_ApplicationMacroPlanner_GetMacroPlanByMDSID
{
  #keys: '[414996.1.122222878]'
  Body:
  [*
    componentmds := ApplicationScope.ComponentMDS();
    demandMacroPlan := null( MacroPlan );
    if( exists( ScenarioManager,ScenarioMP,scemp,scemp.IsLoaded() and scemp.DatasetMDSID() = offlinePlanInfo.MacroPlanMDSID() )){
      mdsinstance     := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = offlinePlanInfo.MacroPlanMDSID() );
      handle          := mdsinstance.GetMDSHandle();
      demandMacroPlan := handle.AsMacroPlan();
    }else{
      error( "MacroPlan[ " + offlinePlanInfo.MacroPlanName() + "] is not load." );
    }
    return demandMacroPlan;
  *]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def
@@ -7,14 +7,13 @@
  [*
    componentmds := ApplicationScope.ComponentMDS();
    
    dhMDSHandles.Data().Flush();
    
    macroPlans := construct( MacroPlans );
    scemps := selectset( ScenarioManager,ScenarioMP,mp,mp.IsLoaded());
    traverse( scemps,Elements,scemp ){
      mdsinstance     := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = scemp.DatasetMDSID() );
      handle          := mdsinstance.GetMDSHandle();
      dhMDSHandles.Data().Add( handle );
      demandMacroPlan := handle.AsMacroPlan();
      macroPlans.Add( demandMacroPlan );
    }
_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504#801.def
@@ -9,7 +9,7 @@
    {
      #keys: '[412672.1.78210474]'
      BaseType: 'WebDropDownList'
      Databinding: 'OfflinePlanTable'
      Databinding: 'OfflinePlanTableInfo'
      Children:
      [
        Component DataExtractorRibbon
@@ -18,7 +18,7 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[OfflinePlanTable]'
            DataType: 'structured[OfflinePlanTableInfo]'
            Source: 'dhOfflinePlanTables'
            Taborder: 0
            Transformation: 'Elements'
@@ -27,7 +27,7 @@
      ]
      Properties:
      [
        DisplayField: 'SaveDateTime'
        DisplayField: 'TableName'
        Label: '基准下线计划:'
        Taborder: 0
      ]
@@ -46,7 +46,7 @@
    {
      #keys: '[412672.1.78210579]'
      BaseType: 'WebDropDownList'
      Databinding: 'OfflinePlanTable'
      Databinding: 'OfflinePlanTableInfo'
      Children:
      [
        Component DataExtractorRibbon300
@@ -55,7 +55,7 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[OfflinePlanTable]'
            DataType: 'structured[OfflinePlanTableInfo]'
            Source: 'dhOfflinePlanTables'
            Taborder: 0
            Transformation: 'Elements'
@@ -64,7 +64,7 @@
      ]
      Properties:
      [
        DisplayField: 'SaveDateTime'
        DisplayField: 'TableName'
        Label: '对比下线计划:'
        Taborder: 1
      ]
@@ -73,10 +73,25 @@
    {
      #keys: '[414996.1.103241339]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[OfflinePlanTable]*'
      Databinding: 'structured[OfflinePlanTableInfo]*'
      Children:
      [
        Component deOfflinePlanTables
        {
          #keys: '[414996.1.124700546]'
          BaseType: 'WebDataExtractor'
      Properties:
      [
        Taborder: 3
            DataType: 'RecycleBin'
            Source: 'RecycleBin'
            Taborder: 0
            Transformation: 'OfflinePlanTableInfo'
          ]
        }
      ]
      Properties:
      [
        Taborder: 4
      ]
    }
    Component bExport
@@ -86,7 +101,7 @@
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 4
        Taborder: 5
      ]
    }
    Component dhXMLDataListener
@@ -112,7 +127,16 @@
      ]
      Properties:
      [
        Taborder: 5
        Taborder: 6
      ]
    }
    Component ButtonRibbon
    {
      #keys: '[414996.1.125429607]'
      BaseType: 'WebButton'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FormOfflinePlanChanges_OnCreated
{
  #keys: '[414996.1.124740834]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  GroupServerCalls: true
  QuillAction
  {
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_ButtonRibbon_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: PanelRibbon504_801/ButtonRibbon
Response OnClick () id:Response_PanelRibbon504_801_ButtonRibbon_OnClick
{
  #keys: '[414996.1.125429626]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
      OfflinePlanTableInfo::Create( macroPlans,RecycleBin );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def
@@ -9,8 +9,13 @@
  {
    Body:
    [*
      baseVersion := ddlBaseOfflinePlanTable.Data();
      compareVersion := ddlCompareOfflinePlanTable.Data();
      baseOfflineTableInfo := ddlBaseOfflinePlanTable.Data();
      baseMacroPlan := ApplicationMacroPlanner.GetMacroPlanByMDSID( baseOfflineTableInfo );
      baseVersion := select( baseMacroPlan ,OfflinePlanTable,table,table.SaveDateTime() = baseOfflineTableInfo.TableSaveTime() );
      compareOfflineTableInfo := ddlCompareOfflinePlanTable.Data();
      compareMacroPlan := ApplicationMacroPlanner.GetMacroPlanByMDSID( compareOfflineTableInfo );
      compareVersion := select( compareMacroPlan ,OfflinePlanTable,table,table.SaveDateTime() = compareOfflineTableInfo.TableSaveTime() );
      
      dhTable.Data( LocalCell_OfflinePlanComparison::Compared( RecycleBin,baseVersion,compareVersion ));
    *]
_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated#57.def
@@ -7,20 +7,6 @@
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
      offlinePlanTables := selectset( macroPlans,Elements.OfflinePlanTable,table,true );
      traverse( macroPlans,Elements,element ){
        info( element.MDSID() );
      }
      info( dhMDSHandles.Data().Size() );
      traverse( dhMDSHandles.Data(),Elements,element ){
        info( element.AsMacroPlan().MDSMacroPlan().Description() );
      }
      this.Data( &offlinePlanTables );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def
@@ -10,7 +10,7 @@
    Body:
    [*
      
      table := LocalCell_DemandComparison::Compared( RecycleBin,dhBaseVersionPath.Data(),dhCompareVersionPath.Data(),lBaseVersionName.Text(),lCompareVersionName.Text() );
      table := LocalCell_DemandComparison::Compared( RecycleBin,MacroPlan, dhBaseVersionPath.Data(),dhCompareVersionPath.Data(),lBaseVersionName.Text(),lCompareVersionName.Text() );
      dhComparisonData.Data( table );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListFactory#891.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListFactory id:ListFactory_891
{
  #keys: '[415136.0.1194549290]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorFactory
    {
      #keys: '[415136.0.1194549291]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'Factory'
      ]
    }
    #child: listActionBarPageFactory_1
    Component DataSetLevelFactory
    {
      #keys: '[415136.0.1194549293]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuFactory_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}}]'
        ContextMenu: 'listContextMenuFactory'
        SortCriteria: 'ID'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListGeneration#273.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListGeneration id:ListGeneration_273
{
  #keys: '[415136.0.1194549297]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorGeneration
    {
      #keys: '[415136.0.1194549298]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'ProductGeneration'
      ]
    }
    #child: listActionBarPageGeneration_1
    Component DataSetLevelGeneration
    {
      #keys: '[415136.0.1194549300]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuGeneration_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Generation","title":"Generation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Generation"}}]'
        ContextMenu: 'listContextMenuGeneration'
        SortCriteria: 'Generation'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListMQBMLB#791.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListMQBMLB id:ListMQBMLB_791
{
  #keys: '[415136.0.1194549304]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorMQBMLB
    {
      #keys: '[415136.0.1194549305]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'external[MacroPlan]'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'ProductMLBMQB'
      ]
    }
    #child: listActionBarPageMQBMLB_1
    Component DataSetLevelMQBMLB
    {
      #keys: '[415136.0.1194549307]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuMQBMLB_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MLBMQB","title":"MLBMQB","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MLBMQB"}}]'
        ContextMenu: 'listContextMenuMQBMLB'
        SortCriteria: 'MLBMQB'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_ListPower#480.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListPower id:ListPower_480
{
  #keys: '[415136.0.1194549311]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPower
    {
      #keys: '[415136.0.1194549312]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'external[MacroPlan]'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'ProductPower'
      ]
    }
    #child: listActionBarPagePower_1
    Component DataSetLevelPower
    {
      #keys: '[415136.0.1194549314]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPower_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Power","title":"Power","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Power"}}]'
        ContextMenu: 'listContextMenuPower'
        SortCriteria: 'Power'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_MatrixEditorTable#97.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_MatrixEditorTable.def ÐÞ¸Ä
@@ -1,19 +1,19 @@
Quintiq file version 2.0
Component MatrixEditorTable
Component MatrixEditorTable id:MatrixEditorTable_97
{
  #keys: '[415136.0.844701426]'
  #keys: '[415136.0.1194549840]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellTable
    {
      #keys: '[415136.0.844701427]'
      #keys: '[415136.0.1194549841]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorCell
        {
          #keys: '[415136.0.844701428]'
          #keys: '[415136.0.1194549842]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
@@ -35,13 +35,13 @@
    }
    Component MatrixEditorRowsTable
    {
      #keys: '[415136.0.844701431]'
      #keys: '[415136.0.1194549843]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorRow
        {
          #keys: '[415136.0.844701432]'
          #keys: '[415136.0.1194549844]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
@@ -61,13 +61,13 @@
    }
    Component MatrixEditorColumnsTable
    {
      #keys: '[415136.0.844701435]'
      #keys: '[415136.0.1194549845]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorColumn
        {
          #keys: '[415136.0.844701436]'
          #keys: '[415136.0.1194549846]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
@@ -86,8 +86,8 @@
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable
    #child: matrixeditorContextMenuTable
    #child: matrixEditorActionBarPageTable_1
    #child: matrixeditorContextMenuTable_1
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport#369.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def copy to "_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport\043369.def"
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelExport
Component PanelExport id:PanelExport_369
{
  #keys: '[415136.0.834352718]'
  #keys: '[415136.0.1194549632]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonExport
    Component ButtonExport696
    {
      #keys: '[415136.0.834352737]'
      #keys: '[415136.0.1194549633]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -18,7 +18,7 @@
    }
    Component ButtonSearch
    {
      #keys: '[415136.0.972170614]'
      #keys: '[415136.0.1194549634]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -26,9 +26,9 @@
        Taborder: 0
      ]
    }
    Component bRefresh id:bRefresh_859
    Component bRefresh
    {
      #keys: '[415136.0.1153802738]'
      #keys: '[415136.0.1194549635]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -40,6 +40,6 @@
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFactory#298.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelFactory id:PanelFactory_298
{
  #keys: '[415136.0.1194549289]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListFactory_891
    Component dhFactorys
    {
      #keys: '[415136.0.1194549295]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[Factory]*'
      Properties:
      [
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
    Title: 'Unit'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelFinancialProductionReport
{
  #keys: '[415136.0.1193311792]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: Panelleft
    #child: PanelRight
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def
@@ -1,24 +1,25 @@
Quintiq file version 2.0
Component PanelGeneration
{
  #keys: '[415136.0.834352628]'
  #keys: '[415136.0.1194549296]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslGeneration
    #child: ListGeneration_273
    Component dhGenerations
    {
      #keys: '[415136.0.834850709]'
      BaseType: 'WebDropDownStringList'
      #keys: '[415136.0.1194549302]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductGeneration]*'
      Properties:
      [
        Label: 'Generation'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
    Title: 'Generation'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelHeader
{
  #keys: '[415136.0.1194549582]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelExport_369
    #child: PanelOperation
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def
@@ -1,24 +1,25 @@
Quintiq file version 2.0
Component PanelMQBMLB
{
  #keys: '[415136.0.834352657]'
  #keys: '[415136.0.1194549303]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslMQBMLB
    #child: ListMQBMLB_791
    Component dhMQBMLBs
    {
      #keys: '[415136.0.834850906]'
      BaseType: 'WebDropDownStringList'
      #keys: '[415136.0.1194549309]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductMLBMQB]*'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
    Title: 'MLB/MQB'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelOperation.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelFinancialProductionReportOperation
Component PanelOperation
{
  #keys: '[415136.0.834352420]'
  #keys: '[415136.0.1194549737]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelFinancialProductionReportOperation
    Component LabelOperation
    {
      #keys: '[415136.0.834352468]'
      #keys: '[415136.0.1194549738]'
      BaseType: 'WebLabel'
      Properties:
      [
@@ -16,9 +16,9 @@
        Text: 'Production import'
      ]
    }
    Component ButtonProductionImport
    Component ButtonProductionImport660
    {
      #keys: '[415136.0.834352491]'
      #keys: '[415136.0.1194549739]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -27,9 +27,9 @@
        Taborder: 1
      ]
    }
    Component ButtonProductionExport
    Component ButtonProductionExport854
    {
      #keys: '[415136.0.834352534]'
      #keys: '[415136.0.1194549740]'
      BaseType: 'WebButton'
      Properties:
      [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def
@@ -1,24 +1,25 @@
Quintiq file version 2.0
Component PanelPower
{
  #keys: '[415136.0.834352679]'
  #keys: '[415136.0.1194549310]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslPower
    #child: ListPower_480
    Component dhPowers
    {
      #keys: '[415136.0.834851149]'
      BaseType: 'WebDropDownStringList'
      #keys: '[415136.0.1194549316]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductPower]*'
      Properties:
      [
        Label: 'Power'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
    Title: 'Power'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelRight.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelRight
{
  #keys: '[415136.0.1194549553]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelHeader
    #child: PanelTable_673
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelTable#673.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelTable id:PanelTable_673
{
  #keys: '[415136.0.1194549839]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditorTable_97
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_Panelleft.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
Component Panelleft
{
  #keys: '[415136.0.1194549288]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelFactory_298
    #child: PanelPower
    #child: PanelMQBMLB
    #child: PanelGeneration
  ]
  Properties:
  [
    FixedSize: true
    MinimumColumns: 20
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPageFactory#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageFactory id:listActionBarPageFactory_1
{
  #keys: '[415136.0.1194549292]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPageGeneration#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageGeneration id:listActionBarPageGeneration_1
{
  #keys: '[415136.0.1194549299]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPageMQBMLB#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageMQBMLB id:listActionBarPageMQBMLB_1
{
  #keys: '[415136.0.1194549306]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listActionBarPagePower#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePower id:listActionBarPagePower_1
{
  #keys: '[415136.0.1194549313]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuFactory#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuFactory id:listContextMenuFactory_1
{
  #keys: '[415136.0.1194549294]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuGeneration#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuGeneration id:listContextMenuGeneration_1
{
  #keys: '[415136.0.1194549301]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuMQBMLB#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuMQBMLB id:listContextMenuMQBMLB_1
{
  #keys: '[415136.0.1194549308]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_listContextMenuPower#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuPower id:listContextMenuPower_1
{
  #keys: '[415136.0.1194549315]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_matrixEditorActionBarPageTable#1.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_matrixEditorActionBarPageTable#1.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable id:matrixEditorActionBarPageTable_1
{
  #keys: '[415136.0.858621874]'
  #keys: '[415136.0.1194549847]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_matrixeditorContextMenuTable#1.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_matrixeditorContextMenuTable#1.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable id:matrixeditorContextMenuTable_1
{
  #keys: '[415136.0.858621875]'
  #keys: '[415136.0.1194549848]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListFactory_891_OnCheckedChanged#57.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListFactory_891
Response OnCheckedChanged () id:Response_ListFactory_891_OnCheckedChanged_57
{
  #keys: '[415136.0.1194549281]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections        := selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
      dhFactorys.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListFactory_891_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListFactory_891
Response OnCheckedChanged (
  structured[Factory] checkeditems
) id:Response_ListFactory_891_OnCheckedChanged
{
  #keys: '[415136.0.1194549282]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhFactorys.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListGeneration_273_OnCheckedChanged#384.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListGeneration_273
Response OnCheckedChanged () id:Response_ListGeneration_273_OnCheckedChanged_384
{
  #keys: '[415136.0.1194549278]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections     := selectset( MacroPlan, ProductGeneration, generation, true );
      dhGenerations.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListGeneration_273_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListGeneration_273
Response OnCheckedChanged (
  structured[ProductGeneration] checkeditems
) id:Response_ListGeneration_273_OnCheckedChanged
{
  #keys: '[415136.0.1194549279]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhGenerations.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListMQBMLB_791_OnCheckedChanged#812.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListMQBMLB_791
Response OnCheckedChanged () id:Response_ListMQBMLB_791_OnCheckedChanged_812
{
  #keys: '[415136.0.1194549275]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections     := selectset( MacroPlan, ProductMLBMQB, generation, true );
      dhMQBMLBs.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListMQBMLB_791_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListMQBMLB_791
Response OnCheckedChanged (
  structured[ProductMLBMQB] checkeditems
) id:Response_ListMQBMLB_791_OnCheckedChanged
{
  #keys: '[415136.0.1194549276]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhMQBMLBs.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListPower_480_OnCheckedChanged#568.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListPower_480
Response OnCheckedChanged () id:Response_ListPower_480_OnCheckedChanged_568
{
  #keys: '[415136.0.1194549272]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections     := selectset( MacroPlan, ProductPower, generation, true );
      dhPowers.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_ListPower_480_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPower_480
Response OnCheckedChanged (
  structured[ProductPower] checkeditems
) id:Response_ListPower_480_OnCheckedChanged
{
  #keys: '[415136.0.1194549273]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhPowers.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_OnCreated.def
@@ -11,11 +11,15 @@
    [*
      //初始化
      table := FinancialProductionSource::InitiateSearch( MacroPlan );
      //table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      Factory::Initilize( MacroPlan );
      ProductGeneration::Initilize( MacroPlan );
      ProductPower::Initilize( MacroPlan );
      ProductMLBMQB::Initilize( MacroPlan );
      dhFactorys.Data( selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() ) );
      dhGenerations.Data( selectset( MacroPlan, ProductGeneration, factory, true ) );
      dhPowers.Data( selectset( MacroPlan, ProductPower, factory, true ) );
      dhMQBMLBs.Data( selectset( MacroPlan, ProductMLBMQB, factory, true ) );
      DataHolderTable.Data( table );
      //dhSearch.Data( MacroPlan.FinancialProductionSearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonExport696_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonExport
Response OnClick () id:Response_PanelExport_ButtonExport_OnClick
#parent: PanelExport_369/ButtonExport696
Response OnClick () id:Response_PanelExport_369_ButtonExport696_OnClick
{
  #keys: '[415136.0.834850599]'
  #keys: '[415136.0.1194549631]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonSearch_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelExport_369/ButtonSearch
Response OnClick () id:Response_PanelExport_369_ButtonSearch_OnClick
{
  #keys: '[415136.0.1194549630]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      if( not isnull( DataHolderTable.Data() ) ){
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )
                                                       and exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ), product.ID() );
        DataHolderTable.Data().Generate( dhSearch.Data(), dhFactorys.Data(), productids );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_bRefresh_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_bRefresh_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelExport/bRefresh_859
Response OnClick () id:Response_PanelExport_670_bRefresh_OnClick
#parent: PanelExport_369/bRefresh
Response OnClick () id:Response_PanelExport_369_bRefresh_OnClick
{
  #keys: '[415136.0.1153802737]'
  #keys: '[415136.0.1194549629]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonSearch_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelOperation_ButtonProductionExport854_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelFinancialProductionReportOperation/ButtonProductionExport
Response OnClick () id:Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnClick
#parent: PanelOperation/ButtonProductionExport854
Response OnClick () id:Response_PanelOperation_ButtonProductionExport854_OnClick
{
  #keys: '[415136.0.834850519]'
  #keys: '[415136.0.1194549735]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelOperation_ButtonProductionImport660_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelFinancialProductionReportOperation/ButtonProductionImport
Response OnClick () id:Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnClick
#parent: PanelOperation/ButtonProductionImport660
Response OnClick () id:Response_PanelOperation_ButtonProductionImport660_OnClick
{
  #keys: '[415136.0.836011369]'
  #keys: '[415136.0.1194549736]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
@@ -30,7 +30,7 @@
          if( not source.IsExistFutureMonthData() or 
              ( source.IsExistFutureMonthData() and WebMessageBox::Question( this, Translations::MP_FinancialProductionReport_Question(), 'Yes|No' ) = 0 ) ){
             source.AfterImport();
             DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
             FinancialProductionSource::InitiateSearch( MacroPlan );
          }
          
          WebMessageBox::Success( Translations::A_VWED_Success() );
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelUnit_ddslUnit_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def
@@ -7,8 +7,6 @@
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelFinancialProductionReportHeader
    #child: PanelTable
    Component DataHolderTable
    {
      #keys: '[415136.0.840720309]'
@@ -44,6 +42,7 @@
        Taborder: 1
      ]
    }
    #child: PanelFinancialProductionReport
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListFactory.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListFactory
{
  #keys: '[415136.0.1193321775]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorFactory
    {
      #keys: '[415136.0.1193321776]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'Factory'
      ]
    }
    #child: listActionBarPageFactory
    Component DataSetLevelFactory
    {
      #keys: '[415136.0.1193321778]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuFactory
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}}]'
        ContextMenu: 'listContextMenuFactory'
        SortCriteria: 'ID'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListGeneration
{
  #keys: '[415136.0.1193321812]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorGeneration
    {
      #keys: '[415136.0.1193321813]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'ProductGeneration'
      ]
    }
    #child: listActionBarPageGeneration
    Component DataSetLevelGeneration
    {
      #keys: '[415136.0.1193321815]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuGeneration
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Generation","title":"Generation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Generation"}}]'
        ContextMenu: 'listContextMenuGeneration'
        SortCriteria: 'Generation'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListMQBMLB
{
  #keys: '[415136.0.1193321849]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorMQBMLB
    {
      #keys: '[415136.0.1193321850]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'external[MacroPlan]'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'ProductMLBMQB'
      ]
    }
    #child: listActionBarPageMQBMLB
    Component DataSetLevelMQBMLB
    {
      #keys: '[415136.0.1193321852]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuMQBMLB
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MLBMQB","title":"MLBMQB","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MLBMQB"}}]'
        ContextMenu: 'listContextMenuMQBMLB'
        SortCriteria: 'MLBMQB'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_ListPower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListPower
{
  #keys: '[415136.0.1193321886]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPower
    {
      #keys: '[415136.0.1193321887]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'external[MacroPlan]'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'ProductPower'
      ]
    }
    #child: listActionBarPagePower
    Component DataSetLevelPower
    {
      #keys: '[415136.0.1193321889]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPower
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Power","title":"Power","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Power"}}]'
        ContextMenu: 'listContextMenuPower'
        SortCriteria: 'Power'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_MatrixEditorTable.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_MatrixEditorTable#623.def ÐÞ¸Ä
@@ -1,19 +1,19 @@
Quintiq file version 2.0
Component MatrixEditorTable id:MatrixEditorTable_623
Component MatrixEditorTable
{
  #keys: '[415136.0.858621867]'
  #keys: '[415136.0.1193322115]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellTable
    {
      #keys: '[415136.0.858621868]'
      #keys: '[415136.0.1193322116]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorCell
        {
          #keys: '[415136.0.858621869]'
          #keys: '[415136.0.1193322117]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
@@ -35,13 +35,13 @@
    }
    Component MatrixEditorRowsTable
    {
      #keys: '[415136.0.858621870]'
      #keys: '[415136.0.1193322118]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorRow
        {
          #keys: '[415136.0.858621871]'
          #keys: '[415136.0.1193322119]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
@@ -61,13 +61,13 @@
    }
    Component MatrixEditorColumnsTable
    {
      #keys: '[415136.0.858621872]'
      #keys: '[415136.0.1193322120]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorColumn
        {
          #keys: '[415136.0.858621873]'
          #keys: '[415136.0.1193322121]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
@@ -86,8 +86,8 @@
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable_1
    #child: matrixeditorContextMenuTable_1
    #child: matrixEditorActionBarPageTable
    #child: matrixeditorContextMenuTable
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport#545.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelExport.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelExport
{
  #keys: '[415136.0.834352718]'
  #keys: '[415136.0.1193321967]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonExport
    Component ButtonExport570
    {
      #keys: '[415136.0.834352737]'
      #keys: '[415136.0.1193321968]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -18,7 +18,7 @@
    }
    Component ButtonSearch
    {
      #keys: '[415136.0.972170614]'
      #keys: '[415136.0.1193321969]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -26,9 +26,9 @@
        Taborder: 0
      ]
    }
    Component bRefresh id:bRefresh_859
    Component bRefresh
    {
      #keys: '[415136.0.1153802738]'
      #keys: '[415136.0.1193321970]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -40,6 +40,6 @@
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFactory.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelFactory
{
  #keys: '[415136.0.1193321774]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhFactorys
    {
      #keys: '[415136.0.1193321780]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[Factory]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: ListFactory
  ]
  Properties:
  [
    Taborder: 0
    Title: 'Unit'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelFinancialSalesReport
{
  #keys: '[415136.0.1193321676]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelLeft
    #child: PanelRight
  ]
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportHeader.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportSearch.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelGeneration#653.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelGeneration id:PanelGeneration_653
{
  #keys: '[415136.0.1193321811]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhGenerations
    {
      #keys: '[415136.0.1193321817]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductGeneration]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: ListGeneration
  ]
  Properties:
  [
    Taborder: 1
    Title: 'Generation'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelGeneration#844.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelHeader
{
  #keys: '[415136.0.1193321921]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelExport
    #child: PanelOperation
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelLeft.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
Component PanelLeft
{
  #keys: '[415136.0.1193321690]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelFactory
    #child: PanelGeneration_653
    #child: PanelMQBMLB_466
    #child: PanelPower_510
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelMQBMLB#466.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelMQBMLB id:PanelMQBMLB_466
{
  #keys: '[415136.0.1193321848]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhMQBMLBs
    {
      #keys: '[415136.0.1193321854]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductMLBMQB]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: ListMQBMLB
  ]
  Properties:
  [
    Taborder: 2
    Title: 'MLB/MQB'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelMQBMLB#603.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelOperation.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelFinancialSalesReportOperation.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelFinancialSalesReportOperation
Component PanelOperation
{
  #keys: '[415136.0.858621786]'
  #keys: '[415136.0.1193322031]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelFinancialSalesReportOperation
    {
      #keys: '[415136.0.858621787]'
      #keys: '[415136.0.1193322032]'
      BaseType: 'WebLabel'
      Properties:
      [
@@ -18,7 +18,7 @@
    }
    Component ButtonSalesImport
    {
      #keys: '[415136.0.858621788]'
      #keys: '[415136.0.1193322033]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -29,7 +29,7 @@
    }
    Component ButtonSalesExport
    {
      #keys: '[415136.0.858621789]'
      #keys: '[415136.0.1193322034]'
      BaseType: 'WebButton'
      Properties:
      [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelPower#510.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelPower id:PanelPower_510
{
  #keys: '[415136.0.1193321885]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhPowers
    {
      #keys: '[415136.0.1193321891]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductPower]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: ListPower
  ]
  Properties:
  [
    Taborder: 3
    Title: 'Power'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelPower#858.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelRight.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelRight
{
  #keys: '[415136.0.1193321903]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelHeader
    #child: PanelTable
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelTable#424.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelTable.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelTable.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component PanelTable
{
  #keys: '[415136.0.834352365]'
  #keys: '[415136.0.1193322114]'
  BaseType: 'WebPanel'
  Children:
  [
@@ -9,6 +9,6 @@
  ]
  Properties:
  [
    Taborder: 3
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelUnit#715.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPageFactory.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageFactory
{
  #keys: '[415136.0.1193321777]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPageGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageGeneration
{
  #keys: '[415136.0.1193321814]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPageMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageMQBMLB
{
  #keys: '[415136.0.1193321851]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listActionBarPagePower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePower
{
  #keys: '[415136.0.1193321888]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuFactory.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuFactory
{
  #keys: '[415136.0.1193321779]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuGeneration
{
  #keys: '[415136.0.1193321816]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuMQBMLB
{
  #keys: '[415136.0.1193321853]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_listContextMenuPower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuPower
{
  #keys: '[415136.0.1193321890]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_matrixEditorActionBarPageTable.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_matrixEditorActionBarPageTable.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable
{
  #keys: '[415136.0.844701439]'
  #keys: '[415136.0.1193322122]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_matrixeditorContextMenuTable.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_matrixeditorContextMenuTable.def ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable
{
  #keys: '[415136.0.844701442]'
  #keys: '[415136.0.1193322123]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListFactory_OnCheckedChanged#150.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListFactory
Response OnCheckedChanged () id:Response_ListFactory_OnCheckedChanged_150
{
  #keys: '[415136.0.1193321770]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections        := selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
      dhFactorys.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListFactory_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListFactory
Response OnCheckedChanged (
  structured[Factory] checkeditems
) id:Response_ListFactory_OnCheckedChanged
{
  #keys: '[415136.0.1193321771]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhFactorys.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListGeneration_OnCheckedChanged#670.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListGeneration
Response OnCheckedChanged () id:Response_ListGeneration_OnCheckedChanged_670
{
  #keys: '[415136.0.1193321807]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections     := selectset( MacroPlan, ProductGeneration, generation, true );
      dhGenerations.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListGeneration_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListGeneration
Response OnCheckedChanged (
  structured[ProductGeneration] checkeditems
) id:Response_ListGeneration_OnCheckedChanged
{
  #keys: '[415136.0.1193321808]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhGenerations.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListMQBMLB_OnCheckedChanged#475.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListMQBMLB
Response OnCheckedChanged () id:Response_ListMQBMLB_OnCheckedChanged_475
{
  #keys: '[415136.0.1193321844]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections     := selectset( MacroPlan, ProductMLBMQB, generation, true );
      dhMQBMLBs.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListMQBMLB_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListMQBMLB
Response OnCheckedChanged (
  structured[ProductMLBMQB] checkeditems
) id:Response_ListMQBMLB_OnCheckedChanged
{
  #keys: '[415136.0.1193321845]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhMQBMLBs.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListPower_OnCheckedChanged#976.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListPower
Response OnCheckedChanged () id:Response_ListPower_OnCheckedChanged_976
{
  #keys: '[415136.0.1193321881]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections     := selectset( MacroPlan, ProductPower, generation, true );
      dhPowers.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_ListPower_OnCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPower
Response OnCheckedChanged (
  structured[ProductPower] checkeditems
) id:Response_ListPower_OnCheckedChanged
{
  #keys: '[415136.0.1193321882]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      selections := checkeditems.Copy();
      dhPowers.Data( &selections );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_OnCreated.def
@@ -10,11 +10,15 @@
    Body:
    [*
      table := FinancialSalesSource::InitiateSearch( MacroPlan );
      //table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      Factory::Initilize( MacroPlan );
      ProductGeneration::Initilize( MacroPlan );
      ProductPower::Initilize( MacroPlan );
      ProductMLBMQB::Initilize( MacroPlan );
      dhFactorys.Data( selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() ) );
      dhGenerations.Data( selectset( MacroPlan, ProductGeneration, factory, true ) );
      dhPowers.Data( selectset( MacroPlan, ProductPower, factory, true ) );
      dhMQBMLBs.Data( selectset( MacroPlan, ProductMLBMQB, factory, true ) );
      DataHolderTable.Data( table );
      //dhSearch.Data( MacroPlan.FinancialSalesSearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_ButtonSearch_OnClick#118.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonExport570_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_ButtonExport_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelExport_545/ButtonExport
Response OnClick () id:Response_PanelExport_545_ButtonExport_OnClick
#parent: PanelExport/ButtonExport570
Response OnClick () id:Response_PanelExport_ButtonExport570_OnClick
{
  #keys: '[415136.0.858621765]'
  #keys: '[415136.0.1193321966]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonSearch_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonSearch
Response OnClick () id:Response_PanelExport_ButtonSearch_OnClick
{
  #keys: '[415136.0.1193321965]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      if( not isnull( DataHolderTable.Data() ) ){
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )
                                                       and exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ), product.ID() );
        DataHolderTable.Data().Generate( dhSearch.Data(), dhFactorys.Data(), productids );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_bRefresh_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_545_bRefresh_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelExport_545/bRefresh
#parent: PanelExport/bRefresh
Response OnClick () id:Response_PanelExport_bRefresh_OnClick
{
  #keys: '[415136.0.1153802933]'
  #keys: '[415136.0.1193321964]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelGeneration_844_ddslGeneration_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelGeneration_844_ddslGeneration_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelMQBMLB_603_ddslMQBMLB_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelMQBMLB_603_ddslMQBMLB_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelOperation_ButtonSalesExport_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelFinancialSalesReportOperation_ButtonSalesExport_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelFinancialSalesReportOperation/ButtonSalesExport
Response OnClick () id:Response_PanelFinancialSalesReportOperation_ButtonSalesExport_OnClick
#parent: PanelOperation/ButtonSalesExport
Response OnClick () id:Response_PanelOperation_ButtonSalesExport_OnClick
{
  #keys: '[415136.0.858621763]'
  #keys: '[415136.0.1193322029]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelOperation_ButtonSalesImport_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelFinancialSalesReportOperation_ButtonSalesImport_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelFinancialSalesReportOperation/ButtonSalesImport
Response OnClick () id:Response_PanelFinancialSalesReportOperation_ButtonSalesImport_OnClick
#parent: PanelOperation/ButtonSalesImport
Response OnClick () id:Response_PanelOperation_ButtonSalesImport_OnClick
{
  #keys: '[415136.0.858621764]'
  #keys: '[415136.0.1193322030]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
@@ -30,7 +30,7 @@
          if( not source.IsExistFutureMonthData() or 
              ( source.IsExistFutureMonthData() and WebMessageBox::Question( this, Translations::MP_FinancialProductionReport_Question(), 'Yes|No' ) = 0 ) ){
             source.AfterImport();
             DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
             FinancialSalesSource::InitiateSearch( MacroPlan );
          }
          
          WebMessageBox::Success( Translations::A_VWED_Success() );
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelPower_858_ddslPower_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelPower_858_ddslPower_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelUnit_715_ddslUnit_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/_ROOT_Component_FormFinancialSalesReport.def
@@ -42,8 +42,7 @@
        Taborder: 1
      ]
    }
    #child: PanelTable_424
    #child: PanelFinancialSalesReportHeader
    #child: PanelFinancialSalesReport
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def
@@ -7,7 +7,7 @@
    {
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgNotLinkedToPeriod","title":"ImgNotLinkedToPeriod","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgNotLinkedToPeriod"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPostponed","title":"ImgIsPostponed","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPostponed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"Quantity UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Original Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NettedQuantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"NettedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment Illustration","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfillment","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round(2)"}},{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue(object.NettedQuantity()-object.FulfilledQuantity(),0.0).Round(2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Priority.Name","title":"Priority","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Priority.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandUncertaintyPercentage","title":"Uncertainty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandUncertaintyPercentage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Origin","title":"Origin","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Origin"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgNotLinkedToPeriod","title":"ImgNotLinkedToPeriod","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgNotLinkedToPeriod"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPostponed","title":"ImgIsPostponed","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPostponed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"Quantity UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Original Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NettedQuantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"NettedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment Illustration","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfillment","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round(2)"}},{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue(object.NettedQuantity()-object.FulfilledQuantity(),0.0).Round(2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Priority.Name","title":"Priority","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Priority.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandUncertaintyPercentage","title":"Uncertainty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandUncertaintyPercentage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Origin","title":"Origin","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Origin"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Differnce","title":"Differnce","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Differnce"}}]'
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick#715.def
@@ -2,16 +2,4 @@
#parent: ListSalesDemands
Response OnClick () inherited id:Response_ListSalesDemands_MenuCreate_OnClick_715 #extension
{
  QuillAction #extension
  {
    Body:
    [*
      //Create new sales demand
      dlg := construct( DialogCreateEditForecast );
      dlg.New();
      dlg.bSplitUsingCurve().Visible( true );
      dlg.PanelCurve().Visible( true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_OnCreated.def
@@ -14,11 +14,11 @@
      ProductGeneration::Initilize( MacroPlan );
      ProductPower::Initilize( MacroPlan );
      ProductMLBMQB::Initilize( MacroPlan );
      //table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsShow() );
      dhFactorys.Data( selectset( MacroPlan, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() ) );
      dhGenerations.Data( selectset( MacroPlan, ProductGeneration, factory, true ) );
      dhPowers.Data( selectset( MacroPlan, ProductPower, factory, true ) );
      dhMQBMLBs.Data( selectset( MacroPlan, ProductMLBMQB, factory, true ) );
      DataHolderTable.Data( table );
      //dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSearch_OnClick.def
@@ -9,10 +9,6 @@
  {
    Body:
    [*
      c := 'VWED CC';
      info( c.Format( 'S(Len(10),AlignRight)' ), c.Format( 'S(Len(10))' ) );
      a := 'All';
      info( a.Format( 'S(Len(10),AlignRight)' ), a.Format( 'S(Len(10))' ) );
      if( not isnull( DataHolderTable.Data() ) ){
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )