xiaoding721
2024-10-14 3e22c533dd00a70f1bb7bb8575b5cb0335551626
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已重命名18个文件
已复制1个文件
已修改38个文件
已添加81个文件
已删除30个文件
3366 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_IsUpdate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_Generate.qbl 52 ●●●● 补丁 | 查看 | 原始文档 | 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 22 ●●●● 补丁 | 查看 | 原始文档 | 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 47 ●●●● 补丁 | 查看 | 原始文档 | 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 75 ●●●● 补丁 | 查看 | 原始文档 | 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_InventoryInterfaceData/StaticMethod_SynchronizeInventory.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummarySource/StaticMethod_InitiateSearch.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineStockData/StaticMethod_GenerateData.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Method_FindProductionLineAndType.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_CreateOldOfflinePlanData.qbl 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_Download.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_Import.qbl 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_InterfaceArchive.qbl 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_OldDownload.qbl 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_SaveAsDraft.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_TransferMinimumQuantity/Attribute_Factory.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_TransferMinimumQuantity/Attribute_FactoryAbbreviation.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_TransferMinimumQuantity/Function_CalcFactoryAbbreviation.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/FinancialSalesCell.qrp 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlContent.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_lstContent.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.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 8 ●●●● 补丁 | 查看 | 原始文档 | 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 8 ●●●● 补丁 | 查看 | 原始文档 | 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_FormInventorySummaryReport/Response_OnCreated.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSearch_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_matrixeditorContextMenu229_mResetArchive_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_matrixeditorContextMenu229_mShowOrHide_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bConfirm_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bDeductChangeoverLoss_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bDownload_OnClick#870.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bImport_OnClick#568.def 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRestore_OnClick#141.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick#870.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_matrixeditorContextMenu204.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_matrixeditorContextMenu204_mCreateData_OnClick.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl
@@ -3,8 +3,19 @@
Relation NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanTable
{
  #keys: '1[413988.0.1603460118]'
  DefaultRelationStrategy
  DeclarativeSequenceRelationStrategy
  {
    #keys: '13[0.0.0][413988.0.1648701086][413988.0.1648701080][413988.0.1648701087][413988.0.1648701081][413988.0.1648701088][413988.0.1648701082][413988.0.1648701089][413988.0.1648701083][413988.0.1648701090][413988.0.1648701084][413988.0.1648701091][413988.0.1648701085]'
    SequenceElementSuffix: 'NOPColumn'
    SequenceSuffix: 'NOPColumn'
    SortAttributes:
    [
      DeclarativeSequenceRelationSortAttribute
      {
        #keys: '1[413988.0.1648701093]'
        Attribute: 'StartDate'
      }
    ]
  }
  RelationSide.LeftSide NewOfflinePlanColumn
  {
_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/Method_Generate.qbl
@@ -36,7 +36,7 @@
            sumcell  := sumrow.Initialize( column );
          }
          //显示月单元格
          showcell   := showrow.Cell( relnew, RentInCost := cell.RentInCost(), RentOutOfCost := cell.RentOutOfCost(), WerkToRentTransCost := cell.WerkToRentTransCost(), RentStorCost := cell.RentStorCost() );
          showcell   := showrow.Cell( relnew, RentInCost := cell.RentInCost(), RentOutOfCost := cell.RentOutOfCost(), WerkToRentTransCost := cell.WerkToRentTransCost(), RentStorCost := cell.RentStorCost(), CoefficientValue := cell.CoefficientValue() );
          column.Cell( relinsert, showcell );
          //显示年单元格
          yearcell.RentInCost( cell.RentInCost() + yearcell.RentInCost() );
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl
@@ -44,7 +44,8 @@
                                      , DLRentInCost                 := cell.DLRentInCost()
                                      , DLRentOutOfCost              := cell.DLRentOutOfCost()
                                      , WerkToDLRentTransCost        := cell.WerkToDLRentTransCost()
                                      , DLRentStorCost            := cell.DLRentStorCost() );
                                      , DLRentStorCost               := cell.DLRentStorCost()
                                      , CoefficientValue             := cell.CoefficientValue() );
          column.Cell( relinsert, showcell );
          //显示年单元格
          yearcell.CCRentInCost( cell.CCRentInCost() + yearcell.CCRentInCost() );
_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_EnginePipelineReport/Method_Generate.qbl
@@ -114,7 +114,7 @@
          
          traverse( cell, Demand, demand, exists( models, Elements, model, model = demand.Model() ) ){
            demandrow              := selectobject( this, Row, r, r.Product() = row.Name() and r.Demand() = demand.Model() );
            sumdemandrow           := selectobject( this, Row, r, r.Name() = sumname and r.Demand() = demand.Model() );
            sumdemandrow           := selectobject( this, Row, r, r.Product() = sumname and r.Demand() = demand.Model() );
    
            if( not isnull( demandrow ) ){
              demandcell             := column.CellValue( relnew, Value := [String]demand.Quantity() );
_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>';
    table                   := selectobject( this, FinancialProductionSource.FinancialProductionReport, report, not report.IsShow() );
    //清空之前存储的显示数据
    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 );
          }
          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( factorys, Elements, factory ){
      this.GenerateShow( table, productids, factory.ID() );
    }
    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() );
          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,6 +8,8 @@
    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" );
@@ -33,15 +35,25 @@
        
        //读取每一行的单元格
        traverse( row, FinancialProductionCell, cell, cell.FinancialProductionColumn() <> productcolumn and cell.FinancialProductionColumn() <> unitcolumn ){
          //获取被导入报表的日期列
          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() ) );
          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 );
          }
          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 );
        }
      }
    traverse( factorys, Elements, factory ){
      this.GenerateShow( table, productids, factory.ID() );
    }
    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() );
          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
@@ -5,34 +5,67 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    allunit := FinancialProductionReport::GetDefaultAllUnit();
    table   := selectobject( this.MacroPlan(), FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and not table.IsShow() );
    //info( '--------------------------', table.Name() );
    allunit                 := FinancialProductionReport::GetDefaultAllUnit();
    table                   := selectobject( this.MacroPlan(), FinancialSalesSource.FinancialSalesReport, 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" );
    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() );
      productcolumn         := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Product' );
      unitcolumn            := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Unit' );
      
      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() );
        product             := selectobject( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() = productcolumn );
        unit                := selectobject( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() = unitcolumn );
        
        unitrow := selectobject( table, FinancialSalesRow, unitrow, unitrow.Name() = product.Value() and unitrow.Unit() = 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() );
          column            := cell.FinancialSalesColumn();
          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() );
            }
          }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() ) );
            }
          }
          if( not isnull( allcell ) ){
            value := [Real]cell.Value() + [Real]allcell.Value();
            allcell.Value( [String]value );
          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_InventoryInterfaceData/StaticMethod_SynchronizeInventory.qbl
@@ -27,7 +27,9 @@
      //发动机成品库存
      traverse( loginfo, FinishedEngineInventory, inventory ){
        product    := select( macroPlan, Product_MP, product, product.Notes() = inventory.FourCode() );
        InventoryInterfaceData::Generate( interfaceDataset, inventory.DDay(), product.ID(), inventory.BIPlace(), [Number]inventory.Total() );
        if( not isnull( product ) ){
          InventoryInterfaceData::Generate( interfaceDataset, inventory.DDay(), product.ID(), inventory.BIPlace(), [Number]inventory.Total() );
        }
      }
    }
  *]
_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_MachineStockData/StaticMethod_GenerateData.qbl
@@ -9,14 +9,14 @@
  TextBody:
  [*
    // ç”„兰鸽 Jul-17-2024 (created)
    material_no       := guard( item.Get( "material_no").GetString(),"");
    material_no       := guard( item.Get( "matnr").GetString(),"");
    material_name     := guard( item.Get( "material_name").GetString(),"");
    fac_name          := guard( item.Get( "fac_name").GetString(),"");
    fac               := guard( item.Get( "fac").GetString(),"");
    total             := guard( item.Get( "total").GetReal(), 0 );
    total             := guard( item.Get( "qty").GetReal(), 0 );
    all_total         := guard( item.Get( "all_total").GetReal(), 0 );
    dday              := guard( item.Get( "dday").GetString(),"");
    line_type         := guard( item.Get( "fac").GetString(),"");
    line_type         := guard( item.Get( "line_type").GetString(),"");
    lgort             := guard( item.Get( "lgort").GetString(),"");
    
    msdata           := owner.MachineStockData( relnew, MaterialNo := material_no
_Main/BL/Type_NewOfflinePlanCell/Method_FindProductionLineAndType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Method FindProductionLineAndType (
  String productionLine,
  String type
) as Boolean
{
  TextBody: 'return this.NewOfflinePlanRow().ProductionLine() = productionLine and this.NewOfflinePlanRow().Type() = type and this.Quantity() > 0.0;'
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_CreateOldOfflinePlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOldOfflinePlanData (
  MacroPlan macroPlan
) as OfflinePlanTable
{
  TextBody:
  [*
    nopt := maxselect( macroPlan, NewOfflinePlanTable, tempNOPT, true, tempNOPT.SaveDateTime() );
    macroPlan.OfflinePlanTable( relflush );
    opt  := macroPlan.OfflinePlanTable( relnew, SaveDateTime := nopt.SaveDateTime() );
    // åˆ›å»ºåˆ—
    firstColumn  := opt.OfflinePlanColumn( relnew, ColumnDate := macroPlan.StartOfPlanning().Date() - 2 );
    secondColumn := opt.OfflinePlanColumn( relnew, ColumnDate := macroPlan.StartOfPlanning().Date() - 1 );
    traverse ( nopt, NewOfflinePlanColumn, nopc ) {
      opt.OfflinePlanColumn( relnew, ColumnDate := nopc.StartDate() );
    }
    pls := selectuniquevalues( nopt, NewOfflinePlanRow, tempNOPR, true, tempNOPR.ProductionLine() );
    traverse ( pls, Elements, pl ) {
      // åˆ›å»ºæ˜Žç»†è¡Œ
      detailNOPRs := selectsortedset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = pl and tempNOPR.Type() = "1", tempNOPR.ProductionLine(), tempNOPR.ProductID() );
      traverse ( detailNOPRs, Elements, nopr ) {
        quantityOPR := opt.OfflinePlanRow( relnew, ProductionLine := nopr.ProductionLine(), ProductID := nopr.ProductID(), Type := "1" );
        orderOPR    := opt.OfflinePlanRow( relnew, ProductionLine := nopr.ProductionLine(), ProductID := nopr.ProductID(), Type := "2" );
        // ç¬¬ä¸€åˆ—
        quantityOPR.OfflinePlanCell( relnew, OfflinePlanColumn := firstColumn,  Value := nopr.Name() );
        orderOPR.OfflinePlanCell(    relnew, OfflinePlanColumn := firstColumn,  Value := "" );
        // ç¬¬äºŒåˆ—
        quantityOPR.OfflinePlanCell( relnew, OfflinePlanColumn := secondColumn, Value := "Quantity" );
        orderOPR.OfflinePlanCell(    relnew, OfflinePlanColumn := secondColumn,  Value := "Order" );
        // æ—¶é—´åˆ—
        traverse ( nopr, NewOfflinePlanCell, nopcell ) {
          opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnDate() = nopcell.StartDate() );
          quantityOPR.OfflinePlanCell( relnew, OfflinePlanColumn := opc, Value := [String]nopcell.Quantity() );
          orderOPR.OfflinePlanCell(    relnew, OfflinePlanColumn := opc, Value := nopcell.Order() );
        }
      }
      // åˆ›å»ºåˆè®¡è¡Œ
      totalNOPR            := select( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = pl and tempNOPR.Type() = "2" );
      totalOPR             := opt.OfflinePlanRow( relnew, ProductionLine := totalNOPR.ProductionLine(), ProductID := "Z", Type := "3" );
      shiftPatternNameOPR  := opt.OfflinePlanRow( relnew, ProductionLine := totalNOPR.ProductionLine(), ProductID := "Z", Type := "4" );
      shiftPatternStartOPR := opt.OfflinePlanRow( relnew, ProductionLine := totalNOPR.ProductionLine(), ProductID := "Z", Type := "5" );
      shiftPatternEndOPR   := opt.OfflinePlanRow( relnew, ProductionLine := totalNOPR.ProductionLine(), ProductID := "Z", Type := "6" );
      // ç¬¬ä¸€åˆ—
      totalOPR.OfflinePlanCell( relnew, OfflinePlanColumn := firstColumn, Value := "合计" );
      shiftPatternNameOPR.OfflinePlanCell( relnew, OfflinePlanColumn := firstColumn, Value := "" );
      shiftPatternStartOPR.OfflinePlanCell( relnew, OfflinePlanColumn := firstColumn, Value := "" );
      shiftPatternEndOPR.OfflinePlanCell( relnew, OfflinePlanColumn := firstColumn, Value := "" );
       // ç¬¬äºŒåˆ—
      totalOPR.OfflinePlanCell( relnew, OfflinePlanColumn := secondColumn, Value := "总量" );
      shiftPatternNameOPR.OfflinePlanCell( relnew, OfflinePlanColumn := secondColumn, Value := "班次" );
      shiftPatternStartOPR.OfflinePlanCell( relnew, OfflinePlanColumn := secondColumn, Value := "班次开始时间" );
      shiftPatternEndOPR.OfflinePlanCell( relnew, OfflinePlanColumn := secondColumn, Value := "班次结束时间" );
      // æ—¶é—´åˆ—
      traverse ( totalNOPR, NewOfflinePlanCell, nopcell ) {
        opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnDate() = nopcell.StartDate() );
        totalOPR.OfflinePlanCell(             relnew, OfflinePlanColumn := opc, Value := [String]nopcell.TotalQuantity() );
        shiftPatternNameOPR.OfflinePlanCell(  relnew, OfflinePlanColumn := opc, Value := nopcell.ShiftPatternName() );
        shiftPatternStartOPR.OfflinePlanCell( relnew, OfflinePlanColumn := opc, Value := nopcell.ShiftPatternStart() );
        shiftPatternEndOPR.OfflinePlanCell(   relnew, OfflinePlanColumn := opc, Value := nopcell.ShiftPatternEnd() );
      }
    }
    return opt;
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_Download.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan,
  NewOfflinePlanRows selectedNOPRs
) as BinaryValue
{
  TextBody:
  [*
    opt  := NewOfflinePlanCell::CreateOldOfflinePlanData( macroPlan );
    oprs := selectset( opt, OfflinePlanRow, tempOPR, exists( selectedNOPRs, Elements, tempNOPR, tempNOPR.ProductionLine() = tempOPR.ProductionLine() ) );
    return NewOfflinePlanCell::OldDownload( macroPlan, oprs );
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_Import.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  NewOfflinePlanTable nopt,
  GeneralExcelImportAndExportDataTable table
)
{
  TextBody:
  [*
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( 'yyyy/MM/dd' );
    productionLine   := "";
    productID        := "";
    isUpdateQuantity := false;
    isUpdateOrder    := false;
    traverse ( table, GeneralExcelImportAndExportDataRow, row ) {
      traverse ( table, GeneralExcelImportAndExportDataColumn, column ) {
        // å•元格值
        cell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDCell, tempGEIAEDCell.GeneralExcelImportAndExportDataColumn() = column );
        // ç¬¬ä¸€åˆ—判断
        if ( cell.Value().Tokenize( "_" ).Size() = 2 and column.ColumnIndex() = 0 ) {
          productionLine := cell.Value().Tokenize( "_" ).Element( 0 );
          productID      := cell.Value().Tokenize( "_" ).Element( 1 );
        }
        // ç¬¬äºŒåˆ—判断
        if ( cell.Value() = "Quantity" and column.ColumnIndex() = 1 ) {
          isUpdateQuantity := true;
          isUpdateOrder    := false;
        } else if ( cell.Value() = "Order" and column.ColumnIndex() = 1 ) {
          isUpdateQuantity := false;
          isUpdateOrder    := true;
        } else if ( cell.Value() <> "Quantity" and cell.Value() <> "Order" and column.ColumnIndex() = 1 ) {
          isUpdateQuantity := false;
          isUpdateOrder    := false;
        }
        // æ—¶é—´åˆ—æ›´æ–°
        if ( isUpdateQuantity and cnv2.CanConvert( column.Name() ) and column.ColumnIndex() > 1 ) {
          noopcell := select( nopt, NewOfflinePlanRow.NewOfflinePlanCell, tempNOPCell,
                              tempNOPCell.NewOfflinePlanRow().ProductionLine() = productionLine and
                              tempNOPCell.NewOfflinePlanRow().ProductID()      = productID      and
                              tempNOPCell.NewOfflinePlanRow().Type()           = "1"            and
                              tempNOPCell.NewOfflinePlanColumn().StartDate()   = cnv2.Convert( column.Name() ) );
          noopcell.Quantity( [Number]cell.Value() );
        } else if ( isUpdateOrder and cnv2.CanConvert( column.Name() ) and column.ColumnIndex() > 1 ) {
          noopcell := select( nopt, NewOfflinePlanRow.NewOfflinePlanCell, tempNOPCell,
                              tempNOPCell.NewOfflinePlanRow().ProductionLine() = productionLine and
                              tempNOPCell.NewOfflinePlanRow().ProductID()      = productID      and
                              tempNOPCell.NewOfflinePlanRow().Type()           = "1"            and
                              tempNOPCell.NewOfflinePlanColumn().StartDate()   = cnv2.Convert( column.Name() ) );
          noopcell.Order( cell.Value() );
        }
      }
    }
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_InterfaceArchive.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InterfaceArchive (
  MacroPlan macroPlan,
  InterfaceDataset interfaceDataset
)
{
  TextBody:
  [*
    nopt  := maxselect( macroPlan, NewOfflinePlanTable, tempNOPT, true, tempNOPT.SaveDateTime() );
    // é€‰æ‹©æŒ‡å®šç‰ˆæœ¬ä¸‹çº¿è®¡åˆ’接口数据
    inopv   := select( interfaceDataset, InterfaceNewOfflinePlanVersion, tempINOPV, tempINOPV.ScenarioName() = macroPlan.ScenarioName() );
    if ( isnull( inopv ) ) {
      inopv := interfaceDataset.InterfaceNewOfflinePlanVersion( relnew, ScenarioName := macroPlan.ScenarioName() );
    } else {
      inopv.Delete();
      inopv := interfaceDataset.InterfaceNewOfflinePlanVersion( relnew, ScenarioName := macroPlan.ScenarioName() );
    }
    // åˆ›å»ºä¸‹çº¿è®¡åˆ’接口数据
    traverse ( nopt, NewOfflinePlanRow.NewOfflinePlanCell, nopcell, nopcell.NewOfflinePlanRow().Type() = "1" ) {
      inopv.InterfaceNewOfflinePlanDetailData( relnew,
                                               Order             := nopcell.Order(),
                                               OrderNr           := nopcell.OrderNr(),
                                               ProductID         := nopcell.NewOfflinePlanRow().ProductID(),
                                               ProductionLine    := nopcell.NewOfflinePlanRow().ProductionLine(),
                                               Quantity          := nopcell.Quantity(),
                                               ShiftPatternEnd   := nopcell.ShiftPatternEnd(),
                                               ShiftPatternName  := nopcell.ShiftPatternName(),
                                               ShiftPatternStart := nopcell.ShiftPatternStart(),
                                               StartDate         := nopcell.StartDate()
                                              );
    }
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_OldDownload.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OldDownload (
  MacroPlan macroPlan,
  OfflinePlanRows selectedOPRs
) as BinaryValue
{
  TextBody:
  [*
    xmlDOMI      := XMLDOMImplementation::Create();
    xmlDOM       := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name></table>' );
    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
    opt  := maxselect( macroPlan, OfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() );
    opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() );
    oprs := selectsortedset( selectedOPRs, Elements, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() );
    traverse ( opcs, Elements, opc ) {
      column := xmlDOM.CreateElement( "column" );
      name   := xmlDOM.CreateElement( "name" );
      type   := xmlDOM.CreateElement( "type" );
      name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "*", opc.ColumnDate().Format( "Y/M2/D2" ) ) );
      type.TextContent( "String" );
      column.AppendChild( name );
      column.AppendChild( type );
      traverse ( oprs, Elements, opr ) {
        c    := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow() = opr );
        cell := xmlDOM.CreateElement( "cell" );
        cell.SetAttribute( "value", guard( c.Value(), "" ) );
        column.AppendChild( cell );
      }
      tableElement.AppendChild( column );
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
@@ -8,7 +8,15 @@
  [*
    macroPlan.NewOfflinePlanTable( relflush );
    
    nopt := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
    nopt         := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
    // è®¡åˆ’开始时间
    planningDate := macroPlan.StartOfPlanning().Date()
    // åˆå§‹åŒ–下线计划列
    traverse ( macroPlan, Period_MP, pmp, pmp.IsPlanning() and not pmp.IsHistorical() ) {
      nopt.NewOfflinePlanColumn( relnew, StartDate := pmp.StartDate(), EndDate := pmp.EndDate() );
    }
    
    // ç”Ÿæˆä¸‹çº¿è®¡åˆ’表【一条产线在同一天不会产生两次相同产品的周期任务】
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime() 
@@ -48,32 +56,10 @@
            detaileNOPCell := detailedNOPR.NewOfflinePlanCell( relnew, 
                                                               Quantity          := ns.Quantity().Round( 0 ), 
                                                               InventoryWeight   := pispippl.InventoryLevelEnd() - pispippl.MinInventoryLevel(),
                                                               ShiftPatternName  := guard( sdt.Name(), "" ),
                                                               ShiftPatternName  := guard( sp.Name(), "" ),
                                                               ShiftPatternStart := guard( sdt.StartDateTime().Format( "H:m" ), "" ),
                                                               ShiftPatternEnd   := guard( sdt.EndDateTIme().Format( "H:m" ), "" ) );
            detaileNOPCell.NewOfflinePlanColumn( relset, nopc );
          }
        }
      }
      // è®¾ç½®ç”Ÿäº§é¡ºåºã€å¯¹ä¸‹çº¿è®¡åˆ’明细生效】
      // ã€ç”Ÿæˆåˆè®¡ä¸‹çº¿è®¡åˆ’】
      totalNOPR   := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" );
      detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" );
      traverse ( detailNOPRs, Elements, detailNOPR ) {
        traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) {
          // ç”Ÿäº§ä¸‹çº¿è®¡åˆ’【产线合计】单元格
          totalNOPRCell   := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() );
          if ( isnull( totalNOPRCell ) ) {
            totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew );
            totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // è®¾ç½®åˆ—
            // å°†æ˜Žç»†å•元格关联到合计单元格
            totalNOPRCell.Detailed( relinsert, detailNOPCell );
          } else {
            // å°†æ˜Žç»†å•元格关联到合计单元格
            totalNOPRCell.Detailed( relinsert, detailNOPCell );
          }
        }
      }
@@ -88,6 +74,87 @@
          }
        }
      }
      // ã€ç”Ÿæˆåˆè®¡ä¸‹çº¿è®¡åˆ’】
      totalNOPR   := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" );
      detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" );
      traverse ( detailNOPRs, Elements, detailNOPR ) {
        shiftPatternNOPCell := select( detailNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.ShiftPatternName() <> "" );
        traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) {
          // ç”Ÿäº§ä¸‹çº¿è®¡åˆ’【产线合计】单元格
          totalNOPRCell   := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() );
          if ( isnull( totalNOPRCell ) ) {
            totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew,
                                                           ShiftPatternName  := shiftPatternNOPCell.ShiftPatternName(),
                                                           ShiftPatternStart := shiftPatternNOPCell.ShiftPatternStart(),
                                                           ShiftPatternEnd   := shiftPatternNOPCell.ShiftPatternEnd() );
            totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // è®¾ç½®åˆ—
            // å°†æ˜Žç»†å•元格关联到合计单元格
            totalNOPRCell.Detailed( relinsert, detailNOPCell );
          } else {
            // å°†æ˜Žç»†å•元格关联到合计单元格
            totalNOPRCell.Detailed( relinsert, detailNOPCell );
          }
        }
      }
      // è®¾ç½®ç”Ÿäº§é¡ºåºã€å¯¹ä¸‹çº¿è®¡åˆ’明细生效】
      indexColumn    := select( nopt, NewOfflinePlanColumn, tempNOPC, tempNOPC.StartDate() = planningDate );
      previousColumn := indexColumn.PreviousNOPColumn();
      nextColumn     := indexColumn.NextNOPColumn();
      while ( not isnull( indexColumn.NextNOPColumn() )
    //          and indexColumn.ColumnDate() <= Date::Construct( 2020, 4, 1 ) // æµ‹è¯•实际场景时可以过滤
             )
      {
        orderNr     := 1;
        nopcells    := selectsortedset( indexColumn, NewOfflinePlanCell, tempNOPCell, tempNOPCell.FindProductionLineAndType( u.ID(), "1" ), tempNOPCell.InventoryWeight() );
        initialSize := nopcells.Size();
    //    info( "计划开始时间:", planningDate.Format( "Y-M2-D2" ), "    ç´¢å¼•时间:", indexColumn.StartDate().Format( "Y-M2-D2" ), "    ä¸ªæ•°ï¼š", nopcells.Size() );
        if ( nopcells.Size() > 0 ) {
          // åˆ¤å®š1
          previousOPCell := maxselect( previousColumn, NewOfflinePlanCell, tempNOPCell, tempNOPCell.FindProductionLineAndType( u.ID(), "1" ), tempNOPCell.OrderNr() );
          if ( isnull( previousOPCell ) or indexColumn.StartDate() = planningDate ) {
            nopcell := nopcells.Element( 0 );
            nopcell.Order( "#" + orderNr.Format( "N(LPad0(2))" ) );
            nopcell.OrderNr( orderNr );
            orderNr++;
            nopcells.Remove( nopcell );
          } else {
            nopcell := select( nopcells, Elements, tempNOPCell, tempNOPCell.NewOfflinePlanRow().ProductID() =  previousOPCell.NewOfflinePlanRow().ProductID() );
            if ( not isnull( nopcell ) ) {
              nopcell.Order( "#" + orderNr.Format( "N(LPad0(2))" ) );
              nopcell.OrderNr( orderNr );
              orderNr++;
              nopcells.Remove( nopcell );
            }
          }
          // åˆ¤å®š2
          nextNOPCells := selectset( nopcells, Elements, tempOPC,
                                     exists( nextColumn, NewOfflinePlanCell, nextOPCell, nextOPCell.FindProductionLineAndType( u.ID(), "1" ) and
                                             nextOPCell.NewOfflinePlanRow().ProductID() = tempOPC.NewOfflinePlanRow().ProductID() ) ); // æ‰¾ä¸‹ä¸€åˆ—是否有当前列生产的产品
          if ( nextNOPCells.Size() = 1 ) {
            nopcell := nextNOPCells.Element( 0 );
            nopcell.Order( "#" + initialSize.Format( "N(LPad0(2))" ) );
            nopcell.OrderNr( initialSize );
            nopcells.Remove( nopcell );
          }
          // åˆ¤å®š3
          traverse ( nopcells, Elements, opcell ) {
            opcell.Order( "#" + orderNr.Format( "N(LPad0(2))" ) );
            opcell.OrderNr( orderNr );
            orderNr++;
            nopcells.Remove( opcell );
          }
        }
        indexColumn    := indexColumn.NextNOPColumn();
        previousColumn := indexColumn.PreviousNOPColumn();
        nextColumn     := indexColumn.NextNOPColumn();
      }
    }
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_SaveAsDraft.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SaveAsDraft (
  MacroPlan macroPlan,
  NewOfflinePlanTable nopt
) as NewOfflinePlanTable
{
  TextBody:
  [*
    newTable := nopt.DeepCopy().astype( NewOfflinePlanTable );
    newNOPT  := macroPlan.NewOfflinePlanTable( relinsert, &newTable );
    newNOPT.SaveDateTime( DateTime::ActualTime() );
    return newNOPT;
  *]
}
_Main/BL/Type_TransferMinimumQuantity/Attribute_Factory.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Factory
{
  #keys: '3[413988.0.1657777327][413988.0.1657777326][413988.0.1657777328]'
  Description: '大连工厂/长春工厂'
  ValueType: String
}
_Main/BL/Type_TransferMinimumQuantity/Attribute_FactoryAbbreviation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute FactoryAbbreviation
{
  #keys: '3[413988.0.1657777340][413988.0.1657777339][413988.0.1657777341]'
  Description: '工厂简写'
  ValueType: String
}
_Main/BL/Type_TransferMinimumQuantity/Function_CalcFactoryAbbreviation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcFactoryAbbreviation
{
  TextBody:
  [*
    // lihongji Oct-14-2024 (created)
    value := ifexpr( this.Factory() = "大连工厂", "DL", "CC" );
    this.FactoryAbbreviation( value );
  *]
}
_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/Sys/Repr/Global/NewOfflinePlanCell.qrp
@@ -2,18 +2,40 @@
#parent: #root
TypeRepresentation NewOfflinePlanCell
{
  AttributeRepresentation Order
  {
    Alignment: 'Right'
    AttributeKey: '[413988.0.1603460356]'
  }
  AttributeRepresentation Quantity
  {
    AttributeKey: '[413988.0.1603460346]'
    Conditional:
    [
      DataRepresentation.Conditional
      {
        BackgroundColor: '$FF3399'
        ConversionBody: ''
        DefaultBackgroundColor: false
        InheritConversion: false
      }
    ]
  }
  AttributeRepresentation ShiftPatternEnd
  {
    Alignment: 'Right'
    AttributeKey: '[413988.0.1603460414]'
    Synonym: '班次结束时间'
  }
  AttributeRepresentation ShiftPatternName
  {
    Alignment: 'Right'
    AttributeKey: '[413988.0.1603460388]'
    Synonym: '班次'
  }
  AttributeRepresentation ShiftPatternStart
  {
    Alignment: 'Right'
    AttributeKey: '[413988.0.1603460401]'
    Synonym: '班次开始时间'
  }
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEdit/Component_pnlContent.def
@@ -13,7 +13,7 @@
      [
        DataBinding: 'DataHolderDialogData.Data.ProductID'
        Label: 'Product ID'
        Taborder: 0
        Taborder: 1
      ]
    }
    Component npQuantity
@@ -24,7 +24,19 @@
      [
        DataBinding: 'DataHolderDialogData.Data.Quantity'
        Label: 'Quantity'
        Taborder: 1
        Taborder: 2
      ]
    }
    Component ddslFactory
    {
      #keys: '[413988.0.1660241136]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: 'Factory'
        Strings: '大连工厂;长春工厂'
        Taborder: 0
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/Component_lstContent.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Factory","title":"Factory","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Factory"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}}]'
        ContextMenu: 'cmContent'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_DialogTransferMinimumQuantity/_ROOT_Component_DialogTransferMinimumQuantity.def
@@ -16,7 +16,7 @@
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    MinimumColumns: 50
    MinimumColumns: 80
    MinimumRows: 30
    Padding: '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,11 @@
    [*
      //初始化
      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 );
      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,11 @@
    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 );
      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_FormInventorySummaryReport/Response_OnCreated.def
@@ -14,11 +14,7 @@
      ProductGeneration::Initilize( MacroPlan );
      ProductPower::Initilize( MacroPlan );
      ProductMLBMQB::Initilize( MacroPlan );
      //table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsShow() );
      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() )
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def
@@ -92,6 +92,7 @@
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumns473'
    ContextMenu: 'matrixeditorContextMenu267'
    Editable: false
    Rows: 'MatrixEditorRows569'
    Taborder: 0
  ]
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def
@@ -3,6 +3,41 @@
{
  #keys: '[413988.0.1607432887]'
  BaseType: 'matrixeditorContextMenu'
  Children:
  [
    Component mSeparator
    {
      #keys: '[413988.0.1651491148]'
      BaseType: 'WebMenu'
      Properties:
      [
        Separator: true
        Taborder: 2
      ]
    }
    Component mShowOrHide
    {
      #keys: '[413988.0.1651491174]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'POWER'
        Taborder: 3
        Title: 'Show/Hide total'
      ]
    }
    Component mResetArchive
    {
      #keys: '[413988.0.1657458774]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'UNDO'
        Taborder: 4
        Title: '重置存档(测试专用)'
      ]
    }
  ]
  Properties:
  [
    Taborder: 4
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def
@@ -15,6 +15,66 @@
        Taborder: 0
      ]
    }
    Component bDownload id:bDownload_141
    {
      #keys: '[413988.0.1652609611]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Download'
        Taborder: 1
      ]
    }
    Component bImport id:bImport_217
    {
      #keys: '[413988.0.1654241348]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Import'
        Taborder: 2
      ]
    }
    Component bDeductChangeoverLoss id:bDeductChangeoverLoss_737
    {
      #keys: '[413988.0.1652941817]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Deduct changeover loss'
        Taborder: 3
      ]
    }
    Component bRestore id:bRestore_778
    {
      #keys: '[413988.0.1654260514]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Restore'
        Taborder: 4
      ]
    }
    Component bSaveAsDraft id:bSaveAsDraft_870
    {
      #keys: '[413988.0.1654260654]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Save as draft'
        Taborder: 5
      ]
    }
    Component bConfirm id:bConfirm_978
    {
      #keys: '[413988.0.1654260807]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Confirm'
        Taborder: 6
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_matrixeditorContextMenu229_mResetArchive_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: matrixeditorContextMenu229/mResetArchive
Response OnClick () id:Response_matrixeditorContextMenu229_mResetArchive_OnClick
{
  #keys: '[413988.0.1657340921]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      MacroPlan.A_PreviousScenaioName( "" );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_matrixeditorContextMenu229_mShowOrHide_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: matrixeditorContextMenu229/mShowOrHide
Response OnClick () id:Response_matrixeditorContextMenu229_mShowOrHide_OnClick
{
  #keys: '[413988.0.1651491239]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      pTotal.Visible( not pTotal.Visible() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bConfirm_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pHeader/bConfirm_978
Response OnClick () id:Response_pHeader_bConfirm_OnClick
{
  #keys: '[413988.0.1657320536]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan ) and not isnull( InterfaceDataset ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName()
  *]
  QuillAction
  {
    Body:
    [*
      // å­˜æ¡£
      NewOfflinePlanCell::InterfaceArchive( MacroPlan, InterfaceDataset );
      // è®¾ç½®æŒ‰é’®ï¼ˆé™¤ä¸‹è½½ï¼‰ä¸å¯ç”¨
      MacroPlan.A_PreviousScenaioName( MacroPlan.ScenarioName() );
      WebMessageBox::Success( Translations::A_VWED_Success() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bDeductChangeoverLoss_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: pHeader/bDeductChangeoverLoss_737
Response OnClick () id:Response_pHeader_bDeductChangeoverLoss_OnClick
{
  #keys: '[413988.0.1657320426]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
  *]
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Success( Translations::A_VWED_Success() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bDownload_OnClick#870.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: pHeader/bDownload_141
Response OnClick () id:Response_pHeader1_799_bDownload_OnClick_870
{
  #keys: '[413988.0.1652609610]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := NewOfflinePlanCell::Download( MacroPlan, dhSelectedDetailNewOfflinePlanRow.Data() );
      Application.Download( "Output plan.xlsx", binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bImport_OnClick#568.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: pHeader/bImport_217
Response OnClick () id:Response_pHeader1_799_bImport_OnClick_568
{
  #keys: '[413988.0.1654241347]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
          generalExcelImportAndExportDataSource.ReadStructure();
          selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" );
          NewOfflinePlanCell::Import( dhNewOfflinePlanTable.Data(), selection );
          // åŽç»­åˆ é™¤
          generalExcelImportAndExportDataSource.Delete();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def
@@ -7,7 +7,7 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
    return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
  *]
  QuillAction
  {
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRestore_OnClick#141.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: pHeader/bRestore_778
Response OnClick () id:Response_pHeader1_799_bRestore_OnClick_141
{
  #keys: '[413988.0.1654260513]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
  *]
  QuillAction
  {
    Body:
    [*
      currentNOPT := dhNewOfflinePlanTable.Data();
      targetNOPT  := maxselect( MacroPlan, NewOfflinePlanTable, tempNOPT, tempNOPT <> currentNOPT, tempNOPT.SaveDateTime() );
      if ( not isnull( targetNOPT ) ) {
        currentNOPT.Delete();
        dhNewOfflinePlanTable.Data( targetNOPT );
      }
      WebMessageBox::Success( Translations::A_VWED_Success() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick#870.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: pHeader/bSaveAsDraft_870
Response OnClick () id:Response_pHeader1_799_bSaveAsDraft_OnClick_870
{
  #keys: '[413988.0.1654260653]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName();
  *]
  QuillAction
  {
    Body:
    [*
      nopt := NewOfflinePlanCell::SaveAsDraft( MacroPlan, dhNewOfflinePlanTable.Data() );
      dhNewOfflinePlanTable.Data( nopt );
      WebMessageBox::Success( Translations::A_VWED_Success() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_matrixeditorContextMenu204.def
@@ -3,6 +3,30 @@
{
  #keys: '[413988.0.1296803057]'
  BaseType: 'matrixeditorContextMenu'
  Children:
  [
    Component mCreateData
    {
      #keys: '[413988.0.1652900385]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DATA'
        Taborder: 3
        Title: '最新创建数据方法'
      ]
    }
    Component mSparator
    {
      #keys: '[413988.0.1652900411]'
      BaseType: 'WebMenu'
      Properties:
      [
        Separator: true
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 4
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_matrixeditorContextMenu204_mCreateData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: matrixeditorContextMenu204/mCreateData
Response OnClick () id:Response_matrixeditorContextMenu204_mCreateData_OnClick
{
  #keys: '[413988.0.1652970833]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      NewOfflinePlanCell::CreateOldOfflinePlanData( MacroPlan );
      opt := maxselect( MacroPlan, OfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() );
      dhOfflinePlanTable.Data( opt );
      WebMessageBox::Success( Translations::A_VWED_Success() );
    *]
    GroupServerCalls: false
  }
}