yypsybs
2023-10-08 f5d6db2a9edfb82bbdb1ce5688c00df7dc101e83
Merge branch 'dev' into dev_yx

# Conflicts:
# _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
已重命名3个文件
已添加68个文件
已修改99个文件
已删除2个文件
3592 ■■■■ 文件已修改
_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BusinessType/StaticMethod_GetScenarioNamesStr.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomerGrade.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SettingSuccessfulDetails.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecuteUser.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecutionStatus.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CanRun.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CreateInOperation.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomerGrade/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingDOI_DSI/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeInterfaceData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_CustomOrder.qbl 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowColumn/StaticMethod_CreateColumn.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Scenario/Attribute_ScenarioName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/StaticMethod_AvailableScenarioNames.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/ImgAttr/Global_BrokerExecuteLog.dme 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog#981.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2#456.def 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOptions.def 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuDelete_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/接口测试.vw 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OrganCode_BusinessType_BusinessType_OrganCode
{
  #keys: '1[412960.0.276650038]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide BusinessType
  {
    #keys: '3[412960.0.276650040][412960.0.276650039][412960.0.276650041]'
    Cardinality: '0to1'
    ObjectDefinition: OrganCode
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OrganCode
  {
    #keys: '3[412960.0.276650043][412960.0.276650042][412960.0.276650044]'
    Cardinality: '1toN'
    ObjectDefinition: BusinessType
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl
@@ -3,5 +3,6 @@
Attribute BusinessTypeName
{
  #keys: '3[414382.0.361554811][414382.0.361554810][414382.0.361554812]'
  Description: '事业部名称'
  ValueType: String
}
_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DisplayType
{
  #keys: '3[412960.0.276650024][412960.0.276650023][412960.0.276650025]'
  Description: '显示类型'
  ValueType: String
}
_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ScenarioName
{
  #keys: '3[412960.0.276650011][412960.0.276650010][412960.0.276650012]'
  Description: '场景名称'
  ValueType: String
}
_Main/BL/Type_BusinessType/StaticMethod_GetScenarioNamesStr.qbl
ÎļþÃû´Ó _Main/BL/Type_BusinessType/StaticMethod_GetBusinessNameStr.qbl ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetBusinessNameStr (
StaticMethod GetScenarioNamesStr (
  GlobalOTDTable owner
) as String
{
@@ -9,18 +9,18 @@
    // NBoTk Sep-7-2023 (created)
    // èŽ·å–businessType é›†åˆ
    result := "";
    businessTypeList := construct( structured[String]);
    scenarioNameList := construct( structured[String]);
    
    traverse( owner,BusinessType,b)
    {
        businessTypeList.Add( b.BusinessTypeName());
        scenarioNameList.Add( b.ScenarioName() );
    }
    
    // å¦‚果存在businessType数据 åˆ™è¿”回 : a,b,c
    
    if( not isnull( businessTypeList ) )
    if( not isnull( scenarioNameList ) )
    {
        result := businessTypeList.Concatenate( ";" );
        result := scenarioNameList.Concatenate( ";" );
    }
    
    // æµ‹è¯•数据
_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl
@@ -58,7 +58,7 @@
    // æ–°å¢ž/更新
    result := CustomerOrder::FindById( macroPlan, id );
    if( isnull( result ) ) {
        CustomerOrder::Create( product, stockingPoint, id, orderDate, quantity, price,
        result := CustomerOrder::Create( product, stockingPoint, id, orderDate, quantity, price,
                               priorityName, salesSegmentName, currencyId, unitOfMeasureName, 
                               false, customerName, customerId, orderId, orderLineId, true, true, true );
    } else {
_Main/BL/Type_FillingCapacityOrder/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414702.0.525344991][414702.0.525344990][414702.0.525344992]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_FillingCapacityOrder/Attribute_OrderType.qbl
@@ -3,5 +3,6 @@
Attribute OrderType
{
  #keys: '3[414382.0.394820190][414382.0.394820189][414382.0.394820191]'
  Description: '订单类型包括(反签、授权)'
  ValueType: String
}
_Main/BL/Type_FillingCapacityOrder/Attribute_State.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute State
{
  #keys: '3[414702.0.533501330][414702.0.533501329][414702.0.533501331]'
  Description: '状态(未冲减、已冲减)'
  ValueType: String
}
_Main/BL/Type_FillingCapacityOrder/TypeIndex_FillingCapacityOrderTypeIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
TypeIndex FillingCapacityOrderTypeIndex
{
  Attributes:
  [
    TypeIndexAttribute
    {
      ModelElement: ID
    }
  ]
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_AIPISPIP",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "实际库存数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_AIPISPIP", "实际库存数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_ConversionFactor",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "单位转换因子数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_ConversionFactor", "单位转换因子数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_CustomOrder",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "订单数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_CustomOrder", "订单数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomerGrade.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_CustomerGrade",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "客户等级数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_CustomerGrade", "客户等级数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_DOI_DSI.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_DOI_DSI",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "DOI_DSI数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_DOI_DSI", "DOI_DSI数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_Forecast",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "预测数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_Forecast", "预测数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_InventorySupply",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "库存供应数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_InventorySupply", "库存供应数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_Operation",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "操作数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_Operation", "操作数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_OperationBOM",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "操作BOM数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_OperationBOM", "操作BOM数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_OperationCost",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "操作成本数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_OperationCost", "操作成本数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_Product_MP",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "产品数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_Product_MP", "产品数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_SalesSegment_MP",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "销售部门",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_SalesSegment_MP", "销售部门" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_StockingPointCost",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "库存点成本数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_StockingPointCost", "库存点成本数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -5,16 +5,5 @@
  String errorMessage
)
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName    := "GlobalOTDTable_UnitOfMeasure_MP",
                                  ElementTotal  := 0,
                                  ErrorMessage  := errorMessage,
                                  IsSuccess     := false,
                                  Name          := "单位数据",
                                  ErrorNo       := errorNo,
                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_UnitOfMeasure_MP", "单位数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_AIPISPIP
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_AIPISPIP",
                                  ElementTotal    := this.Global_MappingActualProductInStockingPointInPeriod( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "实际库存数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_AIPISPIP", "实际库存数据", this.Global_MappingActualProductInStockingPointInPeriod( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_ConversionFactor
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_ConversionFactor",
                                  ElementTotal    := this.Global_MappingConversionFactor( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "单位转换因子数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_ConversionFactor", "单位转换因子数据", this.Global_MappingConversionFactor( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_CustomOrder
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_CustomOrder",
                                  ElementTotal    := this.Global_MappingCustomOrder( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "订单数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_CustomOrder", "订单数据", this.Global_MappingCustomOrder( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomerGrade.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_CustomerGrade
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_CustomerGrade",
                                  ElementTotal    := this.Global_MappingCustomerGrade( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "客户等级数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_CustomerGrade", "客户等级数据", this.Global_MappingCustomerGrade( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_DOI_DSI.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_DOI_DSI
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_DOI_DSI",
                                  ElementTotal    := this.Global_MappingDOI_DSI( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "DOI_DSI数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_DOI_DSI", "DOI_DSI数据", this.Global_MappingDOI_DSI( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_Forecast
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_Forecast",
                                  ElementTotal    := this.Global_MappingForecast( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "预测数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_Forecast", "预测数据", this.Global_MappingForecast( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_InventorySupply
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_InventorySupply",
                                  ElementTotal    := this.Global_MappingInventorySupply( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "库存供应数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_InventorySupply", "库存供应数据", this.Global_MappingInventorySupply( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_Operation
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_Operation",
                                  ElementTotal    := this.Global_MappingOperation( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "操作数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_Operation", "操作数据", this.Global_MappingOperation( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationBOM.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_OperationBOM
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_OperationBOM",
                                  ElementTotal    := this.Global_MappingOperationBOM( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "操作BOM数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_OperationBOM", "操作BOM数据", this.Global_MappingOperationBOM( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_OperationCost
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_OperationCost",
                                  ElementTotal    := this.Global_MappingOperationCost( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "操作成本数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_OperationCost", "操作成本数据", this.Global_MappingOperationCost( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_ProductInLane
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_ProductInLane",
                                  ElementTotal    := this.Global_MappingProductInLane( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "产品在车道数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_ProductInLane", "产品在车道数据", this.Global_MappingProductInLane( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_Product_MP
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_Product_MP",
                                  ElementTotal    := this.Global_MappingProduct_MP( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "产品数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_Product_MP", "产品数据", this.Global_MappingProduct_MP( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_SalesSegment_MP
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_SalesSegment_MP",
                                  ElementTotal    := this.Global_MappingSalesSegment_MP( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "销售部门",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_SalesSegment_MP", "销售部门", this.Global_MappingSalesSegment_MP( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_StockingPointCost
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_StockingPointCost",
                                  ElementTotal    := this.Global_MappingStockingPointCost( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "库存点成本数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_StockingPointCost", "库存点成本数据", this.Global_MappingStockingPointCost( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -2,16 +2,5 @@
#parent: #root
Method OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP
{
  TextBody:
  [*
    this.Global_BrokerExecuteLog( relnew,
                                  BrokerName      := "GlobalOTDTable_UnitOfMeasure_MP",
                                  ElementTotal    := this.Global_MappingUnitOfMeasure_MP( relsize ),
                                  ErrorMessage    := "",
                                  IsSuccess       := true,
                                  Name            := "单位数据",
                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                  ErrorNo         := 0
                                 );
  *]
  TextBody: 'this.SettingSuccessfulDetails( "GlobalOTDTable_UnitOfMeasure_MP", "单位数据", this.Global_MappingUnitOfMeasure_MP( relsize ) );'
}
_Main/BL/Type_GlobalDTOTable/Method_SettingFailureDetails.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Method SettingFailureDetails (
  Number errorNo,
  String errorMessage,
  String brokerName,
  String name
)
{
  TextBody:
  [*
    gbel := select( this, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                             tempGBEL.BrokerName()      = brokerName );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( 0 );
    gbel.ErrorMessage( errorMessage );
    gbel.IsSuccess( false );
    gbel.Name( name );
    gbel.ErrorNo( errorNo );
    gbel.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SettingSuccessfulDetails.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method SettingSuccessfulDetails (
  String brokerName,
  String name,
  Number elementTotal
)
{
  TextBody:
  [*
    gbel := select( this, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                             tempGBEL.BrokerName()      = brokerName );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( elementTotal );
    gbel.IsSuccess( true );
    gbel.Name( name );
    gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
@@ -1,20 +1,119 @@
Quintiq file version 2.0
#parent: #root
Method SynchronizationAllMappingBrokerAndAPIByOption (
  String executionUser,
  Boolean isCustomOrder,
  Boolean isForeacst
  Boolean isForeacst,
  Boolean isUnitOfMeasure_MP,
  Boolean isSalesSegment_MP,
  Boolean isProduct_MP,
  Boolean isConversionFactor,
  Boolean isOperation,
  Boolean isOperationBOM,
  Boolean isProductInLane,
  Boolean isAIPISPIP,
  Boolean isInventorySupply,
  Boolean isStockingPointCost,
  Boolean isOperationCost,
  Boolean isDOI_DSI,
  Boolean isCustomerGrade,
  Boolean isStockingPoint_MP,
  Boolean isCurrency_MP,
  Boolean isCurrencyRate_MP,
  Boolean isLane,
  Boolean isLaneLeg
)
{
  TextBody:
  [*
    if ( isCustomOrder ) {
      this.Global_MappingCustomOrder( relflush );
      this.GlobalOTDTable_CustomOrder().AsyncExecute();
      Global_MappingCustomOrder::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomOrder" );
    }
    
    if ( isForeacst ) {
      this.Global_MappingForecast( relflush );
      this.GlobalOTDTable_Forecast().AsyncExecute();
      Global_MappingForecast::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_Forecast" );
    }
    if ( isUnitOfMeasure_MP ) {
      Global_MappingUnitOfMeasure_MP::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_UnitOfMeasure_MP" );
    }
    if ( isSalesSegment_MP ) {
      Global_MappingSalesSegment_MP::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_SalesSegment_MP" );
    }
    if ( isProduct_MP ) {
      Global_MappingProduct_MP::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_Product_MP" );
    }
    if ( isConversionFactor ) {
      Global_MappingConversionFactor::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_ConversionFactor" );
    }
    if ( isOperation ) {
      Global_MappingOperation::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_Operation" );
    }
    if ( isOperationBOM ) {
      Global_MappingOperationBOM::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_OperationBOM" );
    }
    if ( isProductInLane ) {
      Global_MappingProductInLane::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_ProductInLane" );
    }
    if ( isAIPISPIP ) {
      Global_MappingActualProductInStockingPointInPeriod::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_AIPISPIP" );
    }
    if ( isInventorySupply ) {
      Global_MappingInventorySupply::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_InventorySupply" );
    }
    if ( isStockingPointCost ) {
      Global_MappingStockingPointCost::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_StockingPointCost" );
    }
    if ( isOperationCost ) {
      Global_MappingOperationCost::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_OperationCost" );
    }
    if ( isDOI_DSI ) {
      Global_MappingDOI_DSI::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_DOI_DSI" );
    }
    if ( isCustomerGrade ) {
      Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
    }
    if ( isStockingPoint_MP ) {
      this.Global_MappingStockingPoint_MP( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
      this -> OnException( this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), this );
    }
    if ( isCurrency_MP ) {
      this.Global_MappingCurrency_MP( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
      this -> OnException( this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), this );
    }
    if ( isCurrencyRate_MP ) {
      this.Global_MappingCurrencyRate_MP( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
      this -> OnException( this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), this );
    }
    if ( isLane ) {
      this.Global_MappingLane( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
      this -> OnException( this -> Global_MappingLane::CreateByAPI() -> Exception(), this );
    }
    if ( isLaneLeg ) {
      this.Global_MappingLaneLeg( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
      this -> OnException( this -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), this );
    }
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method SynchronizeDataToMacroPlan (
  MacroPlan macroPlan,
  Boolean isUnitOfMeasure_MP
)
{
  TextBody:
  [*
    if ( isUnitOfMeasure_MP ) {
      Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
    }
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
@@ -29,27 +29,27 @@
    globalOTDTable.Global_MappingCustomerGrade( relflush );
    // å¹´åº¦äº§é”€é¢„算中间表
    globalOTDTable.Global_MappingAnnualBudgetData( relflush );
    globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
    globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
    globalOTDTable -> OnException( globalOTDTable -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), globalOTDTable );
    globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), globalOTDTable );
    globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), globalOTDTable );
    globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
    globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute();
    globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();
    globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();
    globalOTDTable -> OnException( globalOTDTable -> Global_MappingLane::CreateByAPI() -> Exception(), globalOTDTable );
    globalOTDTable -> OnException( globalOTDTable -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), globalOTDTable );
    globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();
    globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();
    globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();
    globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();
    globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();
    globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();
    globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
    globalOTDTable.GlobalOTDTable_DOI_DSI().AsyncExecute();
    globalOTDTable.GlobalOTDTable_CustomerGrade().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
    //globalOTDTable -> OnException( globalOTDTable -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), globalOTDTable );
    //globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), globalOTDTable );
    //globalOTDTable -> OnException( globalOTDTable -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), globalOTDTable );
    //globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();
    //globalOTDTable -> OnException( globalOTDTable -> Global_MappingLane::CreateByAPI() -> Exception(), globalOTDTable );
    //globalOTDTable -> OnException( globalOTDTable -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), globalOTDTable );
    //globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_DOI_DSI().AsyncExecute();
    //globalOTDTable.GlobalOTDTable_CustomerGrade().AsyncExecute();
    // å¹´åº¦äº§é”€é¢„算中间表
    globalOTDTable.GlobalOTDTable_AnnualBudgetData().AsyncExecute();
    // æ ¹æ®Global_MappingOperationBOM刷GlobalOTDTable_AnnualBudgetData的OrgCodeFromBom
_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl
@@ -5,5 +5,17 @@
{
  #keys: '5[414702.0.83354588][414702.0.83354586][0.0.0][414702.0.83354587][414702.0.83354589]'
  BaseType: Object
  OnCreate:
  [*
    this.BusinessType( relnew, BusinessTypeName := "手机事业部OLED" );
    this.BusinessType( relnew, BusinessTypeName := "专业显示事业部" );
    this.BusinessType( relnew, BusinessTypeName := "外卖CELLOLED" );
    this.BusinessType( relnew, BusinessTypeName := "手机事业部" );
    this.BusinessType( relnew, BusinessTypeName := "汽车电子事业部" );
    this.BusinessType( relnew, BusinessTypeName := "特种显示" );
    this.BusinessType( relnew, BusinessTypeName := "运动健康事业部" );
    this.BusinessType( relnew, BusinessTypeName := "车载显示事业部" );
    this.BusinessType( relnew, BusinessTypeName := "IT事业部" );
  *]
  StructuredName: 'GlobalOTDTables'
}
_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecuteUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ExecuteUser
{
  #keys: '3[414702.0.498264673][414702.0.498264672][414702.0.498264674]'
  Description: '执行用户'
  ValueType: String
}
_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ExecutionStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Attribute ExecutionStatus
{
  #keys: '3[414702.0.498264686][414702.0.498264685][414702.0.498264687]'
  Description:
  [*
    æ‰§è¡ŒçŠ¶æ€
    InOperation
    Complete
  *]
  ValueType: String
}
_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CanRun.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CanRun (
  GlobalOTDTable globalOTDTable,
  String brokerName
) as Boolean
{
  TextBody:
  [*
    isCanRun := exists( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.BrokerName() = brokerName and
                                                                 tempGBEL.ExecutionStatus() = "InOperation"
                       );
    return isCanRun;
  *]
}
_Main/BL/Type_Global_BrokerExecuteLog/StaticMethod_CreateInOperation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateInOperation (
  GlobalOTDTable globalOTDTable,
  String brokerName,
  String executionUser
)
{
  TextBody:
  [*
    globalOTDTable.Global_BrokerExecuteLog( relnew,
                                            BrokerName := brokerName,
                                            ExecuteUser := executionUser,
                                            ExecutionStatus := "InOperation" );
  *]
}
_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingActualProductInStockingPointInPeriod( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingConversionFactor( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
@@ -38,14 +38,12 @@
                                                   );
    }
    
    globalOTDTable.Global_BrokerExecuteLog( relnew,
                                            BrokerName      := "",
                                            ElementTotal    := globalOTDTable.Global_MappingCurrencyRate_MP( relsize ),
                                            ErrorMessage    := "",
                                            IsSuccess       := true,
                                            Name            := "接口数据(货币汇率)",
                                            SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                            ErrorNo         := 0
                                           );
    gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                                       tempGBEL.BrokerName()      = "CurrencyRate_MP" );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( globalOTDTable.Global_MappingCurrencyRate_MP( relsize ) );
    gbel.IsSuccess( true );
    gbel.Name( "接口数据(货币汇率)" );
    gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
@@ -35,14 +35,12 @@
                                               );
    }
    
    globalOTDTable.Global_BrokerExecuteLog( relnew,
                                            BrokerName      := "",
                                            ElementTotal    := globalOTDTable.Global_MappingCurrency_MP( relsize ),
                                            ErrorMessage    := "",
                                            IsSuccess       := true,
                                            Name            := "接口数据(货币)",
                                            SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                            ErrorNo         := 0
                                           );
    gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                                       tempGBEL.BrokerName()      = "Currency_MP" );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( globalOTDTable.Global_MappingCurrency_MP( relsize ) );
    gbel.IsSuccess( true );
    gbel.Name( "接口数据(货币)" );
    gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingCustomOrder( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingCustomerGrade/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingCustomerGrade( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_CustomerGrade().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingDOI_DSI/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingDOI_DSI( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_DOI_DSI().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingForecast( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingInventorySupply( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
@@ -36,14 +36,13 @@
                                        );
    }
    
    globalOTDTable.Global_BrokerExecuteLog( relnew,
                                            BrokerName      := "",
                                            ElementTotal    := globalOTDTable.Global_MappingLane( relsize ),
                                            ErrorMessage    := "",
                                            IsSuccess       := true,
                                            Name            := "接口数据(车道)",
                                            SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                            ErrorNo         := 0
                                           );
    gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                                       tempGBEL.BrokerName()      = "Lane" );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( globalOTDTable.Global_MappingLane( relsize ) );
    gbel.IsSuccess( true );
    gbel.Name( "接口数据(车道)" );
    gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
@@ -37,14 +37,12 @@
                                           );
    }
    
    globalOTDTable.Global_BrokerExecuteLog( relnew,
                                            BrokerName      := "",
                                            ElementTotal    := globalOTDTable.Global_MappingLaneLeg( relsize ),
                                            ErrorMessage    := "",
                                            IsSuccess       := true,
                                            Name            := "接口数据(车道支架)",
                                            SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                            ErrorNo         := 0
                                           );
    gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                                       tempGBEL.BrokerName()      = "LaneLeg" );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( globalOTDTable.Global_MappingLaneLeg( relsize ) );
    gbel.IsSuccess( true );
    gbel.Name( "接口数据(车道支架)" );
    gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingOperation( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingOperationBOM( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingProductInLane( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingProduct_MP( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingSalesSegment_MP( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingStockingPointCost( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
@@ -35,14 +35,12 @@
                                                    );
    }
    
    globalOTDTable.Global_BrokerExecuteLog( relnew,
                                            BrokerName      := "",
                                            ElementTotal    := globalOTDTable.Global_MappingStockingPoint_MP( relsize ),
                                            ErrorMessage    := "",
                                            IsSuccess       := true,
                                            Name            := "接口数据(库存点)",
                                            SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
                                            ErrorNo         := 0
                                           );
    gbel := select( globalOTDTable, Global_BrokerExecuteLog, tempGBEL, tempGBEL.ExecutionStatus() = "InOperation" and
                                                                       tempGBEL.BrokerName()      = "StockingPoint_MP" );
    gbel.ExecutionStatus( "Complete" );
    gbel.ElementTotal( globalOTDTable.Global_MappingStockingPoint_MP( relsize ) );
    gbel.IsSuccess( true );
    gbel.Name( "接口数据(库存点)" );
    gbel.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
  *]
}
_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingOperationCost( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeInterfaceData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInterfaceData (
  GlobalOTDTable globalOTDTable,
  String executionUser,
  String brokerName
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingUnitOfMeasure_MP( relflush );
    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
    if ( not isCanRun ) {
      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
      globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
    }
  *]
}
_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name := "同步单位数据",
                                                                       IsSuccess := true
                                                                      );
    try {
      traverse ( globalOTDTable, Global_MappingUnitOfMeasure_MP, gmuommp ) {
        unitOfMeasure_MP := select( macroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = gmuommp.Name() );
        if ( isnull( unitOfMeasure_MP ) ) {
          unitOfMeasure_MP := UnitOfMeasure_MP::Create( macroPlan, gmuommp.Name(), false, false );
        }
        if ( gmuommp.IsDefault() ) {
          unitOfMeasure_MP.SetAsDefault();
        }
      }
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
    }
  *]
}
_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_CustomOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateShowData_CustomOrder (
  GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    businessTypeColumn       := Global_ShowColumn::CreateColumn( globalOTDTable, 0, "事业部" );
    currencyIDColumn         := Global_ShowColumn::CreateColumn( globalOTDTable, 1, "货币" );
    customerColumn           := Global_ShowColumn::CreateColumn( globalOTDTable, 2, "客户名称" );
    customerIDColumn         := Global_ShowColumn::CreateColumn( globalOTDTable, 3, "客户ID" );
    idColumn                 := Global_ShowColumn::CreateColumn( globalOTDTable, 4, "唯一标识" );
    orderDateColumn          := Global_ShowColumn::CreateColumn( globalOTDTable, 5, "订单日期" );
    orderIDColumn            := Global_ShowColumn::CreateColumn( globalOTDTable, 6, "订单号" );
    orderLineIDColumn        := Global_ShowColumn::CreateColumn( globalOTDTable, 7, "订单行号" );
    priceColumn              := Global_ShowColumn::CreateColumn( globalOTDTable, 8, "单价" );
    priorityNameColumn       := Global_ShowColumn::CreateColumn( globalOTDTable, 9, "优先级名称" );
    productIDColumn          := Global_ShowColumn::CreateColumn( globalOTDTable, 10, "产品编码" );
    stockingPointIDColumn    := Global_ShowColumn::CreateColumn( globalOTDTable, 11, "库存点编码" );
    salesegmentNameColumn    := Global_ShowColumn::CreateColumn( globalOTDTable, 12, "销售部门名称" );
    quantityColumn           := Global_ShowColumn::CreateColumn( globalOTDTable, 13, "数量" );
    unitofmeasureNameColumn  := Global_ShowColumn::CreateColumn( globalOTDTable, 14, "单位" );
    orderTypeColumn          := Global_ShowColumn::CreateColumn( globalOTDTable, 15, "订单类型" );
    isAvailableColumn        := Global_ShowColumn::CreateColumn( globalOTDTable, 16, "是否可用" );
    productGradeColumn       := Global_ShowColumn::CreateColumn( globalOTDTable, 17, "产品等级" );
    segmentPriorityColumn    := Global_ShowColumn::CreateColumn( globalOTDTable, 18, "细分市场优先级" );
    sheetProfitabilityColumn := Global_ShowColumn::CreateColumn( globalOTDTable, 19, "大张盈利" );
    orderTimeColumn          := Global_ShowColumn::CreateColumn( globalOTDTable, 20, "订单下单时间" );
    i := 1;
    traverse ( globalOTDTable, Global_MappingCustomOrder, gmco ) {
      gloabal_ShowRow := globalOTDTable.Global_ShowRow( relnew, RowNr := i );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.BusinessType(), businessTypeColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.CurrencyID(), currencyIDColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.Customer(), customerColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.CustomerID(), customerIDColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.ID(), idColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, guard( gmco.OrderDate().Format( "Y-M2-D2" ), "时间格式错误" ), orderDateColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.OrderID(), orderIDColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.OrderLineID(), orderLineIDColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, [String]gmco.Price(), priceColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.PriorityName(), priorityNameColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.ProductID(), productIDColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.StockingPointID(), stockingPointIDColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.SalesSegmentName(), salesegmentNameColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, [String]gmco.Quantity(), quantityColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.UnitOfMeasureName(), unitofmeasureNameColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.OrderType(), orderTypeColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, [String]gmco.IsAvailable(), isAvailableColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.ProductGrade(), productGradeColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.SegmentPriority(), segmentPriorityColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmco.SheetProfitability(), sheetProfitabilityColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, guard( gmco.OrderTime().Format( "Y-M2-D2" ), "时间格式错误" ), orderTimeColumn, gloabal_ShowRow );
      i++;
    }
  *]
}
_Main/BL/Type_Global_ShowCell/StaticMethod_SetColumnsAndRows.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SetColumnsAndRows (
  GlobalOTDTable globalOTDTable,
  String value,
  Global_ShowColumn global_ShowColumn,
  Global_ShowRow global_ShowRow
)
{
  TextBody:
  [*
    global_ShowCell := globalOTDTable.Global_ShowCell( relnew, Value := value );
    global_ShowCell.Global_ShowColumn( relset, global_ShowColumn );
    global_ShowCell.Global_ShowRow( relset, global_ShowRow );
  *]
}
_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl
@@ -8,117 +8,7 @@
  TextBody:
  [*
    if ( global_BrokerExecuteLog.BrokerName() = "GlobalOTDTable_CustomOrder" ) {
      businessTypeColumn       := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 0, ColumnName := "事业部" );
      currencyIDColumn         := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 1, ColumnName := "货币" );
      customerColumn           := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 2, ColumnName := "客户名称" );
      customerIDColumn         := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 3, ColumnName := "客户ID" );
      idColumn                 := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 4, ColumnName := "唯一标识" );
      orderDateColumn          := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 5, ColumnName := "订单日期" );
      orderIDColumn            := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 6, ColumnName := "订单号" );
      orderLineIDColumn        := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 7, ColumnName := "订单行号" );
      priceColumn              := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 8, ColumnName := "单价" );
      priorityNameColumn       := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 9, ColumnName := "优先级名称" );
      productIDColumn          := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 10, ColumnName := "产品编码" );
      stockingPointIDColumn    := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 11, ColumnName := "库存点编码" );
      salesegmentNameColumn    :=globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 12, ColumnName := "销售部门名称" );
      quantityColumn           := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 13, ColumnName := "数量" );
      unitofmeasureNameColumn  := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 14, ColumnName := "单位" );
      orderTypeColumn          := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 15, ColumnName := "订单类型" );
      isAvailableColumn        := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 16, ColumnName := "是否可用" );
      productGradeColumn       := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 17, ColumnName := "产品等级" );
      segmentPriorityColumn    := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 18, ColumnName := "细分市场优先级" );
      sheetProfitabilityColumn := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 19, ColumnName := "大张盈利" );
      orderTimeColumn          := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := 20, ColumnName := "订单下单时间" );
      i := 1;
      traverse ( globalOTDTable, Global_MappingCustomOrder, gmco ) {
        gloabal_ShowRow := globalOTDTable.Global_ShowRow( relnew, RowNr := i );
        businessTypeCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.BusinessType() );
        businessTypeCell.Global_ShowColumn( relset, businessTypeColumn );
        businessTypeCell.Global_ShowRow( relset, gloabal_ShowRow );
        currencyIDCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.CurrencyID() );
        currencyIDCell.Global_ShowColumn( relset, currencyIDColumn );
        currencyIDCell.Global_ShowRow( relset, gloabal_ShowRow );
        customerCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.Customer() );
        customerCell.Global_ShowColumn( relset, customerColumn );
        customerCell.Global_ShowRow( relset, gloabal_ShowRow );
        customerIDCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.CustomerID() );
        customerIDCell.Global_ShowColumn( relset, customerIDColumn );
        customerIDCell.Global_ShowRow( relset, gloabal_ShowRow );
        idCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.ID() );
        idCell.Global_ShowColumn( relset, idColumn );
        idCell.Global_ShowRow( relset, gloabal_ShowRow );
        orderDateCell := globalOTDTable.Global_ShowCell( relnew, Value := guard( gmco.OrderDate().Format( "Y-M2-D2" ), "时间格式错误" ) );
        orderDateCell.Global_ShowColumn( relset, orderDateColumn );
        orderDateCell.Global_ShowRow( relset, gloabal_ShowRow );
        orderIDCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.OrderID() );
        orderIDCell.Global_ShowColumn( relset, orderIDColumn );
        orderIDCell.Global_ShowRow( relset, gloabal_ShowRow );
        orderLineIDCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.OrderLineID() );
        orderLineIDCell.Global_ShowColumn( relset, orderLineIDColumn );
        orderLineIDCell.Global_ShowRow( relset, gloabal_ShowRow );
        priceCell := globalOTDTable.Global_ShowCell( relnew, Value := [String]gmco.Price() );
        priceCell.Global_ShowColumn( relset, priceColumn );
        priceCell.Global_ShowRow( relset, gloabal_ShowRow );
        priorityNameCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.PriorityName() );
        priorityNameCell.Global_ShowColumn( relset, priorityNameColumn );
        priorityNameCell.Global_ShowRow( relset, gloabal_ShowRow );
        productIDCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.ProductID() );
        productIDCell.Global_ShowColumn( relset, productIDColumn );
        productIDCell.Global_ShowRow( relset, gloabal_ShowRow );
        stockingPointIDCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.StockingPointID() );
        stockingPointIDCell.Global_ShowColumn( relset, stockingPointIDColumn );
        stockingPointIDCell.Global_ShowRow( relset, gloabal_ShowRow );
        salesegmentNameCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.SalesSegmentName() );
        salesegmentNameCell.Global_ShowColumn( relset, salesegmentNameColumn );
        salesegmentNameCell.Global_ShowRow( relset, gloabal_ShowRow );
        quantityCell := globalOTDTable.Global_ShowCell( relnew, Value := [String]gmco.Quantity() );
        quantityCell.Global_ShowColumn( relset, quantityColumn );
        quantityCell.Global_ShowRow( relset, gloabal_ShowRow );
        unitofmeasureNameCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.UnitOfMeasureName() );
        unitofmeasureNameCell.Global_ShowColumn( relset, unitofmeasureNameColumn );
        unitofmeasureNameCell.Global_ShowRow( relset, gloabal_ShowRow );
        orderTypeCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.OrderType() );
        orderTypeCell.Global_ShowColumn( relset, orderTypeColumn );
        orderTypeCell.Global_ShowRow( relset, gloabal_ShowRow );
        isAvailableCell := globalOTDTable.Global_ShowCell( relnew, Value := [String]gmco.IsAvailable() );
        isAvailableCell.Global_ShowColumn( relset, isAvailableColumn );
        isAvailableCell.Global_ShowRow( relset, gloabal_ShowRow );
        productGradeCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.ProductGrade() );
        productGradeCell.Global_ShowColumn( relset, productGradeColumn );
        productGradeCell.Global_ShowRow( relset, gloabal_ShowRow );
        segmentPriorityCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.SegmentPriority() );
        segmentPriorityCell.Global_ShowColumn( relset, segmentPriorityColumn );
        segmentPriorityCell.Global_ShowRow( relset, gloabal_ShowRow );
        sheetProfitabilityCell := globalOTDTable.Global_ShowCell( relnew, Value := gmco.SheetProfitability() );
        sheetProfitabilityCell.Global_ShowColumn( relset, sheetProfitabilityColumn );
        sheetProfitabilityCell.Global_ShowRow( relset, gloabal_ShowRow );
        orderTimeCell := globalOTDTable.Global_ShowCell( relnew, Value := guard( gmco.OrderTime().Format( "Y-M2-D2" ), "时间格式错误" ) );
        orderTimeCell.Global_ShowColumn( relset, orderTimeColumn );
        orderTimeCell.Global_ShowRow( relset, gloabal_ShowRow );
        i++;
      }
      Global_ShowCell::CreateShowData_CustomOrder( globalOTDTable );
    }
  *]
}
_Main/BL/Type_Global_ShowColumn/StaticMethod_CreateColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateColumn (
  GlobalOTDTable globalOTDTable,
  Number columnIndex,
  String columnName
) as Global_ShowColumn
{
  TextBody:
  [*
    global_ShowColumn := globalOTDTable.Global_ShowColumn( relnew, ColumnIndex := columnIndex, ColumnName := columnName );
    return global_ShowColumn;
  *]
}
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
@@ -9,7 +9,12 @@
  TextBody:
  [*
    // renhao Aug-14-2023 (created)
    listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 );
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingActualProductInStockingPointInPeriod,
                             actual,
                             ( actual.ActualInventoryLevelEnd() > 0 ) and
                             ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    totalcount := listtodeal.Size();
    info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" );
    
@@ -24,7 +29,7 @@
      if( not isnull(businessTypes)){
      
        for( i :=0 ;i < businessTypes.Size();i++ ){
          businessType := businessTypes.Element( i);
          businessType := businessTypes.Element( i );
          if( product.BusinessType() = businessType and not product.IsCommon()){
            ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
                                                                  actual.ProductID(),
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
@@ -14,7 +14,12 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true );
    } else {
        listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 );
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingCustomOrder,
                                 item,
                                 ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    }
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
@@ -11,7 +11,13 @@
    // renhao Aug-14-2023 (created)
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
    listtodeal := selectset( globalOTDTable,Global_MappingInventorySupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/);
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingInventorySupply,
                             externalSupply,
                             ( externalSupply.UserQuantity()>0 ) and
                             ( externalSupply.Date() >= queryStartDate ) and
                             ( organcodelist.Find( externalSupply.StockingPointID().SubString( 0, 3 ) ) >= 0 )/*and externalSupply.Date() <= queryEndDate*/);
    totalcount := listtodeal.Size();
    description := "在途在制";
    info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" );
@@ -32,7 +38,7 @@
        if( not isnull(businessTypes)){
        
          for( i :=0 ;i < businessTypes.Size();i++ ){
            businessType := businessTypes.Element( i);
            businessType := businessTypes.Element( i );
            if( product.BusinessType() = businessType and not product.IsCommon()){
              InventorySupply::CreateOrUpdate( externalSupply.ID(),
                                               productMP,
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
@@ -14,7 +14,13 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 );
    } else {
        listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 );
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingForecast,
                                 item,
                                 ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( item.Quantity()>0 ) and
                                 ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    }
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -14,11 +14,13 @@
    if( isKeyProduct ) {
        keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="成品" or item.ProductMajorType()="半成品", item.ID() );
    }
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    bomList := selectsortedset(  globalOTDTable, Global_MappingOperationBOM, item,
                                 ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0, 
                                         true, 
    //                                     businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
                                         businessTypes.Find( item.BusinessType() ) >= 0 )
                                         ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
                                         ( organcodelist.Find( item.OrganCode() ) >= 0 ) )
    //                             and ifexpr( isKeyProduct, 
    //                                         keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
    //                                         true )
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
@@ -1,6 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method MappingOperationCostData (
  GlobalOTDTable globalOTDTable,
  Strings businesstypes
)
{
@@ -14,7 +15,12 @@
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( this, MappingOperation, item, true );
    } else {
        listtodeal := selectset( this, MappingOperation, item, businesstypes.Find( item.BusinessType() ) <> -1 );
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listtodeal := selectset( this,
                                 MappingOperation,
                                 item,
                                 ( businesstypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 ) );
    }
    
    // Get the list to deal with max sequence number
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl
@@ -11,8 +11,10 @@
    // èŽ·å–æœ‰åºçš„å¾…å¤„ç†è®°å½•
    toDealList := construct( Global_MappingOperations ) ;
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item, 
                                       businessTypes.Find( item.BusinessType() ) >= 0,
                                       ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
                                       ( organcodelist.Find( item.OrganCode() ) >= 0 ),
    //                                   businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0, 
                                       item.SequenceNumber() );
    } else {
_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
@@ -23,10 +23,10 @@
          }
    } else {
        if( iskeyproduct = true ){
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find(  item.BusinessType()) >= 0 );
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 );
         }
        else{
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find(  item.BusinessType()) >= 0 );
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 );
        }
    }
    totalcount := listToDeal.Size();
_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl
@@ -14,7 +14,10 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true );
    } else {
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 );
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingSalesSegment_MP,
                                 item,
                                 businessTypes.Find( item.BusinessType() ) <> -1 );
    }
    //nameList := construct( structured[String] );
    //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() );
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
@@ -15,9 +15,11 @@
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
    } else {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, 
    //                             businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0
                                 businesstypes.Find( item.BusinessType() ) >= 0
                                 ( businesstypes.Find( item.BusinessType() ) >= 0 ) and
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 )
                                );
    }
    
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -131,7 +131,7 @@
    
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
    macroPlan.MappingOperationCostData( businessTypes );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes );
    
    // è®¢å•预测-17
    Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable);
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl
@@ -31,7 +31,7 @@
    
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
    info( xmlTableString );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
    tableGroupHandle := TableGroupHandle::Create( "物料标签" );
    tableGroupHandle.Add( tableHandle );
_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrganCodeName
{
  #keys: '3[412960.0.276650052][412960.0.276650051][412960.0.276650053]'
  Description: '组织编码名称'
  ValueType: String
}
_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OrganCode
{
  #keys: '5[412960.0.276650035][412960.0.276650033][0.0.0][412960.0.276650034][412960.0.276650036]'
  BaseType: Object
  Description: '事业部对应的组织编码集合'
  StructuredName: 'OrganCodes'
}
_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
@@ -11,7 +11,7 @@
    // NBoTk Sep-21-2023 (created)
    
    data := selectobject( owner,PriorityFactor,p,
                          p.BusinessType() = businessType and p.Name() = name
                           p.Name() = name
                          )
    
    return data.Coefficient();
_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
@@ -11,7 +11,6 @@
    value := "";
    
    strList := selectuniquevalues(  owner,PriorityFactor,p,
                                   p.BusinessType() = businessType,
                                    p.Name()
                                   );
    
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -1,8 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitData (
  MacroPlan owner,
  String businessType
  MacroPlan owner
)
{
  TextBody:
@@ -10,25 +9,35 @@
    // NBoTk Sep-15-2023 (created)
    // businessType
    // result := "集团面板;专业显示事业部;外卖CELL;非显;运动健康;运动健康事业部;手机事业部;特种显示;汽车电子事业部;车载显示事业部;IT事业部";
    // æ·»åŠ äº‹ä¸šéƒ¨å¯¹åº”çš„é¢„åˆ¶ä¼˜å…ˆçº§å› å­æ•°æ®
    owner.PriorityFactor(relnew,Name := "客户策略" ,Desc := "将事业部计算的优先级,按该细分项比例阶梯确定该项得分。如:81%≤X≤100% 5分,61%≤X≤80% 4分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "客户等级" ,Desc := "根据需求数据中客户,匹配客户等级",BusinessType := businessType);
    owner.PriorityFactor(relnew,Name := "大张盈利水平" ,Desc := "1、获取客户*SKU大张盈利数 2、定义客户*SKU大张盈利数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "细分市场等级" ,Desc := "1、获取客户*SKU对应细分市场等级 2、匹配需求数据中客户及SKU对应细分市场评分等级,得到对应阶梯得分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "需求类型" ,Desc := "匹配不同需求种类,得到对应得分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "订单下单时间" ,Desc := "根据需求订单中下单时间与需求时间差值,匹配阶梯得分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "产品等级" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
    owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
    
    // ä¼˜å…ˆçº§å› å­ç»†åˆ†
    priorityFactorList := selectset( owner,PriorityFactor,p,
                                     p.BusinessType() = businessType
                                     );
    businessType := "";
    
    traverse( priorityFactorList,Elements,e)
    // å¦‚果已经存在优先级数据 åˆ™ä¸åšå¤„理
    list := selectset( owner,PriorityFactor,p,true);
    if( list.Size() = 0 )
    {
        PriorityFactorDetails::InitData( owner,e);
          // æ·»åŠ äº‹ä¸šéƒ¨å¯¹åº”çš„é¢„åˆ¶ä¼˜å…ˆçº§å› å­æ•°æ®
          owner.PriorityFactor(relnew,Name := "客户策略" ,Desc := "将事业部计算的优先级,按该细分项比例阶梯确定该项得分。如:81%≤X≤100% 5分,61%≤X≤80% 4分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "客户等级" ,Desc := "根据需求数据中客户,匹配客户等级",BusinessType := businessType);
          owner.PriorityFactor(relnew,Name := "大张盈利水平" ,Desc := "1、获取客户*SKU大张盈利数 2、定义客户*SKU大张盈利数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "细分市场等级" ,Desc := "1、获取客户*SKU对应细分市场等级 2、匹配需求数据中客户及SKU对应细分市场评分等级,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "需求类型" ,Desc := "匹配不同需求种类,得到对应得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "订单下单时间" ,Desc := "根据需求订单中下单时间与需求时间差值,匹配阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "产品等级" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          // ä¼˜å…ˆçº§å› å­ç»†åˆ†
          priorityFactorList := selectset( owner,PriorityFactor,p,
                                           p.BusinessType() = businessType
                                           );
          traverse( priorityFactorList,Elements,e)
          {
              PriorityFactorDetails::InitData( owner,e);
          }
    }
  *]
}
_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetCalcFormula (
  MacroPlan macroPlan,
  String formula
) as String
{
  TextBody:
  [*
    // NBoTk Oct-7-2023 (created)
    priorityFactor := null( PriorityFactor);
    traverse( macroPlan,PriorityFactor,p)
    {
         if( formula.StartsWith( p.Name()) )
         {
            priorityFactor := p;
         }
    }
    value := priorityFactor.Name() + "[" + [String]priorityFactor.Coefficient() +"*L]";
    return value;
  *]
}
_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetCalcStr (
  MacroPlan macroPlan,
  String formula,
  String lastCalcStr
) as String
{
  TextBody:
  [*
    // NBoTk Oct-7-2023 (created)
    calcStr := "";
    remindFormula := formula;
    // éåŽ†ä¼˜å…ˆçº§å› å­é…ç½®
    if( not remindFormula = '' )
    {
                  // ä»Žèµ·å§‹ä½ç½®å¼€å§‹åŒ¹é…
            if(remindFormula.StartsWith( "+" ))
            {
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                calcStr := lastCalcStr + "+" + calcStr;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
            else if( remindFormula.StartsWith( "-" ))
            {
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                calcStr := lastCalcStr + "-" + calcStr;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
            else if( remindFormula.StartsWith( "*" ) )
            {
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                calcStr := lastCalcStr + "*" + calcStr;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
            else if( remindFormula.StartsWith( "/" ) )
            {
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                calcStr := lastCalcStr + "/" + calcStr;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
            else if( remindFormula.StartsWith( "(" ) )
            {
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                calcStr := lastCalcStr + "{" + calcStr;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
            else if( remindFormula.StartsWith( ")" ) )
            {
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                calcStr := lastCalcStr + ")" + calcStr;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
            else
            {
                // ä¸æ˜¯ç¬¦å· ç›´æŽ¥èŽ·å–è®¡ç®—åŽçš„æ•°å€¼
                calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula);
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityPolicy::GetCalcStr(  macroPlan,remindFormula,calcStr);
            }
    }
    return calcStr;
  *]
}
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
@@ -28,7 +28,7 @@
        } 
    }
    
    nameList := PriorityFactor::GetDataByBusinessType(  owner,businessType);
    nameList := PriorityFactor::GetDataByBusinessType(  owner,"");
    traverse( nameList,Elements,e)
    {
        nameText := e.Name() + "[" + [String]e.Coefficient() + "*L]"
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
@@ -10,7 +10,6 @@
  [*
    // NBoTk Sep-21-2023 (created)
    value := stringData;
    symbolList := construct( structured[String]);
    symbolList.Add( "+")
    symbolList.Add( "-")
@@ -28,7 +27,7 @@
        } 
    }
    
    nameList := PriorityFactor::GetDataByBusinessType(  owner,businessType);
    nameList := PriorityFactor::GetDataByBusinessType(  owner,"");
    traverse( nameList,Elements,e)
    {
        if( stringData.EndsWith( e.Name()))
@@ -37,7 +36,6 @@
             value := stringData.SubString( 0,end);
        } 
    }
    return value;
  *]
}
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
@@ -17,7 +17,6 @@
    remindFormula := formula;
    
    // éåŽ†ä¼˜å…ˆçº§å› å­é…ç½®
    if( not remindFormula = '' )
    {
            // ä»Žèµ·å§‹ä½ç½®å¼€å§‹åŒ¹é… 
@@ -70,7 +69,7 @@
                PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType,macroPlan,globalOTDTable);
                
                // æˆªå– ) åŽçš„字符继续进行计算
                remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length());
                remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()-1);
            }
            else
            {
@@ -83,6 +82,6 @@
    }
    
    // æ²¡æœ‰åŒ¹é… å…¬å¼è®¡ç®—完成
    return lastScore;
    return score;
  *]
}
_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl
@@ -27,7 +27,6 @@
         }
    }
    
    info( "remindStr = " + str );
    return str;
  *]
}
_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
@@ -16,7 +16,6 @@
    {
         // äº‹ä¸šéƒ¨ä¿¡æ¯
         businessType := e.BusinessType();
         //businessType :=  "手机事业部";
         
         // èŽ·å–å¯¹åº”äº‹ä¸šéƒ¨è®¡ç®—å…¬å¼
         priorityPolicys := selectobject( macroPlan,PriorityPolicy,p,p.BusinessType() = businessType and p.Name() = priorityPolicyName);
@@ -24,7 +23,6 @@
         
         // é€’归处理计算公式 èŽ·å–å½“å‰è®¢å•çš„å¾—åˆ†
         value := PriorityResult::CalculateScore( formula,e,businessType,macroPlan,0.0,globalOTDTable);
         // ç”Ÿæˆä¼˜å…ˆçº§å› å­è·‘分结果
         priorityResult := macroPlan.PriorityResult(relnew,CustomerOrderID := e.ID(),BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
                                                     DemandDate := e.EndDate(),ProductID := e.ProductID(),Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),
@@ -56,6 +54,10 @@
                                   result.PriorityResultScore()
                                   )
    
    // Quintiq优先级分10级 éœ€è¦åˆ†æ®µè®¡ç®—
    subLevel := resultList.Size() div 10;
    subLevelCount := 0;
    priorityValue := 1;
    traverse( resultList,Elements,e)
    {
@@ -70,15 +72,24 @@
              
              // åˆ›å»ºä¼˜å…ˆçº§æ•°æ® éœ€è¦å…ˆæ¸…除上一次的计算结果
              // åˆ¤æ–­å½“前customerOrder是否存在
              oldPriority := selectobject( macroPlan,Priority,p,p.Name() = obj.OrderID());
              if(not isnull( oldPriority ) )
              oldPriority := selectobject( macroPlan,Priority,p,p.Name() = [String]priorityValue);
              if(isnull( oldPriority ) )
              {
                    macroPlan.Priority(reldelete, oldPriority);
              }
              macroPlan.Priority(relnew,Weight := priorityValue,Name := obj.OrderID());
              priorityValue := priorityValue + 1;
                    macroPlan.Priority(relnew,Weight := priorityValue,Name := [String]priorityValue);
              }
        }
    
        // åˆ¤æ–­è®¡ç®—分段数量与Quintiq原始优先级
        subLevelCount := subLevelCount + 1;
        if( subLevelCount = subLevel )
        {
            // å½“到达分段数量后 ä¼˜å…ˆçº§+1 åˆ†æ®µè®¡æ•°ä»Ž0开始
            if( priorityValue < 10 )
            {
                  priorityValue := priorityValue + 1;
            }
            subLevelCount := 0;
        }
    }
  *]
}
_Main/BL/Type_Scenario/Attribute_ScenarioName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ScenarioName
{
  #keys: '3[412960.0.288500040][412960.0.288500039][412960.0.288500041]'
  Description: '场景名称,对应事业部&组织编码维护中维护的场景名称'
  ValueType: String
}
_Main/BL/Type_ScenarioManager/StaticMethod_AvailableScenarioNames.qbl
ÎļþÃû´Ó _Main/BL/Type_ScenarioManager/StaticMethod_AvailableBusinessTypes.qbl ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
StaticMethod AvailableBusinessTypes (
StaticMethod AvailableScenarioNames (
  GlobalOTDTable globalOTDTable
) as String
{
@@ -16,7 +16,7 @@
    //}
    
    // ä½¿ç”¨businessType获取数据
    strings := BusinessType::GetBusinessNameStr( globalOTDTable);
    strings := BusinessType::GetScenarioNamesStr( globalOTDTable);
    
    return strings;
  *]
_Main/Sys/ImgAttr/Global_BrokerExecuteLog.dme
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
TypeDataInterface Global_BrokerExecuteLog
{
  TypeKey: '[414702.0.265587041]'
  ImageDataMember ImageExecutionStatus
  {
    #keys: '1[414702.0.496052017]'
    ImageSpecifications:
    [
      ImageDataMemberImageSpecification
      {
        Image: 'MEDIA_PLAY_GREEN'
        Quill: 'object.ExecutionStatus() = "InOperation"'
        Value: 'InOperation'
      }
      ImageDataMemberImageSpecification
      {
        Image: 'CHECK'
        Quill: 'object.ExecutionStatus() = "Complete"'
        Value: 'ImageExecutionStatus2'
      }
    ]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def
@@ -12,10 +12,35 @@
      Properties:
      [
        DataBinding: 'DataHolderBusinessType.Data.BusinessTypeName'
        Label: 'Business Type Name'
        Description: '事业部名称输入'
        Label: '事业部名称'
        Taborder: 0
      ]
    }
    Component editScenarioName
    {
      #keys: '[412960.0.275480603]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderBusinessType.Data.ScenarioName'
        Description: '场景名称编辑'
        Label: '场景名称'
        Taborder: 1
      ]
    }
    Component editDisplayType
    {
      #keys: '[412960.0.278321833]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderBusinessType.Data.DisplayType'
        Description: '显示类型编辑'
        Label: '显示类型'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
@@ -11,12 +11,7 @@
    
    // OnOk
    this.ApplyChanges();
    businessType := DataHolderBusinessType.Data().BusinessTypeName();
    DataHolderBusinessType.Data().Commit();
    PriorityFactor::InitData( MacroPlan,businessType);
    
    this.Close();
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def
@@ -46,8 +46,8 @@
      Properties:
      [
        AllowEmpty: true
        DataBinding: 'DataHolderDialogData.Data.BusinessType'
        Label: 'BusinessType'
        DataBinding: 'DataHolderDialogData.Data.ScenarioName'
        Label: 'Scenario Name'
        Taborder: 4
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -32,6 +32,13 @@
      data.Name( versionname );
      }
    
    // Get Business Type from Scenario Name
    businesstype := select( globalotdtable,
                            BusinessType,
                            b,
                            b.ScenarioName()=data.ScenarioName() ).BusinessTypeName();
    data.BusinessType( businesstype );
    // Copy scenario
    if( isnull( data.WrappedInstance() ) )
    {
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method New (
  MacroPlan owner,
  String businessType
) id:Method_DialogEditPriorityFactor_New
{
  #keys: '[414382.0.593002251]'
  Body:
  [*
    data := owner.PriorityFactor(relshadow);
    data.BusinessType(businessType);
    DataHolderEditPriorityFactor.Data(&data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
@@ -13,8 +13,10 @@
      [
        AllowEmpty: true
        DataBinding: 'DataHolderFillingCapacityOrder.Data.ProductID'
        Enabled: false
        Label: '商品编码'
        Taborder: 0
        Visible: false
      ]
    }
    Component dropDownStringListSalesSegmentName id:dropDownStringListSalesSegmentName_325
@@ -25,8 +27,10 @@
      [
        AllowEmpty: true
        DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesSegmentName'
        Enabled: false
        Label: '销售部门'
        Taborder: 1
        Visible: false
      ]
    }
    Component dropDownStringListStockPointID id:dropDownStringListStockPointID_801
@@ -37,8 +41,10 @@
      [
        AllowEmpty: true
        DataBinding: 'DataHolderFillingCapacityOrder.Data.StockingPointID'
        Enabled: false
        Label: '库存点'
        Taborder: 2
        Visible: false
      ]
    }
    Component dropDownStringListCustomer id:dropDownStringListCustomer_957
@@ -49,8 +55,10 @@
      [
        AllowEmpty: true
        DataBinding: 'DataHolderFillingCapacityOrder.Data.Customer'
        Enabled: false
        Label: '客户'
        Taborder: 3
        Visible: false
      ]
    }
    Component edtQuantity id:edtQuantity_995
@@ -62,7 +70,7 @@
        DataBinding: 'DataHolderFillingCapacityOrder.Data.Quantity'
        Label: '数量'
        Mask: 'REAL'
        Taborder: 4
        Taborder: 12
      ]
    }
    Component dropDownStringListUnitOfMeasureName id:dropDownStringListUnitOfMeasureName_750
@@ -73,9 +81,11 @@
      [
        AllowEmpty: true
        DataBinding: 'DataHolderFillingCapacityOrder.Data.UnitOfMeasureName'
        Enabled: false
        Label: '数量单位'
        Strings: 'UnitName'
        Taborder: 5
        Taborder: 4
        Visible: false
      ]
    }
    Component edtSalesAmount id:edtSalesAmount_608
@@ -87,7 +97,7 @@
        DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesAmount'
        Label: '销售额'
        Mask: 'NUMBER'
        Taborder: 6
        Taborder: 13
      ]
    }
    Component dsDemandDate
@@ -98,7 +108,7 @@
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.DemandDate'
        Label: '需求日期'
        Taborder: 8
        Taborder: 15
      ]
    }
    Component dsForecastDemandDate
@@ -109,9 +119,180 @@
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.ForecastDemandDate'
        Label: '预期需求日期'
        Taborder: 14
      ]
    }
    Component ddlSalesSegment
    {
      #keys: '[414702.0.525040441]'
      BaseType: 'WebDropDownList'
      Databinding: 'SalesSegment_MP'
      Children:
      [
        Component deSalesSegment
        {
          #keys: '[414702.0.525040443]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[SalesSegment_MP]'
            FixedFilter: 'object.Child(relsize)=0'
            Source: 'ApplicationMacroPlanner.DataHolderSalesSegment'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: '销售部门'
        Taborder: 5
      ]
    }
    Component ddlProduct_MP
    {
      #keys: '[414702.0.525462899]'
      BaseType: 'WebDropDownList'
      Databinding: 'Product_MP'
      Children:
      [
        Component deContent
        {
          #keys: '[414702.0.525462901]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[Product_MP]'
            FixedFilter: 'not object.IsSystem()'
            Source: 'ApplicationMacroPlanner.DataHolderProduct'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: '产品'
        Taborder: 6
      ]
    }
    Component ddlStockingPoint_MP
    {
      #keys: '[414702.0.525462922]'
      BaseType: 'WebDropDownList'
      Databinding: 'StockingPoint_MP'
      Children:
      [
        Component deContent345
        {
          #keys: '[414702.0.525462924]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[StockingPoint_MP]'
            FixedFilter: 'not object.IsSystem()'
            Source: 'ApplicationMacroPlanner.DataHolderStockingPoint'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: '库存点'
        Taborder: 7
      ]
    }
    Component ddlBusinessType
    {
      #keys: '[414702.0.525012300]'
      BaseType: 'WebDropDownList'
      Databinding: 'BusinessType'
      Children:
      [
        Component deContent989
        {
          #keys: '[414702.0.525012302]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            Taborder: 0
            Transformation: 'BusinessType'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'BusinessTypeName'
        Label: '事业部'
        Taborder: 8
      ]
    }
    Component ddlUnitOfMeasure_MP
    {
      #keys: '[414702.0.525669735]'
      BaseType: 'WebDropDownList'
      Databinding: 'UnitOfMeasure_MP'
      Children:
      [
        Component deContent703
        {
          #keys: '[414702.0.525669737]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'UnitOfMeasure_MP'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: '单位'
        Taborder: 9
      ]
    }
    Component efCustomerName
    {
      #keys: '[414702.0.525734924]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.Customer'
        Label: 'Customer name'
        Taborder: 10
      ]
    }
    Component efCustomID
    {
      #keys: '[414702.0.525734943]'
      BaseType: 'WebEditField'
      Properties:
      [
        Label: 'Customer ID'
        Taborder: 11
      ]
    }
    Component ddslOrderType
    {
      #keys: '[414702.0.526239841]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.OrderType'
        Label: '订单类型'
        Strings: '反签;授权'
        Taborder: 16
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_ClickBtnOk.def
@@ -7,12 +7,12 @@
  [*
    // Disabled button to prevent the possibility of multiple firing
    
    btnOk.Enabled(false,'');
    //btnOk.Enabled(false,'');
    
    // OnOk
    this.ApplyChanges();
    
    DataHolderFillingCapacityOrder.Data().Commit();
    //DataHolderFillingCapacityOrder.Data().Commit();
    
    //if( not isnull( DataHolderForm.Data() ) )
    //{
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_Edit.def
@@ -12,6 +12,21 @@
    
    DataHolderFillingCapacityOrder.Data( &data );
    
    salesSegment_MP := select( MacroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = selection.SalesSegmentName() );
    ddlSalesSegment.Data( salesSegment_MP );
    product_MP := select( MacroPlan, Product_MP, tempPMP, tempPMP.ID() = selection.ProductID() );
    ddlProduct_MP.Data( product_MP );
    stockingPoint_MP := select( MacroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = selection.StockingPointID() );
    ddlStockingPoint_MP.Data( stockingPoint_MP );
    businessType := select( GlobalOTDTable, BusinessType, tempBT, tempBT.BusinessTypeName() = selection.BusinessType() );
    ddlBusinessType.Data( businessType );
    unitOfMeasure_MP := select( MacroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = selection.UnitOfMeasureName() );
    ddlUnitOfMeasure_MP.Data( unitOfMeasure_MP );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def
@@ -8,10 +8,10 @@
  Body:
  [*
    
    data := owner.FillingCapacityOrder(relshadow);
    data.OrderType("提拉")
    data := owner.FillingCapacityOrder( relshadow );
    //data.OrderType("提拉")
    
    DataHolderFillingCapacityOrder.Data(&data);
    DataHolderFillingCapacityOrder.Data( &data );
    
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
@@ -6,20 +6,52 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    feedback := Translations::FilllingCapacity_ValidateInput();
    checkValue := not dropDownStringListProductID.Text() = '' and not dropDownStringListSalesSegmentName.Text() = ''
                  and not dropDownStringListStockPointID.Text() = '' and not dropDownStringListCustomer.Text() = ''
                  and not edtQuantity.Text() = '' and not dropDownStringListUnitOfMeasureName.Text() = ''
                  and not edtSalesAmount.Text() = ''
    return checkValue;
    //feedback := Translations::FilllingCapacity_ValidateInput();
    //
    //checkValue := not dropDownStringListProductID.Text() = '' and not dropDownStringListSalesSegmentName.Text() = ''
    //              and not dropDownStringListStockPointID.Text() = '' and not dropDownStringListCustomer.Text() = ''
    //              and not edtQuantity.Text() = '' and not dropDownStringListUnitOfMeasureName.Text() = ''
    //              and not edtSalesAmount.Text() = ''
    //
    //return checkValue;
  *]
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
      Form.ApplyChanges();
      data := guard( DataHolderFillingCapacityOrder.Data().WrappedInstance(), null( FillingCapacityOrder ) );;
      if ( isnull( data ) ) {
        MacroPlan.FillingCapacityOrder( relnew,
                                        ID                 := OS::GenerateGUIDAsString(),
                                        ProductID          := guard( ddlProduct_MP.Data().ID(), "null" ),
                                        BusinessType       := guard( ddlBusinessType.Data().BusinessTypeName(), "null" ),
                                        SalesSegmentName   := guard( ddlSalesSegment.Data().Name(), "null" ),
                                        StockingPointID    := guard( ddlStockingPoint_MP.Data().ID(), "null" ),
                                        Customer           := efCustomerName.Text(),
                                        Quantity           := [Real]edtQuantity.Text(),
                                        UnitOfMeasureName  := ddlUnitOfMeasure_MP.Data().Name(),
                                        ForecastDemandDate := dsForecastDemandDate.Date(),
                                        DemandDate         := dsDemandDate.Date(),
                                        OrderType          := ddslOrderType.Text(),
                                        SalesAmount        := [Number]edtSalesAmount.Text()
                                       );
      } else {
        data.ProductID( guard( ddlProduct_MP.Data().ID(), "null" ) );
        data.BusinessType( guard( ddlBusinessType.Data().BusinessTypeName(), "null" ) );
        data.SalesSegmentName( guard( ddlSalesSegment.Data().Name(), "null" ) );
        data.StockingPointID( guard( ddlStockingPoint_MP.Data().ID(), "null" ) );
        data.Customer( efCustomerName.Text() );
        data.Quantity( [Real]edtQuantity.Text() );
        data.UnitOfMeasureName( ddlUnitOfMeasure_MP.Data().Name() );
        data.ForecastDemandDate( dsForecastDemandDate.Date() );
        data.DemandDate( dsDemandDate.Date() );
        data.OrderType( ddslOrderType.Text() );
        data.SalesAmount( [Number]edtSalesAmount.Text() );
      }
      Form.Close();
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  PriorityPolicy selection
) id:Method_DialogNewPriorityPolicy_Edit
{
  #keys: '[414382.0.603040472]'
  Body:
  [*
    data := shadow( selection );
    DataHolderNewPriorityPolicy.Data( &data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[412960.0.278371059]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[412960.0.278371063]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[412960.0.278371065]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[412960.0.278371057]'
  BaseType: 'WebPanel'
  Children:
  [
    Component editOrganCodeName
    {
      #keys: '[412960.0.280135212]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderOrganCode.Data.OrganCodeName'
        Description: '组织编码名称编辑'
        Label: '组织编码'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOk () id:Method_DialogOrganCode_ClickBtnOk
{
  #keys: '[412960.0.279955432]'
  Body:
  [*
    // Disabled button to prevent the possibility of multiple firing
    btnOk.Enabled(false,'');
    // OnOk
    this.ApplyChanges();
    DataHolderOrganCode.Data().Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  OrganCode selection
) id:Method_DialogOrganCode_Edit
{
  #keys: '[412960.0.279955433]'
  Body:
  [*
    // Edits assumption
    data := shadow( selection );
    DataHolderOrganCode.Data( &data );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method New (
  BusinessType owner
) id:Method_DialogOrganCode_New
{
  #keys: '[412960.0.279955435]'
  Body:
  [*
    data := owner.OrganCode(relshadow);
    DataHolderOrganCode.Data( &data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[412960.0.278371069]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[412960.0.278371068]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogOrganCode
{
  #keys: '[412960.0.278371055]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderOrganCode
    {
      #keys: '[412960.0.279955517]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[OrganCode]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Description: '组织编码边界弹窗'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: '组织编码编辑'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayType","title":"DisplayType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ScenarioName","title":"ScenarioName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ScenarioName"}}]'
        ContextMenu: 'listContextMenuBusinessType655'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
Quintiq file version 2.0
Component ListOrganCode
{
  #keys: '[412960.0.278370451]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorOrganCode
    {
      #keys: '[412960.0.278370452]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'BusinessType'
        Description: '组织编码'
        ExtractionMode: 'Selected'
        Source: 'ListBusinessType'
        Taborder: 0
        Transformation: 'OrganCode'
      ]
    }
    #child: listActionBarPageOrganCode
    Component DataSetLevelOrganCode
    {
      #keys: '[412960.0.278370457]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuBusinessType
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCodeName","title":"OrganCodeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCodeName"}}]'
        ContextMenu: 'listContextMenuBusinessType'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Description: '组织编码'
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListOrganCode_WebMenu_OnClick
    {
      #keys: '[412960.0.280046014]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[507.0.16811226]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelBusinessType
{
  #keys: '[412960.0.278370440]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListOrganCode
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageOrganCode
{
  #keys: '[412960.0.278370454]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component listContextMenuBusinessType
{
  #keys: '[412960.0.278370459]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEdit526
    {
      #keys: '[412960.0.278370780]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PENCIL'
        Taborder: 3
        Title: 'Edit'
      ]
    }
    Component MenuDelete267
    {
      #keys: '[412960.0.278370833]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 4
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def
@@ -38,6 +38,18 @@
        Title: 'Delete'
      ]
    }
    Component MenuNewOrganCode
    {
      #keys: '[412960.0.280077335]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: '新建组织编码'
        Image: 'EARTH_ADD'
        Taborder: 6
        Title: 'Add Organ Code'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListBusinessType
Response OnClick (
  BusinessType selection
) id:Response_ListBusinessType_MenuNewOrganCode_OnClick
{
  #keys: '[412960.0.280105097]'
  CanBindMultiple: false
  DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuNewOrganCode'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogOrganCode );
      dlg.New( selection );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListOrganCode
Response OnClick (
  OrganCode selection
) id:Response_ListOrganCode_MenuDelete267_OnClick
{
  #keys: '[412960.0.280046423]'
  CanBindMultiple: false
  DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuDelete267'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListOrganCode
Response OnClick (
  OrganCode selection
) id:Response_ListOrganCode_MenuEdit526_OnClick
{
  #keys: '[412960.0.280046170]'
  CanBindMultiple: false
  DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuEdit526'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogOrganCode );
      dlg.Edit(  selection );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def
@@ -8,9 +8,10 @@
  Children:
  [
    #child: ListBusinessType
    #child: PanelBusinessType
  ]
  Properties:
  [
    Title: 'Business Type'
    Title: '事业部&组织编码维护'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_ListFillingCapacityOrder.def
@@ -37,7 +37,7 @@
  ]
  Properties:
  [
    Taborder: 0
    Taborder: 1
  ]
  ResponseDefinitions:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_PanelFillingCapacityOrder.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelFillingCapacityOrder
{
  #keys: '[414702.0.526129526]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonDeduct
    {
      #keys: '[414702.0.523642357]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EDITOR_ACCESSIBILITY_LOCAL'
        Label: '冲减'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
@@ -22,6 +22,7 @@
      BaseType: 'WebMenu'
      Properties:
      [
        BindOnDoubleClick: true
        Image: 'PENCIL'
        Taborder: 4
        Title: 'Edit'
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/_ROOT_Component_FormFillingCapacityOrder.def
@@ -8,6 +8,7 @@
  Children:
  [
    #child: ListFillingCapacityOrder
    #child: PanelFillingCapacityOrder
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_ListInterfaceTest.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BrokerName","title":"BrokerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BrokerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ElementTotal","title":"ElementTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ElementTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorDateTime","title":"ErrorDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorMessage","title":"ErrorMessage","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorMessage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorNo","title":"ErrorNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsSuccess","title":"IsSuccess","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsSuccess"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SuccessDateTime","title":"SuccessDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SuccessDateTime"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImageExecutionStatus","title":"运行状态","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImageExecutionStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ExecuteUser","title":"执行用户","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ExecuteUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsSuccess","title":"是否成功","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsSuccess"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BrokerName","title":"Broker名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BrokerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ElementTotal","title":"数据大小","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ElementTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorDateTime","title":"错误时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorMessage","title":"错误消息","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorMessage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorNo","title":"错误号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"日志名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SuccessDateTime","title":"成功时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SuccessDateTime"}}]'
        ContextMenu: 'listContextMenuInterfaceTest'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog#981.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest981.def ÐÞ¸Ä
@@ -1,5 +1,5 @@
Quintiq file version 2.0
Component PanelInterfaceTest981
Component PanelInterfaceGlobal_BrokerExecuteLog
{
  #keys: '[414702.0.459917264]'
  BaseType: 'WebPanel'
@@ -9,6 +9,6 @@
  ]
  Properties:
  [
    Taborder: 2
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
Quintiq file version 2.0
Component PanelInterfaceOption1
{
  #keys: '[414702.0.459752107]'
  BaseType: 'WebPanel'
  Children:
  [
    Component CheckboxCustomOrder
    {
      #keys: '[414702.0.459786494]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'CustomOrder'
        Taborder: 0
      ]
    }
    Component CheckboxForecast
    {
      #keys: '[414702.0.459501981]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Forecast'
        Taborder: 1
      ]
    }
    Component CheckboxUnitOfMeasure_MP
    {
      #keys: '[414702.0.500042972]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'UnitOfMeasure_MP'
        Taborder: 2
      ]
    }
    Component CheckboxSalesSegment_MP
    {
      #keys: '[414702.0.498882706]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'SalesSegment_MP'
        Taborder: 3
      ]
    }
    Component CheckboxProduct_MP
    {
      #keys: '[414702.0.500281942]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Product_MP'
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2#456.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
Quintiq file version 2.0
Component PanelInterfaceOption2
{
  #keys: '[414702.0.500233382]'
  BaseType: 'WebPanel'
  Children:
  [
    Component CheckboxConversionFactor
    {
      #keys: '[414702.0.501770364]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'ConversionFactor'
        Taborder: 0
      ]
    }
    Component CheckboxOperation
    {
      #keys: '[414702.0.501791718]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Operation'
        Taborder: 1
      ]
    }
    Component CheckboxOperationBOM
    {
      #keys: '[414702.0.501742364]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'OperationBOM'
        Taborder: 2
      ]
    }
    Component CheckboxProductInLane
    {
      #keys: '[414702.0.501792106]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'ProductInLane'
        Taborder: 3
      ]
    }
    Component CheckboxAIPISPIP
    {
      #keys: '[414702.0.503110868]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'AIPISPIP'
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
Quintiq file version 2.0
Component PanelInterfaceOption3
{
  #keys: '[414702.0.501742781]'
  BaseType: 'WebPanel'
  Children:
  [
    Component CheckboxInventorySupply
    {
      #keys: '[414702.0.503576372]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'InventorySupply'
        Taborder: 0
      ]
    }
    Component CheckboxStockingPointCost
    {
      #keys: '[414702.0.503748797]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'StockingPointCost'
        Taborder: 1
      ]
    }
    Component CheckboxOperationCost
    {
      #keys: '[414702.0.503158219]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'OperationCost'
        Taborder: 2
      ]
    }
    Component CheckboxDOI_DSI
    {
      #keys: '[414702.0.503158880]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'DOI_DSI'
        Taborder: 3
      ]
    }
    Component CheckboxCustomerGrade
    {
      #keys: '[414702.0.503159013]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'CustomerGrade'
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
Quintiq file version 2.0
Component PanelInterfaceOption4
{
  #keys: '[414702.0.504229568]'
  BaseType: 'WebPanel'
  Children:
  [
    Component CheckboxStockingPoint_MP
    {
      #keys: '[414702.0.501794917]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'StockingPoint_MP'
        Taborder: 0
      ]
    }
    Component CheckboxCurrency_MP
    {
      #keys: '[414702.0.504229987]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Currency_MP'
        Taborder: 1
      ]
    }
    Component CheckboxCurrencyRate_MP
    {
      #keys: '[414702.0.503787453]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'CurrencyRate_MP'
        Taborder: 2
      ]
    }
    Component CheckboxLane
    {
      #keys: '[414702.0.503787560]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Lane'
        Taborder: 3
      ]
    }
    Component CheckboxLaneLeg
    {
      #keys: '[414702.0.503787710]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'LaneLeg'
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOptions.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def
@@ -32,6 +32,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def
@@ -16,6 +16,29 @@
        Title: '显示数据'
      ]
    }
    Component MenuDelete
    {
      #keys: '[414702.0.495675965]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 4
        Title: '删除'
      ]
    }
    Component MenuSelectionAll
    {
      #keys: '[414702.0.494390825]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'SELECTION'
        Shortcut: 'Ctrl+A'
        Taborder: 5
        Title: '全选'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListInterfaceTest
Response OnClick (
  Global_BrokerExecuteLog selection
) id:Response_ListInterfaceTest_MenuDelete_OnClick
{
  #keys: '[414702.0.494333825]'
  DefinitionID => /ListInterfaceTest/Responsedef_ListInterfaceTest_WebMenu_OnClick
  Initiator: 'MenuDelete'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuSelectionAll_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListInterfaceTest
Response OnClick () id:Response_ListInterfaceTest_MenuSelectionAll_OnClick
{
  #keys: '[414702.0.494351350]'
  CanBindMultiple: false
  DefinitionID => /ListInterfaceTest/Responsedef_ListInterfaceTest_WebMenu_OnClick
  Initiator: 'MenuSelectionAll'
  QuillAction
  {
    Body:
    [*
      this.SelectAll();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
@@ -13,10 +13,29 @@
  {
    Body:
    [*
      GlobalOTDTable.SynchronizationAllMappingBrokerAndAPIByOption( CheckboxCustomOrder.Checked(),
                                                                    CheckboxForecast.Checked() );
      GlobalOTDTable.SynchronizationAllMappingBrokerAndAPIByOption( ApplicationMacroPlanner.GetUserName(),
                                                                    CheckboxCustomOrder.Checked(),
                                                                    CheckboxForecast.Checked(),
                                                                    CheckboxUnitOfMeasure_MP.Checked(),
                                                                    CheckboxSalesSegment_MP.Checked(),
                                                                    CheckboxProduct_MP.Checked(),
                                                                    CheckboxConversionFactor.Checked(),
                                                                    CheckboxOperation.Checked(),
                                                                    CheckboxOperationBOM.Checked(),
                                                                    CheckboxProductInLane.Checked(),
                                                                    CheckboxAIPISPIP.Checked(),
                                                                    CheckboxInventorySupply.Checked(),
                                                                    CheckboxStockingPointCost.Checked(),
                                                                    CheckboxOperationCost.Checked(),
                                                                    CheckboxDOI_DSI.Checked(),
                                                                    CheckboxCustomerGrade.Checked(),
                                                                    CheckboxStockingPoint_MP.Checked(),
                                                                    CheckboxCurrency_MP.Checked(),
                                                                    CheckboxCurrencyRate_MP.Checked(),
                                                                    CheckboxLane.Checked(),
                                                                    CheckboxLaneLeg.Checked() );
      
      WebMessageBox::Success( "拉取成功!", true );
      WebMessageBox::Information( "数据开始拉取中!(仅限一人操作)", true );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def
@@ -13,12 +13,8 @@
  {
    Body:
    [*
      businessTypes := construct( Strings );
      businessTypes.Add( DropDownListBusinessType.Data().BusinessTypeName() );
      GlobalOTDTable.SynchronizeDataToMacroPlan( MacroPlan, 
                                                 businessTypes,
                                                 CheckboxCustomOrder.Checked(),
                                                 CheckboxForecast.Checked()
                                                 CheckboxUnitOfMeasure_MP.Checked()
                                                );
      
      WebMessageBox::Success( "同步成功!", true );
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def
@@ -7,9 +7,12 @@
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelInterfaceOptions
    #child: PanelInterfaceOption1
    #child: PanelInterfaceTest
    #child: PanelInterfaceTest981
    #child: PanelInterfaceGlobal_BrokerExecuteLog
    #child: PanelInterfaceOption2
    #child: PanelInterfaceOption3
    #child: PanelInterfaceOption4
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
@@ -12,10 +12,43 @@
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 3
        Taborder: 4
        Title: '编辑'
      ]
    }
    Component MenuNew
    {
      #keys: '[414382.0.593001800]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_ADD'
        Taborder: 3
        Title: '新增'
      ]
    }
    Component MenuDel
    {
      #keys: '[414382.0.593001811]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_DELETE'
        Taborder: 5
        Title: '删除'
      ]
    }
    Component MenuInit
    {
      #keys: '[414382.0.600301960]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_NEW'
        Taborder: 6
        Title: '初始化'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: DataHolderPriorityFactorSelect
Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderPriorityFactorSelect_OnDataChanged
{
  #keys: '[414382.0.593010798]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  QuillAction
  {
    Body:
    [*
      data := selectset( MacroPlan,PriorityFactor,p,true);
      this.Data(&data);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
@@ -9,8 +9,9 @@
  {
    Body:
    [*
      //strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
      //this.Strings(strings);
      info( "create" + DropDownStringListBusinessType.Text());
      list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      DataHolderPriorityFactorSelect.Data(&list);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      info( "selection" );
      info( "selection" + DropDownStringListBusinessType.Text());
      list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      DataHolderPriorityFactorSelect.Data(&list);
    *]
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick (
  PriorityFactor selection
) id:Response_ListPriorityFactor_MenuDel_OnClick
{
  #keys: '[414382.0.593002800]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  Initiator: 'MenuDel'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick () id:Response_ListPriorityFactor_MenuInit_OnClick
{
  #keys: '[414382.0.600302015]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  Initiator: 'MenuInit'
  QuillAction
  {
    Body:
    [*
      // åˆå§‹åŒ–优先级因子
      PriorityFactor::InitData( MacroPlan);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick () id:Response_ListPriorityFactor_MenuNew_OnClick
{
  #keys: '[414382.0.593002709]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  Initiator: 'MenuNew'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditPriorityFactor );
      businessType := DropDownStringListBusinessType.Text();
      dlg.New( MacroPlan, businessType);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -25,6 +25,7 @@
      [
        Label: '事业部:'
        Taborder: 0
        Visible: false
      ]
    }
    #child: ListPriorityFactor
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
@@ -12,7 +12,7 @@
      Properties:
      [
        DataType: 'structured[PriorityPolicy]'
        Source: 'DataHolderPriorityPolicy'
        Source: 'DataHolderPriorityPolicyShowList'
        Taborder: 0
        Transformation: 'Elements'
      ]
@@ -36,7 +36,7 @@
  ]
  Properties:
  [
    Taborder: 2
    Taborder: 3
  ]
  ResponseDefinitions:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
@@ -40,7 +40,7 @@
  ]
  Properties:
  [
    Taborder: 3
    Taborder: 4
    Title: '优先级策略配置'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: DataHolderPriorityPolicy
Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnCreated
{
  #keys: '[414382.0.594152096]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      data := this.Data();
      businessType := PriorityPolicyBusinessType.Text();
      list := selectset( data,Elements,e,e.BusinessType() = businessType);
      DataHolderPriorityPolicyShowList.Data(&list);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
@@ -2,15 +2,17 @@
#parent: DataHolderPriorityPolicy
Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnDataChanged
{
  #keys: '[414382.0.502145694]'
  #keys: '[414382.0.595379026]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  QuillAction
  {
    Body:
    [*
      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      this.Data(&list);
      data := this.Data();
      businessType := PriorityPolicyBusinessType.Text();
      list := selectset( data,Elements,e,e.BusinessType() = businessType);
      DataHolderPriorityPolicyShowList.Data(&list);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
@@ -12,8 +12,21 @@
  {
    Body:
    [*
      PanelPriorityPolicyOperation.Visible(true);
      dlg := construct( DialogNewPriorityPolicy );
      businessType := PriorityPolicyBusinessType.Text();
      dlg.Edit( selection);
      PanelPriorityPolicyOperationName.Text(selection.Name());
      businessType := PriorityPolicyBusinessType.Text();
      str := PriorityFactor::GetNameList( MacroPlan, businessType);
      DropDownStringList.Strings(str);
      LabelFormula.Text(selection.Formula());
      LabelCalculateValue.Text(selection.CalculateValue());
      data := shadow( selection );
      DataHolderEditPriorityPolicy.Data( &data );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
@@ -9,8 +9,11 @@
  {
    Body:
    [*
      strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
      strings := BusinessType::GetScenarioNamesStr( GlobalOTDTable );
      this.Strings(strings);
      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      DataHolderPriorityPolicyShowList.Data(&list);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
@@ -9,8 +9,8 @@
  {
    Body:
    [*
      //list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      //DataHolderPriorityPolicy.Data(&list);
      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      DataHolderPriorityPolicyShowList.Data(&list);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
@@ -22,9 +22,24 @@
      #keys: '[414382.0.487792124]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityPolicy]*'
      Children:
      [
        Component DataExtractorPriorityPolicy216
        {
          #keys: '[414382.0.593061574]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'PriorityPolicy'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
        Taborder: 2
      ]
    }
    #child: ListPriorityPolicy
@@ -36,7 +51,7 @@
      Databinding: 'shadow[PriorityPolicy]*'
      Properties:
      [
        Taborder: 4
        Taborder: 5
      ]
    }
    Component DataHolderPriorityPolicyBusinessType
@@ -61,7 +76,7 @@
      ]
      Properties:
      [
        Taborder: 5
        Taborder: 6
      ]
    }
    Component DataHolderPriorityPolicyFactor
@@ -86,7 +101,17 @@
      ]
      Properties:
      [
        Taborder: 6
        Taborder: 7
      ]
    }
    Component DataHolderPriorityPolicyShowList
    {
      #keys: '[414382.0.593062135]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityPolicy]*'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def
@@ -16,7 +16,7 @@
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Visible( true );
      dlg.dropDownStringListGeneral().Visible( true );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes(GlobalOTDTable) );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.checkboxIsKeyProduct().Visible( true );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
      dlg.NewScenario( ScenarioManager, selection, true );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
@@ -17,7 +17,7 @@
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Visible( true );
      dlg.dropDownStringListGeneral().Visible( true );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes(GlobalOTDTable) );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.checkboxIsKeyProduct().Visible( true );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
      parent := selection.Element( 0 ).Parent();
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def
@@ -17,7 +17,7 @@
      dlg.checkboxEnableSync().Checked( false );
      dlg.checkboxEnableSync().Visible( false );
      dlg.dropDownStringListGeneral().Visible( false );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes(GlobalOTDTable) );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.checkboxIsKeyProduct().Visible( false );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
      dlg.NewScenario( ScenarioManager, selection );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
@@ -18,7 +18,7 @@
      dlg.checkboxEnableSync().Checked( false );
      dlg.checkboxEnableSync().Visible( false );
      dlg.dropDownStringListGeneral().Visible( false );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes(GlobalOTDTable) );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.checkboxIsKeyProduct().Visible( false );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
      parent := selection.Element( 0 ).Parent();
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def
@@ -18,7 +18,7 @@
      // Edit scenario
      dlg := construct( DialogCreateEditScenario );
      dlg.dropDownStringListGeneral().Visible( selection.EnableSync() );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableBusinessTypes(GlobalOTDTable) );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.checkboxIsKeyProduct().Visible( selection.EnableSync() );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( selection.EnableSync() );
      
_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,351 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_legacy_1
      {
        title: 'Scenario manager'
        shown: true
        componentID: 'FormScenarioManager'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormScenarioManager_ListScenario
          {
          }
          FormScenarioManager_DataSetLevelScenario
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 90
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 277
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 106
            }
            column_ChangedOn
            {
              columnId: 'ChangedOn'
              dataPath: 'ChangedOn'
              dataType: 'datetime'
              title: 'Changed on'
              index: 3
              subtotals: ''
              width: 99
            }
            column_StorageMode
            {
              columnId: 'StorageMode'
              dataPath: 'StorageMode'
              dataType: 'string'
              title: 'StorageMode'
              index: 4
              subtotals: ''
              width: 40
            }
          }
        }
      }
      form_legacy_2
      {
        title: 'Assumptions'
        shown: true
        componentID: 'FormAssumptions'
        layout
        {
          mode: 'open'
          rowPosition: 9
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormAssumptions_ListAssumptions
          {
          }
          FormAssumptions_DataSetLevelAssumptions
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              title: '类别'
              index: 1
              subtotals: ''
              width: 108
            }
            column_Importance
            {
              columnId: 'Importance'
              dataPath: 'Importance'
              dataType: 'string'
              title: '重要性'
              index: 2
              subtotals: ''
              width: 110
            }
            column_Title
            {
              columnId: 'Title'
              dataPath: 'Title'
              dataType: 'string'
              title: '标题'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 4
              subtotals: ''
              width: 150
            }
            column_CreatedOn
            {
              columnId: 'CreatedOn'
              dataPath: 'CreatedOn'
              dataType: 'datetime'
              title: 'Created on'
              index: 5
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormScenariosKPIsComparison
      {
        title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 6
          columnSpan: 7
        }
        components
        {
          FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_DisplayValue
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DisplayValue'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: ''
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'KPISetting.DisplayIndex'"
                  }
                }
              }
            }
          }
        }
      }
      form_FormOptimizerPuzzles
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI
      {
        title: 'KPI Dashboard'
        shown: true
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 1
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPISelection'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    index: 3
    image: 'ELEMENTS_TREE_EDIT'
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    description: ''
  }
  formatversion: 2
  id: 'Business_Type_Maintain'
  name: 'Business Type Maintain'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/½Ó¿Ú²âÊÔ.vw
@@ -13,13 +13,25 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 10
          rowSpan: 16
          columnPosition: 1
          columnSpan: 6
        }
        components
        {
          FormInterfaceTest_PanelInterfaceOptions
          FormInterfaceTest_PanelInterfaceOption1
          {
            sizeRatio: 1
          }
          FormInterfaceTest_PanelInterfaceOption2
          {
            sizeRatio: 1
          }
          FormInterfaceTest_PanelInterfaceOption3
          {
            sizeRatio: 1
          }
          FormInterfaceTest_PanelInterfaceOption4
          {
            sizeRatio: 1
          }
@@ -27,7 +39,7 @@
          {
            sizeRatio: 1
          }
          FormInterfaceTest_PanelInterfaceTest981
          FormInterfaceTest_PanelInterfaceGlobal_BrokerExecuteLog
          {
            sizeRatio: 1
          }
@@ -37,66 +49,85 @@
          FormInterfaceTest_DataSetLevelInterfaceTest
          {
            groupDepth: -1
            column_BrokerName
            sort: 'IsSuccess'
            column_ImageExecutionStatus
            {
              columnId: 'BrokerName'
              dataPath: 'BrokerName'
              columnId: 'ImageExecutionStatus'
              dataPath: 'ImageExecutionStatus'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
              width: 37
            }
            column_ElementTotal
            column_ExecuteUser
            {
              columnId: 'ElementTotal'
              dataPath: 'ElementTotal'
              dataType: 'number'
              columnId: 'ExecuteUser'
              dataPath: 'ExecuteUser'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_ErrorDateTime
            {
              columnId: 'ErrorDateTime'
              dataPath: 'ErrorDateTime'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ErrorMessage
            {
              columnId: 'ErrorMessage'
              dataPath: 'ErrorMessage'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ErrorNo
            {
              columnId: 'ErrorNo'
              dataPath: 'ErrorNo'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 150
              width: 110
            }
            column_IsSuccess
            {
              columnId: 'IsSuccess'
              dataPath: 'IsSuccess'
              dataType: 'boolean'
              index: 2
              subtotals: ''
              width: 96
            }
            column_BrokerName
            {
              columnId: 'BrokerName'
              dataPath: 'BrokerName'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 229
            }
            column_ElementTotal
            {
              columnId: 'ElementTotal'
              dataPath: 'ElementTotal'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 87
            }
            column_ErrorDateTime
            {
              columnId: 'ErrorDateTime'
              dataPath: 'ErrorDateTime'
              dataType: 'string'
              index: 5
              subtotals: ''
              width: 150
              width: 121
            }
            column_ErrorMessage
            {
              columnId: 'ErrorMessage'
              dataPath: 'ErrorMessage'
              dataType: 'string'
              index: 6
              subtotals: ''
              width: 86
            }
            column_ErrorNo
            {
              columnId: 'ErrorNo'
              dataPath: 'ErrorNo'
              dataType: 'number'
              index: 7
              subtotals: ''
              width: 86
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 6
              index: 8
              subtotals: ''
              width: 150
            }
@@ -105,40 +136,7 @@
              columnId: 'SuccessDateTime'
              dataPath: 'SuccessDateTime'
              dataType: 'string'
              index: 7
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormBusinessType
      {
        title: 'QTIANMA_JITUAN::FormBusinessType'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormBusinessType'
        layout
        {
          mode: 'open'
          rowPosition: 11
          rowSpan: 6
          columnPosition: 1
          columnSpan: 6
        }
        components
        {
          FormBusinessType_ListBusinessType
          {
          }
          FormBusinessType_DataSetLevelBusinessType
          {
            groupDepth: -1
            column_BusinessTypeName
            {
              columnId: 'BusinessTypeName'
              dataPath: 'BusinessTypeName'
              dataType: 'string'
              index: 0
              index: 9
              subtotals: ''
              width: 150
            }
@@ -158,7 +156,54 @@
          columnPosition: 7
          columnSpan: 6
        }
        components: null
        components
        {
          FormShowInterfaceData_MatrixEditorShowInterfaceData
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QTIANMA_JITUAN::FormShowInterfaceData.MatrixEditorShowInterfaceData'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Value
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Value'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'ColumnIndex'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'RowNr'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation