renhao
2023-09-22 964b4387b4b3ba025c996b1f04fa75f72ae5da09
Merge remote-tracking branch 'refs/remotes/origin/dev'
已重命名1个文件
已复制2个文件
已修改100个文件
已添加525个文件
已删除45个文件
17263 ■■■■■ 文件已修改
.gitignore 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LibMacroPlanner/BL/InfoMessages.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LibMacroPlanner/BL/Type_Scenario/Attribute_IsReleased.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LibMacroPlanner/BL/Type_Scenario/Method_SetReleased.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LibMacroPlanner/BL/Type_ScenarioMP/Method_SetReleased.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_Broker_OTD_VersionControlToDB.qbl 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/InfoMessages.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse#1.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSal.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_Ca.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_H_MaterialHedgingResult_MacroPlan_MacroPlan_H_MaterialHedgingResult.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MappingAnnualBudget_MPSync_MPSync_MappingAnnualBudget.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityFactorDetails_GlobalOTDTable_GlobalOTDTable_PriorityFactorD.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityFactorDetails_PriorityFactor_PriorityFactor_PriorityFactorD.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityFactor_GlobalOTDTable_GlobalOTDTable_PriorityFactor.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityFactor_MacroPlan_MacroPlan_PriorityFactor.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_Prio.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityRes.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_BusinessType.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/_ROOT_Type_CapacityAndSaleBudge.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_BusinessTypeOrOrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_BusinessTypeOrPlaceOfProductionOfArray.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_Create.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_PlaceOfProductionOfArray.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByBusinessType.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByPlaceOfProductionOfArray.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_OrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_PlaceOfProductionOfArray.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRowProduct/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/Attribute_BusinessType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/_ROOT_Type_CapacityAndSaleBudgeFilterBusinessType.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Attribute_PlaceOfProductionOfArray.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/_ROOT_Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerAndForecastOrder/Attribute_SalesSegmentName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerAndForecastOrder/Attribute_StockingPointID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerAndForecastOrder/DefaultValue_StockingPointID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/Attribute_IsLocked.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_HasAlreadyRelease.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeBusinessTypeString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_CapacityAndSaleBudgeYearsString.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusinessTypeName.qbl 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetNextCalType.qbl 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetNextFriday.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_AuthorizeQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ForecastQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_MType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ReverseQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_SKU.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Serial.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_CustomerCode.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_ID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_SKU.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MaterialHedgingResult/_ROOT_Type_H_MaterialHedgingResult.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_MessagePassing/Attribute_ValueJsonString.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeBusinessTypeString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter#323.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/StaticMethod_CapacityAndSaleBudgeYearsString.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/StaticMethod_TestData.qbl 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_BusinessType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_ProductId.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Attribute_yearNo.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/DefaultValue_BusinessType.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInPCSInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInSheetInHalfYear.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInSheetInSeason.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInSheetInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/Method_GetSaleAmountInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSaleByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSaleByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetByHalfYear.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetBySeason.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingAnnualBudget/_ROOT_Type_MappingAnnualBudget.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingBOM/StaticMethod_CreateTestData.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyByHalfYear.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyBySeason.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyByYear.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityEquivalent.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInJan.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInJan.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_Deleted.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_DisplayTechnology.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfCut.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfMask.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_OrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfArray.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfEvaporation.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_Resolution.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SalesAmountInWInJan.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_ShippingForm.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_YearNo.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_CapacityEquivalent.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_DisplayTechnology.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfCut.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfMask.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_OrgCode.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_PlaceOfProductionOfEvaporation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_Resolution.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_ShippingForm.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInPCSInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInSeason.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetSaleAmountInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByHalfYear.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetBySeason.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_CreateTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_DataFrom.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_DataTo.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_EndTime.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_ProductID.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_Qty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_ReleaseTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_StartTime.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_StockingPointID.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_User.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_VersionID.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/Attribute_VersionName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/TypeIndex_TypeIndexVersionControl.qbl 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingVersionControl/_ROOT_Type_MappingVersionControl.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_CustomerName#23.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_End.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_IsLocked#2.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_Notes.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_Price.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/Attribute_coefficient.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_GetDataByBusinessType.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/Attribute_GradeDesc.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/Attribute_GroupName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/Attribute_coefficient.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/Function_CalcIsBusinessType.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_ClearTestData.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByBusinessType.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/Attribute_BusinessType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/Attribute_CalculateValue.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/Attribute_Desc.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/Attribute_Formula.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/StaticMethod_GetDataByBusinessType.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityPolicy/_ROOT_Type_PriorityPolicy.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_BusinessType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_Customer.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_CustomerID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_DemandDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_PriorityResultScore.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_ProductID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_SalesSegmentName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_StockingPointID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Attribute_UnitOfMeasureName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_Customer.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_CustomerID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_ProductID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_SalesSegmentName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_StockingPointID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/DefaultValue_UnitOfMeasureName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/Function_CalcPriorityResultScore.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/_ROOT_Type_PriorityResult.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_CheckCanTopping.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultBusinessTypeDetail/_ROOT_Type_PriorityResultBusinessTypeDetail.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_BusinessType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_Customer.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_CustomerID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_DemandDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorGradingName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityPolicyName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityResultScore.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityTotalScore.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_SalesSegmentName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_StockingPointID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/Attribute_UnitOfMeasureName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/DefaultValue_Customer.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/DefaultValue_CustomerID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/DefaultValue_SalesSegmentName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/DefaultValue_StockingPointID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/DefaultValue_UnitOfMeasureName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultDetail/_ROOT_Type_PriorityResultDetail.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResultGroupDetail/_ROOT_Type_PriorityResultGroupDetail.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Scenario/Attribute_IsCreateNewVersion.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Scenario/Attribute_VersionID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Scenario/DefaultValue_VersionID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Scenario/Method_SetReleased.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart#95.qbl 301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_BusinessType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_CalType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_CreateTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_IsReleased.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_LongVersionName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_Notes.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_ReleaseTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_SingleVersionName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_User.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/Attribute_VersionID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_Create.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_ReleaseLatestVersion.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/_ROOT_Type_VersionControl.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_BusinessName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_BusinessType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_LastReleaseTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_LastUser.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_LastVersionName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_Notes.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/Attribute_SortNumber.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/_ROOT_Type_VersionStatus.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_CreateTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_Notes.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_ReleaseTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_SingleVersionName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_SortNumber.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_User.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/Attribute_VersionID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/DefaultValue_Notes.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/DefaultValue_SingleVersionName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/DefaultValue_User.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/StaticMethod_CreateOrUpdate.qbl 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/StaticMethod_FindStatus.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/StaticMethod_GetFullVersionID.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatusDetail/_ROOT_Type_VersionStatusDetail.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Brokers/PanelMaterialResponseResult1.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Mapping/PanelMaterialResponseResult1.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_from.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_to.xml 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_pnlActions.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario#549.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_pnlActions_btnOk_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlContent.def 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_ClickBtnOK.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_ClickBtnOK.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_Edit.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/_ROOT_Component_DialogEditPriorityFactorDetails.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlContent_dsDemandDate_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlContent_dsForecastDemandDate_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlContent_dsForecastDemandDate_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingOrderScheme/Response_pnlActions_btnCancel_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingOrderScheme/Response_pnlActions_btnOk_OnClick.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogHistoricalSalesOrders/Method_New.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogHistoricalSalesOrders/Response_pnlActions_btnOk_OnClick.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogHistoricalSalesOrders/Response_pnlContent_dsOrderDate_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Component_pnlContent.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_ClickBtnOk.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Response_pnlActions_btnOk_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/_ROOT_Component_DialogNewPriorityPolicy.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlActions.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlContent.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Method_JustShow.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnApply_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnOk_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/_ROOT_Component_DialogVersionIDCopy.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form234/_ROOT_Component_FrmOrderResultEx#234.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick#623.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_listActionBarPageCapacityAndSaleBudgeFilterBusinessType.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_listContextMenuCapacityAndSaleBudgeFilterYear#1.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_ListCapacityAndSaleBudgeFilterBusinessType_OnUserCheckedChanged#670.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_ListCapacityAndSaleBudgeFilterBusinessType_OnUserCheckedChanged.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/_ROOT_Component_FormCapacityAndSaleBudgeFilterBusinessType.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/_ROOT_Component_FormCapacityAndSaleBudgeFilterItem.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/_ROOT_Component_FormCapacityAndSaleBudgeFilterMonth.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_listActionBarPageCapacityAndSaleBudgeFilterPlaceOfProductionOfArra.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_listContextMenuCapacityAndSaleBudgeFilterYear#1.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCh#171.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserChecke.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC#663.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/_ROOT_Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/_ROOT_Component_FormCapacityAndSaleBudgeFilterYear.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/Component_ListFillingSchemeDetail.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/Component_listActionBarPageFillingSchemeDetail.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/Component_listContextMenuFillingSchemeDetail.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/_ROOT_Component_FormFillingSchemeDetail#802.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Component_Menurelease.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuRelease_OnClick.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelSalesDemands.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalFillingCapacityOrder/_ROOT_Component_FormHistoricalFillingCapacityOrder.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning#679.def 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix#780.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning#1.def 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_ListOrderLock_844_OnUserCheckedChanged.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderLock_OnClick.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderUnlock_OnClick.def 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_ListOrderLockLog.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_PanelOrderLockLog.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_listActionBarPageOrderLockLog.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_listContextMenuOrderLockLog.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/_ROOT_Component_FormOrderLockLog.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_PanelPriorityFactorSelect.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listActionBarPagePriorityFactor.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_BusinessTypeSelectStringList_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_BusinessTypeSelectStringList_OnSelectionChanged.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuClearTestData_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuTestData_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_PanelPriorityFactorSelect_BusinessTypeSelectStringList_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listActionBarPagePriorityFactorGrading.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient#902.def 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton#713.def 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listActionBarPagePriorityPolicy.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicySelectBusinessType_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultBusinessTypeDetails.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultGroupDetails#743.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResult.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails#633.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResult.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails642.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails590.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_OnUserSelectionChanged.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCopyScenario_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOP.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOPDetails.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOP.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPDetails.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOP.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOPDetails.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOP.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOPDetails.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_Panel261.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelOptimizerGeneral718.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop0001#655.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop104.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop264.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop360.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop597.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop612.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop744.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop820.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop846.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_OnCreated.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_Cancel_FAAC_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_OK_FAAC_OnClick.def 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/_ROOT_Component_FrmAuthorizeAndCountersign.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/_ROOT_Component_FrmAuthorizeAndCountersign_Material.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel261#223.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel796.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel989.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop#217.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop104#150.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop264#19.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop360#136.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop597#324.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop612#612.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop744#568.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop846#618.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_Cancel_FAAC_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_OK_FAAC_OnClick.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/_ROOT_Component_FrmAuthorizeAndCountersign_Order.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick#975.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF#670.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnClose.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick#222.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick#880.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick#971.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnSelectionChanged.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/_ROOT_Component_FrmOrderResult.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel950.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listActionBarPage112.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listContextMenu660.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_Panel224_btn_Query_FRAS_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/_ROOT_Component_FrmRAShow.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_ListData_FT#710.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_Panel675.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listActionBarPage748.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listContextMenu623.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Response_Panel675_ButtonClear_OnClick.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/_ROOT_Component_FrmTEST.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/PriorityPolicy.vw 2258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw 2258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/SOP_Versions.vw 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/填产方案列表.vw 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/填产方案列表.vw 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -23,3 +23,5 @@
**/LibUserSettings/**
/.idea
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
*.properties
LibMacroPlanner/BL/InfoMessages.qbl
@@ -529,6 +529,10 @@
  {
    DefaultText: 'Revert'
  }
  InfoMessage Scenario_General_IsReleased
  {
    DefaultText: 'Not allowed on a released scenario'
  }
  InfoMessage Strategy_CampaignOptimizer_DisableTooltip
  {
    DefaultText: 'When disabled, the optimizer is only allowed to replan the quantities of the campaigns based on the constraints of the campaigns created manually.'
LibMacroPlanner/BL/Type_Scenario/Attribute_IsReleased.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute IsReleased
{
  #keys: '3[412960.0.172790038][412960.0.172790037][412960.0.172790039]'
  Description: '该版本是否已发布'
  ValueType: Boolean
  InterfaceProperties { Accessibility: 'Module' }
}
LibMacroPlanner/BL/Type_Scenario/Method_CanSelect.qbl
@@ -32,6 +32,9 @@
    {
      feedback_o := Translations::Scenario_General_IsDeleted();
    }
    else if( this.IsReleased() ){
      feedback_o := Translations::Scenario_General_IsReleased();
      }
    
    return feedback_o = '';
  *]
LibMacroPlanner/BL/Type_Scenario/Method_SetReleased.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
Method SetReleased
{
  Description: '设置某场景的发布状态'
  IsAbstract: true
  TextBody:
  [*
    // Administrator Sep-15-2023 (created)
    this.IsReleased( true );
  *]
}
LibMacroPlanner/BL/Type_ScenarioMP/Method_SetReleased.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
MethodOverride SetReleased
{
  TextBody: 'this.IsReleased( true );'
}
_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
Quintiq file version 2.0
#parent: #root
EDIBroker Broker_OTD_VersionControl
{
  MDSDefinition: GlobalOTDTable
  TimeZone: 'ACT'
  UseOSTimeZone: false
  EDIModelLink.Destination MappingVersionControl
  {
    EDIMLTable MappingVersionControl
    {
      PrimaryKeyColumns: EndTime
      PrimaryKeyColumns: ProductID
      PrimaryKeyColumns: StartTime
      PrimaryKeyColumns: StockingPointID
      PrimaryKeyColumns: VersionID
      TargetType: MappingVersionControl
      TypeIndex: TypeIndexVersionControl
      EDIMLColumn CreateTime { Attribute: CreateTime ValueType: DateTime }
      EDIMLColumn DataFrom { Attribute: DataFrom ValueType: String }
      EDIMLColumn DataTo { Attribute: DataTo ValueType: String }
      EDIMLColumn EndTime { Attribute: EndTime ValueType: DateTime }
      EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
      EDIMLColumn Qty { Attribute: Qty ValueType: Real }
      EDIMLColumn ReleaseTime { Attribute: ReleaseTime ValueType: DateTime }
      EDIMLColumn StartTime { Attribute: StartTime ValueType: DateTime }
      EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
      EDIMLColumn User { Attribute: User ValueType: String }
      EDIMLColumn VersionID { Attribute: VersionID ValueType: String }
      EDIMLColumn VersionName { Attribute: VersionName ValueType: String }
    }
  }
  EDIODBCLink.Source MID_VERSIONCONTROL
  {
    DataIntegrityStrategy: 'Disabled'
    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle'
    EDIODBCLinkTable MID_VERSIONCONTROL
    {
      OthersMayCreateTable: true
      OthersMayDeleteRow: true
      OthersMayDropTable: true
      OthersMayFlushTable: true
      OthersMayInsertRow: true
      Parameters: '/owner="TIANMA"'
      PrimaryKeyColumns: ENDTIME
      PrimaryKeyColumns: ID
      PrimaryKeyColumns: PRODUCTID
      PrimaryKeyColumns: STARTTIME
      PrimaryKeyColumns: STOCKINGPOINTID
      RecordModificationHintStrategy: 'None'
      EDIODBCLinkColumn CREATETIME
      {
        OthersMayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn DATAFROM
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn DATATO
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn ENDTIME
      {
        OthersMayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn ID
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn NAME
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn PRODUCTID
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn QTY
      {
        OthersMayUpdateColumn: true
        ValueType: Real
      }
      EDIODBCLinkColumn RELEASETIME
      {
        OthersMayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn STARTTIME
      {
        OthersMayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn STOCKINGPOINTID
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn USER
      {
        OthersMayUpdateColumn: true
        ValueType: String
      }
    }
  }
  EDITransformation.Transformation TransformationVersionControl
  {
    EDITableTransformation
    {
      InputTable: MID_VERSIONCONTROL
      OutputTable: MappingVersionControl
      EDIColumnMatch { InputColumn: CREATETIME OutputColumn: CreateTime }
      EDIColumnMatch { InputColumn: DATAFROM OutputColumn: DataFrom }
      EDIColumnMatch { InputColumn: DATATO OutputColumn: DataTo }
      EDIColumnMatch { InputColumn: ENDTIME OutputColumn: EndTime }
      EDIColumnMatch { InputColumn: ID OutputColumn: VersionID }
      EDIColumnMatch { InputColumn: NAME OutputColumn: VersionName }
      EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
      EDIColumnMatch { InputColumn: QTY OutputColumn: Qty }
      EDIColumnMatch { InputColumn: RELEASETIME OutputColumn: ReleaseTime }
      EDIColumnMatch { InputColumn: STARTTIME OutputColumn: StartTime }
      EDIColumnMatch { InputColumn: STOCKINGPOINTID OutputColumn: StockingPointID }
      EDIColumnMatch { InputColumn: USER OutputColumn: User }
    }
  }
}
_Main/BL/EDI/Broker_Broker_OTD_VersionControlToDB.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
Quintiq file version 2.0
#parent: #root
EDIBroker Broker_OTD_VersionControlToDB
{
  MDSDefinition: GlobalOTDTable
  TimeZone: 'ACT'
  UseOSTimeZone: false
  EDIModelLink.Source MappingVersionControlToDB
  {
    EDIMLTable MappingVersionControl
    {
      PrimaryKeyColumns: EndTime
      PrimaryKeyColumns: ProductID
      PrimaryKeyColumns: StartTime
      PrimaryKeyColumns: StockingPointID
      PrimaryKeyColumns: VersionID
      TargetType: MappingVersionControl
      TypeIndex: TypeIndexVersionControl
      EDIMLColumn CreateTime { Attribute: CreateTime ValueType: DateTime }
      EDIMLColumn DataFrom { Attribute: DataFrom ValueType: String }
      EDIMLColumn DataTo { Attribute: DataTo ValueType: String }
      EDIMLColumn EndTime { Attribute: EndTime ValueType: DateTime }
      EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
      EDIMLColumn Qty { Attribute: Qty ValueType: Real }
      EDIMLColumn ReleaseTime { Attribute: ReleaseTime ValueType: DateTime }
      EDIMLColumn StartTime { Attribute: StartTime ValueType: DateTime }
      EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
      EDIMLColumn User { Attribute: User ValueType: String }
      EDIMLColumn VersionID { Attribute: VersionID ValueType: String }
      EDIMLColumn VersionName { Attribute: VersionName ValueType: String }
    }
  }
  EDIODBCLink.Destination MID_VERSIONCONTROLTODB
  {
    DataIntegrityStrategy: 'Disabled'
    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle'
    EDIODBCLinkTable MID_VERSIONCONTROL
    {
      MayCreateTable: true
      MayDeleteRow: true
      MayDropTable: true
      MayFlushTable: true
      MayInsertRow: true
      Parameters: '/owner="TIANMA"'
      PrimaryKeyColumns: ENDTIME
      PrimaryKeyColumns: ID
      PrimaryKeyColumns: PRODUCTID
      PrimaryKeyColumns: STARTTIME
      PrimaryKeyColumns: STOCKINGPOINTID
      RecordModificationHintStrategy: 'None'
      EDIODBCLinkColumn CREATETIME
      {
        MayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn DATAFROM
      {
        MayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn DATATO
      {
        MayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn ENDTIME
      {
        MayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn ID
      {
        MayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn NAME
      {
        MayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn PRODUCTID
      {
        MayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn QTY
      {
        MayUpdateColumn: true
        ValueType: Real
      }
      EDIODBCLinkColumn RELEASETIME
      {
        MayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn STARTTIME
      {
        MayUpdateColumn: true
        ValueType: DateTime
      }
      EDIODBCLinkColumn STOCKINGPOINTID
      {
        MayUpdateColumn: true
        ValueType: String
      }
      EDIODBCLinkColumn USER
      {
        MayUpdateColumn: true
        ValueType: String
      }
    }
  }
  EDITransformation.Transformation TransformationVersionControlToDB
  {
    EDITableTransformation
    {
      InputTable: MappingVersionControl
      OutputTable: MID_VERSIONCONTROL
      EDIColumnMatch { InputColumn: CreateTime OutputColumn: CREATETIME }
      EDIColumnMatch { InputColumn: DataFrom OutputColumn: DATAFROM }
      EDIColumnMatch { InputColumn: DataTo OutputColumn: DATATO }
      EDIColumnMatch { InputColumn: EndTime OutputColumn: ENDTIME }
      EDIColumnMatch { InputColumn: ProductID OutputColumn: PRODUCTID }
      EDIColumnMatch { InputColumn: Qty OutputColumn: QTY }
      EDIColumnMatch { InputColumn: ReleaseTime OutputColumn: RELEASETIME }
      EDIColumnMatch { InputColumn: StartTime OutputColumn: STARTTIME }
      EDIColumnMatch { InputColumn: StockingPointID OutputColumn: STOCKINGPOINTID }
      EDIColumnMatch { InputColumn: User OutputColumn: USER }
      EDIColumnMatch { InputColumn: VersionID OutputColumn: ID }
      EDIColumnMatch { InputColumn: VersionName OutputColumn: NAME }
    }
  }
}
_Main/BL/InfoMessages.qbl
@@ -2,4 +2,12 @@
#parent: #root
InfoMessages id:#InfoMessages #extension
{
}
  InfoMessage FilllingCapacity_NotRelease
  {
    DefaultText: 'other scheme is already released.'
  }
  InfoMessage FilllingCapacity_ValidateInput
  {
    DefaultText: 'Please input validate value !'
  }
}
_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/ContentMapperProcessor_ContentMapperReponse#1.qbl
@@ -2,8 +2,21 @@
#parent: #root
ContentMapperProcessor ContentMapperReponse
{
  DefaultMappingName: 'PanelMaterialResponseResult'
  PosX: 330
  PosY: 450
  ReplyChannelOutputs: QuintiqEndpoint
  ConditionalMapping
  {
    ExpectedValue: '/panelMaterial/send'
    MappingName: 'PanelMaterialResponseResult1'
    SourceMessagePath
    {
      Path: 'Header'
    }
    SourceMessagePath
    {
      Path: 'path'
      SequenceNr: 1
    }
  }
}
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAllocationResults
{
  #keys: '1[414702.0.340560333]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDTable
  {
    #keys: '3[414702.0.340560335][414702.0.340560334][414702.0.340560336]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAllocationResults
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAllocationResults
  {
    #keys: '3[414702.0.340560338][414702.0.340560337][414702.0.340560339]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDTable
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSal.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterBusinessType_MPSync_MPSync_CapacityAndSaleBudgeFilterBusinessType
{
  #keys: '1[414384.0.873958122]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MPSync
  {
    #keys: '3[414384.0.873958124][414384.0.873958123][414384.0.873958125]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterBusinessType
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterBusinessType
  {
    #keys: '3[414384.0.873958127][414384.0.873958126][414384.0.873958128]'
    Cardinality: '1toN'
    ObjectDefinition: MPSync
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_Ca.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_MPSync_MPSync_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
{
  #keys: '1[414384.0.873958138]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MPSync
  {
    #keys: '3[414384.0.873958140][414384.0.873958139][414384.0.873958141]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
  {
    #keys: '3[414384.0.873958143][414384.0.873958142][414384.0.873958144]'
    Cardinality: '1toN'
    ObjectDefinition: MPSync
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_H_MaterialHedgingResult_MacroPlan_MacroPlan_H_MaterialHedgingResult.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation H_MaterialHedgingResult_MacroPlan_MacroPlan_H_MaterialHedgingResult
{
  #keys: '1[414724.0.133544606]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.133544608][414724.0.133544607][414724.0.133544609]'
    Cardinality: '0to1'
    ObjectDefinition: H_MaterialHedgingResult
    OwningSide: 'Reference'
  }
  RelationSide.RightSide H_MaterialHedgingResult
  {
    #keys: '3[414724.0.133544611][414724.0.133544610][414724.0.133544612]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MappingAnnualBudget_MPSync_MPSync_MappingAnnualBudget.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation MappingAnnualBudget_MPSync_MPSync_MappingAnnualBudget
{
  #keys: '1[414384.0.874289921]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MPSync
  {
    #keys: '3[414384.0.874289923][414384.0.874289922][414384.0.874289924]'
    Cardinality: '0to1'
    ObjectDefinition: MappingAnnualBudget
    OwningSide: 'Reference'
  }
  RelationSide.RightSide MappingAnnualBudget
  {
    #keys: '3[414384.0.874289926][414384.0.874289925][414384.0.874289927]'
    Cardinality: '1toN'
    ObjectDefinition: MPSync
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionControl
{
  #keys: '1[412960.0.150120043]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDTable
  {
    #keys: '3[412960.0.150120045][412960.0.150120044][412960.0.150120046]'
    Cardinality: '0to1'
    ObjectDefinition: MappingVersionControl
    OwningSide: 'Reference'
  }
  RelationSide.RightSide MappingVersionControl
  {
    #keys: '3[412960.0.150120048][412960.0.150120047][412960.0.150120049]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDTable
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OrderLockLog_MacroPlan_MacroPlan_OrderLockLog
{
  #keys: '1[412960.0.217504333]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[412960.0.217504335][412960.0.217504334][412960.0.217504336]'
    Cardinality: '0to1'
    ObjectDefinition: OrderLockLog
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OrderLockLog
  {
    #keys: '3[412960.0.217504338][412960.0.217504337][412960.0.217504339]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PriorityFactorDetails_GlobalOTDTable_GlobalOTDTable_PriorityFactorD.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_PriorityFactorDetails_PriorityFactor_PriorityFactor_PriorityFactorD.qbl
@@ -18,6 +18,6 @@
    #keys: '3[414382.0.444850087][414382.0.444850086][414382.0.444850088]'
    Cardinality: '1toN'
    ObjectDefinition: PriorityFactor
    OwningSide: 'Reference'
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PriorityFactor_GlobalOTDTable_GlobalOTDTable_PriorityFactor.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_PriorityFactor_MacroPlan_MacroPlan_PriorityFactor.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PriorityFactor_MacroPlan_MacroPlan_PriorityFactor
{
  #keys: '1[414382.0.475830114]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414382.0.475830116][414382.0.475830115][414382.0.475830117]'
    Cardinality: '0to1'
    ObjectDefinition: PriorityFactor
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PriorityFactor
  {
    #keys: '3[414382.0.475830119][414382.0.475830118][414382.0.475830120]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PriorityPolicy_MacroPlan_MacroPlan_PriorityPolicy
{
  #keys: '1[414382.0.488041940]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414382.0.488041942][414382.0.488041941][414382.0.488041943]'
    Cardinality: '0to1'
    ObjectDefinition: PriorityPolicy
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PriorityPolicy
  {
    #keys: '3[414382.0.488041945][414382.0.488041944][414382.0.488041946]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_Prio.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_PriorityResultBusinessTypeDetail
{
  #keys: '1[414382.0.504275181]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide PriorityResult
  {
    #keys: '3[414382.0.504275183][414382.0.504275182][414382.0.504275184]'
    Cardinality: '0to1'
    ObjectDefinition: PriorityResultBusinessTypeDetail
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PriorityResultBusinessTypeDetail
  {
    #keys: '3[414382.0.504275186][414382.0.504275185][414382.0.504275187]'
    Cardinality: '1toN'
    ObjectDefinition: PriorityResult
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityRes.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityResultGroupDetail
{
  #keys: '1[414382.0.504275195]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide PriorityResult
  {
    #keys: '3[414382.0.504275197][414382.0.504275196][414382.0.504275198]'
    Cardinality: '0to1'
    ObjectDefinition: PriorityResultGroupDetail
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PriorityResultGroupDetail
  {
    #keys: '3[414382.0.504275200][414382.0.504275199][414382.0.504275201]'
    Cardinality: '1toN'
    ObjectDefinition: PriorityResult
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PriorityResult_MacroPlan_MacroPlan_PriorityResult
{
  #keys: '1[414382.0.504275161]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414382.0.504275163][414382.0.504275162][414382.0.504275164]'
    Cardinality: '0to1'
    ObjectDefinition: PriorityResult
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PriorityResult
  {
    #keys: '3[414382.0.504275166][414382.0.504275165][414382.0.504275167]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl
{
  #keys: '1[412960.0.134860006]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDTable
  {
    #keys: '3[412960.0.134860008][412960.0.134860007][412960.0.134860009]'
    Cardinality: '0to1'
    ObjectDefinition: VersionControl
    OwningSide: 'Reference'
  }
  RelationSide.RightSide VersionControl
  {
    #keys: '3[412960.0.134860011][412960.0.134860010][412960.0.134860012]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDTable
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation VersionStatusDetail_VersionStatus_VersionStatus_VersionStatusDetail
{
  #keys: '1[412960.0.143214355]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide VersionStatus
  {
    #keys: '3[412960.0.143214357][412960.0.143214356][412960.0.143214358]'
    Cardinality: '0to1'
    ObjectDefinition: VersionStatusDetail
    OwningSide: 'Reference'
  }
  RelationSide.RightSide VersionStatusDetail
  {
    #keys: '3[412960.0.143214360][412960.0.143214359][412960.0.143214361]'
    Cardinality: '1toN'
    ObjectDefinition: VersionStatus
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus
{
  #keys: '1[412960.0.134830056]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDTable
  {
    #keys: '3[412960.0.134830058][412960.0.134830057][412960.0.134830059]'
    Cardinality: '0to1'
    ObjectDefinition: VersionStatus
    OwningSide: 'Reference'
  }
  RelationSide.RightSide VersionStatus
  {
    #keys: '3[412960.0.134830061][412960.0.134830060][412960.0.134830062]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDTable
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_CapacityAllocationResults/Attribute_Division.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Division
{
  #keys: '3[414702.0.340560478][414702.0.340560477][414702.0.340560479]'
  Description: '事业部'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleBase.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ModuleBase
{
  #keys: '3[414702.0.340560468][414702.0.340560467][414702.0.340560469]'
  Description: '模组基地'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMaterialCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ModuleMaterialCode
{
  #keys: '3[414702.0.340560429][414702.0.340560428][414702.0.340560430]'
  Description: '模组物料编码'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_ModuleMeasurementUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ModuleMeasurementUnit
{
  #keys: '3[414702.0.340560458][414702.0.340560457][414702.0.340560459]'
  Description: '模组单位'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfModules.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfModules
{
  #keys: '3[414702.0.340560442][414702.0.340560441][414702.0.340560443]'
  Description: '模组数量'
  ValueType: Real
}
_Main/BL/Type_CapacityAllocationResults/Attribute_NumberOfPanels.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfPanels
{
  #keys: '3[414702.0.340560391][414702.0.340560390][414702.0.340560392]'
  Description: '面板数量'
  ValueType: Real
}
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelBase.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PanelBase
{
  #keys: '3[414702.0.340560371][414702.0.340560370][414702.0.340560372]'
  Description: '面板基地'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMaterialCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PanelMaterialCode
{
  #keys: '3[414702.0.340560381][414702.0.340560380][414702.0.340560382]'
  Description: '面板物料编码'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_PanelMeasurementUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PanelMeasurementUnit
{
  #keys: '3[414702.0.340560404][414702.0.340560403][414702.0.340560405]'
  Description: '面板单位'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/Attribute_RequirementDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RequirementDate
{
  #keys: '3[414702.0.340560506][414702.0.340560505][414702.0.340560507]'
  Description: '需求日期'
  ValueType: Date
}
_Main/BL/Type_CapacityAllocationResults/Attribute_VersionNumber.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionNumber
{
  #keys: '3[414702.0.340560355][414702.0.340560354][414702.0.340560356]'
  Description: '版本号'
  ValueType: String
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateDate (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    globalOTDTable.CapacityAllocationResults( relflush );
    finaleProduct_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan );
    period_MPS := null( Period_MPs );
    traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) {
      period_MPS := selectsortedset( psmp, PeriodSpecificationPeriod.Period_MP, pmp, not pmp.IsHistorical(), pmp.StartDate() );
    }
    traverse ( finaleProduct_MPs, Elements, fpmp/*, fpmp.ID() = "ProXOver 1 D2.6 A"*/ ) {
      traverse ( fpmp, ProductInStockingPoint_MP, pisp, /*pisp.Name() = "ProXOver 1 D2.6 A in Finished Cars (France)" and*/ not pisp.IsSystem() ) {
        traverse ( period_MPS, Elements, pmp ) {
          CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() );
        }
    //    info( pisp.Name() );
      }
    }
  *]
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
Quintiq file version 2.0
#parent: #root
StaticMethod IterativeGeneration (
  GlobalOTDTable globalOTDTable,
  ProductInStockingPoint_MP pisp,
  Number numberOfLayers,
  NewSupply finaleNewSupply,
  Real finaleDependentDemand,
  Date targetDate
)
{
  TextBody:
  [*
    traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) {
      traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) {
    //    info( "生成的产品:", pisp.ProductID(), "    äº§å“åœ¨åº“存点:", pisp.Name(), "    å±‚数:", numberOfLayers, "    æ€»ç”Ÿäº§é‡ï¼š", ns.Quantity(), "    æœ€ç»ˆä¾èµ–物料数量:", finaleDependentDemand );
        if ( finaleDependentDemand < 0 ) {
          finaleDependentDemand := ns.Quantity();
        }
        if ( isnull( finaleNewSupply ) ) {
          finaleNewSupply := ns;
        }
        if ( guard( ns.PeriodTask_MP().astype( PeriodTaskOperation ).DependentDemand( relsize ) > 0, false ) ) {
          numberOfLayers++;
          traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) {
            oo := ns.ProcessOutput().astype( OperationOutput );
            oi := dd.ProcessInput().astype( OperationInput );
            finaleDependentDemand := finaleDependentDemand * oo.Quantity() * oi.Quantity();
    //        info( "依赖需求产品ID:", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), "    ä¾èµ–数量:", dd.Quantity(), "    å½“前周期任务Key:", dd.PeriodTask_MP().astype( PeriodTaskOperation ).Key() );
            CapacityAllocationResults::IterativeGeneration( globalOTDTable, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), numberOfLayers, finaleNewSupply, finaleDependentDemand, targetDate );
          }
    //      info( "----------------------------------------------------" );
        } else {
    //      info( "无依赖需求,需要生成产能分配结果。。。" );
    //      info( "======" );
          pispPanel := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
          pispModule := finaleNewSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
          globalOTDTable.CapacityAllocationResults( relnew,
                                                    PanelBase             := pispPanel.StockingPointID(),
                                                    PanelMaterialCode     := pispPanel.ProductID(),
                                                    NumberOfPanels        := finaleDependentDemand,
                                                    PanelMeasurementUnit  := pispPanel.UnitOfMeasure_MP().Name(),
                                                    ModuleMaterialCode    := pispModule.ProductID(),
                                                    NumberOfModules       := finaleNewSupply.Quantity(),
                                                    ModuleMeasurementUnit := pispModule.UnitOfMeasure_MP().Name(),
                                                    ModuleBase            := pispModule.StockingPointID(),
                                                    RequirementDate       := finaleNewSupply.Start().Date()
                                                   );
        }
        finaleNewSupply := null( NewSupply );
      }
      numberOfLayers := 1;
    }
  *]
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ObtainTheFinalOutputProduct (
  MacroPlan macroPlan
) as owning Product_MPs
{
  TextBody:
  [*
    finaleProducts := construct( Product_MPs );
    traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) {
      flag := true;
      traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) {
        if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) {
          flag := false;
        }
      }
      if ( flag ) {
        finaleProducts.Add( pmp );
      }
    }
    return &finaleProducts;
  *]
}
_Main/BL/Type_CapacityAllocationResults/_ROOT_Type_CapacityAllocationResults.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CapacityAllocationResults
{
  #keys: '5[414702.0.340560330][414702.0.340560328][0.0.0][414702.0.340560329][414702.0.340560331]'
  BaseType: Object
  Description: '产能分配结果报表'
  StructuredName: 'CapacityAllocationResultss'
}
_Main/BL/Type_CapacityAndSaleBudge/Attribute_BusinessType.qbl
@@ -3,6 +3,6 @@
Attribute BusinessType
{
  #keys: '3[414384.0.810464687][414384.0.810464686][414384.0.810464688]'
  Description: '业务类型'
  Description: '业务类型(事业部)'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudge/_ROOT_Type_CapacityAndSaleBudge.qbl
@@ -5,6 +5,6 @@
{
  #keys: '5[414384.0.810464639][414384.0.810464637][0.0.0][414384.0.810464638][414384.0.810464640]'
  BaseType: Object
  Description: '产销预算'
  Description: '产销预算 ï¼ï¼ï¼å¼ƒç”¨ï¼ï¼ï¼'
  StructuredName: 'CapacityAndSaleBudges'
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_BusinessTypeOrOrgCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_BusinessTypeOrPlaceOfProductionOfArray.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessTypeOrPlaceOfProductionOfArray
{
  #keys: '3[414384.0.852466562][414384.0.852466561][414384.0.852466563]'
  Description: '事业部/面板基地'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_Create.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl
@@ -20,7 +20,7 @@
        for( j := 1; j <= 12; j := j + 1 ) {
          monthString := "MONTH" + ifexpr( j < 10, "0" + [String]j, [String]j );
          scenarioManager.CapacityAndSaleBudgeChartElement( relnew, 
                                                            BusinessTypeOrOrgCode := businessTypeString,
                                                            BusinessTypeOrPlaceOfProductionOfArray := businessTypeString,
                                                            TimeStringAndScenarioName := monthString + " - " + scenarioName, 
                                                            Quantity := Real::Random( 20.0, 30.0 ) );
        }
_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_PlaceOfProductionOfArray.qbl
@@ -3,6 +3,6 @@
Attribute PlaceOfProductionOfArray
{
  #keys: '3[414384.0.850180083][414384.0.850180082][414384.0.850180084]'
  Description: '组织编码'
  Description: '面板基地'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByBusinessType.qbl
@@ -2,14 +2,17 @@
#parent: #root
StaticMethod GetProductCodesByBusinessType (
  CapacityAndSaleBudgeChartRows list,
  String businessTyoe
  String businessType
) as owning Strings
{
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    return selectuniquevalues(  list, Elements, item,
                                item.BusinessType() = businessTyoe,
                                item.BusinessType() );
    result := construct( Strings );
    rowList := selectset( list, Elements, item, item.BusinessType() = businessType );
    traverse( rowList, Elements, row ) {
      result := result.Union( selectvalues( row, CapacityAndSaleBudgeChartRowProduct, cell, cell.ProductCode() ) );
    }
    return &result;
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByPlaceOfProductionOfArray.qbl
@@ -8,8 +8,11 @@
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    return selectuniquevalues(  list, Elements, item,
                                item.PlaceOfProductionOfArray() = placeOfProductionOfArray,
                                item.PlaceOfProductionOfArray() );
    result := construct( Strings );
    rowList := selectset( list, Elements, item, item.PlaceOfProductionOfArray() = placeOfProductionOfArray );
    traverse( rowList, Elements, row ) {
      result := result.Union( selectvalues( row, CapacityAndSaleBudgeChartRowProduct, cell, cell.ProductCode() ) );
    }
    return &result;
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/StaticMethod_CreateIfNotExist.qbl
@@ -10,7 +10,7 @@
    // yypsybs Sep-18-2023 (created)
    value := select( parent, CapacityAndSaleBudgeChartRowProduct, item, item.ProductCode() = productCode );
    if( isnull( value ) ) {
      parent.CapacityAndSaleBudgeChartRowProduct( relnew, ProductCode := productCode );
      value := parent.CapacityAndSaleBudgeChartRowProduct( relnew, ProductCode := productCode );
    }
    return value;
  *]
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_OrgCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_PlaceOfProductionOfArray.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PlaceOfProductionOfArray
{
  #keys: '3[414384.0.864360344][414384.0.864360343][414384.0.864360345]'
  Description: '面板基地'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl
@@ -3,15 +3,15 @@
StaticMethod CreateIfNotExist (
  ScenarioManager scenarioManager,
  String businessType,
  String orgCode
  String placeOfProductionOfArray
) as CapacityAndSaleBudgeCompareItemRow
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    value := select( scenarioManager, CapacityAndSaleBudgeCompareItemRow, row, row.BusinessType() = businessType and row.OrgCode() = orgCode );
    value := select( scenarioManager, CapacityAndSaleBudgeCompareItemRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray );
    if( isnull( value ) ) {
      value := scenarioManager.CapacityAndSaleBudgeCompareItemRow( relnew, BusinessType := businessType, OrgCode := orgCode );
      value := scenarioManager.CapacityAndSaleBudgeCompareItemRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray );
    } 
    return value;
  *]
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRowProduct/StaticMethod_CreateIfNotExist.qbl
@@ -10,7 +10,7 @@
    // yypsybs Sep-18-2023 (created)
    value := select( parent, CapacityAndSaleBudgeCompareItemRowProduct, item, item.ProductCode() = productCode );
    if( isnull( value ) ) {
      parent.CapacityAndSaleBudgeCompareItemRowProduct( relnew, ProductCode := productCode );
      value := parent.CapacityAndSaleBudgeCompareItemRowProduct( relnew, ProductCode := productCode );
    }
    return value;
  *]
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414384.0.874249290][414384.0.874249289][414384.0.874249291]'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  MPSync parent,
  String value
)
{
  TextBody:
  [*
    // yypsybs Sep-15-2023 (created)
    old := select( parent, CapacityAndSaleBudgeFilterBusinessType, item, item.BusinessType() = value );
    if( isnull( old ) ) {
      parent.CapacityAndSaleBudgeFilterBusinessType( relnew,
                                                     BusinessType := value );
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/_ROOT_Type_CapacityAndSaleBudgeFilterBusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CapacityAndSaleBudgeFilterBusinessType
{
  #keys: '5[414384.0.874249287][414384.0.874249285][0.0.0][414384.0.874249286][414384.0.874249288]'
  BaseType: Object
  Description: '对比事业部'
  StructuredName: 'CapacityAndSaleBudgeFilterBusinessTypes'
}
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl
@@ -4,7 +4,7 @@
  ScenarioManager parent
)
{
  Description: '初始化月份'
  Description: '初始化年份'
  TextBody:
  [*
    // yypsybs Sep-15-2023 (created)
@@ -13,7 +13,7 @@
      if( existList.Find( i ) = -1 ) {
        parent.CapacityAndSaleBudgeFilterMonth( relnew, 
                                                MonthNo := i );
      }
      }
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Attribute_PlaceOfProductionOfArray.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PlaceOfProductionOfArray
{
  #keys: '3[414384.0.873958113][414384.0.873958112][414384.0.873958114]'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  MPSync parent,
  String value
)
{
  TextBody:
  [*
    // yypsybs Sep-15-2023 (created)
    old := select( parent, CapacityAndSaleBudgeFilterPlaceOfProductionOfArray, item, item.PlaceOfProductionOfArray() = value );
    if( isnull( old ) ) {
      parent.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relnew,
                                                                 PlaceOfProductionOfArray := value );
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/_ROOT_Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
{
  #keys: '5[414384.0.873958110][414384.0.873958108][0.0.0][414384.0.873958109][414384.0.873958111]'
  BaseType: Object
  Description: '对比事业部'
  StructuredName: 'CapacityAndSaleBudgeFilterPlaceOfProductionOfArrays'
}
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
@@ -10,7 +10,7 @@
    // yypsybs Sep-15-2023 (created)
    existList := selectuniquevalues( parent, CapacityAndSaleBudgeFilterYear, item, item.YearNo() );
    nowYear := Date::Today().Year();
    for( i := nowYear; i <= nowYear + 10; i++ ) {
    for( i := nowYear - 10; i <= nowYear; i++ ) {
      if( existList.Find( i ) = -1 ) {
        parent.CapacityAndSaleBudgeFilterYear( relnew, 
                                               YearNo := i );
_Main/BL/Type_CustomerAndForecastOrder/Attribute_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SalesSegmentName
{
  #keys: '3[414382.0.475811339][414382.0.475811338][414382.0.475811340]'
  ValueType: String
}
_Main/BL/Type_CustomerAndForecastOrder/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[414382.0.475811360][414382.0.475811359][414382.0.475811361]'
  ValueType: String
}
_Main/BL/Type_CustomerAndForecastOrder/DefaultValue_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: StockingPointID
}
_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl
@@ -11,7 +11,7 @@
    
    owner.FillingCapacityOrder(relnew,ProductID := data.ProductID(),BusinessType := data.BusinessType(),Customer := data.Customer(),CustomerID := data.CustomerID(),
                                    Quantity := data.Quantity(),UnitOfMeasureName := data.UnitOfMeasureName(),PanelBigSheetQuantity := data.PanelBigSheetQuantity(),SalesAmount := data.SalesAmount(),
                                    ForecastDemandDate := data.ForecastDemandDate(),DemandDate := data.DemandDate(),VerNo := data.VerNo()
                                    ForecastDemandDate := data.ForecastDemandDate(),DemandDate := data.DemandDate(),VerNo := data.VerNo(),SalesSegmentName := data.SalesSegmentName()
                                    );
  *]
}
_Main/BL/Type_CustomerOrder/Attribute_IsLocked.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsLocked
{
  #keys: '3[412960.0.250388873][412960.0.250388872][412960.0.250388874]'
  Description: '是否被锁定'
  ValueType: Boolean
}
_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastModify
{
  #keys: '3[412960.0.217504307][412960.0.217504306][412960.0.217504308]'
  Description: '最后修改人'
  ValueType: String
}
_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastModifyTime
{
  #keys: '3[412960.0.217504317][412960.0.217504316][412960.0.217504318]'
  Description: '最后操作时间'
  ValueType: DateTime
}
_Main/BL/Type_CustomerOrder/StaticMethod_LockUnlock.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
#parent: #root
StaticMethod LockUnlock (
  MacroPlan owner,
  CustomerOrders customerorders,
  Boolean lock
)
{
  Description: '锁定/解锁订单'
  TextBody:
  [*
    // Administrator Sep-21-2023 (created)
    lastmodifytime := DateTime::ActualTime();
    lastmodify := QuintiqUser::CurrentUser().Username();
    if( lock ){
      traverse( customerorders, Elements, order ){
        order.IsLocked( lock );
        order.LastModify( lastmodify );
        order.LastModifyTime( lastmodifytime );
        owner.OrderLockLog( relnew,
                            CustomerName := order.CustomerName(),
                            End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(),
                            EndDate := order.EndDate(),
                            IsLocked := order.IsLocked(),
                            LastModify := order.LastModify(),
                            LastModifyTime := order.LastModifyTime(),
                            OrderID := order.OrderID(),
                            Price := order.Price(),
                            ProductID := order.ProductID(),
                            Quantity := order.Quantity(),
                            SalesSegmentName := order.SalesSegmentName(),
                            StockingPointID := order.StockingPointID(),
                            UnitOfMeasureName := order.UnitOfMeasureName(),
                            Notes := "添加锁定" );
        }
      }else{
        traverse( customerorders, Elements, order ){
          order.IsLocked( lock );
          order.LastModify( lastmodify );
          order.LastModifyTime( lastmodifytime );
          owner.OrderLockLog( relnew,
                              CustomerName := order.CustomerName(),
                              End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(),
                              EndDate := order.EndDate(),
                              IsLocked := order.IsLocked(),
                              LastModify := order.LastModify(),
                              LastModifyTime := order.LastModifyTime(),
                              OrderID := order.OrderID(),
                              Price := order.Price(),
                              ProductID := order.ProductID(),
                              Quantity := order.Quantity(),
                              SalesSegmentName := order.SalesSegmentName(),
                              StockingPointID := order.StockingPointID(),
                              UnitOfMeasureName := order.UnitOfMeasureName(),
                              Notes := "解除锁定" );
        }
      }
  *]
}
_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
@@ -38,11 +38,32 @@
    filllingCapacityOrderScheme := owner.FilllingCapacityOrderScheme(relnew,SchemeName := schemeName,SchemeDate := schemeDate,BusinessType := businessType,Customer := customer,CustomerID := customerID,
                                                                      SalesSegmentName := salesSegmentName);
    
    traverse( fillingCapacityOrders,Elements,e)
    {
      e.SchemeName(schemeName);
      e.IsFilling(true);
      filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, e);
    }
    // ç‰ˆæœ¬å·
    verNoOrder := select( filllingCapacityOrderScheme,FillingCapacityOrder,o,
                                 o.VerNo() <> ''
                                 )
    // éœ€è¦å°†é”€å”®è®¢å•和预售订单同时保存到方案中
    traverse( owner,CustomerAndForecastOrder,order)
    {
         fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := order.BusinessType(),Customer := order.Customer(),CustomerID := order.CustomerID(),
                                                                           DemandDate := order.DemandDate(),ForecastDemandDate := order.ForecastDemandDate(),IsFilling := true,
                                                                           OrderType := '提拉',PanelBigSheetQuantity := order.PanelBigSheetQuantity(),ProductID := order.ProductID(),
                                                                           Quantity := order.Quantity(),SalesSegmentName := order.SalesSegmentName(),SalesAmount := order.SalesAmount(),
                                                                           SchemeName := schemeName,StockingPointID := order.StockingPointID(),UnitOfMeasureName := order.UnitOfMeasureName(),
                                                                           VerNo := verNoOrder.VerNo()
                                                                           );
        filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
    }
  *]
}
_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_HasAlreadyRelease.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod HasAlreadyRelease (
  MacroPlan owner
) as Boolean
{
  TextBody:
  [*
    // NBoTk Sep-19-2023 (created)
    check := false;
    value := selectobject( owner,FilllingCapacityOrderScheme,scheme,
                          scheme.IsRelease()
                          )
    if(not isnull( value)  )
    {
      check := true;
    }
    return check;
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeBusinessTypeString.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
@@ -16,55 +16,5 @@
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "手机事业部", "MAT_3", "MAT_3", "TYPE_1", 233.0, "通用", "短周期" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "手机事业部", "MAT_4", "MAT_4", "TYPE_2", 233.0, "专用", "短周期" );
    // yypsybs Sep-15-2023 (created)
    info( "CapacityAndSaleBudge::InitTestData" )
    this.CapacityAndSaleBudge( relflush );
    for( i := 1; i < 100; i := i + 1 ) {
      row := this.CapacityAndSaleBudge( relnew,
                                        PlaceOfProductionOfArray := "面板基地" + [String]Number::Random( 1, 10 ),
                                        BusinessType := "事业部" + [String]Number::Random( 1, 10 ),
                                        CapacityInPCSInMonth1 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth2 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth3 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth4 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth5 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth6 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth7 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth8 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth9 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth10 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth11 := Number::Random( 1, 10000 ),
                                        CapacityInPCSInMonth12 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth1 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth2 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth3 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth4 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth5 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth6 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth7 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth8 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth9 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth10 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth11 := Number::Random( 1, 10000 ),
                                        CapacityInSheetInMonth12 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth1 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth2 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth3 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth4 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth5 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth6 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth7 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth8 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth9 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth10 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth11 := Number::Random( 1, 10000 ),
                                        SaleAmountInMonth12 := Number::Random( 1, 10000 )
                                      );
      row.CapacityInPCSTotal( row.GetCapacityInPCSInYear() );
      row.CapacityInSheetTotal( row.GetCapacityInSheetInYear() );
      row.SaleAmountTotal( row.GetSaleAmountInYear() );
    }
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
@@ -44,44 +44,18 @@
    
    replynvt := LibInt_MessageAccessor::CreateEmptyMessage();
    LibInt_MessageAccessor::SetHeaderProperty( replynvt, "Content-Type", "application/json" );
    LibInt_MessageAccessor::SetHeaderProperty( replynvt, "path", "/panelMaterial/send" );
    
    rootNamedValue := replynvt.Root();
    bodyHandle := replynvt.GetHandle( "Body" );
    petHandle := replynvt.GetHandle( "Pet" );
    //petHandle := replynvt.GetHandle( "Pet" );
    bodyNamedValue := rootNamedValue.Child( bodyHandle );
    petNamedValue := bodyNamedValue.AddChild( petHandle );
    categoryHandle := replynvt.GetHandle( "Category" );
    categoryNamedValue := petNamedValue.AddChild( categoryHandle );
    categoryIDHandle := replynvt.GetHandle( "Id" );
    categoryIDNamedValue := categoryNamedValue.AddChild( categoryIDHandle );
    categoryIDNamedValue.SetValue( 3 );
    categoryNameHandle := replynvt.GetHandle( "Name" );
    categoryNameNamedValue := categoryNamedValue.AddChild( categoryNameHandle );
    categoryNameNamedValue.SetValue( "Cat" );
    petNameHandle := replynvt.GetHandle( "Name" );
    petNameValue := petNamedValue.AddChild( petNameHandle );
    petNameValue.SetValue( "Pet1" );
    petIdHandle := replynvt.GetHandle( "PetId" );
    petIdNameValue := petNamedValue.AddChild( petIdHandle );
    petIdNameValue.SetValue( 1 );
    codeHandler := replynvt.GetHandle( "code" );
    codeNamedValue := bodyNamedValue.AddChild( codeHandler );
    codeNamedValue.SetValue( 200 );
    
    photoUrlHandle := replynvt.GetHandle( "PhotoUrl" );
    photoUrlNameValue := petNamedValue.AddChild( photoUrlHandle );
    urlHandle := replynvt.GetHandle( "Url" );
    photoUrlNameValue.AddChild( urlHandle, "url1" );
    statusHandle := replynvt.GetHandle( "Status" );
    statusNameValue := petNamedValue.AddChild( statusHandle );
    statusNameValue.SetValue( "available" );
    tagHandle := replynvt.GetHandle( "Tag" );
    tagNameValue := petNamedValue.AddChild( tagHandle );
    tagIdHandle := replynvt.GetHandle( "Id" );
    tagNameValue.AddChild( tagIdHandle, 123 );
    tagNameHandle := replynvt.GetHandle( "Name" );
    tagNameValue.AddChild( tagNameHandle, "tag1" );
    info( "响应------------------------------------------------------------" );
    info( replynvt.ToString() );
    
    
_Main/BL/Type_GlobalDTOTable/StaticMethod_CapacityAndSaleBudgeYearsString.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusinessTypeName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetBusinessTypeName (
  String name
) as String
{
  Description: '从事业部中文名称到缩写的转换'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    result := "";
    if( name = "集团" ){
      result := "TM";
      }else if( name = "手机事业部" ){
        result := "SJ";
        }else if( name = "IT事业部" ){
        result := "IT";
        }else if( name = "车载事业部" ){
        result := "CZ";
        }else if( name = "汽车电子事业部" ){
        result := "QD";
        }else if( name = "专显事业部" ){
        result := "ZX";
        }else if( name = "穿戴事业部" ){
        result := "CD";
        }else if( name = "面板" ){
        result := "MB";
        }
    return result;
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetNextCalType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetNextCalType (
  String latestcaltype,
  String businesstype
) as String
{
  Description: '获取下一个计算步骤'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    result := "";
    if( businesstype = "TM"){
      if( latestcaltype = "" ){
        result := "SCENE";
        }else if( latestcaltype = "SCENE" ){
          result := "TM_SOP_R1";
          }else if( latestcaltype = "TM_SOP_R1" ){
          result := "TM_SOP_R2";
          }else if( latestcaltype = "TM_SOP_R2" ){
          error( "This version is ended" );
          }
      }else{
      if( latestcaltype = "TM_SOP_R1" ){
        result := businesstype + "_SOP_R1";
        }else if( latestcaltype = "TM_SOP_R2" ){
          result := businesstype + "_MPS_R1";
          }else if( latestcaltype = businesstype + "_MPS_R1" ){
          result := businesstype + "_MRP_R1";
          }else if( latestcaltype = businesstype + "_MRP_R1" ){
          result := businesstype + "_MPS_R2";
          }else if( latestcaltype = businesstype + "_MPS_R2" ){
          result := businesstype + "_MRP_R2";
          }else if( latestcaltype = businesstype + "_MRP_R2" ){
          error( "This version is ended" );
        }
    }
    return result;
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetOutputVersionData (
  GlobalOTDTable owner,
  MacroPlan macroplan,
  String businessname
)
{
  Description: '形成并发送版本数据'
  TextBody:
  [*
    // Administrator Sep-14-2023 (created)
    businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
    // Clean exist data
    traverse( owner, MappingVersionControl, mpc, true ){
      mpc.Delete();
    }
    // Get Latest version
    latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
    createtime := latestversion.CreateTime();
    datafrom := businesstype;
    releasetime := latestversion.ReleaseTime();
    versionid := latestversion.VersionID() + "-" + latestversion.CalType();
    info( versionid );
    versionname := latestversion.LongVersionName();
    user := latestversion.User();
    // Get Data list to deal
    listtodeal := selectset( macroplan,
                              Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,
                              pispip,
                              pispip.SalesDemandQuantity() > 0 );
    if( latestversion.CalType() = "TM_SOP_R1" ){
      listtodeal := selectset( macroplan,
                               Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,
                               pispip,
                               pispip.ProductInStockingPoint_MP().ProductID().StartsWith( "C1" ) );
      }
    traverse( listtodeal, Elements, item, true ){
      endtime := item.End();
      productid := item.ProductInStockingPoint_MP().ProductID();
      qty := item.SalesDemandQuantity();
      starttime := item.Start();
      stockingpointid := item.StockingPointInPeriod().StockingPointID();
      datato := "TM";
      if( businesstype <> "TM" ){
        datato := "TM";
        }
      owner.MappingVersionControl( relnew,
                                   CreateTime := createtime,
                                   DataFrom := datafrom,
                                   DataTo := datato,
                                   EndTime := endtime,
                                   ProductID := productid,
                                   Qty := qty,
                                   ReleaseTime := releasetime,
                                   StartTime := starttime,
                                   StockingPointID := stockingpointid,
                                   User := user,
                                   VersionID := versionid,
                                   VersionName := versionname )
      }
    // Send Data To DB
    owner.Broker_OTD_VersionControlToDB().Execute();
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetVersionData (
  GlobalOTDTable owner,
  String businessname
)
{
  Description: '抽取并处理版本数据'
  TextBody:
  [*
    // Administrator Sep-14-2023 (created)
    businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
    releasetime := DateTime::ActualTime();
    // Clean exist data
    traverse( owner, MappingVersionControl, mpc, true ){
      mpc.Delete();
    }
    // Get Data From DB
    owner.Broker_OTD_VersionControl().Execute();
    // Get Data list to deal
    listtodeal := selectset( owner, MappingVersionControl, item, item.DataTo() = businesstype );
    traverse( listtodeal, Elements, item, true ){
      versionid := item.VersionID();
      existversion := VersionControl::FindByFullVersionID( owner, versionid );
      if( isnull( existversion ) ){
        longversionname := item.VersionName();
        longversionnamelist := longversionname.Tokenize( "-" );
        shortversionname := longversionnamelist.Element( longversionnamelist.Size() - 1 );
        caltype := shortversionname.SubString( 0, 10 );
        shortversionid := versionid.ReplaceAll( "-" + caltype, "" );
        newversioncontrol := VersionControl::Create( owner,
                                                     item.DataFrom(),
                                                     caltype,
                                                     item.CreateTime(),
                                                     shortversionid,
                                                     longversionname,
                                                     shortversionname,
                                                     item.User() );
        newversioncontrol.IsReleased( true );
        newversioncontrol.ReleaseTime( releasetime );
        }
      }
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetNextFriday.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_GetNextFriday () as Date
{
  Description: '获取下一个星期5的日期'
  TextBody:
  [*
    /**********************获取下一个周5的日期*******************
    *创建人:yunying
    *创建日期:2023-09-21
    *描述:得到下一个星期5的日期,如果当天时星期五,则返回当天日期,创建订单使用
    **********************************************************/
    //定义下一个星期
    nTargetWeenNum := 5;
    nTodayWeekNum := Date::ActualDate().DayOfWeek();
    // å‘后偏移天数
    nAddDays := 0;
    if( nTodayWeekNum <= nTargetWeenNum)
    {
      nAddDays := nTargetWeenNum-nTodayWeekNum;
    }
    else
    {
      nAddDays := 7 - nTodayWeekNum+nTargetWeenNum;
    }
    // ä¸‹ä¸€ä¸ªæ˜ŸæœŸçš„æ—¥æœŸ
    return Date::ActualDate() + nAddDays;
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_InitialForcastData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_InitialForcastData (
  MacroPlan Owner
) as owning JSON
{
  Description: '初始化订单预测信息'
  TextBody:
  [*
    /**********************************初始化订单预测信息***************************************
    *注:未确定上游预测订单更新逻辑和数据有效性,这里进行二次处理,新生成一个列表,避免上游信息变动严重
    *    å½±å“åŠŸèƒ½
    *
    *****************************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    try{
      // é¢„测数据2此处理(筛选+客户名称提取)
      if(Owner.H_Forecast(relget ).Size()>0)
      {
        traverse( Owner,H_Forecast,Obj,not isnull( Obj))
        {
          Owner.H_Forecast(reldelete, Obj);
        }
      }
      AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth()
                           and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()
                           and object.Quantity()>0 );
      CustomName:="";
      DepartMent:="";
      idx:=0;
      traverse( AllData,Elements,Obj,not isnull(Obj))
      {
        idx:=Obj.SalesSegmentName().FindString( "-",0);
        if(idx>0)
        {
          DepartMent:=Obj.SalesSegmentName().SubString( 0,idx);
          CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
        }
        else
        {
          CustomName :=Obj.SalesSegmentName();
          DepartMent := Obj.SalesSegmentName();
        }
         Owner.H_Forecast(relnew,OrderCode := H_FunctionClass::SM_GenerateID( "OF"),
                                SKU := Obj.ProductID(),
                                CustomCode := CustomName,
                               CustomName := CustomName,
                               Util:=Obj.UnitOfMeasureName(),
                               NeedTime:=Obj.EndDate(),
                               ForecastQty:=[Number]Obj.Quantity().Round( 0),
                               Department:=DepartMent);
      }
      bStatus := true;
      strMsg :="订单预测初始化成功!";
    }
    onerror
    {
      strMsg :="订单预测初始化失败,可能影响冲减计算,请联系系统管理员!";
      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_MaterialReverse.qbl
@@ -40,7 +40,7 @@
        // èŽ·å–é¢„æµ‹æ•°é‡ï¼ˆå®¢æˆ·+SKU+月份 ç†è®ºæ˜¯æ²¡æœ‰ç‰©æ–™é¢„测)
        OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU 
                                              and Obj.CustomID() = CustomerCode 
                                              and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2"));
                                              and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2"));
        if ( not isnull(OrderForecast))
        {
            nForecastQtyOld := OrderForecast.ForecatsRealQty();
@@ -93,6 +93,28 @@
            Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := SKU,Unit := "通过SKU获取",ReverseRealQty := nReverseQtyNew);
          } 
          
          MaterialResult := selectset( Owner,H_MaterialHedgingResult,Obj,Obj.SKU() = SKU);
          if( MaterialResult.Size()=0)
          {
              Owner.H_MaterialHedgingResult(relnew,
                                             ID := H_FunctionClass::SM_GenerateID( "MR"),
                                             SKU:=SKU,
                                             ForecastQty := nForecastQtyNew,
                                             ReverseQty := nReverseQtyNew,
                                             AuthorizeQty := 0,
                                             CustomerCode := CustomerCode,
                                             CustomerName := "",
                                             Unit := "",
                                             MType := "物料/半成品");
          }
          else
          {
              traverse( MaterialResult,Elements,Obj,not isnull( Obj))
              {
                 Obj.ReverseQty(  nReverseQtyNew);
              }
          }
          // é‡Šæ”¾é‡‡è´­
          Owner.H_MaterialPurchase(relnew,ID := H_FunctionClass::SM_GenerateID( "MP"),VCode:=VCode, DemandTime := DateTime::ActualTime(),
                                    H_HedgingRecord_ID := HRID,SKU := SKU,ProductSubclassType := "物料类型,用SKU抓物料表得到",Qty := OperateQty,Unit := "通过SKU抓",
@@ -196,7 +218,46 @@
                                                                                            AuthorizeRealQty :=nAuthorizeQtyNew,
                                                                                            Unit := "SKU åˆ°ç‰©æ–™è¡¨èŽ·å–");
          } 
          //更新结果
          MaterialResult := selectset( Owner,H_MaterialHedgingResult,Obj,Obj.SKU() = SKU);
          if( MaterialResult.Size()=0)
          {
            // æ·»åŠ ä¸€æ¡åç­¾è®°å½•
            Owner.H_MaterialHedgingResult(relnew,
                                   ID := H_FunctionClass::SM_GenerateID( "MR"),
                                   SKU:=SKU,
                                   ForecastQty := nForecastQtyNew,
                                   ReverseQty := nReverseQtyNew,
                                   AuthorizeQty := 0,
                                   CustomerCode := CustomerCode,
                                   CustomerName := "",
                                   Unit := "",
                                   MType := "物料/半成品");
            // æ·»åŠ ä¸€æ¡æŽˆæƒè®°å½•
            Owner.H_MaterialHedgingResult(relnew,
                                           ID := H_FunctionClass::SM_GenerateID( "MR"),
                                           SKU:=SKU,
                                           ForecastQty := nForecastQtyNew,
                                           ReverseQty := nReverseQtyNew,
                                           AuthorizeQty := nAuthorizeQtyNew,
                                           CustomerCode := CustomerCode,
                                           Unit := "",MType := "物料/半成品",
                                           CustomerName := CustomerCode);
          }
          else
          {
              traverse( MaterialResult,Elements,Obj,not isnull( Obj))
              {
                Obj.ReverseQty(  nReverseQtyNew);
                if( Obj.CustomerCode()= CustomerCode)
                {
                  Obj.AuthorizeQty(nAuthorizeQtyNew);
                  Obj.ForecastQty(nForecastQtyNew);
                }
              }
          }
          // é‡Šæ”¾é‡‡è´­
          nMid_R :=OperateQty - nReverseQtyOld;
          if( nMid_R > 0)
_Main/BL/Type_H_MaterialHedgingResult/Attribute_AuthorizeQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute AuthorizeQty
{
  #keys: '3[414724.0.133544641][414724.0.133544640][414724.0.133544642]'
  Description: '授权剩余数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerCode
{
  #keys: '3[414724.0.133544653][414724.0.133544652][414724.0.133544654]'
  Description: '客户ID'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_CustomerName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerName
{
  #keys: '3[414724.0.133544660][414724.0.133544659][414724.0.133544661]'
  Description: '客户名称'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ForecastQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ForecastQty
{
  #keys: '3[414724.0.133544656][414724.0.133544655][414724.0.133544657]'
  Description: '当月预测剩余数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414724.0.133544626][414724.0.133544625][414724.0.133544627]'
  Description: 'KEY'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_MType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MType
{
  #keys: '3[414724.0.134572562][414724.0.134572561][414724.0.134572563]'
  Description: ' ç‰©æ–™ç±»åž‹'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_ReverseQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ReverseQty
{
  #keys: '3[414724.0.133544623][414724.0.133544622][414724.0.133544624]'
  Description: '反签剩余数量'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_SKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SKU
{
  #keys: '3[414724.0.133544644][414724.0.133544643][414724.0.133544645]'
  Description: 'SKU编码'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Serial.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Serial
{
  #keys: '3[414724.0.133544647][414724.0.133544646][414724.0.133544648]'
  Description: '序号,不一定使用'
  ValueType: Number
}
_Main/BL/Type_H_MaterialHedgingResult/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[414724.0.133544673][414724.0.133544672][414724.0.133544674]'
  Description: '单位'
  ValueType: String
}
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_CustomerCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: CustomerCode
}
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ID
}
_Main/BL/Type_H_MaterialHedgingResult/DefaultValue_SKU.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SKU
}
_Main/BL/Type_H_MaterialHedgingResult/_ROOT_Type_H_MaterialHedgingResult.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type H_MaterialHedgingResult
{
  #keys: '5[414724.0.133544603][414724.0.133544601][0.0.0][414724.0.133544602][414724.0.133544604]'
  BaseType: Object
  Description: '物料反签授权结果'
  StructuredName: 'H_MaterialHedgingResults'
}
_Main/BL/Type_H_MessagePassing/Attribute_ValueJsonString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ValueJsonString
{
  #keys: '3[414724.0.138457270][414724.0.138457269][414724.0.138457271]'
  Description: 'Json格式字符串格式的Value'
  ValueType: String
}
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeBusinessTypeString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgeBusinessTypeString () as owning String
{
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    result := selectuniquevalues( this, MappingCapacityAndSaleBudge, item, true, item.BusinessType() );
    return result.Concatenate( ";" ) ;
  *]
}
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgePlaceOfProductionOfArrayString () as owning String
{
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    result := selectuniquevalues( this, MappingCapacityAndSaleBudge, item, true, item.PlaceOfProductionOfArray() );
    return result.Concatenate( ";" ) ;
  *]
}
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter#323.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method RefreshCapacityAndSaleBudgeFilter (
  Boolean deleteBeforeCreate
)
{
  TextBody:
  [*
    if( deleteBeforeCreate ) {
      this.CapacityAndSaleBudgeFilterBusinessType( relflush );
      this.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relflush );
    }
    this.RefreshCapacityAndSaleBudgeFilter();
  *]
}
_Main/BL/Type_MPSync/Method_RefreshCapacityAndSaleBudgeFilter.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method RefreshCapacityAndSaleBudgeFilter
{
  TextBody:
  [*
    // yypsybs Sep-21-2023 (created)
    info( "=====RefreshCapacityAndSaleBudgeFilter====" );
    businessTypes := selectuniquevalues( this, MappingCapacityAndSaleBudge, item, item.BusinessType() );
    info( [String]businessTypes.Size() );
    traverse( businessTypes, Elements, businessType ) {
      CapacityAndSaleBudgeFilterBusinessType::CreateIfNotExist( this, businessType );
    }
    placeOfProductionOfArrays := selectuniquevalues( this, MappingCapacityAndSaleBudge, item, item.PlaceOfProductionOfArray() );
    info( [String]placeOfProductionOfArrays.Size() );
    traverse( placeOfProductionOfArrays, Elements, placeOfProductionOfArray ) {
      CapacityAndSaleBudgeFilterPlaceOfProductionOfArray::CreateIfNotExist( this, placeOfProductionOfArray );
    }
  *]
}
_Main/BL/Type_MPSync/StaticMethod_CapacityAndSaleBudgeYearsString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CapacityAndSaleBudgeYearsString () as String
{
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    years := construct( Strings );;
    for( i := Date::ActualDate().Year() - 10; i <= Date::ActualDate().Year(); i := i + 1 ) {
      years.Add( [String]i );
    }
    return ifexpr( years.Size() > 0, years.Concatenate( ";" ), "" );
  *]
}
_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
Quintiq file version 2.0
#parent: #root
StaticMethod TestData (
  MPSync mpSync,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    info( "MPSync::TestData" );
    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    info( "productCodeList : " + [String]productCodeList.Size() );
    mpSync.MappingCapacityAndSaleBudge( relflush );
    for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) {
      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
        productCode := productCodeList.Element( i - 1 );
        mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew,
                                                                           YearNo := year,
                                                                           ProductCode := productCode,
                                                                           BusinessType := "事业部" + [String](productCode.Length() mod 3 + 1),
                                                                           PlaceOfProductionOfArray := "面板基地" + [String](productCode.Length() mod 4 + 1)
                                                                            );
        for( month := 1; month <= 12; month := month + 1 ) {
          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]month );
          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]month );
          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]month );
          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
        }
        mappingCapacityAndSaleBudge.CapacityInPCSTotal( mappingCapacityAndSaleBudge.GetCapacityInPCSInYear() );
        mappingCapacityAndSaleBudge.CapacityInSheetTotal( mappingCapacityAndSaleBudge.GetCapacityInSheetInYear() );
        mappingCapacityAndSaleBudge.SaleAmountTotal( mappingCapacityAndSaleBudge.GetSaleAmountInYear() );
      }
    }
    result1 := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
    info( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() );
    mpSync.MappingAnnualBudget( relflush );
    for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) {
      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
        productCode := productCodeList.Element( i - 1 );
        mappingAnnualBudget := mpSync.MappingAnnualBudget( relnew,
                                                           YearNo := year,
                                                           ProductId := productCode
                                                            );
        for( month := 1; month <= 12; month := month + 1 ) {
          field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlyModCapacity" + [String]month );
          field.Set( mappingAnnualBudget, Real::Random( 20000.0, 30000.0 ) );
          field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySheetCapacity" + [String]month );
          field.Set( mappingAnnualBudget, Real::Random( 20000.0, 30000.0 ) );
          field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySales" + [String]month );
          field.Set( mappingAnnualBudget, Real::Random( 20000.0, 30000.0 ) );
        }
      }
    }
    result2 := selectset( mpSync, MappingAnnualBudget, item, true );
    info( "test MappingAnnualBudget size : " + [String]result2.Size() );
  *]
}
_Main/BL/Type_MappingAnnualBudget/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414384.0.874289974][414384.0.874289973][414384.0.874289975]'
  Description: '业务类型'
  ValueType: String
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity1
{
  #keys: '3[414384.0.874289977][414384.0.874289976][414384.0.874289978]'
  Description: '1月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity10.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity10
{
  #keys: '3[414384.0.874290004][414384.0.874290003][414384.0.874290005]'
  Description: '10月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity11.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity11
{
  #keys: '3[414384.0.874290007][414384.0.874290006][414384.0.874290008]'
  Description: '11月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity12.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity12
{
  #keys: '3[414384.0.874290010][414384.0.874290009][414384.0.874290011]'
  Description: '12月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity2
{
  #keys: '3[414384.0.874289980][414384.0.874289979][414384.0.874289981]'
  Description: '2月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity3.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity3
{
  #keys: '3[414384.0.874289983][414384.0.874289982][414384.0.874289984]'
  Description: '3月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity4
{
  #keys: '3[414384.0.874289986][414384.0.874289985][414384.0.874289987]'
  Description: '4月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity5.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity5
{
  #keys: '3[414384.0.874289989][414384.0.874289988][414384.0.874289990]'
  Description: '5月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity6.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity6
{
  #keys: '3[414384.0.874289992][414384.0.874289991][414384.0.874289993]'
  Description: '6月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity7.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity7
{
  #keys: '3[414384.0.874289995][414384.0.874289994][414384.0.874289996]'
  Description: '7月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity8.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity8
{
  #keys: '3[414384.0.874289998][414384.0.874289997][414384.0.874289999]'
  Description: '8月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlyModCapacity9.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlyModCapacity9
{
  #keys: '3[414384.0.874290001][414384.0.874290000][414384.0.874290002]'
  Description: '9月模组产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales1
{
  #keys: '3[414384.0.874290049][414384.0.874290048][414384.0.874290050]'
  Description: '1月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales10.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales10
{
  #keys: '3[414384.0.874290076][414384.0.874290075][414384.0.874290077]'
  Description: '10月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales11.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales11
{
  #keys: '3[414384.0.874290079][414384.0.874290078][414384.0.874290080]'
  Description: '11月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales12.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales12
{
  #keys: '3[414384.0.874290082][414384.0.874290081][414384.0.874290083]'
  Description: '12月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales2
{
  #keys: '3[414384.0.874290052][414384.0.874290051][414384.0.874290053]'
  Description: '2月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales3.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales3
{
  #keys: '3[414384.0.874290055][414384.0.874290054][414384.0.874290056]'
  Description: '3月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales4
{
  #keys: '3[414384.0.874290058][414384.0.874290057][414384.0.874290059]'
  Description: '4月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales5.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales5
{
  #keys: '3[414384.0.874290061][414384.0.874290060][414384.0.874290062]'
  Description: '5月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales6.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales6
{
  #keys: '3[414384.0.874290064][414384.0.874290063][414384.0.874290065]'
  Description: '6月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales7.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales7
{
  #keys: '3[414384.0.874290067][414384.0.874290066][414384.0.874290068]'
  Description: '7月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales8.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales8
{
  #keys: '3[414384.0.874290070][414384.0.874290069][414384.0.874290071]'
  Description: '8月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySales9.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySales9
{
  #keys: '3[414384.0.874290073][414384.0.874290072][414384.0.874290074]'
  Description: '9月销售额'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity1
{
  #keys: '3[414384.0.874290013][414384.0.874290012][414384.0.874290014]'
  Description: '1月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity10.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity10
{
  #keys: '3[414384.0.874290040][414384.0.874290039][414384.0.874290041]'
  Description: '10月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity11.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity11
{
  #keys: '3[414384.0.874290043][414384.0.874290042][414384.0.874290044]'
  Description: '11月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity12.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity12
{
  #keys: '3[414384.0.874290046][414384.0.874290045][414384.0.874290047]'
  Description: '12月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity2
{
  #keys: '3[414384.0.874290016][414384.0.874290015][414384.0.874290017]'
  Description: '2月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity3.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity3
{
  #keys: '3[414384.0.874290019][414384.0.874290018][414384.0.874290020]'
  Description: '3月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity4
{
  #keys: '3[414384.0.874290022][414384.0.874290021][414384.0.874290023]'
  Description: '4月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity5.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity5
{
  #keys: '3[414384.0.874290025][414384.0.874290024][414384.0.874290026]'
  Description: '5月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity6.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity6
{
  #keys: '3[414384.0.874290028][414384.0.874290027][414384.0.874290029]'
  Description: '6月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity7.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity7
{
  #keys: '3[414384.0.874290031][414384.0.874290030][414384.0.874290032]'
  Description: '7月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity8.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity8
{
  #keys: '3[414384.0.874290034][414384.0.874290033][414384.0.874290035]'
  Description: '8月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_MonthlySheetCapacity9.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MonthlySheetCapacity9
{
  #keys: '3[414384.0.874290037][414384.0.874290036][414384.0.874290038]'
  Description: '9月实数大张产能'
  ValueType: Real
}
_Main/BL/Type_MappingAnnualBudget/Attribute_ProductId.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductId
{
  #keys: '3[414384.0.874289946][414384.0.874289945][414384.0.874289947]'
  ValueType: String
}
_Main/BL/Type_MappingAnnualBudget/Attribute_yearNo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute YearNo
{
  #keys: '3[414384.0.874290125][414384.0.874290124][414384.0.874290126]'
  ValueType: Number
}
_Main/BL/Type_MappingAnnualBudget/DefaultValue_BusinessType.qbl
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInPCSInYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInPCSInYear () as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlyModCapacity" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInSheetInHalfYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInHalfYear (
  Number halfNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( halfNo - 1 ) * 6;
    toMonth := 6 + ( halfNo - 1 ) * 6;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySheetCapacity" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInSheetInSeason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInSeason (
  Number seasonNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( seasonNo - 1 ) * 3;
    toMonth := 3 + ( seasonNo - 1 ) * 3;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySheetCapacity" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/Method_GetCapacityInSheetInYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInYear () as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySheetCapacity" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/Method_GetSaleAmountInYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method GetSaleAmountInYear () as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySales" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSaleByMonth.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSaleByMonth (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number monthNo
) as Real
{
  Description: '销售额(W)'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySales" + [String]monthNo );
    value := sum( parent,
                  MappingAnnualBudget,
                  item,
                  item.YearNo() = yearNo and productNo.Find( item.ProductId() ) > -1,
                  field.GetReal( item ) );
    return value;
  *]
}
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSaleByYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSaleByYear (
  Strings productNo,
  MPSync parent,
  Number yearNo
) as Real
{
  Description: '销售额(W)'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingAnnualBudget,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductId() ) > -1,
                   item.GetSaleAmountInYear() );
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetByHalfYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetByHalfYear (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number halfNo
) as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingAnnualBudget,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductId() ) > -1,
                   item.GetCapacityInSheetInHalfYear( halfNo ) );
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetByMonth.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetByMonth (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number monthNo
) as Real
{
  Description: '产能-实数大张'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    field := Reflection::FindAttribute( "MappingAnnualBudget", "MonthlySheetCapacity" + [String]monthNo );
    value := sum( parent,
                  MappingAnnualBudget,
                  item,
                  item.YearNo() = yearNo and productNo.Find( item.ProductId() ) > -1,
                  field.GetReal( item ) );
    return value;
  *]
}
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetBySeason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetBySeason (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number seasonNo
) as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingAnnualBudget,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductId() ) > -1,
                   item.GetCapacityInSheetInSeason( seasonNo ) );
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/StaticMethod_GetSheetByYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetByYear (
  Strings productNo,
  MPSync parent,
  Number yearNo
) as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingAnnualBudget,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductId() ) > -1,
                   item.GetCapacityInSheetInYear() );
    return result;
  *]
}
_Main/BL/Type_MappingAnnualBudget/_ROOT_Type_MappingAnnualBudget.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type MappingAnnualBudget
{
  #keys: '5[414384.0.874289918][414384.0.874289916][0.0.0][414384.0.874289917][414384.0.874289919]'
  BaseType: Object
  Description: '年度预算数据'
  StructuredName: 'MappingAnnualBudgets'
}
_Main/BL/Type_MappingBOM/StaticMethod_CreateTestData.qbl
@@ -3,19 +3,20 @@
StaticMethod CreateTestData (
  MacroPlan parent,
  String businessType,
  String orgCode
  String orgCode,
  String productCode
) as MappingBOM
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    value := select( parent, MappingBOM, bom, bom.BusinessType() = businessType and bom.OrganCode() = orgCode );
    value := select( parent, MappingBOM, bom, bom.BusinessType() = businessType and bom.OrganCode() = orgCode and bom.ProductCode() = productCode );
    if( isnull( value ) ) {
      value := parent.MappingBOM( relnew, 
                                  BusinessType := businessType,
                                  OrganCode := orgCode,
                                  ProductCode := productCode,
                                  ProcessSection := "", 
                                  ProductCode := "",
                                  ComponentCode := "", 
                                  AlternativeMaterialCode := "" );
    }
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyByHalfYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetNewSupplyByHalfYear (
  Strings productNo,
  MacroPlan macroPlan,
  Number yearNo,
  Number halfNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    fromMonth := 1 + ( halfNo - 1 ) * 6;
    toMonth := 6 + ( halfNo - 1 ) * 6;
    result := 0.0;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      result := result + MappingCustomerOrder::GetNewSupplyByMonth( productNo, macroPlan, yearNo, i );
    }
    return result;
  *]
}
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyByMonth.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetNewSupplyByMonth (
  Strings productNo,
  MacroPlan macroPlan,
  Number yearNo,
  Number monthNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( macroPlan,
                   MappingCustomerOrder,
                   item,
                   productNo.Find( item.ProductID() ) > -1
                   and item.OrderDate().Year() = yearNo
                   and item.OrderDate().Month() = monthNo,
                   item.Quantity() * item.Price() );
    return result;
  *]
}
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyBySeason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetNewSupplyBySeason (
  Strings productNo,
  MacroPlan macroPlan,
  Number yearNo,
  Number seasonNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    fromMonth := 1 + ( seasonNo - 1 ) * 3;
    toMonth := 3 + ( seasonNo - 1 ) * 3;
    result := 0.0;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      result := result + MappingCustomerOrder::GetNewSupplyByMonth( productNo, macroPlan, yearNo, i );
    }
    return result;
  *]
}
_Main/BL/Type_MappingCustomerOrder/StaticMethod_GetNewSupplyByYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetNewSupplyByYear (
  Strings productNo,
  MacroPlan macroPlan,
  Number yearNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-21-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      result := result + MappingCustomerOrder::GetNewSupplyByMonth( productNo, macroPlan, yearNo, i );
    }
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityEquivalent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityEquivalent
{
  #keys: '3[414384.0.867241217][414384.0.867241216][414384.0.867241218]'
  Description: '产能当量'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInJan.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth1
{
  #keys: '3[414384.0.864360392][414384.0.864360391][414384.0.864360393]'
  Description: '1月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth10.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth10
{
  #keys: '3[414384.0.864360398][414384.0.864360397][414384.0.864360399]'
  Description: '10月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth11.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth11
{
  #keys: '3[414384.0.864360395][414384.0.864360394][414384.0.864360396]'
  Description: '11月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth12.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth12
{
  #keys: '3[414384.0.864360386][414384.0.864360385][414384.0.864360387]'
  Description: '12月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth2
{
  #keys: '3[414384.0.864360371][414384.0.864360370][414384.0.864360372]'
  Description: '2月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth3.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth3
{
  #keys: '3[414384.0.864360374][414384.0.864360373][414384.0.864360375]'
  Description: '3月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth4
{
  #keys: '3[414384.0.864360377][414384.0.864360376][414384.0.864360378]'
  Description: '4月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth5.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth5
{
  #keys: '3[414384.0.864360380][414384.0.864360379][414384.0.864360381]'
  Description: '5月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth6.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth6
{
  #keys: '3[414384.0.864360401][414384.0.864360400][414384.0.864360402]'
  Description: '6月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth7.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth7
{
  #keys: '3[414384.0.864360383][414384.0.864360382][414384.0.864360384]'
  Description: '7月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth8.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth8
{
  #keys: '3[414384.0.864360368][414384.0.864360367][414384.0.864360369]'
  Description: '8月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth9.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSInMonth9
{
  #keys: '3[414384.0.864360389][414384.0.864360388][414384.0.864360390]'
  Description: '9月产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSTotal.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInPCSTotal
{
  #keys: '3[414384.0.867241226][414384.0.867241225][414384.0.867241227]'
  Description: '年产能(PCS)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInJan.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth1
{
  #keys: '3[414384.0.864360406][414384.0.864360405][414384.0.864360407]'
  Description: '1月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth10.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth10
{
  #keys: '3[414384.0.864360430][414384.0.864360429][414384.0.864360431]'
  Description: '10月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth11.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth11
{
  #keys: '3[414384.0.864360427][414384.0.864360426][414384.0.864360428]'
  Description: '11月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth12.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth12
{
  #keys: '3[414384.0.864360439][414384.0.864360438][414384.0.864360440]'
  Description: '12月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth2
{
  #keys: '3[414384.0.864360409][414384.0.864360408][414384.0.864360410]'
  Description: '2月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth3.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth3
{
  #keys: '3[414384.0.864360421][414384.0.864360420][414384.0.864360422]'
  Description: '3月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth4
{
  #keys: '3[414384.0.864360415][414384.0.864360414][414384.0.864360416]'
  Description: '4月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth5.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth5
{
  #keys: '3[414384.0.864360412][414384.0.864360411][414384.0.864360413]'
  Description: '5月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth6.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth6
{
  #keys: '3[414384.0.864360424][414384.0.864360423][414384.0.864360425]'
  Description: '6月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth7.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth7
{
  #keys: '3[414384.0.864360433][414384.0.864360432][414384.0.864360434]'
  Description: '7月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth8.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth8
{
  #keys: '3[414384.0.864360436][414384.0.864360435][414384.0.864360437]'
  Description: '8月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth9.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetInMonth9
{
  #keys: '3[414384.0.864360418][414384.0.864360417][414384.0.864360419]'
  Description: '9月产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetTotal.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CapacityInSheetTotal
{
  #keys: '3[414384.0.867241232][414384.0.867241231][414384.0.867241233]'
  Description: '年产能(Sheet)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_Deleted.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Deleted
{
  #keys: '3[414384.0.867241223][414384.0.867241222][414384.0.867241224]'
  Description: '已删除'
  ValueType: Boolean
}
_Main/BL/Type_MappingSaleBudge/Attribute_DisplayTechnology.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DisplayTechnology
{
  #keys: '3[414384.0.867241208][414384.0.867241207][414384.0.867241209]'
  Description: '显示技术分类'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfCut.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfCut
{
  #keys: '3[414384.0.867241229][414384.0.867241228][414384.0.867241230]'
  Description: '切割数'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfMask.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfMask
{
  #keys: '3[414384.0.867241241][414384.0.867241240][414384.0.867241242]'
  Description: 'mask数'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_OrgCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrgCode
{
  #keys: '3[414384.0.867241214][414384.0.867241213][414384.0.867241215]'
  Description: '业务部门'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfArray.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PlaceOfProductionOfArray
{
  #keys: '3[414384.0.864360358][414384.0.864360357][414384.0.864360359]'
  Description: '面板基地'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfEvaporation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PlaceOfProductionOfEvaporation
{
  #keys: '3[414384.0.867241211][414384.0.867241210][414384.0.867241212]'
  Description: '蒸镀产地'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_Resolution.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Resolution
{
  #keys: '3[414384.0.867241235][414384.0.867241234][414384.0.867241236]'
  Description: '分辨率'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth1
{
  #keys: '3[414384.0.864360470][414384.0.864360469][414384.0.864360471]'
  Description: '1月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth10.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth10
{
  #keys: '3[414384.0.864360449][414384.0.864360448][414384.0.864360450]'
  Description: '10月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth11.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth11
{
  #keys: '3[414384.0.864360443][414384.0.864360442][414384.0.864360444]'
  Description: '11月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth12.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth12
{
  #keys: '3[414384.0.864360455][414384.0.864360454][414384.0.864360456]'
  Description: '12月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth2
{
  #keys: '3[414384.0.864360461][414384.0.864360460][414384.0.864360462]'
  Description: '2月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth3.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth3
{
  #keys: '3[414384.0.864360467][414384.0.864360466][414384.0.864360468]'
  Description: '3月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth4
{
  #keys: '3[414384.0.864360464][414384.0.864360463][414384.0.864360465]'
  Description: '4月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth5.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth5
{
  #keys: '3[414384.0.864360476][414384.0.864360475][414384.0.864360477]'
  Description: '5月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth6.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth6
{
  #keys: '3[414384.0.864360458][414384.0.864360457][414384.0.864360459]'
  Description: '6月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth7.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth7
{
  #keys: '3[414384.0.864360473][414384.0.864360472][414384.0.864360474]'
  Description: '7月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth8.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth8
{
  #keys: '3[414384.0.864360446][414384.0.864360445][414384.0.864360447]'
  Description: '8月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth9.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountInMonth9
{
  #keys: '3[414384.0.864360452][414384.0.864360451][414384.0.864360453]'
  Description: '9月销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountTotal.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaleAmountTotal
{
  #keys: '3[414384.0.867241220][414384.0.867241219][414384.0.867241221]'
  Description: '年销售额(万)'
  ValueType: Real
}
_Main/BL/Type_MappingSaleBudge/Attribute_SalesAmountInWInJan.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_ShippingForm.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShippingForm
{
  #keys: '3[414384.0.867241244][414384.0.867241243][414384.0.867241245]'
  Description: '出货形态'
  ValueType: String
}
_Main/BL/Type_MappingSaleBudge/Attribute_YearNo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute YearNo
{
  #keys: '3[414384.0.874271421][414384.0.874271420][414384.0.874271422]'
  ValueType: Number
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_CapacityEquivalent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: CapacityEquivalent
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_DisplayTechnology.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: DisplayTechnology
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfCut.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: NumberOfCut
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfMask.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: NumberOfMask
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_OrgCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: OrgCode
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_PlaceOfProductionOfEvaporation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: PlaceOfProductionOfEvaporation
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_Resolution.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Resolution
}
_Main/BL/Type_MappingSaleBudge/DefaultValue_ShippingForm.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ShippingForm
}
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInPCSInYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInPCSInYear () as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInHalfYear (
  Number halfNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( halfNo - 1 ) * 6;
    toMonth := 6 + ( halfNo - 1 ) * 6;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInSeason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInSeason (
  Number seasonNo
) as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( seasonNo - 1 ) * 3;
    toMonth := 3 + ( seasonNo - 1 ) * 3;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInYear () as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/Method_GetSaleAmountInYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method GetSaleAmountInYear () as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]i );
      result := result + field.GetReal( this );
    }
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByMonth.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSaleByMonth (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number monthNo
) as Real
{
  Description: '销售额(W)'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]monthNo );
    value := sum( parent,
                  MappingCapacityAndSaleBudge,
                  item,
                  item.YearNo() = yearNo and productNo.Find( item.ProductCode() ) > -1,
                  field.GetReal( item ) );
    return value;
  *]
}
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSaleByYear (
  Strings productNo,
  MPSync parent,
  Number yearNo
) as Real
{
  Description: '销售额(W)'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingCapacityAndSaleBudge,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductCode() ) > -1,
                   item.GetSaleAmountInYear() );
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByHalfYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetByHalfYear (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number halfNo
) as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingCapacityAndSaleBudge,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductCode() ) > -1,
                   item.GetCapacityInSheetInHalfYear( halfNo ) );
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByMonth.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetByMonth (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number monthNo
) as Real
{
  Description: '产能-实数大张'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]monthNo );
    value := sum( parent,
                  MappingCapacityAndSaleBudge,
                  item,
                  item.YearNo() = yearNo and productNo.Find( item.ProductCode() ) > -1,
                  field.GetReal( item ) );
    return value;
  *]
}
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetBySeason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetBySeason (
  Strings productNo,
  MPSync parent,
  Number yearNo,
  Number seasonNo
) as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingCapacityAndSaleBudge,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductCode() ) > -1,
                   item.GetCapacityInSheetInSeason( seasonNo ) );
    return result;
  *]
}
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSheetByYear (
  Strings productNo,
  MPSync parent,
  Number yearNo
) as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := sum( parent,
                   MappingCapacityAndSaleBudge,
                   item,
                   item.YearNo() = yearNo and productNo.Find( item.ProductCode() ) > -1,
                   item.GetCapacityInSheetInYear() );
    return result;
  *]
}
_Main/BL/Type_MappingVersionControl/Attribute_CreateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CreateTime
{
  #keys: '3[412960.0.150120147][412960.0.150120146][412960.0.150120148]'
  Description: '创建时间'
  ValueType: DateTime
}
_Main/BL/Type_MappingVersionControl/Attribute_DataFrom.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DataFrom
{
  #keys: '3[412960.0.150120067][412960.0.150120066][412960.0.150120068]'
  Description: '数据发出的部门名称'
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/Attribute_DataTo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DataTo
{
  #keys: '3[412960.0.150120077][412960.0.150120076][412960.0.150120078]'
  Description: '接收数据的部门名称'
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/Attribute_EndTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute EndTime
{
  #keys: '3[412960.0.150120127][412960.0.150120126][412960.0.150120128]'
  Description: '结束时间'
  IsReadOnly: true
  ValueType: DateTime
}
_Main/BL/Type_MappingVersionControl/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[412960.0.150120087][412960.0.150120086][412960.0.150120088]'
  Description: '物料编码'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/Attribute_Qty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Qty
{
  #keys: '3[412960.0.150120097][412960.0.150120096][412960.0.150120098]'
  Description: '数量'
  ValueType: Real
}
_Main/BL/Type_MappingVersionControl/Attribute_ReleaseTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ReleaseTime
{
  #keys: '3[412960.0.150120157][412960.0.150120156][412960.0.150120158]'
  Description: '发布时间'
  ValueType: DateTime
}
_Main/BL/Type_MappingVersionControl/Attribute_StartTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute StartTime
{
  #keys: '3[412960.0.150120117][412960.0.150120116][412960.0.150120118]'
  Description: '开始时间'
  IsReadOnly: true
  ValueType: DateTime
}
_Main/BL/Type_MappingVersionControl/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[412960.0.150120107][412960.0.150120106][412960.0.150120108]'
  Description: '库存点编码'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/Attribute_User.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute User
{
  #keys: '3[412960.0.150120137][412960.0.150120136][412960.0.150120138]'
  Description: '用户名称'
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/Attribute_VersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionID
{
  #keys: '3[412960.0.150120057][412960.0.150120056][412960.0.150120058]'
  Description: '数据库抽取的全量版本号'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/Attribute_VersionName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionName
{
  #keys: '3[412960.0.150124918][412960.0.150124917][412960.0.150124919]'
  Description: '版本名称'
  ValueType: String
}
_Main/BL/Type_MappingVersionControl/TypeIndex_TypeIndexVersionControl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: #root
TypeIndex TypeIndexVersionControl
{
  Attributes:
  [
    TypeIndexAttribute
    {
      ModelElement: VersionID
    }
    TypeIndexAttribute
    {
      ModelElement: EndTime
    }
    TypeIndexAttribute
    {
      ModelElement: StockingPointID
    }
    TypeIndexAttribute
    {
      ModelElement: StartTime
    }
    TypeIndexAttribute
    {
      ModelElement: ProductID
    }
  ]
}
_Main/BL/Type_MappingVersionControl/_ROOT_Type_MappingVersionControl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type MappingVersionControl
{
  #keys: '5[412960.0.150120040][412960.0.150120038][0.0.0][412960.0.150120039][412960.0.150120041]'
  BaseType: Object
  Description: '版本控制中间表'
  StructuredName: 'MappingVersionControls'
}
_Main/BL/Type_OrderLockLog/Attribute_CustomerName#23.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerName
{
  #keys: '3[412960.0.217504426][412960.0.217504425][412960.0.217504427]'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_End.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute End
{
  #keys: '3[412960.0.217504488][412960.0.217504487][412960.0.217504489]'
  ValueType: Date
}
_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[412960.0.217504467][412960.0.217504466][412960.0.217504468]'
  ValueType: Date
}
_Main/BL/Type_OrderLockLog/Attribute_IsLocked#2.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsLocked
{
  #keys: '3[412960.0.217504477][412960.0.217504476][412960.0.217504478]'
  ValueType: Boolean
}
_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastModify
{
  #keys: '3[412960.0.217504501][412960.0.217504500][412960.0.217504502]'
  Description: '最后修改人'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastModifyTime
{
  #keys: '3[412960.0.217504498][412960.0.217504497][412960.0.217504499]'
  Description: '最后操作时间'
  ValueType: DateTime
}
_Main/BL/Type_OrderLockLog/Attribute_Notes.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Notes
{
  #keys: '3[412960.0.250388891][412960.0.250388890][412960.0.250388892]'
  Description: '备注'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderID
{
  #keys: '3[412960.0.217504386][412960.0.217504385][412960.0.217504387]'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_Price.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Price
{
  #keys: '3[412960.0.217504457][412960.0.217504456][412960.0.217504458]'
  ValueType: Real
}
_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[412960.0.217504396][412960.0.217504395][412960.0.217504397]'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[412960.0.217504437][412960.0.217504436][412960.0.217504438]'
  ValueType: Real
}
_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SalesSegmentName
{
  #keys: '3[412960.0.217504406][412960.0.217504405][412960.0.217504407]'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[412960.0.217504416][412960.0.217504415][412960.0.217504417]'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UnitOfMeasureName
{
  #keys: '3[412960.0.217504447][412960.0.217504446][412960.0.217504448]'
  ValueType: String
}
_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: LastModify
}
_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OrderLockLog
{
  #keys: '5[412960.0.217504330][412960.0.217504328][0.0.0][412960.0.217504329][412960.0.217504331]'
  BaseType: Object
  Description: '订单锁定操作日志'
  StructuredName: 'OrderLockLogs'
}
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
@@ -43,26 +43,26 @@
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    
    traverse ( toExportList, Elements, toExport ) {
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "物料编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "物料名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsPanelMaterial(), "面板物料标识" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "交货日期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.PRSuggestionDate() = Date::MinDate(), "", dateToString.Convert( toExport.PRSuggestionDate() ) ), "PR建议日期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "交货数量" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP计算版本号" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "业务类型" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "组织编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsLongLeadItem(), "是否长周期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsGenericMaterial(), "是否专用料" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MaterialMRPType(), "物料计划策略" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.LeadTime(), "提前期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "供应商代码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "供应商名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "收货库存点" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "计量单位" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR数据发送状态" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "发送时间" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendBy(), "发送人" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "物料编码" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "物料名称" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsPanelMaterial(), "面板物料标识" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "交货日期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.PRSuggestionDate() = Date::MinDate(), "", dateToString.Convert( toExport.PRSuggestionDate() ) ), "PR建议日期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "交货数量" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP计算版本号" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "业务类型" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "组织编码" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsLongLeadItem(), "是否长周期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsGenericMaterial(), "是否专用料" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MaterialMRPType(), "物料计划策略" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.LeadTime(), "提前期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "供应商代码" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "供应商名称" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "收货库存点" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "计量单位" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR数据发送状态" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "发送时间" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendBy(), "发送人" );
    }
    
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
_Main/BL/Type_PRData/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GeneratesTheSpecifiedXMLColumn (
  XMLDOMDocument xmlDOMDocument,
  XMLDOMElement tableElement,
  String value,
  String columnName
)
{
  TextBody:
  [*
    columnElements := tableElement.GetElementsByTagName( "column" );
    traverse ( columnElements, Elements, ce ) {
      nameElement := ce.GetElementByTagName( "name", 0 );
      if ( nameElement.TextContent() = columnName ) {
        cell := xmlDOMDocument.CreateElement( "cell" );
        cell.SetAttribute( "value", value );
        ce.AppendChild( cell );
      }
    }
  *]
}
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
@@ -40,23 +40,23 @@
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    
    traverse ( toExportList, Elements, toExport ) {
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "零件号" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "零件名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "交货日期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "需求数量" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP计算版本号" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "事业部" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "组织编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "供应商代码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "供应商名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "收货库存点" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "计量单位" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR数据发送状态" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "发送时间" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReleaseBy(), "发送人" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveTimeString(), "ERP接收时间" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveStatus(), "ERP接收状态" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveError(), "错误信息描述" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "零件号" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "零件名称" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "交货日期" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "需求数量" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP计算版本号" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "事业部" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "组织编码" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "供应商代码" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "供应商名称" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "收货库存点" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "计量单位" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR数据发送状态" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "发送时间" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReleaseBy(), "发送人" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveTimeString(), "ERP接收时间" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveStatus(), "ERP接收状态" );
      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveError(), "错误信息描述" );
    }
    
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
_Main/BL/Type_PRHistoryData/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GeneratesTheSpecifiedXMLColumn (
  XMLDOMDocument xmlDOMDocument,
  XMLDOMElement tableElement,
  String value,
  String columnName
)
{
  TextBody:
  [*
    columnElements := tableElement.GetElementsByTagName( "column" );
    traverse ( columnElements, Elements, ce ) {
      nameElement := ce.GetElementByTagName( "name", 0 );
      if ( nameElement.TextContent() = columnName ) {
        cell := xmlDOMDocument.CreateElement( "cell" );
        cell.SetAttribute( "value", value );
        ce.AppendChild( cell );
      }
    }
  *]
}
_Main/BL/Type_PriorityFactor/Attribute_coefficient.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
Attribute coefficient
Attribute Coefficient
{
  #keys: '3[414382.0.456067070][414382.0.456067069][414382.0.456067071]'
  Description: '优先因子系数'
_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetCoeffcientByName (
  MacroPlan owner,
  String businessType,
  String name
) as Real
{
  TextBody:
  [*
    // NBoTk Sep-21-2023 (created)
    data := selectobject( owner,PriorityFactor,p,
                          p.BusinessType() = businessType and p.Name() = name
                          )
    return data.Coefficient();
  *]
}
_Main/BL/Type_PriorityFactor/StaticMethod_GetDataByBusinessType.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDataByBusinessType (
  GlobalOTDTable owner,
  MacroPlan owner,
  String businessType
) as owning PriorityFactors
{
@@ -12,7 +12,6 @@
    list := selectset( owner,PriorityFactor,p,
                       p.BusinessType() = businessType
                       );
    info("list size :"  + [String]list.Size());
    return &list;
  *]
}
_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetNameList (
  MacroPlan owner,
  String businessType
) as String
{
  TextBody:
  [*
    // NBoTk Sep-21-2023 (created)
    value := "";
    strList := selectuniquevalues(  owner,PriorityFactor,p,
                                   p.BusinessType() = businessType,
                                    p.Name()
                                   );
    if( not isnull( strList )  )
    {
       value := strList.Concatenate( ";" );
    }
    return value;
  *]
}
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitData (
  GlobalOTDTable owner
  MacroPlan owner
)
{
  TextBody:
_Main/BL/Type_PriorityFactorDetails/Attribute_GradeDesc.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute GradeDesc
{
  #keys: '3[414382.0.475830209][414382.0.475830208][414382.0.475830210]'
  ValueType: String
}
_Main/BL/Type_PriorityFactorDetails/Attribute_GroupName.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PriorityFactorDetails/Attribute_coefficient.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PriorityFactorDetails/Function_CalcIsBusinessType.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PriorityFactorDetails/StaticMethod_ClearTestData.qbl
@@ -1,17 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ClearTestData (
  GlobalOTDTable owner
  MacroPlan owner
)
{
  TextBody:
  [*
    // NBoTk Sep-18-2023 (created)
    
    info(1111 );
    owner.PriorityFactorDetails(relflush );
    info(2222);
    owner.PriorityFactor(relflush );
    info(3333 );
  *]
}
_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateTestData (
  GlobalOTDTable owner
  MacroPlan owner
)
{
  TextBody:
_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByBusinessType.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PriorityFactorDetails/StaticMethod_GetDataByPriorityFactor.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDataByPriorityFactor (
  PriorityFactor priorityFactor,
  MacroPlan owner
) as owning PriorityFactorDetailss
{
  TextBody:
  [*
    // NBoTk Sep-18-2023 (created)
    list := selectset( owner,PriorityFactor.PriorityFactorDetails,p,
                       p.BusinessType() = priorityFactor.BusinessType() and priorityFactor.Name() = p.PriorityFactorName()
                       );
    return &list;
  *]
}
_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitData (
  GlobalOTDTable owner
  MacroPlan owner
)
{
  TextBody:
@@ -12,23 +12,23 @@
    
    
    
    traverse( owner, PriorityFactor , p)
    traverse( owner, PriorityFactor , p)
    {
        isBusinessType := false;
        if( p.BusinessType() <> "集团面板" )
        {
            isBusinessType := true;
            isBusinessType := true;
        }
      
        owner.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
                                     IsRange := false,GradingName := "大盈",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
        owner.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
                                     IsRange := false,GradingName := "小盈",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
        owner.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
                                     IsRange := false,GradingName := "持平",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
        owner.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
                                     IsRange := false,GradingName := "小亏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
        owner.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
                                     IsRange := false,GradingName := "大亏",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
    }
  *]
_Main/BL/Type_PriorityPolicy/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414382.0.488041999][414382.0.488041998][414382.0.488042000]'
  ValueType: String
}
_Main/BL/Type_PriorityPolicy/Attribute_CalculateValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CalculateValue
{
  #keys: '3[414382.0.488041974][414382.0.488041973][414382.0.488041975]'
  ValueType: String
}
_Main/BL/Type_PriorityPolicy/Attribute_Desc.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Desc
{
  #keys: '3[414382.0.488042011][414382.0.488042010][414382.0.488042012]'
  ValueType: String
}
_Main/BL/Type_PriorityPolicy/Attribute_Formula.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Formula
{
  #keys: '3[414382.0.488041964][414382.0.488041963][414382.0.488041965]'
  ValueType: String
}
_Main/BL/Type_PriorityPolicy/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[414382.0.488041954][414382.0.488041953][414382.0.488041955]'
  ValueType: String
}
_Main/BL/Type_PriorityPolicy/StaticMethod_GetDataByBusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDataByBusinessType (
  MacroPlan owner,
  String businessType
) as owning PriorityPolicys
{
  TextBody:
  [*
    // NBoTk Sep-20-2023 (created)
    list :=  selectset( owner,PriorityPolicy,p,
                        p.BusinessType() = businessType
                        );
    return &list;
  *]
}
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: #root
StaticMethod RollBackStr (
  MacroPlan owner,
  String businessType,
  String stringData
) as String
{
  TextBody:
  [*
    // NBoTk Sep-21-2023 (created)
    value := stringData;
    symbolList := construct( structured[String]);
    symbolList.Add( "+")
    symbolList.Add( "-")
    symbolList.Add( "x")
    symbolList.Add( "/")
    symbolList.Add( "(")
    symbolList.Add( ")")
    traverse( symbolList,Elements,e)
    {
        if( stringData.EndsWith( e ))
        {
             end := stringData.Length() - e.Length();
             value := stringData.SubString( 0,end);
        }
    }
    nameList := PriorityFactor::GetDataByBusinessType(  owner,businessType);
    traverse( nameList,Elements,e)
    {
        if( stringData.EndsWith( e.Name()))
        {
             end := stringData.Length() - e.Name().Length();
             value := stringData.SubString( 0,end);
        }
    }
    return value;
  *]
}
_Main/BL/Type_PriorityPolicy/_ROOT_Type_PriorityPolicy.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type PriorityPolicy
{
  #keys: '5[414382.0.488041937][414382.0.488041935][0.0.0][414382.0.488041936][414382.0.488041938]'
  BaseType: Object
  Description: '优先级策略'
  StructuredName: 'PriorityPolicys'
}
_Main/BL/Type_PriorityResult/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414382.0.504275379][414382.0.504275378][414382.0.504275380]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/Attribute_Customer.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Customer
{
  #keys: '3[414382.0.504275376][414382.0.504275375][414382.0.504275377]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/Attribute_CustomerID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerID
{
  #keys: '3[414382.0.504275385][414382.0.504275384][414382.0.504275386]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/Attribute_DemandDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute DemandDate
{
  #keys: '3[414382.0.504275370][414382.0.504275369][414382.0.504275371]'
  ValueType: Date
}
_Main/BL/Type_PriorityResult/Attribute_PriorityResultScore.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityResultScore
{
  #keys: '3[414382.0.504275396][414382.0.504275395][414382.0.504275397]'
  ValueType: Real
}
_Main/BL/Type_PriorityResult/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[414382.0.504275367][414382.0.504275366][414382.0.504275368]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[414382.0.504275361][414382.0.504275360][414382.0.504275362]'
  ValueType: Real
}
_Main/BL/Type_PriorityResult/Attribute_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SalesSegmentName
{
  #keys: '3[414382.0.504275382][414382.0.504275381][414382.0.504275383]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[414382.0.504275364][414382.0.504275363][414382.0.504275365]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/Attribute_UnitOfMeasureName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UnitOfMeasureName
{
  #keys: '3[414382.0.504275373][414382.0.504275372][414382.0.504275374]'
  ValueType: String
}
_Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl
copy from _Main/BL/Type_CapacityAndSaleBudgeChartRow/DefaultValue_BusinessType.qbl copy to _Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl
_Main/BL/Type_PriorityResult/DefaultValue_Customer.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Customer
}
_Main/BL/Type_PriorityResult/DefaultValue_CustomerID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: CustomerID
}
_Main/BL/Type_PriorityResult/DefaultValue_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ProductID
}
_Main/BL/Type_PriorityResult/DefaultValue_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SalesSegmentName
}
_Main/BL/Type_PriorityResult/DefaultValue_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: StockingPointID
}
_Main/BL/Type_PriorityResult/DefaultValue_UnitOfMeasureName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: UnitOfMeasureName
}
_Main/BL/Type_PriorityResult/Function_CalcPriorityResultScore.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
Function CalcPriorityResultScore
{
  TextBody:
  [*
    // NBoTk Sep-21-2023 (created)
    businessTypeScore := max( this,PriorityResultBusinessTypeDetail,p,
                              p.PriorityTotalScore()
                              );
    groupScore := max( this,PriorityResultGroupDetail,p,
                       p.PriorityTotalScore()
                       );
    value := maxvalue( businessTypeScore,groupScore);
    this.PriorityResultScore( value );
  *]
}
_Main/BL/Type_PriorityResult/_ROOT_Type_PriorityResult.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type PriorityResult
{
  #keys: '5[414382.0.504275125][414382.0.504275123][0.0.0][414382.0.504275124][414382.0.504275126]'
  BaseType: Object
  StructuredName: 'PriorityResults'
}
_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_CheckCanTopping.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CheckCanTopping (
  PriorityResultBusinessTypeDetail businessTypeDetails
) as Boolean
{
  TextBody:
  [*
    // NBoTk Sep-21-2023 (created)
    groupDetails := selectset( businessTypeDetails.PriorityResult(),PriorityResultGroupDetail,p,true);
    return isnull( groupDetails);
  *]
}
_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod EmergencyTopping (
  MacroPlan owner,
  PriorityResultBusinessTypeDetail businessTypeDetails
)
{
  TextBody:
  [*
    // NBoTk Sep-21-2023 (created)
    maxPriorityResult := max( owner,PriorityResult,p,
                              p.PriorityResultScore()
                              );
    topScore := maxPriorityResult + 1;
    businessTypeDetails.PriorityTotalScore(topScore);
  *]
}
_Main/BL/Type_PriorityResultBusinessTypeDetail/_ROOT_Type_PriorityResultBusinessTypeDetail.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
TypeSpecialization PriorityResultBusinessTypeDetail
{
  #keys: '2[414382.0.504275146][414382.0.504275145]'
  Description: '事业部优先级结果明细'
  Parent: PriorityResultDetail
  StructuredName: 'PriorityResultBusinessTypeDetails'
}
_Main/BL/Type_PriorityResultDetail/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414382.0.504275420][414382.0.504275419][414382.0.504275421]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_Customer.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Customer
{
  #keys: '3[414382.0.504275411][414382.0.504275410][414382.0.504275412]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_CustomerID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerID
{
  #keys: '3[414382.0.504275429][414382.0.504275428][414382.0.504275430]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_DemandDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute DemandDate
{
  #keys: '3[414382.0.504275423][414382.0.504275422][414382.0.504275424]'
  ValueType: Date
}
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorGradingName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityFactorGradingName
{
  #keys: '3[414382.0.504275468][414382.0.504275467][414382.0.504275469]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityFactorName
{
  #keys: '3[414382.0.504275458][414382.0.504275457][414382.0.504275459]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityPolicyName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityPolicyName
{
  #keys: '3[414382.0.504275439][414382.0.504275438][414382.0.504275440]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityResultScore.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityResultScore
{
  #keys: '3[414382.0.504275426][414382.0.504275425][414382.0.504275427]'
  ValueType: Real
}
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityTotalScore.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityTotalScore
{
  #keys: '3[414382.0.504275485][414382.0.504275484][414382.0.504275486]'
  ValueType: Real
}
_Main/BL/Type_PriorityResultDetail/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[414382.0.504275414][414382.0.504275413][414382.0.504275415]'
  ValueType: Real
}
_Main/BL/Type_PriorityResultDetail/Attribute_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SalesSegmentName
{
  #keys: '3[414382.0.504275435][414382.0.504275434][414382.0.504275436]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[414382.0.504275417][414382.0.504275416][414382.0.504275418]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/Attribute_UnitOfMeasureName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UnitOfMeasureName
{
  #keys: '3[414382.0.504275432][414382.0.504275431][414382.0.504275433]'
  ValueType: String
}
_Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl
copy from _Main/BL/Type_CapacityAndSaleBudgeChartRow/DefaultValue_BusinessType.qbl copy to _Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl
_Main/BL/Type_PriorityResultDetail/DefaultValue_Customer.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Customer
}
_Main/BL/Type_PriorityResultDetail/DefaultValue_CustomerID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: CustomerID
}
_Main/BL/Type_PriorityResultDetail/DefaultValue_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SalesSegmentName
}
_Main/BL/Type_PriorityResultDetail/DefaultValue_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: StockingPointID
}
_Main/BL/Type_PriorityResultDetail/DefaultValue_UnitOfMeasureName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: UnitOfMeasureName
}
_Main/BL/Type_PriorityResultDetail/_ROOT_Type_PriorityResultDetail.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type PriorityResultDetail
{
  #keys: '5[414382.0.504275135][414382.0.504275133][0.0.0][414382.0.504275134][414382.0.504275136]'
  BaseType: Object
  StructuredName: 'PriorityResultDetails'
}
_Main/BL/Type_PriorityResultGroupDetail/_ROOT_Type_PriorityResultGroupDetail.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
TypeSpecialization PriorityResultGroupDetail
{
  #keys: '2[414382.0.504275155][414382.0.504275154]'
  Description: '集团优先级结果明细'
  Parent: PriorityResultDetail
  StructuredName: 'PriorityResultGroupDetails'
}
_Main/BL/Type_Scenario/Attribute_IsCreateNewVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsCreateNewVersion
{
  #keys: '3[412960.0.155630021][412960.0.155630020][412960.0.155630022]'
  Description: '是否创建从集团SOP开始的全新版本'
  ValueType: Boolean
}
_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsOrderLocked
{
  #keys: '3[412960.0.212420059][412960.0.212420058][412960.0.212420060]'
  Description: '订单锁定的是否锁定筛选条件'
  ValueType: String
}
_Main/BL/Type_Scenario/Attribute_VersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionID
{
  #keys: '3[412960.0.150120035][412960.0.150120034][412960.0.150120036]'
  Description: '当前场景对应的版本号,于创建版本时确定'
  ValueType: String
}
_Main/BL/Type_Scenario/DefaultValue_VersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: VersionID
}
_Main/BL/Type_Scenario/Method_SetReleased.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
Quintiq file version 2.0
#parent: #root
Method SetReleased #extension
{
}
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart#95.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,301 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgeChart (
  MacroPlans macroPlans,
  Boolean isCapacity,
  String groupBy,
  String byBusinessTypeOrByOrgCode,
  CapacityAndSaleBudgeFilterBusinessTypes businessTypes,
  CapacityAndSaleBudgeFilterPlaceOfProductionOfArrays placeOfProductionOfArrays,
  CapacityAndSaleBudgeFilterYears years,
  CapacityAndSaleBudgeFilterMonths months,
  MPSync mpSync,
  GlobalOTDTable otdTable,
  MacroPlan mappingParent
)
{
  Description: '按入参处理数据,产生需要的CapacityAndSaleBudgeChartElement'
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    // true, false
    info( isCapacity );
    // æœˆ;季度;半年;å¹´
    info( groupBy );
    // é¢æ¿åŸºåœ°;事业部
    info( byBusinessTypeOrByOrgCode );
    traverse( businessTypes, Elements, businessType ) {
      info( "businessType : " + businessType.BusinessType() );
    }
    traverse( placeOfProductionOfArrays, Elements, placeOfProductionOfArray ) {
      info( "placeOfProductionOfArray : " + placeOfProductionOfArray.PlaceOfProductionOfArray() );
    }
    traverse( macroPlans, Elements, macroPlan ) {
      info( "macroPlan : " + macroPlan.ScenarioName() );
    }
    // å¹´ä»½ä¸é€‰æ—¶å…¨é€‰
    if( years.Size() = 0 ) {
      years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, true, item.YearNo() );
    }
    traverse( years, Elements, year ) {
      info( "yearNo : " + [String]year.YearNo() );
    }
    // æœˆä»½ä¸é€‰æ—¶å…¨é€‰
    if( months.Size() = 0 ) {
      months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, true, item.MonthNo() );
    }
    traverse( months, Elements, month ) {
      info( "monthNo : " + [String]month.MonthNo() );
    }
    // ====清理旧数据====
    this.CapacityAndSaleBudgeChartRow( relflush );
    this.CapacityAndSaleBudgeChartElement( relflush );
    // ====按面板基地和事业部对产品进行筛选分组====
    historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
    if( businessTypes.Size() > 0 ) {
      businessTypeStrings := selectuniquevalues( businessTypes, Elements, item, true, item.BusinessType() );
      historyData := selectset( historyData, Elements, item, businessTypeStrings.Find( item.BusinessType() ) > -1 );
    }
    if( placeOfProductionOfArrays.Size() > 0 ) {
      placeOfProductionOfArrayStrings := selectuniquevalues( placeOfProductionOfArrays, Elements, item, true, item.PlaceOfProductionOfArray() );
      historyData := selectset( historyData, Elements, item, placeOfProductionOfArrayStrings.Find( item.PlaceOfProductionOfArray() ) > -1 );
    }
    //info( "historyData : " + [String]historyData.Size() );
    traverse( historyData, Elements, item ) {
      row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, item.BusinessType(), item.PlaceOfProductionOfArray() );
      // è®°å½•每行包含哪些product
      CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, item.ProductCode() );
    }
    rows := selectset( this, CapacityAndSaleBudgeChartRow, item, true );
    //info( "rows : " + [String]rows.Size() );
    placeOfProductionOfArrayList := selectuniquevalues( historyData, Elements, item, item.PlaceOfProductionOfArray() );
    businessTypeList := selectuniquevalues( historyData, Elements, item, item.BusinessType() );
    // ç”Ÿæˆå›¾è¡¨å…ƒç´ 
    traverse( years, Elements, year ) {
      info( "process year start : " + [String]year.YearNo() );
      if( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "å¹´" ) {
        // ç›®æ ‡
        traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
          this.CapacityAndSaleBudgeChartElement( relnew,
                                                 TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-目标",
                                                 BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                 Quantity := ifexpr( isCapacity,
                                                                     MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
                                                                     MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
                                                 );
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
                                                                       MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
                                                                       )
                                                   );
          }
        }
      }
      if ( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "半年" ) {
        for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) {
          traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
            productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-目标",
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
                                                                       MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
                                                   );
            // S&OP
            traverse( macroPlans, Elements, macroPlan ) {
              this.CapacityAndSaleBudgeChartElement( relnew,
                                                     TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-" + macroPlan.ScenarioName(),
                                                     BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                     Quantity := ifexpr( isCapacity,
                                                                         Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
                                                                         MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
                                                                         )
                                                     );
            }
          }
        }
      }
      if ( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "季度" ) {
        for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
          traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
            productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
      //      info( "productCodeList : " + [String]productCodeList.Size() );
      //      info( "MappingCapacityAndSaleBudge::GetSheetBySeason : " + [String]MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) );
      //      info( "seasonNo : " + [String]seasonNo );
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "季度-目标",
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
                                                                       MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
                                                   );
      //      info( "productCodeList : " + [String]productCodeList.Size() );
            // S&OP
            traverse( macroPlans, Elements, macroPlan ) {
              this.CapacityAndSaleBudgeChartElement( relnew,
                                                     TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "季度-" + macroPlan.ScenarioName(),
                                                     BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                     Quantity := ifexpr( isCapacity,
                                                                         Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
                                                                         MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
                                                                         )
                                                     );
            }
          }
        }
      }
      if ( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "月" ) {
        traverse( months, Elements, month ) {
          info( "process month start : " + [String]month.MonthNo() );
          monthNoString := ifexpr( month.MonthNo() <= 9, "0" + [String]month.MonthNo(), [String]month.MonthNo() );
          traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
            productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "月-目标",
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
                                                                       MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
                                                   );
            // S&OP
            traverse( macroPlans, Elements, macroPlan ) {
              this.CapacityAndSaleBudgeChartElement( relnew,
                                                     TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "月-" + macroPlan.ScenarioName(),
                                                     BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                     Quantity := ifexpr( isCapacity,
                                                                         Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
                                                                         MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
                                                                         )
                                                     );
            }
          }
          info( "process month end : " + [String]month.MonthNo() );
        }
      }
      if( byBusinessTypeOrByOrgCode = "事业部" and groupBy = "å¹´" ) {
        // ç›®æ ‡
        traverse( businessTypeList, Elements, businessType ) {
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
          this.CapacityAndSaleBudgeChartElement( relnew,
                                                 TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-目标",
                                                 BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                 Quantity := ifexpr( isCapacity,
                                                                     MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
                                                                     MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
                                                 );
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
                                                                       MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
                                                                       )
                                                   );
          }
        }
      }
      if ( byBusinessTypeOrByOrgCode = "事业部" and groupBy = "半年" ) {
        for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) {
          traverse( businessTypeList, Elements, businessType ) {
            productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-目标",
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
                                                                       MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
                                                   );
            // S&OP
            traverse( macroPlans, Elements, macroPlan ) {
              this.CapacityAndSaleBudgeChartElement( relnew,
                                                     TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-" + macroPlan.ScenarioName(),
                                                     BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                     Quantity := ifexpr( isCapacity,
                                                                         Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
                                                                         MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
                                                                         )
                                                     );
            }
          }
        }
      }
      if ( byBusinessTypeOrByOrgCode = "事业部" and groupBy = "季度" ) {
        for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
          info( "process season start : " + [String]seasonNo );
          traverse( businessTypeList, Elements, businessType ) {
            productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "季度-目标",
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
                                                                       MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
                                                   );
            // S&OP
            traverse( macroPlans, Elements, macroPlan ) {
              this.CapacityAndSaleBudgeChartElement( relnew,
                                                     TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "季度-" + macroPlan.ScenarioName(),
                                                     BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                     Quantity := ifexpr( isCapacity,
                                                                         Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
                                                                         MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
                                                                         )
                                                     );
            }
          }
          info( "process season end : " + [String]seasonNo );
        }
      }
      if ( byBusinessTypeOrByOrgCode = "事业部" and groupBy = "月" ) {
        traverse( months, Elements, month ) {
          info( "process month start : " + [String]month.MonthNo() );
          monthNoString := ifexpr( month.MonthNo() <= 9, "0" + [String]month.MonthNo(), [String]month.MonthNo() );
          traverse( businessTypeList, Elements, businessType ) {
            productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
            this.CapacityAndSaleBudgeChartElement( relnew,
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "月-目标",
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
                                                                       MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
                                                   );
            // S&OP
            traverse( macroPlans, Elements, macroPlan ) {
              this.CapacityAndSaleBudgeChartElement( relnew,
                                                     TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "月-" + macroPlan.ScenarioName(),
                                                     BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                     Quantity := ifexpr( isCapacity,
                                                                         Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
                                                                         MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
                                                                         )
                                                     );
            }
          }
          info( "process month end : " + [String]month.MonthNo() );
        }
      }
      info( "process year end : " + [String]year.YearNo() )
    }
    //info( "CapacityAndSaleBudgeChartElement : " + [String]selectset( this, CapacityAndSaleBudgeChartElement, item, true ).Size() );
    //traverse( this, CapacityAndSaleBudgeChartRow, row ) {
    //  info( "==↓==" );
    //  info( row.BusinessType() );
    //  info( row.PlaceOfProductionOfArray() );
    //  elements := selectset( row, CapacityAndSaleBudgeChartRowProduct, cell, true );
    //  info( elements.Size() );
    //  info( row.GetProductCodes().Concatenate( " | " ) );
    //  info( "==↑==" );
    //}
  *]
}
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl
@@ -13,7 +13,11 @@
  MacroPlan mappingParent
)
{
  Description: '按入参处理数据,产生需要的CapacityAndSaleBudgeChartElement'
  Description:
  [*
    æŒ‰å…¥å‚处理数据,产生需要的CapacityAndSaleBudgeChartElement
    ï¼ï¼ï¼ï¼åºŸå¼ƒï¼ï¼ï¼ï¼
  *]
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
@@ -32,19 +36,21 @@
    this.CapacityAndSaleBudgeChartElement( relflush );
    
    // ====按面板基地和事业部对产品进行筛选分组====
    historyData := selectset( otdTable, CapacityAndSaleBudge, item, true );
    historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
    if( placeOfProductionOfArrayChosen <> "" ) {
      historyData := selectset( historyData, Elements, item, item.PlaceOfProductionOfArray() = placeOfProductionOfArrayChosen );
    }
    if( businessTypeChosen <> "" ) {
      historyData := selectset( historyData, Elements, item, item.BusinessType() = businessTypeChosen );
    }
    //info( "historyData : " + [String]historyData.Size() );
    traverse( historyData, Elements, item ) {
      row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, item.BusinessType(), item.PlaceOfProductionOfArray() );
      // è®°å½•每行包含哪些product
      CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, item.ProductCode() );
    }
    rows := selectset( this, CapacityAndSaleBudgeChartRow, item, true );
    //info( "rows : " + [String]rows.Size() );
    placeOfProductionOfArrayList := selectuniquevalues( historyData, Elements, item, item.PlaceOfProductionOfArray() );
    businessTypeList := selectuniquevalues( historyData, Elements, item, item.BusinessType() );
    // ç”Ÿæˆå›¾è¡¨å…ƒç´ 
@@ -54,18 +60,20 @@
        productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
        this.CapacityAndSaleBudgeChartElement( relnew, 
                                               TimeStringAndScenarioName := [String]year + "å¹´-目标",
                                               BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                               BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                               Quantity := ifexpr( isCapacity,
                                                                   CapacityAndSaleBudge::GetSheetByYear( productCodeList, otdTable, [Number]year ),
                                                                   MappingForecast::GetQuantityByYear( productCodeList, mappingParent, [Number]year ) )
                                                                   MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ),
                                                                   // todo QID 23
                                                                   MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) )
                                               );  
          // S&OP
        // S&OP
        traverse( macroPlans, Elements, macroPlan ) {
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-" + macroPlan.ScenarioName(),
                                                 BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                 BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                 Quantity := ifexpr( isCapacity,
                                                                     Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ),
                                                                     // todo
                                                                     0.0 )
                                                 ); 
        }                    
@@ -77,16 +85,16 @@
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-目标",
                                                 BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                 BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                 Quantity := ifexpr( isCapacity,
                                                                     CapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, otdTable, [Number]year, halfNo ),
                                                                     MappingForecast::GetQuantityByHalfYear( productCodeList, mappingParent, [Number]year, halfNo ) )
                                                                     MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ),
                                                                     MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) )
                                                 );  
            // S&OP
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ),
                                                                       0.0 )
@@ -99,18 +107,22 @@
      for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) {
        traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
    //      info( "productCodeList : " + [String]productCodeList.Size() );
    //      info( "MappingCapacityAndSaleBudge::GetSheetBySeason : " + [String]MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) );
    //      info( "seasonNo : " + [String]seasonNo );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "季度-目标",
                                                 BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                 BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                 Quantity := ifexpr( isCapacity,
                                                                     CapacityAndSaleBudge::GetSheetBySeason( productCodeList, otdTable, [Number]year, seasonNo ),
                                                                     MappingForecast::GetQuantityBySeason( productCodeList, mappingParent, [Number]year, seasonNo ) )
                                                                     MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ),
                                                                     MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) )
                                                 );  
            // S&OP
    //      info( "productCodeList : " + [String]productCodeList.Size() );
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "季度-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ),
                                                                       0.0 )
@@ -121,20 +133,21 @@
    }
    if ( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "月" ) {
      for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) {
        monthNoString := ifexpr( monthNo <= 9, "0" + [String]monthNo, [String]monthNo );
        traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]monthNo + "月-目标",
                                                 BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                 TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "月-目标",
                                                 BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                 Quantity := ifexpr( isCapacity,
                                                                     CapacityAndSaleBudge::GetSheetByMonth( productCodeList, otdTable, [Number]year, monthNo ),
                                                                     MappingForecast::GetQuantityByMonth( productCodeList, mappingParent, [Number]year, monthNo ) )
                                                                     MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ),
                                                                     MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) )
                                                 );  
            // S&OP
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]monthNo + "月-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrOrgCode := placeOfProductionOfArray,
                                                   TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "月-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ),
                                                                       0.0 )
@@ -149,16 +162,16 @@
        productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
        this.CapacityAndSaleBudgeChartElement( relnew, 
                                               TimeStringAndScenarioName := [String]year + "å¹´-目标",
                                               BusinessTypeOrOrgCode := businessType,
                                               BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                               Quantity := ifexpr( isCapacity,
                                                                   CapacityAndSaleBudge::GetSheetByYear( productCodeList, otdTable, [Number]year ),
                                                                   MappingForecast::GetQuantityByYear( productCodeList, mappingParent, [Number]year ) )
                                                                   MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ),
                                                                   MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) )
                                               );  
          // S&OP
        // S&OP
        traverse( macroPlans, Elements, macroPlan ) {
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-" + macroPlan.ScenarioName(),
                                                 BusinessTypeOrOrgCode := businessType,
                                                 BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                 Quantity := ifexpr( isCapacity,
                                                                     Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ),
                                                                     0.0 )
@@ -172,16 +185,16 @@
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-目标",
                                                 BusinessTypeOrOrgCode := businessType,
                                                 BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                 Quantity := ifexpr( isCapacity,
                                                                     CapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, otdTable, [Number]year, halfNo ),
                                                                     MappingForecast::GetQuantityByHalfYear( productCodeList, mappingParent, [Number]year, halfNo ) )
                                                                     MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ),
                                                                     MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) )
                                                 );  
            // S&OP
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "上", "下" ) + "半年-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrOrgCode := businessType,
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ),
                                                                       0.0 )
@@ -196,16 +209,16 @@
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "季度-目标",
                                                 BusinessTypeOrOrgCode := businessType,
                                                 BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                 Quantity := ifexpr( isCapacity,
                                                                     CapacityAndSaleBudge::GetSheetBySeason( productCodeList, otdTable, [Number]year, seasonNo ),
                                                                     MappingForecast::GetQuantityBySeason( productCodeList, mappingParent, [Number]year, seasonNo ) )
                                                                     MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ),
                                                                     MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) )
                                                 );  
            // S&OP
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "季度-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrOrgCode := businessType,
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ),
                                                                       0.0 )
@@ -216,20 +229,21 @@
    }
    if ( byBusinessTypeOrByOrgCode = "事业部" and groupBy = "月" ) {
      for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) {
        monthNoString := ifexpr( monthNo <= 9, "0" + [String]monthNo, [String]monthNo );
        traverse( businessTypeList, Elements, businessType ) {
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]monthNo + "月-目标",
                                                 BusinessTypeOrOrgCode := businessType,
                                                 TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "月-目标",
                                                 BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                 Quantity := ifexpr( isCapacity,
                                                                     CapacityAndSaleBudge::GetSheetByMonth( productCodeList, otdTable, [Number]year, monthNo ),
                                                                     MappingForecast::GetQuantityByMonth( productCodeList, mappingParent, [Number]year, monthNo ) )
                                                                     MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ),
                                                                     MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) )
                                                 );  
            // S&OP
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]monthNo + "月-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrOrgCode := businessType,
                                                   TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "月-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessType,
                                                   Quantity := ifexpr( isCapacity,
                                                                       Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ),
                                                                       0.0 )
@@ -238,5 +252,15 @@
        }
      }
    }
    //info( "CapacityAndSaleBudgeChartElement : " + [String]selectset( this, CapacityAndSaleBudgeChartElement, item, true ).Size() );
    //traverse( this, CapacityAndSaleBudgeChartRow, row ) {
    //  info( "==↓==" );
    //  info( row.BusinessType() );
    //  info( row.PlaceOfProductionOfArray() );
    //  elements := selectset( row, CapacityAndSaleBudgeChartRowProduct, cell, true );
    //  info( elements.Size() );
    //  info( row.GetProductCodes().Concatenate( " | " ) );
    //  info( "==↑==" );
    //}
  *]
}
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl
@@ -37,71 +37,63 @@
    this.CapacityAndSaleBudgeCompareItemRow( relflush );
    this.CapacityAndSaleBudgeCompareItemColumn( relflush );
    // ====汇总所有出现的产品====
    productCodeList := construct( Strings );
    historyData := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
    info( "historyData : " + [String]historyData.Size() )
    traverse( historyData, Elements, one ) {
      productCodeList.Add( one.ProductCode() );
    }
    traverse( macroPlans, Elements, macroPlan ) {
      traverse( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip ) {
        productCodeList.Add( pispip.ProductInStockingPoint_MP().Product_MP().ID() );
      }
    }
    productCodeList := selectuniquevalues( productCodeList, Elements, item, item );
    info( "product count : " + [String]productCodeList.Size() )
    // ====根据产品查事业部和组织编码,然后按事业部和组织编码汇总====
    traverse( productCodeList, Elements, productCode ) {
      bom := MappingBOM::CreateTestData( mappingParent, [String](productCode.Length() mod 3), [String](productCode.Length() mod 4) );
    //  bom := select( mappingParent, MappingBOM, bom, bom.ProductCode() = productCode );
      if( not isnull( bom ) ) {
      productCode := one.ProductCode();
      MappingBOM::CreateTestData( mappingParent, "事业部" + [String](productCode.Length() mod 3), [String](productCode.Length() mod 4), productCode );
      boms := selectset( mappingParent, MappingBOM, bom, bom.ProductCode() = productCode );
      if( boms.Size() > 0 ) {
        bom := boms.First();
        businessType := bom.BusinessType();
        orgCode := bom.OrganCode();
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, orgCode );
        placeOfProductionOfArray := one.PlaceOfProductionOfArray();
        // ç›¸åŒé¢æ¿åŸºåœ°å’Œäº‹ä¸šéƒ¨çš„æ”¾ä¸€è¡Œ
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, placeOfProductionOfArray );
        // è®°å½•每行包含哪些product
        CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
      } else {
        info( "no boms for product : " + productCode );
      }
    }
    info( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
    // ====从左向右生成列头与内容====
    // äº‹ä¸šéƒ¨ï¼Œç»„织
    info( "dealing businessType and orgCode" )
    info( "dealing businessType and placeOfProductionOfArray" )
    columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "事业部" );
    columnOrgCode := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "组织编码" );
    columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板基地" );
    traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
      cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() );
      cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      cell := columnOrgCode.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.OrgCode() );
      cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() );
      cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    }
    // é¢æ¿åˆ†é…é‡ - å¹´åº¦é¢„ç®— (sheets)
    // æ ¼å¼ï¼š é¢æ¿åˆ†é…é‡ - å¹´ - æœˆï¼ˆ1-12 & total) - å¹´åº¦é¢„ç®—/scenarioName
    info( "dealing é¢æ¿åˆ†é…é‡" )
    if( CapacityAndSaleBudgeFilterItem::Contains( items, "面板分配量" ) ) {
      // åŽ†å²æ•°æ®
      traverse( months, Elements, month ) {
        columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + "-" + [String]month.MonthNo() + "月-年度预算" );
      traverse( years, Elements, year ) {
        // åŽ†å²æ•°æ®
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := MappingCapacityAndSaleBudge::GetSheetByMonth( row.GetProductCodes(), mpSync, DateTime::Now().Year(), month.MonthNo() );
            cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
          }
        }
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-total-年度预算" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cellReal := CapacityAndSaleBudge::GetSheetByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() );
          cellReal := Real::Random( 1.0, 999.0 );
          cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cellReal := MappingCapacityAndSaleBudge::GetSheetByYear( row.GetProductCodes(), mpSync, year.YearNo() );
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
      }
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-total-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        cellReal := CapacityAndSaleBudge::GetSheetByYear( row.GetProductCodes(), otdTable, DateTime::Now().Year() );
        cellReal := Real::Random( 1.0, 999.0 );
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
      // S&OP数据
      traverse( years, Elements, year ) {
        // S&OP数据
        traverse( macroPlans, Elements, macroPlan ) {
          traverse( months, Elements, month ) {
            columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, 
                                                                                    "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-" + macroPlan.ScenarioName() );
            traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
              cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() );
              cellReal := Real::Random( 1.0, 999.0 );
              cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
              cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
            }
@@ -110,7 +102,6 @@
                                                                                 "面板分配量-" + [String]year.YearNo() + "å¹´-total-" + macroPlan.ScenarioName() );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
            cellReal := Real::Random( 1.0, 999.0 );
            cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
          }
@@ -120,37 +111,36 @@
    // å¹´åº¦é”€å”®é¢
    info( "dealing é”€å”®é¢" )
    if( CapacityAndSaleBudgeFilterItem::Contains( items, "销售额" ) ) {
      // åŽ†å²æ•°æ®
      traverse( months, Elements, month ) {
        columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + "-" + [String]month.MonthNo() + "月-年度预算" );
      traverse( years, Elements, year ) {
        // åŽ†å²æ•°æ®
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := MappingCapacityAndSaleBudge::GetSaleByMonth( row.GetProductCodes(), mpSync, year.YearNo(), month.MonthNo() );
            cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
          }
        }
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-年度预算" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cellReal := CapacityAndSaleBudge::GetSaleByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() );
          cellReal := Real::Random( 1.0, 999.0 );
          cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cellReal := MappingCapacityAndSaleBudge::GetSaleByYear( row.GetProductCodes(), mpSync, year.YearNo() );
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
      }
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-total-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        cellReal := CapacityAndSaleBudge::GetSaleByYear( row.GetProductCodes(), otdTable, DateTime::Now().Year() );
        cellReal := Real::Random( 1.0, 999.0 );
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
      // S&OP数据
      traverse( years, Elements, year ) {
        // S&OP数据
        traverse( macroPlans, Elements, macroPlan ) {
          traverse( months, Elements, month ) {
            columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-" + macroPlan.ScenarioName() );
            traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
              cellReal := MappingForecast::GetBalanceByMonth( row.GetProductCodes(), mappingParent, year.YearNo(), month.MonthNo() );
              cellReal := MappingAnnualBudget::GetSaleByMonth( row.GetProductCodes(), mpSync, year.YearNo(), month.MonthNo() );
              cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
              cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
            }
          }
          columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-total-" + macroPlan.ScenarioName() );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := MappingForecast::GetBalanceByYear( row.GetProductCodes(), mappingParent, year.YearNo() );
            // QID 23
            cellReal := MappingAnnualBudget::GetSaleByYear( row.GetProductCodes(), mpSync, year.YearNo() );
            cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
          }
@@ -163,6 +153,8 @@
      // åŽ†å²æ•°æ®
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "大张盈利额-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        // todo
        // QID 23
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
@@ -181,6 +173,8 @@
      // åŽ†å²æ•°æ®
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        // todo
        // QID 23
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
@@ -188,6 +182,7 @@
      traverse( macroPlans, Elements, macroPlan ) {
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-" + [String]year.YearNo() + "å¹´" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          // todo
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
@@ -197,7 +192,7 @@
    // è®¾ç½®rowNo和columnNo
    info( "set rowNo and columnNo" );
    rowNo := 1;
    rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.BusinessType() + "_" + item.OrgCode() );
    rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.PlaceOfProductionOfArray() + "_" + item.BusinessType() );
    traverse( rowSorted, Elements, item ) {
      item.RowNo( rowNo );
      rowNo := rowNo + 1;
_Main/BL/Type_VersionControl/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[412960.0.134860020][412960.0.134860019][412960.0.134860021]'
  Description: '发出该版本的事业部,用于识别和校验是否所有事业部均有回传数据,目前取值范围为[ é›†å›¢(TM),手机事业部(SJ),IT事业部(IT),车载事业部(CZ),汽车电子事业部(QD),专显事业部(ZX),穿戴事业部(CD)] ã€‚'
  ValueType: String
}
_Main/BL/Type_VersionControl/Attribute_CalType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CalType
{
  #keys: '3[412960.0.136134246][412960.0.136134245][412960.0.136134247]'
  Description: '计算类型,用于标注为哪一步计算生成的该版本,如SOP_R1'
  ValueType: String
}
_Main/BL/Type_VersionControl/Attribute_CreateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CreateTime
{
  #keys: '3[412960.0.136134256][412960.0.136134255][412960.0.136134257]'
  Description: '创建该版本的时间'
  ValueType: DateTime
}
_Main/BL/Type_VersionControl/Attribute_IsReleased.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsReleased
{
  #keys: '3[412960.0.134830023][412960.0.134830022][412960.0.134830024]'
  ValueType: Boolean
}
_Main/BL/Type_VersionControl/Attribute_LongVersionName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LongVersionName
{
  #keys: '3[412960.0.136134236][412960.0.136134235][412960.0.136134237]'
  Description: '该版本号对应的版本名称,名称为用于前端展示的格式,如SCENE(2023-09-06 15:06:57)'
  ValueType: String
}
_Main/BL/Type_VersionControl/Attribute_Notes.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Notes
{
  #keys: '3[412960.0.136138830][412960.0.136138829][412960.0.136138831]'
  ValueType: String
}
_Main/BL/Type_VersionControl/Attribute_ReleaseTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ReleaseTime
{
  #keys: '3[412960.0.136134266][412960.0.136134265][412960.0.136134267]'
  Description: '发布该版本的时间'
  ValueType: DateTime
}
_Main/BL/Type_VersionControl/Attribute_SingleVersionName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SingleVersionName
{
  #keys: '3[412960.0.136138782][412960.0.136138781][412960.0.136138783]'
  Description: '单个版本的名字,即小版本名'
  ValueType: String
}
_Main/BL/Type_VersionControl/Attribute_User.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute User
{
  #keys: '3[412960.0.134830093][412960.0.134830092][412960.0.134830094]'
  Description: '创建该版本的用户'
  ValueType: String
}
_Main/BL/Type_VersionControl/Attribute_VersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionID
{
  #keys: '3[412960.0.134860030][412960.0.134860029][412960.0.134860031]'
  Description: '11位数的时间戳拼接而成的文本,仅包含数字部分'
  ValueType: String
}
_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CopyVersion (
  GlobalOTDTable owner,
  String businessname
) as VersionControl
{
  Description: '复制当前版本并更新版本号'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    createtime := DateTime::ActualTime();
    user := QuintiqUser::CurrentUser().Username();
    starttime := DateTime::Construct(1970,1,1,0,0,0);
    // Get the local scenario businesstype
    businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
    // Get the older version info
    oldversionid := "";
    oldversionname := "";
    latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
    copyversionid := latestversion.VersionID();
    info( copyversionid );
    if( copyversionid.FindString( "-", 0 ) > 0 ){
      latestversionlist := copyversionid.Tokenize( "-" );
      latestversionnamelist := latestversion.LongVersionName().Tokenize( "-" );
      for( i := 0; i < latestversionlist.Size() - 1; i := i + 1 ){
        if( oldversionid = "" ){
          oldversionid := latestversionlist.Element( i );
          oldversionname := latestversionnamelist.Element( i );
          }else{
            oldversionid := oldversionid + "-" + latestversionlist.Element( i );
            oldversionname := oldversionname + "-" + latestversionnamelist.Element( i );
            }
        info( oldversionid );
        }
      if( oldversionid <> "" ){
        oldversionid := oldversionid + "-";
        oldversionname := oldversionname + "-";
        }
      info( oldversionid );
      }
    // Calculate new version info
    additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
    newversionid := oldversionid + [String]additionversionid;
    newcaltype := latestversion.CalType();
    newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
    newversionname := oldversionname + newsingleversionname;
    info( newversionid );
    // Create new version
    newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
    return newversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_Create.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable owner,
  String businesstype,
  String caltype,
  DateTime createtime,
  String versionid,
  String versionname,
  String singleversionname,
  String user
) as VersionControl
{
  Description: '创建版本'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    newversion := owner.VersionControl( relnew,
                                        BusinessType := businesstype,
                                        CalType := caltype,
                                        CreateTime := createtime,
                                        VersionID := versionid,
                                        LongVersionName := versionname,
                                        SingleVersionName := singleversionname,
                                        User := user );
    return newversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateNewSceneVersion (
  GlobalOTDTable owner,
  String businessname
) as VersionControl
{
  Description: '随创建场景进行版本创建'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    createtime := DateTime::ActualTime();
    user := QuintiqUser::CurrentUser().Username();
    starttime := DateTime::Construct(1970,1,1,0,0,0);
    // Get the local scenario businesstype
    businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
    // Get the older version info
    oldversion_id := "";
    oldversion_name := "";
    oldcaltype := "";
    // Calculate new version info
    additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
    newversionid := oldversion_id + [String]additionversionid;
    newcaltype := GlobalOTDTable::GetNextCalType( oldcaltype, businesstype );
    newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
    newversionname := oldversion_name + newsingleversionname;
    // Create new version
    newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
    newversion.IsReleased( true );
    newversion.ReleaseTime( createtime );
    return newversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateNewVersion (
  GlobalOTDTable owner,
  String businessname
) as VersionControl
{
  Description: '在上一版本后添加新版本号并生成新版本'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    createtime := DateTime::ActualTime();
    user := QuintiqUser::CurrentUser().Username();
    starttime := DateTime::Construct(1970,1,1,0,0,0);
    // Get the local scenario businesstype
    businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
    // Get the older version info
    oldversion_id := "";
    oldversion_name := "";
    oldcaltype := "";
    latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
    if( isnull( latestversion ) and not businesstype = "TM" ){
      error( "Can't find last version in " + businesstype.AsQUILL() );
      }
    else if( not isnull( latestversion ) ){
      oldversion_id := latestversion.VersionID() + "-";
      oldversion_name := latestversion.LongVersionName() + "-";
      oldcaltype := latestversion.CalType();
      }
    // Calculate new version info
    additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
    newversionid := oldversion_id + [String]additionversionid;
    newcaltype := GlobalOTDTable::GetNextCalType( oldcaltype, businesstype );
    newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
    newversionname := oldversion_name + newsingleversionname;
    // Create new version
    newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
    return newversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindByFullVersionID (
  GlobalOTDTable owner,
  String versionid
) as VersionControl
{
  Description: '通过全量版本号进行查找'
  TextBody:
  [*
    // Administrator Sep-14-2023 (created)
    // Get the version data
    resultversion :=  select( owner, VersionControl, version, version.VersionID() + "-" + version.CalType() = versionid );
    return resultversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindLatestUpdateVersion (
  GlobalOTDTable globalotdtable,
  String businesstype
) as VersionControl
{
  Description: '获取某事业部目前最新的版本号'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Get the latest version data
    latestversion := maxselect( globalotdtable,
                                VersionControl,
                                version,
                                version.BusinessType()=businesstype and version.IsReleased()=true,
                                version.CreateTime() );
    return latestversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindLatestVersion (
  GlobalOTDTable globalotdtable,
  String businesstype
) as VersionControl
{
  Description: '获取某事业部目前最新的版本号'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Get the latest version data
    latestversion := maxselect( globalotdtable,
                                VersionControl,
                                version,
                                version.BusinessType()=businesstype,
                                version.CreateTime() );
    return latestversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindReleasedVersions (
  GlobalOTDTable globalotdtable,
  String businesstype,
  String versionid
) as owning VersionControls
{
  Description: '获取某事业部目前最新的版本号'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Get the latest version data
    latestversion := selectset( globalotdtable, VersionControl, version, version.BusinessType()=businesstype and version.IsReleased()=true and version.VersionID().FindString( versionid, 0 ) = 0 );
    return &latestversion;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetVersionInfo (
  GlobalOTDTable owner,
  String businessname
) as owning Strings
{
  Description: '获取大版本版本号及版本名称'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    businesstyoe := GlobalOTDTable::GetBusinessTypeName( businessname );
    result := construct( Strings );
    rootversion := VersionControl::FindLatestVersion( owner, businesstyoe );
    if( not isnull( rootversion ) ){
      result.Add( rootversion.VersionID() );
      result.Add( rootversion.LongVersionName() );
      result.Add( rootversion.VersionID() + "-" + rootversion.CalType() );
      result.Add( rootversion.SingleVersionName() );
      }else{
        result.Add( "" );
        result.Add( "" );
        result.Add( "" );
        result.Add( "" );
        }
    return &result;
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_ReleaseLatestVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReleaseLatestVersion
{
  Description: '发布当前版本,待编写'
  TextBody:
  [*
    // Administrator Sep-14-2023 (created)
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReleaseNewVersion (
  GlobalOTDTable owner,
  String businesstype
)
{
  Description: '发布新版本'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    releasetime := DateTime::ActualTime();
    // Create new version
    newversion := VersionControl::CreateNewVersion( owner, businesstype );
    newversion.IsReleased( true );
    newversion.ReleaseTime( releasetime );
  *]
}
_Main/BL/Type_VersionControl/_ROOT_Type_VersionControl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type VersionControl
{
  #keys: '5[412960.0.134860003][412960.0.134860001][0.0.0][412960.0.134860002][412960.0.134860004]'
  BaseType: Object
  Description: '储存全量版本状态的object'
  StructuredName: 'VersionControls'
}
_Main/BL/Type_VersionStatus/Attribute_BusinessName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessName
{
  #keys: '3[412960.0.134830239][412960.0.134830238][412960.0.134830240]'
  Description: '展示用事业部名称'
  ValueType: String
}
_Main/BL/Type_VersionStatus/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[412960.0.134830072][412960.0.134830071][412960.0.134830073]'
  Description: '事业部名称'
  ValueType: String
}
_Main/BL/Type_VersionStatus/Attribute_LastReleaseTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastReleaseTime
{
  #keys: '3[412960.0.136138799][412960.0.136138798][412960.0.136138800]'
  Description: '最后同步的时间'
  ValueType: DateTime
}
_Main/BL/Type_VersionStatus/Attribute_LastUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastUser
{
  #keys: '3[412960.0.136138809][412960.0.136138808][412960.0.136138810]'
  Description: '最后操作人'
  ValueType: String
}
_Main/BL/Type_VersionStatus/Attribute_LastVersionName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastVersionName
{
  #keys: '3[412960.0.136138768][412960.0.136138767][412960.0.136138769]'
  Description: '最终拼接而成的版本名称'
  ValueType: String
}
_Main/BL/Type_VersionStatus/Attribute_Notes.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Notes
{
  #keys: '3[412960.0.136138819][412960.0.136138818][412960.0.136138820]'
  Description: '备注'
  ValueType: String
}
_Main/BL/Type_VersionStatus/Attribute_SortNumber.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SortNumber
{
  #keys: '3[412960.0.136138758][412960.0.136138757][412960.0.136138759]'
  Description: '序号'
  ValueType: Number
}
_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdate (
  GlobalOTDTable owner,
  String businesstype,
  String businessname,
  DateTime lastreleasetime,
  String lastuser,
  String lastversionname,
  String notes,
  Number sortnumber
)
{
  Description: '创建新的版本发布状态'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Find exist status
    existstatus := VersionStatus::FindLatestStatus( owner, businesstype );
    if( isnull( existstatus ) ){
      owner.VersionStatus( relnew,
                          BusinessType := businesstype,
                          BusinessName := businessname,
                          LastReleaseTime := lastreleasetime,
                          LastUser := lastuser,
                          LastVersionName := lastversionname,
                          Notes := notes,
                          SortNumber := sortnumber );
      }else{
        existstatus.LastReleaseTime( lastreleasetime );
        existstatus.LastUser( lastuser );
        existstatus.LastVersionName( lastversionname );
        existstatus.Notes( notes );
        existstatus.SortNumber( sortnumber );
        }
  *]
}
_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindLatestStatus (
  GlobalOTDTable globalotdtable,
  String businesstype
) as VersionStatus
{
  Description: '获取某事业部目前最新的发布状态'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Get the latest version data
    lateststatus := select( globalotdtable, VersionStatus, version, version.BusinessType()=businesstype );
    return lateststatus;
  *]
}
_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetBusinessTypeStatus (
  GlobalOTDTable owner,
  String rootversionid
)
{
  Description: '刷新所有事业部的发布情况'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Get business type list
    businesstypes := "集团,面板,手机事业部,IT事业部,车载事业部,汽车电子事业部,专显事业部,穿戴事业部";
    businesstypelist := businesstypes.Tokenize( "," );
    sortnumber := 0;
    sortdetailnumber := 0;
    traverse( businesstypelist, Elements, businessname, true ){
    //  info( businessname );
      // Get the local scenario businesstype
      businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
      sortnumber := sortnumber + 1;
      lastversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
      if( not isnull( lastversion ) ){
        VersionStatus::CreateOrUpdate( owner,
                                       businesstype,
                                       businessname,
                                       lastversion.ReleaseTime(),
                                       lastversion.User(),
                                       lastversion.SingleVersionName(),
                                       lastversion.Notes(),
                                       sortnumber );
        }else{
          existstatus := VersionStatus::FindLatestStatus( owner, businesstype );
          if( isnull( existstatus ) ){
            owner.VersionStatus( relnew,
                                 BusinessType := businesstype,
                                 BusinessName := businessname,
                                 SortNumber := sortnumber
                                  );
            }
          }
        rootstatus := VersionStatus::FindLatestStatus( owner, businesstype );
        // Get the versions list
        versionlist := VersionControl::FindReleasedVersions( owner, businesstype, rootversionid );
    //    info( rootversionid );
        if( not isnull( versionlist ) ){
          traverse( versionlist, Elements, version, true ){
            info( version.VersionID() );
            sortdetailnumber := sortdetailnumber + 1;
            VersionStatusDetail::CreateOrUpdate( rootstatus,
                                                 version.VersionID() + "-" + version.CalType(),
                                                 version.CreateTime(),
                                                 version.ReleaseTime(),
                                                 version.SingleVersionName(),
                                                 version.User(),
                                                 version.Notes(),
                                                 sortdetailnumber );
            }
          }
      }
  *]
}
_Main/BL/Type_VersionStatus/_ROOT_Type_VersionStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type VersionStatus
{
  #keys: '5[412960.0.134830053][412960.0.134830051][0.0.0][412960.0.134830052][412960.0.134830054]'
  BaseType: Object
  Description: '各事业部的版本发布状态数据'
  StructuredName: 'VersionStatuss'
}
_Main/BL/Type_VersionStatusDetail/Attribute_CreateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CreateTime
{
  #keys: '3[412960.0.143214324][412960.0.143214323][412960.0.143214325]'
  Description: '创建该版本的时间'
  ValueType: DateTime
}
_Main/BL/Type_VersionStatusDetail/Attribute_Notes.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Notes
{
  #keys: '3[412960.0.143214333][412960.0.143214332][412960.0.143214334]'
  ValueType: String
}
_Main/BL/Type_VersionStatusDetail/Attribute_ReleaseTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ReleaseTime
{
  #keys: '3[412960.0.143214336][412960.0.143214335][412960.0.143214337]'
  Description: '发布该版本的时间'
  ValueType: DateTime
}
_Main/BL/Type_VersionStatusDetail/Attribute_SingleVersionName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SingleVersionName
{
  #keys: '3[412960.0.143214339][412960.0.143214338][412960.0.143214340]'
  Description: '单个版本的名字,即小版本名'
  ValueType: String
}
_Main/BL/Type_VersionStatusDetail/Attribute_SortNumber.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SortNumber
{
  #keys: '3[412960.0.143220022][412960.0.143220021][412960.0.143220023]'
  ValueType: Number
}
_Main/BL/Type_VersionStatusDetail/Attribute_User.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute User
{
  #keys: '3[412960.0.143214342][412960.0.143214341][412960.0.143214343]'
  Description: '创建该版本的用户'
  ValueType: String
}
_Main/BL/Type_VersionStatusDetail/Attribute_VersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute VersionID
{
  #keys: '3[412960.0.143214345][412960.0.143214344][412960.0.143214346]'
  Description: '全量版本号'
  ValueType: String
}
_Main/BL/Type_VersionStatusDetail/DefaultValue_Notes.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Notes
}
_Main/BL/Type_VersionStatusDetail/DefaultValue_SingleVersionName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SingleVersionName
}
_Main/BL/Type_VersionStatusDetail/DefaultValue_User.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: User
}
_Main/BL/Type_VersionStatusDetail/StaticMethod_CreateOrUpdate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdate (
  VersionStatus owner,
  String versionid,
  DateTime createtime,
  DateTime releasetime,
  String versionname,
  String user,
  String notes,
  Number sortnumber
)
{
  Description: '创建新的版本发布状态详情'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Find exist status
    existstatusdetail := VersionStatusDetail::FindStatus(  owner, versionid );
    if( isnull( existstatusdetail ) ){
      owner.VersionStatusDetail( relnew,
                                CreateTime := createtime,
                                ReleaseTime := releasetime,
                                SingleVersionName := versionname,
                                User := user,
                                VersionID := versionid,
                                Notes := notes,
                                SortNumber := sortnumber );
      }else{
        existstatusdetail.CreateTime( createtime );
        existstatusdetail.ReleaseTime( releasetime );
        existstatusdetail.SingleVersionName( versionname );
        existstatusdetail.User( user );
        existstatusdetail.Notes( notes );
        existstatusdetail.SortNumber( sortnumber );
        }
  *]
}
_Main/BL/Type_VersionStatusDetail/StaticMethod_FindStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindStatus (
  VersionStatus owner,
  String versionid
) as VersionStatusDetail
{
  Description: '通过版本号查找是否有存在的状态详情'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    // Get the latest version data
    lateststatusdetail := select( owner, VersionStatusDetail, version, version.VersionID()=versionid );
    return lateststatusdetail;
  *]
}
_Main/BL/Type_VersionStatusDetail/StaticMethod_GetFullVersionID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetFullVersionID (
  VersionStatus owner
) as String
{
  Description: '获取全量版本号'
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    result := "";
    latestversion := maxselect( owner, VersionStatusDetail, version, true, version.CreateTime() );
    if( not isnull( latestversion ) ){
      result := latestversion.VersionID();
        }
    return result;
  *]
}
_Main/BL/Type_VersionStatusDetail/_ROOT_Type_VersionStatusDetail.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type VersionStatusDetail
{
  #keys: '5[412960.0.143214315][412960.0.143214313][0.0.0][412960.0.143214314][412960.0.143214316]'
  BaseType: Object
  Description: '储存对应发布状态下版本状态的数据'
  StructuredName: 'VersionStatusDetails'
}
_Main/Sys/Integration/Brokers/PanelMaterialResponseResult1.xml
Binary files differ
_Main/Sys/Integration/Mapping/PanelMaterialResponseResult1.xml
Binary files differ
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_from.xml
Binary files differ
_Main/Sys/Integration/Structure/PanelMaterialResponseResult1_to.xml
Binary files differ
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -136,6 +136,8 @@
      [
        Component menuSeparator457 { #keys: '[414702.0.265704251]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenu666 { #keys: '[414702.0.265704260]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormBrokerExecuteLog' Text: '' ] }
        Component menuSeparator822 { #keys: '[414702.0.340555024]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenu783 { #keys: '[414702.0.340555035]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormTestButtonCollection' Text: '' ] }
      ]
      Properties:
      [
@@ -154,6 +156,8 @@
          c: menuExit
          c: menuSeparator457
          c: ComponentMenu666
          c: menuSeparator822
          c: ComponentMenu783
        }
      ]
    }
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: Button398
Response OnClick () id:Response_FormTestButtonCollection_Button398_OnClick
{
  #keys: '[414702.0.340554926]'
  Body:
  [*
    CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan );
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_GUIButtonBase_OnClick'
}
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/_ROOT_Component_FormTestButtonCollection.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
Quintiq file version 2.0
#root
#parent: MacroPlanner
OrphanComponent FormTestButtonCollection
{
  #keys: '[414702.0.340554698]'
  BaseType: 'Form'
  GBLayout
  {
    Type: 'internal[GBLayoutDefinition]'
    Columns:
    [
      GBFlow.Column { grow: 0 id: 454 parent: 0 }
    ]
    Elements:
    [
      GBElement
      {
        Component => Button398
        Position { startcolumn: 454 startrow: 649 endcolumn: 454 endrow: 649 }
      }
    ]
    Gaps: [ left: 5 right: 5 top: 5 bottom: 5 inner: 5 ]
    Rows:
    [
      GBFlow.Row { grow: 0 id: 649 parent: 0 }
    ]
  }
  Children:
  [
    Component Button398
    {
      #keys: '[414702.0.340554799]'
      BaseType: 'Button'
      Properties:
      [
        Image: 'HARDHAT'
        Text: '生成产能分配结果数据'
      ]
    }
  ]
  Properties:
  [
    Height: 209
    Image: 'PIPETTE_TEST'
    IncludeInView: true
    Title: '功能测试按钮'
    Width: 535
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -43,5 +43,25 @@
        Taborder: 42
      ]
    }
    Component DataHolderCapacityAndSaleBudgeFilterBusinessType
    {
      #keys: '[414384.0.874472860]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[CapacityAndSaleBudgeFilterBusinessType]*'
      Properties:
      [
        Taborder: 43
      ]
    }
    Component DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
    {
      #keys: '[414384.0.874472866]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[CapacityAndSaleBudgeFilterPlaceOfProductionOfArray]*'
      Properties:
      [
        Taborder: 44
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def
@@ -51,5 +51,16 @@
        Taborder: 4
      ]
    }
    Component CheckboxIsCreateNewVersion
    {
      #keys: '[412960.0.157150313]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.IsCreateNewVersion'
        Label: 'Create a new version'
        Taborder: 7
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component pnlActions #extension
{
  Children:
  [
    Component btnOK #extension
    {
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario#549.def
@@ -20,6 +20,7 @@
    DataHolderActionCopy.Data( false );
    DataHolderDialogData.Data( &scenario );
    DataHolderDialogData.Data().EnableSync( enableSync );
    DataHolderDialogData.Data().IsCreateNewVersion( true );
    
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_NewScenario.def
@@ -19,6 +19,7 @@
    
    DataHolderActionCopy.Data( false );
    DataHolderDialogData.Data( &scenario );
    DataHolderDialogData.Data().IsCreateNewVersion( true );
    
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -17,6 +17,21 @@
    newscenario := null( Scenario );
    strategy := null( Strategy );
    
    // New version
    globalotdtable := GlobalOTDTable;
    testbusinesstype := "集团";
    if( data.IsCreateNewVersion() ){
      VersionControl::CreateNewSceneVersion( globalotdtable, testbusinesstype );
      }else{
        VersionControl::CopyVersion( globalotdtable, testbusinesstype );
        }
    versionname := VersionControl::GetVersionInfo( globalotdtable, testbusinesstype ).Element( 3 );
    // Get Version Name
    if( data.Name() = "" ){
      data.Name( versionname );
      }
    // Copy scenario
    if( isnull( data.WrappedInstance() ) )
    {
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: pnlActions/btnOK
Response OnClick () id:Response_pnlActions_btnOK_OnClick #extension
{
  Precondition:
  [*
    data := DataHolderDialogData.Data();
    return not isnull( data )
           and Scenario::ValidateInput( feedback,
                                        ScenarioManager,
    //                                    edtName.Text(),
                                        "for version",
                                        data.WrappedInstance(),
                                        '',
                                        GlobalParameters_MP::GetKB_New(),
                                        'Test',
                                        RadioButtonGroupStorageState.BoundValue(),
                                        Domain.MDSStorageDefinitionManager().Enabled(),
                                        Domain.MDSStorageDefinitionManager().DatasetStoreEnabled(),
                                        Domain.MDSStorageDefinitionManager().DatabaseEnabled() );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/_ROOT_Component_DialogCreateEditScenario.def
@@ -6,5 +6,6 @@
  Children:
  [
    #child: pnlContent
    #child: pnlActions
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414382.0.465983522]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414382.0.465983526]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[414382.0.465983528]'
      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_DialogEditPriorityFactor/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414382.0.465983520]'
  BaseType: 'WebPanel'
  Children:
  [
    Component PriorityFactorName
    {
      #keys: '[414382.0.464432096]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactor.Data.Name'
        Label: '优先级因子'
        ReadOnly: true
        Taborder: 0
      ]
    }
    Component Coefficient
    {
      #keys: '[414382.0.466405102]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactor.Data.Coefficient'
        Label: '系数'
        Taborder: 1
      ]
    }
    Component Desc
    {
      #keys: '[414382.0.466436612]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactor.Data.Desc'
        Label: '描述'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_ClickBtnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOK () id:Method_DialogEditPriorityFactor_ClickBtnOK
{
  #keys: '[414382.0.464433014]'
  Body:
  [*
    btnOk.Enabled(false,'');
    // OnOk
    this.ApplyChanges();
    DataHolderEditPriorityFactor.Data().Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  PriorityFactor selection
) id:Method_DialogEditPriorityFactor_Edit
{
  #keys: '[414382.0.464432484]'
  Body:
  [*
    data := shadow( selection );
    DataHolderEditPriorityFactor.Data( &data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/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: '[414382.0.465983532]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[414382.0.465983531]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    feedback := Translations::FilllingCapacity_ValidateInput();
    checkValue := not Coefficient.Text() = ''
    return checkValue;
  *]
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOK();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/_ROOT_Component_DialogEditPriorityFactor.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogEditPriorityFactor
{
  #keys: '[414382.0.465983518]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderEditPriorityFactor
    {
      #keys: '[414382.0.464433280]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[PriorityFactor]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: '编辑优先级因子'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414382.0.482374521]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414382.0.482374525]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[414382.0.482374527]'
      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_DialogEditPriorityFactorDetails/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414382.0.482374519]'
  BaseType: 'WebPanel'
  Children:
  [
    Component GradeTarget
    {
      #keys: '[414382.0.482496232]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.GradeTarget'
        Label: '分级目标值'
        Taborder: 2
      ]
    }
    Component isRange
    {
      #keys: '[414382.0.482496334]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.IsRange'
        Label: '分级范围:'
        Taborder: 3
      ]
    }
    Component RangeMax
    {
      #keys: '[414382.0.482496364]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMax'
        Label: '最大值'
        Taborder: 4
      ]
    }
    Component RangeMin
    {
      #keys: '[414382.0.482496434]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMin'
        Label: '最小值'
        Taborder: 5
      ]
    }
    Component GradeDesc
    {
      #keys: '[414382.0.478492133]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.GradeDesc'
        FixedSize: false
        Label: '描述'
        SizeRatio: 3
        Taborder: 6
      ]
    }
    Component PriorityFactorName
    {
      #keys: '[414382.0.485983642]'
      BaseType: 'WebLabel'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.PriorityFactorName'
        Label: '优先级因子'
        Taborder: 0
      ]
    }
    Component PriorityFactorDetailsName
    {
      #keys: '[414382.0.486013052]'
      BaseType: 'WebLabel'
      Properties:
      [
        DataBinding: 'DataHolderEditPriorityFactorDetails.Data.GradingName'
        Label: '细分名称'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_ClickBtnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOK () id:Method_DialogEditPriorityFactorDetails_ClickBtnOK
{
  #keys: '[414382.0.482495783]'
  Body:
  [*
    btnOk.Enabled(false,'');
    // OnOk
    this.ApplyChanges();
    DataHolderEditPriorityFactorDetails.Data().Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  PriorityFactorDetails selection
) id:Method_DialogEditPriorityFactorDetails_Edit
{
  #keys: '[414382.0.482495781]'
  Body:
  [*
    data := shadow( selection );
    if( data.IsRange() )
    {
        isRange.Checked(true);
    }
    DataHolderEditPriorityFactorDetails.Data( &data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/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: '[414382.0.482374531]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[414382.0.482374530]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    feedback := Translations::FilllingCapacity_ValidateInput();
    checkValue := not GradeTarget.Text() = ''
    if( isRange.Checked() )
    {
       checkValue := not RangeMax.Text() = '' and not RangeMin.Text() = '';
    }
    return checkValue;
  *]
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOK();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: pnlContent/isRange
Response OnChanged () id:Response_pnlContent_isRange_OnChanged
{
  #keys: '[414382.0.487732097]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
  QuillAction
  {
    Body:
    [*
      if( this.Checked())
      {
          RangeMax.ReadOnly(false);
          RangeMin.ReadOnly(false)
      }
      else{
          RangeMax.ReadOnly(true);
          RangeMin.ReadOnly(true)
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/_ROOT_Component_DialogEditPriorityFactorDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogEditPriorityFactorDetails
{
  #keys: '[414382.0.482374517]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderEditPriorityFactorDetails
    {
      #keys: '[414382.0.482495927]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[PriorityFactorDetails]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: '编辑优先级因子细分'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Method_New.def
@@ -9,6 +9,7 @@
  [*
    
    data := owner.FillingCapacityOrder(relshadow);
    data.OrderType("提拉")
    
    DataHolderFillingCapacityOrder.Data(&data);
    
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
@@ -4,12 +4,23 @@
{
  #keys: '[414382.0.400131334]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  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;
  *]
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlContent_dsDemandDate_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlContent/dsDemandDate
Response OnCreated () id:Response_pnlContent_dsDemandDate_OnCreated
{
  #keys: '[414382.0.469810579]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.Date(Date::Today());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlContent_dsForecastDemandDate_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlContent/dsForecastDemandDate
Response OnCreated () id:Response_pnlContent_dsForecastDemandDate_OnCreated
{
  #keys: '[414382.0.471003983]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.Date(Date::Today());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
@@ -60,7 +60,6 @@
      Properties:
      [
        DataBinding: 'DataHolderFilling.Data.DemandDate'
        Enabled: false
        Label: 'Demand Date'
        ReadOnly: true
        Taborder: 4
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def
@@ -4,12 +4,19 @@
{
  #keys: '[414382.0.415331003]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    verNo := efVerNo.Text();
    salesAmount := edtSalesAmount.Text();
    feedback := Translations::FilllingCapacity_ValidateInput();
    return not salesAmount = '' and not verNo = '';
  *]
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlContent_dsForecastDemandDate_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlContent/dsForecastDemandDate_515
Response OnCreated () id:Response_pnlContent_dsForecastDemandDate_OnCreated
{
  #keys: '[414382.0.470910420]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.Date(Date::Today());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingOrderScheme/Response_pnlActions_btnCancel_OnClick.def
@@ -4,12 +4,12 @@
{
  #keys: '[414382.0.423200508]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingOrderScheme/Response_pnlActions_btnOk_OnClick.def
@@ -4,7 +4,12 @@
{
  #keys: '[414382.0.423200507]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    schemeName := DialogFillingOrderScheme.efSchemeName().Text();
    feedback := Translations::FilllingCapacity_ValidateInput();
    return not schemeName = '';
  *]
  QuillAction
  {
    Body:
@@ -17,5 +22,6 @@
      
      Form.Close();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogHistoricalSalesOrders/Method_New.def
@@ -8,6 +8,7 @@
  Body:
  [*
    data := owner.FillingCapacityOrder(relshadow);
    data.OrderType("NEW");
    DataHolderHistoricalSalesOrder.Data( &data);
    
    ApplicationMacroPlanner.ShowFormModal( this );
_Main/UI/MacroPlannerWebApp/Component_DialogHistoricalSalesOrders/Response_pnlActions_btnOk_OnClick.def
@@ -4,12 +4,23 @@
{
  #keys: '[414382.0.391970684]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  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;
  *]
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogHistoricalSalesOrders/Response_pnlContent_dsOrderDate_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlContent/dsOrderDate
Response OnCreated () id:Response_pnlContent_dsOrderDate_OnCreated
{
  #keys: '[414382.0.471041775]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.Date(Date::Today());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414382.0.489474418]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414382.0.489474422]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '保存'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[414382.0.489474424]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '取消'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414382.0.489474416]'
  BaseType: 'WebPanel'
  Children:
  [
    Component PriorityPolicyName
    {
      #keys: '[414382.0.489512715]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderNewPriorityPolicy.Data.Name'
        Label: '优先级策略名称'
        Taborder: 0
      ]
    }
    Component PriorityPolicyDesc
    {
      #keys: '[414382.0.489474868]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderNewPriorityPolicy.Data.Desc'
        Label: '描述'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_ClickBtnOk.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOk () id:Method_DialogNewPriorityPolicy_ClickBtnOk
{
  #keys: '[414382.0.489694008]'
  Body:
  [*
    // Disabled button to prevent the possibility of multiple firing
    btnOk.Enabled(true,'11111');
    // OnOk
    this.ApplyChanges();
    DataHolderNewPriorityPolicy.Data().Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method New (
  MacroPlan owner,
  String businessType
) id:Method_DialogNewPriorityPolicy_New
{
  #keys: '[414382.0.489725864]'
  Body:
  [*
    data := owner.PriorityPolicy(relshadow);
    data.BusinessType(businessType);
    DataHolderNewPriorityPolicy.Data(&data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/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: '[414382.0.489474428]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/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: '[414382.0.489474427]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogNewPriorityPolicy/_ROOT_Component_DialogNewPriorityPolicy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogNewPriorityPolicy
{
  #keys: '[414382.0.489474414]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderNewPriorityPolicy
    {
      #keys: '[414382.0.489512730]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[PriorityPolicy]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: '添加优先级策略'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[412960.0.149440162]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnApply
    {
      #keys: '[412960.0.149440164]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Apply'
        Taborder: 0
        Visible: false
      ]
    }
    Component btnOk
    {
      #keys: '[412960.0.149440166]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 1
      ]
    }
    Component btnCancel
    {
      #keys: '[412960.0.149440168]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 2
        Visible: false
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[412960.0.149440160]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblContent
    {
      #keys: '[412960.0.149330142]'
      BaseType: 'WebLabel'
      Properties:
      [
        FixedSize: false
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Method_JustShow.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
Method JustShow () id:Method_DialogVersionIDCopy_JustShow
{
  #keys: '[412960.0.149561615]'
  Body:
  [*
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnApply_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: pnlActions/btnApply
Response OnClick () id:Response_pnlActions_btnApply_OnClick
{
  #keys: '[412960.0.149440170]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    return Form.HasChanges();
  *]
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/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.149440172]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[412960.0.149440171]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogVersionIDCopy/_ROOT_Component_DialogVersionIDCopy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogVersionIDCopy
{
  #keys: '[412960.0.149440158]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
  ]
  Properties:
  [
    Alignment: 'trailing'
    Description: '展示全量版本号以复制'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Image: 'DATA_COPY'
    Padding: 'false'
    Title: '全量版本号'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form234/_ROOT_Component_FrmOrderResultEx#234.def
@@ -40,6 +40,7 @@
  Properties:
  [
    Description: '订单冲减后列表展示'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '订单冲减后列表展示'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def
@@ -34,7 +34,7 @@
      Properties:
      [
        Image: 'THICK_ARROW_DOWN_BLUE'
        Label: 'Clean & Load'
        Label: '重新加载'
        Taborder: 0
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick#623.def
@@ -8,10 +8,6 @@
  CanBindMultiple: false
  DefinitionID => /ListPRData_844/Responsedef_ListPRData_844_WebMenu_OnClick
  Initiator: 'MenuPrintRequest'
  Precondition:
  [*
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def
@@ -5,10 +5,6 @@
  #keys: '[414384.0.859141084]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListCapacityAllocationResults
{
  #keys: '[414702.0.338762075]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorCapacityAllocationResults
    {
      #keys: '[414702.0.338762076]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'CapacityAllocationResults'
      ]
    }
    #child: listActionBarPageCapacityAllocationResults
    Component DataSetLevelCapacityAllocationResults
    {
      #keys: '[414702.0.338762081]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuCapacityAllocationResults
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionNumber","title":"VersionNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPanels","title":"NumberOfPanels","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPanels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfModules","title":"NumberOfModules","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfModules"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"RequirementDate","title":"RequirementDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"RequirementDate"}}]'
        ContextMenu: 'listContextMenuCapacityAllocationResults'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageCapacityAllocationResults
{
  #keys: '[414702.0.338762078]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuCapacityAllocationResults
{
  #keys: '[414702.0.338762083]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ButtonGenerateCapacityAllocationResults
Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick
{
  #keys: '[414702.0.340111671]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCapacityAllocationResults
{
  #keys: '[414702.0.338731526]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListCapacityAllocationResults
    Component ButtonGenerateCapacityAllocationResults
    {
      #keys: '[414702.0.340677556]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'PROCESS'
        Label: '生成数据'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Image: 'PUMPKIN_HALLOWEEN'
    Title: '产能分配结果'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
@@ -11,10 +11,11 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'MPSync'
        FixedFilter: 'object.YearNo() = Date::ActualDate().Year()'
        Source: 'MPSync'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudge'
        Transformation: 'MappingCapacityAndSaleBudge'
      ]
    }
    #child: listActionBarPageCapacityAndSaleBudge
@@ -28,7 +29,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Deleted","title":"Deleted","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Deleted"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayTechnology","title":"DisplayTechnology","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayTechnology"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LineAndSpec","title":"LineAndSpec","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LineAndSpec"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCode","title":"ProductCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfArray","title":"PlaceOfProductionOfArray","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfArray"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfEvaporation","title":"PlaceOfProductionOfEvaporation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfEvaporation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Resolution","title":"Resolution","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Resolution"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShippingForm","title":"ShippingForm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShippingForm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfCut","title":"NumberOfCut","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfCut"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityEquivalent","title":"CapacityEquivalent","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityEquivalent"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfMask","title":"NumberOfMask","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfMask"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth1","title":"CapacityInPCSInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth2","title":"CapacityInPCSInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth3","title":"CapacityInPCSInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth4","title":"CapacityInPCSInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth5","title":"CapacityInPCSInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth6","title":"CapacityInPCSInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth7","title":"CapacityInPCSInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth8","title":"CapacityInPCSInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth9","title":"CapacityInPCSInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth10","title":"CapacityInPCSInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth11","title":"CapacityInPCSInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth12","title":"CapacityInPCSInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSTotal","title":"CapacityInPCSTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth1","title":"CapacityInSheetInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth2","title":"CapacityInSheetInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth3","title":"CapacityInSheetInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth4","title":"CapacityInSheetInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth5","title":"CapacityInSheetInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth6","title":"CapacityInSheetInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth7","title":"CapacityInSheetInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth8","title":"CapacityInSheetInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth9","title":"CapacityInSheetInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth10","title":"CapacityInSheetInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth11","title":"CapacityInSheetInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth12","title":"CapacityInSheetInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetTotal","title":"CapacityInSheetTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth1","title":"SaleAmountInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth2","title":"SaleAmountInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth3","title":"SaleAmountInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth5","title":"SaleAmountInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth4","title":"SaleAmountInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth6","title":"SaleAmountInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth7","title":"SaleAmountInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth8","title":"SaleAmountInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth9","title":"SaleAmountInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth10","title":"SaleAmountInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth11","title":"SaleAmountInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth12","title":"SaleAmountInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountTotal","title":"SaleAmountTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountTotal"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Deleted","title":"Deleted","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Deleted"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"YearNo","title":"YearNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"YearNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayTechnology","title":"DisplayTechnology","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayTechnology"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LineAndSpecification","title":"LineAndSpecification","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LineAndSpecification"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCode","title":"ProductCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfArray","title":"PlaceOfProductionOfArray","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfArray"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfEvaporation","title":"PlaceOfProductionOfEvaporation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfEvaporation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Resolution","title":"Resolution","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Resolution"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShippingForm","title":"ShippingForm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShippingForm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfCut","title":"NumberOfCut","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfCut"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityEquivalent","title":"CapacityEquivalent","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityEquivalent"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfMask","title":"NumberOfMask","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfMask"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth1","title":"CapacityInPCSInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth2","title":"CapacityInPCSInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth3","title":"CapacityInPCSInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth4","title":"CapacityInPCSInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth5","title":"CapacityInPCSInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth6","title":"CapacityInPCSInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth7","title":"CapacityInPCSInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth8","title":"CapacityInPCSInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth9","title":"CapacityInPCSInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth10","title":"CapacityInPCSInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth11","title":"CapacityInPCSInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth12","title":"CapacityInPCSInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSTotal","title":"CapacityInPCSTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth1","title":"CapacityInSheetInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth2","title":"CapacityInSheetInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth3","title":"CapacityInSheetInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth4","title":"CapacityInSheetInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth5","title":"CapacityInSheetInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth6","title":"CapacityInSheetInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth7","title":"CapacityInSheetInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth8","title":"CapacityInSheetInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth9","title":"CapacityInSheetInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth10","title":"CapacityInSheetInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth11","title":"CapacityInSheetInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth12","title":"CapacityInSheetInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetTotal","title":"CapacityInSheetTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth1","title":"SaleAmountInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth2","title":"SaleAmountInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth3","title":"SaleAmountInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth5","title":"SaleAmountInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth4","title":"SaleAmountInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth6","title":"SaleAmountInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth7","title":"SaleAmountInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth8","title":"SaleAmountInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth9","title":"SaleAmountInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth10","title":"SaleAmountInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth11","title":"SaleAmountInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth12","title":"SaleAmountInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountTotal","title":"SaleAmountTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountTotal"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudge'
        SortCriteria: 'BusinessType;OrgCode;ProductCode'
        Taborder: 2
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
@@ -10,6 +10,7 @@
  {
    Body:
    [*
      MPSync::TestData( MPSync, MacroPlan );
      GlobalOTDTable.InitTestData();
    *]
  }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
@@ -11,6 +11,7 @@
  ]
  Properties:
  [
    Title: '产销预算'
    Description: '年度产销预算'
    Title: '年度产销预算'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
@@ -47,7 +47,7 @@
            }
            WebChartConfigGroup
            {
              Label: 'BusinessTypeOrOrgCode'
              Label: 'BusinessTypeOrPlaceOfProductionOfArray'
              SequenceNr: 1
            }
          }
@@ -62,7 +62,7 @@
            }
            WebChartConfigGroup
            {
              Label: 'BusinessTypeOrOrgCode'
              Label: 'BusinessTypeOrPlaceOfProductionOfArray'
              SequenceNr: 1
            }
            Default: 'Stacked bar'
@@ -70,7 +70,7 @@
            MergeStackedBars: true
          }
        *]
        Groups: 'TimeStringAndScenarioName,BusinessTypeOrOrgCode'
        Groups: 'TimeStringAndScenarioName,BusinessTypeOrPlaceOfProductionOfArray'
        Taborder: 0
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
@@ -16,9 +16,10 @@
                                                 CheckboxIsCapacity.Checked(),
                                                 DropDownTimeGroup.Text(),
                                                 DropDownByBusinessTypeOrByOrgCode.Text(),
                                                 DropDownBusinessTypes.Text(),
                                                 DropDownPlaceOfProductionOfArrays.Text(),
                                                 DropDownYears.Text(),
                                                 DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
                                                 DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data(),
                                                 DataHolderCapacityAndSaleBudgeFilterYear.Data(),
                                                 DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                                 MPSync, 
                                                 GlobalOTDTable, 
                                                 MacroPlan );
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def
@@ -9,11 +9,7 @@
  {
    Body:
    [*
      CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
      DropDownBusinessTypes.Strings( GlobalOTDTable.CapacityAndSaleBudgeBusinessTypeString() );
      DropDownPlaceOfProductionOfArrays.Strings( GlobalOTDTable.CapacityAndSaleBudgePlaceOfProductionOfArrayString() );
      DropDownYears.Strings( GlobalOTDTable::CapacityAndSaleBudgeYearsString() );
      //CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def
@@ -26,6 +26,7 @@
      [
        Label: '年份'
        Taborder: 2
        Visible: false
      ]
    }
    Component DropDownBusinessTypes
@@ -37,6 +38,7 @@
        AllowEmpty: true
        Label: '事业部'
        Taborder: 3
        Visible: false
      ]
    }
    Component DropDownPlaceOfProductionOfArrays
@@ -48,6 +50,7 @@
        AllowEmpty: true
        Label: '面板基地'
        Taborder: 4
        Visible: false
      ]
    }
    Component CheckboxIsCapacity
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def
@@ -21,6 +21,7 @@
  ]
  Properties:
  [
    Title: '产销预算对比'
    Description: '年度产销预算对比'
    Title: '年度产销预算对比'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListCapacityAndSaleBudgeFilterBusinessType
{
  #keys: '[414384.0.875704540]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorCapacityAndSaleBudgeFilterBusinessType
    {
      #keys: '[414384.0.875704541]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MPSync'
        Source: 'MPSync'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterBusinessType'
      ]
    }
    #child: listActionBarPageCapacityAndSaleBudgeFilterBusinessType
    Component DataSetLevelCapacityAndSaleBudgeFilterBusinessType
    {
      #keys: '[414384.0.875704543]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuCapacityAndSaleBudgeFilterYear_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudgeFilterYear'
        SortCriteria: 'BusinessType'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_listActionBarPageCapacityAndSaleBudgeFilterBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageCapacityAndSaleBudgeFilterBusinessType
{
  #keys: '[414384.0.875704542]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_listContextMenuCapacityAndSaleBudgeFilterYear#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component listContextMenuCapacityAndSaleBudgeFilterYear id:listContextMenuCapacityAndSaleBudgeFilterYear_1
{
  #keys: '[414384.0.875704544]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuRefresh
    {
      #keys: '[414384.0.875575024]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: 'Refresh'
        Image: 'ARROW_CIRCLE2'
        Taborder: 3
        Title: 'Refresh'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_ListCapacityAndSaleBudgeFilterBusinessType_OnUserCheckedChanged#670.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ListCapacityAndSaleBudgeFilterBusinessType
Response OnUserCheckedChanged () id:Response_ListCapacityAndSaleBudgeFilterBusinessType_OnUserCheckedChanged_670
{
  #keys: '[414384.0.875704537]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderCapacityAndSaleBudgeFilterBusinessType.Data().Flush();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_ListCapacityAndSaleBudgeFilterBusinessType_OnUserCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListCapacityAndSaleBudgeFilterBusinessType
Response OnUserCheckedChanged (
  structured[CapacityAndSaleBudgeFilterBusinessType] checkeditems
) id:Response_ListCapacityAndSaleBudgeFilterBusinessType_OnUserCheckedChanged
{
  #keys: '[414384.0.875704536]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderCapacityAndSaleBudgeFilterBusinessType.Data( checkeditems.Copy() );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: listContextMenuCapacityAndSaleBudgeFilterYear_1/MenuRefresh
Response OnClick () id:Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick
{
  #keys: '[414384.0.875575116]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      MPSync.RefreshCapacityAndSaleBudgeFilter();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/_ROOT_Component_FormCapacityAndSaleBudgeFilterBusinessType.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCapacityAndSaleBudgeFilterBusinessType
{
  #keys: '[414384.0.875704417]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListCapacityAndSaleBudgeFilterBusinessType
  ]
  Properties:
  [
    Description: '年度产销预算事业部筛选'
    Title: '年度产销预算事业部筛选'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/_ROOT_Component_FormCapacityAndSaleBudgeFilterItem.def
@@ -11,6 +11,7 @@
  ]
  Properties:
  [
    Title: '产销预算对比项筛选'
    Description: '年度产销预算对比项'
    Title: '年度产销预算对比项'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/_ROOT_Component_FormCapacityAndSaleBudgeFilterMonth.def
@@ -11,6 +11,7 @@
  ]
  Properties:
  [
    Title: '产销预算对比月份筛选'
    Description: '年度产销预算月份筛选'
    Title: '年度产销预算月份筛选'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
{
  #keys: '[414384.0.875704517]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
    {
      #keys: '[414384.0.875704518]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MPSync'
        Source: 'MPSync'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterPlaceOfProductionOfArray'
      ]
    }
    #child: listActionBarPageCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
    Component DataSetLevelCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
    {
      #keys: '[414384.0.875704520]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuCapacityAndSaleBudgeFilterYear_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfArray","title":"PlaceOfProductionOfArray","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfArray"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudgeFilterYear'
        SortCriteria: 'PlaceOfProductionOfArray'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_listActionBarPageCapacityAndSaleBudgeFilterPlaceOfProductionOfArra.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
{
  #keys: '[414384.0.875704519]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_listContextMenuCapacityAndSaleBudgeFilterYear#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component listContextMenuCapacityAndSaleBudgeFilterYear id:listContextMenuCapacityAndSaleBudgeFilterYear_1
{
  #keys: '[414384.0.875704521]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuRefresh id:MenuRefresh_332
    {
      #keys: '[414384.0.875925487]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: 'Refresh'
        Image: 'ARROW_CIRCLE2'
        Taborder: 3
        Title: 'Refresh'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCh#171.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
Response OnUserCheckedChanged () id:Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCheckedChanged_171
{
  #keys: '[414384.0.875704514]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderCapacityAndSaleBudgeFilterYear.Data().Flush();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserChecke.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
Response OnUserCheckedChanged (
  structured[CapacityAndSaleBudgeFilterYear] checkeditems
) id:Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCheckedChanged
{
  #keys: '[414384.0.875704513]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderCapacityAndSaleBudgeFilterYear.Data( checkeditems.Copy() );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC#663.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: listContextMenuCapacityAndSaleBudgeFilterYear_1/MenuRefresh_332
Response OnClick () id:Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick_663
{
  #keys: '[414384.0.875925486]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      MPSync.RefreshCapacityAndSaleBudgeFilter();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/_ROOT_Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
{
  #keys: '[414384.0.875704457]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
  ]
  Properties:
  [
    Description: '年度产销预算面板基地筛选'
    Title: '年度产销预算面板基地筛选'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/_ROOT_Component_FormCapacityAndSaleBudgeFilterYear.def
@@ -11,6 +11,7 @@
  ]
  Properties:
  [
    Title: '产销预算对比年份筛选'
    Description: '年度产销预算年份筛选'
    Title: '年度产销预算年份筛选'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/Component_ListFillingSchemeDetail.def
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component ListFillingSchemeDetail
{
  #keys: '[414382.0.434111695]'
  #keys: '[414382.0.474013892]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorFillingSchemeDetail
    {
      #keys: '[414382.0.434111696]'
      #keys: '[414382.0.474013893]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
@@ -20,7 +20,7 @@
    #child: listActionBarPageFillingSchemeDetail
    Component DataSetLevelFillingSchemeDetail
    {
      #keys: '[414382.0.434111701]'
      #keys: '[414382.0.474013898]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VerNo","title":"版本号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VerNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"事业部","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"销售部门","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"库存点","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"数量单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelBigSheetQuantity","title":"面板大张数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelBigSheetQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesAmount","title":"销售额","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesAmount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastDemandDate","title":"预测需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastDemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderType","title":"订单类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderType"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VerNo","title":"版本号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VerNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"商品编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"事业部","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"销售部门","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"库存点","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"数量单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelBigSheetQuantity","title":"面板大张数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelBigSheetQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastDemandDate","title":"预测需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastDemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderType","title":"订单类型","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderType"}}]'
        ContextMenu: 'listContextMenuFillingSchemeDetail'
        Taborder: 2
      ]
@@ -36,6 +36,6 @@
  ]
  Properties:
  [
    Taborder: 0
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/Component_listActionBarPageFillingSchemeDetail.def
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listActionBarPageFillingSchemeDetail
{
  #keys: '[414382.0.434111698]'
  #keys: '[414382.0.474013895]'
  BaseType: 'listActionBarPage'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/Component_listContextMenuFillingSchemeDetail.def
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listContextMenuFillingSchemeDetail
{
  #keys: '[414382.0.434111703]'
  #keys: '[414382.0.474013900]'
  BaseType: 'listContextMenu'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder802/_ROOT_Component_FormFillingSchemeDetail#802.def
@@ -7,7 +7,6 @@
  BaseType: 'WebForm'
  Children:
  [
    #child: ListFillingSchemeDetail
    Component DataHolderFillingSchemeDetails id:DataHolderFillingSchemeDetails_71
    {
      #keys: '[414382.0.438570912]'
@@ -30,9 +29,10 @@
      ]
      Properties:
      [
        Taborder: 1
        Taborder: 0
      ]
    }
    #child: ListFillingSchemeDetail
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Component_Menurelease.def
@@ -11,10 +11,22 @@
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_OK'
        Taborder: 3
        Title: 'Release'
      ]
    }
    Component MenuDelete
    {
      #keys: '[414382.0.475912052]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_DELETE'
        Taborder: 4
        Title: '删除'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: ListFillingScheme
Response OnClick (
  FilllingCapacityOrderScheme selection
) id:Response_ListFillingScheme_MenuDelete_OnClick
{
  #keys: '[414382.0.475970386]'
  CanBindMultiple: false
  DefinitionID => /ListFillingScheme/Responsedef_ListFillingScheme_WebMenu_OnClick
  Initiator: 'MenuDelete'
  Precondition:
  [*
    //feedback := Translations::FilllingCapacity_NotRelease();
    //checkValue := not FilllingCapacityOrderScheme::HasAlreadyRelease( MacroPlan);
    //return checkValue;
    feedback := Translations::FilllingCapacity_NotRelease();
    checkValue := selectobject( MacroPlan,FilllingCapacityOrderScheme,scheme,scheme.IsRelease())
    return isnull( checkValue );
  *]
  QuillAction
  {
    Body:
    [*
      selection.Delete()
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuRelease_OnClick.def
@@ -10,7 +10,9 @@
  Initiator: 'MenuRelease'
  Precondition:
  [*
    not selection.IsRelease();
    feedback := Translations::FilllingCapacity_NotRelease();
    checkValue := selectobject( MacroPlan,FilllingCapacityOrderScheme,scheme,scheme.IsRelease())
    return isnull( checkValue );
  *]
  QuillAction
  {
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelSalesDemands.def
@@ -1,7 +1,6 @@
Quintiq file version 2.0
Component PanelSalesDemands #extension
{
  #error 102458: "Class Component with id 'PanelSalesDemands' cannot find its child with id 'PanelAllSalesDemands'. The file / folder structure might be corrupted due to integration."
  Children:
  [
    Component DataHolderSalesDemands #extension
_Main/UI/MacroPlannerWebApp/Component_FormHedgingOfLog/_ROOT_Component_FormHedgingOfLog.def
@@ -22,7 +22,7 @@
  Properties:
  [
    Description: '冲减结果-日志'
    Image: 'DOCUMENT_REFRESH'
    Title: '反签授权列表明细页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '日志页面'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalFillingCapacityOrder/_ROOT_Component_FormHistoricalFillingCapacityOrder.def
@@ -11,6 +11,6 @@
  ]
  Properties:
  [
    Title: '填产订单列表'
    Title: '填产订单历史列表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialPurchase/_ROOT_Component_FormMaterialPurchase.def
@@ -49,7 +49,7 @@
  Properties:
  [
    Description: '授权/反签物料采购明细释放'
    Image: 'DOG'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '授权/反签物料采购明细释放'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
Component ListOrderLock id:ListOrderLock_844
{
  #keys: '[412960.0.217980651]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorOrderLock743
    {
      #keys: '[412960.0.217980652]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[CustomerOrder]'
        Description: '获取订单'
        Source: 'DataHolderOrderLock'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPageOrderLock_1
    Component DataSetLevelOrderLock
    {
      #keys: '[412960.0.217980654]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuOrderLock_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]'
        ContextMenu: 'listContextMenuOrderLock'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning#679.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,209 @@
Quintiq file version 2.0
Component MatrixEditorProductPlanning id:MatrixEditorProductPlanning_679
{
  #keys: '[412960.0.220270414]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellPISPIP
    {
      #keys: '[412960.0.220270415]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorPISPIP
        {
          #keys: '[412960.0.220270416]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[ProductInStockingPoint_MP]'
            FixedFilter: 'not object.ProductInStockingPoint_MP().IsSystem() and object.ProductInStockingPoint_MP().IsLeaf()'
            Source: 'ApplicationMacroPlanner.DataHolderPISP'
            Taborder: 0
            Transformation: 'Elements.ProductInStockingPointInPeriod'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'DisplaySupplyQuantity;DependentDemandAndSalesDemandQuantity;TargetInventoryLevel;InventoryLevelEnd;StockLevelInDays'
        Column: 'Period_MP'
        Row: 'ProductInStockingPoint_MP'
        Taborder: 2
      ]
    }
    Component MatrixEditorRowsPISP
    {
      #keys: '[412960.0.220270417]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorPISP
        {
          #keys: '[412960.0.220270418]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[CustomerOrder]'
            FixedFilter: 'not object.IsSystem() and object.IsLeaf()'
            Source: 'DataHolderOrderLockCheckedOrder'
            Taborder: 0
            Transformation: 'Elements.ProductInStockingPoint_MP'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Product_MP.DisplayIndex;Name'
        Taborder: 0
      ]
    }
    Component MatrixEditorColumnsPeriod
    {
      #keys: '[412960.0.220270419]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorPeriod
        {
          #keys: '[412960.0.220270420]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[Period_MP]'
            Source: 'ApplicationMacroPlanner.DataHolderPeriods'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Start'
        SortCriteria: 'Start'
        Taborder: 1
      ]
    }
    Component UserConfigurableInformationMatrixEditorProductPlanning
    {
      #keys: '[412960.0.220270421]'
      BaseType: 'WebUserConfigurableInformation'
      Properties:
      [
        Identifier: 'Cell: PISPIP'
        ObjectType: 'ProductInStockingPointInPeriod'
        Taborder: 3
        Text: 'Test text'
        Tooltip: '<table><tr><td><b>SYNONYM(object.InventoryLevelEnd())</b></td><td>VALUE( MacroPlan::GetDisplayValue( object.InventoryLevelEnd() ) )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td><b>Inventory holding cost </b></td><td>VALUE(object.TotalBaseInventoryHoldingCost())VALUE( \' \'+ object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol() )</td><td>VALUE( \'[\' + object.TotalBaseInventoryHoldingCostPerQuantity().Format(\'N(Dec(2))\') )</td><td>VALUE( object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol()  + \'/\' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name() + \']\' )  </td></tr><tr><td><b>SYNONYM(object.StockLevelInDays())</b></td><td>VALUE(object.StockLevelInDays)</td><td>day</td></tr><tr><td><b>Total supply </b></td><td>VALUE(object.SupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Total demand </b></td><td>VALUE(object.GetDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><br><tr><td><b>Inventory start </b></td><td>VALUE( guard( MacroPlan::GetDisplayValue( object.InventoryLevelStartPISPIP().InventoryLevelEnd() ), 0.0 ) )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Sales demand </b></td><td>VALUE(object.SalesDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><tr><td><b>New supply </b></td><td>VALUE(object.NewSupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Dependent demand </b></td><td>VALUE(object.DependentDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><tr><td><b>Inventory supply </b></td><td>VALUE(object.InventorySupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Fulfilled demand </b></td><td>VALUE(object.FulfilledDemandQuantity() )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr></table><hr>VALUE( object.ImgHasFeedback() ) VALUE(  ifexpr( object.HasFeedback() , " Feedback message exist. Refer to Supply Planning matrix for details."  , "" )  )'
      ]
    }
    #child: matrixEditorActionBarPageProductPlanning_1
    #child: matrixeditorContextMenuProductPlanning_1
  ]
  Properties:
  [
    AllowAttributeConfiguration: true
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumnsPeriod'
    ContextMenu: 'matrixeditorContextMenuProductPlanning'
    Rows: 'MatrixEditorRowsPISP'
    ShowEditability: true
    ShowSingleAttribute: true
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick
    {
      #keys: '[412960.0.220270401]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[6763.0.7990336]'
          Binding: 'this.Selection()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick
    {
      #keys: '[412960.0.220270400]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[6763.0.7990409]'
          Binding: 'this.Selection()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick_119
    {
      #keys: '[412960.0.220270399]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selectedrows
        {
          #keys: '[6763.0.7990482]'
          Binding: 'this.SelectedRows()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick_720
    {
      #keys: '[412960.0.220270398]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selectedrows
        {
          #keys: '[6763.0.7990555]'
          Binding: 'this.SelectedRows()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick_640
    {
      #keys: '[412960.0.220270397]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selectedcolumns
        {
          #keys: '[6763.0.7990628]'
          Binding: 'this.SelectedColumns()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick_582
    {
      #keys: '[412960.0.220270396]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selectedcolumns
        {
          #keys: '[6763.0.7990701]'
          Binding: 'this.SelectedColumns()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix#780.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelMatrix id:PanelMatrix_780
{
  #keys: '[412960.0.220270412]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DataHolderSelectedPISPIPsInProductPlanningMatrix
    {
      #keys: '[412960.0.220270413]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ProductInStockingPointInPeriod]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: MatrixEditorProductPlanning_679
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelOrderLock
{
  #keys: '[412960.0.212571359]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelOrderLockHeader_545
    #child: PanelOrderLockOrder
    #child: PanelOrderLockPlanning
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
Quintiq file version 2.0
Component PanelOrderLockHeader id:PanelOrderLockHeader_545
{
  #keys: '[412960.0.212571440]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelOrderLockHeaderVersion
    {
      #keys: '[412960.0.212571441]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: 'MPS版本名称'
        Label: 'MPS版本:'
        Taborder: 0
      ]
    }
    Component EditFieldOrderLockHeader
    {
      #keys: '[412960.0.212571468]'
      BaseType: 'WebEditField'
      Properties:
      [
        Description: '模糊搜索筛选框'
        PlaceHolder: '模糊搜索'
        Taborder: 1
      ]
    }
    Component DateSelectorOrderLockHeaderCustomerOrder
    {
      #keys: '[412960.0.212571527]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Date: 2023-01-01
        Description: '客户需求时间'
        Label: '客户需求时间'
        Taborder: 3
      ]
    }
    Component DateSelectorOrderLockHeaderPlanDeliver
    {
      #keys: '[412960.0.212571611]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Date: 2023-01-01
        Description: '计划交付时间'
        Label: '计划交付时间'
        Taborder: 4
      ]
    }
    Component ButtonOrderLockHeader
    {
      #keys: '[412960.0.212571669]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '模糊搜索按钮'
        Label: '搜索'
        Taborder: 2
      ]
    }
    Component RadioButtonGroupOrderLockHeader
    {
      #keys: '[412960.0.212571696]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
        BoundValue: 'all'
        ButtonLabels: '已锁定;未锁定;全部'
        ButtonValues: 'locked;unlocked;all'
        DataBinding: 'DataHolderOrderLockGlobal.Data.IsOrderLocked'
        Description: '是否锁定的点选框'
        Orientation: 'horizontal'
        Taborder: 5
      ]
    }
    Component ButtonOrderLockHeaderLock
    {
      #keys: '[412960.0.221760476]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '订单锁定'
        Label: '锁定'
        Taborder: 7
      ]
    }
    Component ButtonOrderLockHeaderUnlock
    {
      #keys: '[412960.0.221760488]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '订单解锁'
        Label: '解锁'
        Taborder: 8
      ]
    }
    Component ButtonOrderLockHeaderClear
    {
      #keys: '[412960.0.223264324]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '清除筛选项'
        Label: '清除筛选'
        Taborder: 6
      ]
    }
  ]
  Properties:
  [
    Description: '放置lable,按钮等'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelOrderLockOrder
{
  #keys: '[412960.0.217980613]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListOrderLock_844
  ]
  Properties:
  [
    Description: '订单信息展示'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
Component PanelOrderLockPlanning
{
  #keys: '[412960.0.220270252]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelMatrix_780
  ]
  Properties:
  [
    Border: true
    Description: '订单对应的计划数据'
    Taborder: 2
    Title: '计划详情'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageOrderLock id:listActionBarPageOrderLock_1
{
  #keys: '[412960.0.217980653]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuOrderLock id:listContextMenuOrderLock_1
{
  #keys: '[412960.0.217980655]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageProductPlanning id:matrixEditorActionBarPageProductPlanning_1
{
  #keys: '[412960.0.220270422]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
Quintiq file version 2.0
Component matrixeditorContextMenuProductPlanning id:matrixeditorContextMenuProductPlanning_1
{
  #keys: '[412960.0.220270423]'
  BaseType: 'matrixeditorContextMenu'
  Children:
  [
    Component MenuCopy
    {
      #keys: '[138034.3.1296123318]'
      BaseType: 'MenuCopy'
      IsDerived: true
      Properties:
      [
        Taborder: 2
      ]
    }
    Component MenuSeparator3
    {
      #keys: '[412960.0.220270424]'
      BaseType: 'WebMenu'
      Properties:
      [
        Separator: true
        Taborder: 1
      ]
    }
    Component MenuLock
    {
      #keys: '[412960.0.220270427]'
      BaseType: 'WebMenu'
      Properties:
      [
        DelegationID: 'ActionBarPlan_Lock'
        Image: 'LOCK'
        Taborder: 3
        Title: 'Lock'
      ]
    }
    Component MenuUnlock
    {
      #keys: '[412960.0.220270428]'
      BaseType: 'WebMenu'
      Properties:
      [
        DelegationID: 'ActionBarPlan_Unlock'
        Image: 'LOCK_OPEN'
        Taborder: 4
        Title: 'Unlock'
      ]
    }
  ]
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_ListOrderLock_844_OnUserCheckedChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListOrderLock_844
Response OnUserCheckedChanged (
  structured[CustomerOrder] checkeditems
) id:Response_ListOrderLock_844_OnUserCheckedChanged
{
  #keys: '[412960.0.246680266]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderOrderLockCheckedOrder.Data( checkeditems.Copy() );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
#parent: MatrixEditorProductPlanning_679
Response OnClick (
  structured[ProductInStockingPointInPeriod] selection
) id:Response_MatrixEditorProductPlanning_679_MenuLock_OnClick
{
  #keys: '[412960.0.220270410]'
  CanBindMultiple: false
  DefinitionID => /MatrixEditorProductPlanning_679/Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick
  Initiator: 'MenuLock'
  Precondition:
  [*
    return ProductInStockingPointInPeriod::CanLockUnlock( selection, feedback );
  *]
  QuillAction
  {
    Body:
    [*
      // Lock total supply quantity for PISPIPs
      // This is a workaround, we supposedly set the bindingtype of selection as the subtype, but
      // the response would have trouble handling multiple cell selection, so for now, we bind the base type
      // then select the subtype
      pispipLeafs := selectset( selection,
                                Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ),
                                pispip,
                                true );
      ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, true, true );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: MatrixEditorProductPlanning_679
Response OnClick (
  structured[ProductInStockingPointInPeriod] selection
) id:Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick
{
  #keys: '[412960.0.220270407]'
  CanBindMultiple: false
  DefinitionID => /MatrixEditorProductPlanning_679/Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick
  Initiator: 'MenuUnlock'
  Precondition:
  [*
    return ProductInStockingPointInPeriod::CanLockUnlock( selection, feedback );
  *]
  QuillAction
  {
    Body:
    [*
      // Unlock the total supply quantity of pispips
      // This is a workaround, we supposedly set the bindingtype of selection as the subtype, but
      // the response would have trouble handling multiple cell selection, so for now, we bind the base type
      // then select the subtype
      pispipLeafs := selectset( selection, Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispip,
                                true );
      ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: MatrixEditorProductPlanning_679
Response OnCheckEditability (
  structured[ProductInStockingPointInPeriodPlanning] cell,
  Real value
) id:Response_MatrixEditorProductPlanning_679_OnCheckEditability
{
  #keys: '[412960.0.220270404]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMatrixEditor_OnCheckEditability'
  QuillAction
  {
    Body:
    [*
      //Precondition
      attributes := construct( Strings );
      attributes.Add(focusedattribute);
      isSupply_o := false;
      feedback :="";
      cond := MacroPlan.CanPlan( feedback )
              and ProductInStockingPointInPeriod::CanEnterSupplyQuantity( feedback,
                                                                          cell,
                                                                          attributes,
                                                                          isSupply_o );
      if( cond )
      {
        if( isSupply_o )
        {
          periods := selectset( cell, Elements.Period_MP, period, true );
          cond := ScenarioManager::CanStartSmartPlan( ScenarioManager,
                                                      DataHolderActiveScenario.Data(),
                                                      true,
                                                      periods,
                                                      feedback );
        }
      }
      editinfo.CanEdit( cond );
      editinfo.UserHint( feedback );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: MatrixEditorProductPlanning_679
Response OnUserSelectionChanged (
  structured[ProductInStockingPointInPeriod] selection
) id:Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged
{
  #keys: '[412960.0.220270402]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMatrixEditor_OnUserSelectionChanged'
  QuillAction
  {
    Body:
    [*
      //Assign selection to data holder
      DataHolderSelectedPISPIPsInProductPlanningMatrix.Data( selection.Copy() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderClear
Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick
{
  #keys: '[412960.0.223264347]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      EditFieldOrderLockHeader.Text( "" );
      DateSelectorOrderLockHeaderCustomerOrder.Date( Date::Construct(2023,1,1) );
      DateSelectorOrderLockHeaderPlanDeliver.Date( Date::Construct(2023,1,1) );
      RadioButtonGroupOrderLockHeader.BoundValue( "all" );
      DataExtractorOrderLock.FixedFilter( "true" );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderLock_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderLock
Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderLock_OnClick
{
  #keys: '[412960.0.245380616]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    checkorders := DataHolderOrderLockCheckedOrder.Data();
    pispips := construct( ProductInStockingPointInPeriods );
    traverse( checkorders, Elements, order ){
      pispips.Add( selectset( order, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ) );
      }
    return ProductInStockingPointInPeriod::CanLockUnlock( pispips, feedback );
  *]
  QuillAction
  {
    Body:
    [*
      checkorders := DataHolderOrderLockCheckedOrder.Data();
      pispips := construct( ProductInStockingPointInPeriods );
      macroplan := MacroPlan;
      traverse( checkorders, Elements, order ){
        pispips.Add( selectset( order, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ) );
        }
      pispipLeafs := selectset( pispips,
                                Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ),
                                pispip,
                                true );
      CustomerOrder::LockUnlock( macroplan, checkorders, true );
      ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, true, true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderUnlock_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderUnlock
Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderUnlock_OnClick
{
  #keys: '[412960.0.250520489]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    checkorders := DataHolderOrderLockCheckedOrder.Data();
    pispips := construct( ProductInStockingPointInPeriods );
    traverse( checkorders, Elements, order ){
      pispips.Add( selectset( order, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ) );
      }
    return ProductInStockingPointInPeriod::CanLockUnlock( pispips, feedback );
  *]
  QuillAction
  {
    Body:
    [*
      checkorders := DataHolderOrderLockCheckedOrder.Data();
      pispips := construct( ProductInStockingPointInPeriods );
      macroplan := MacroPlan;
      traverse( checkorders, Elements, order ){
        pispips.Add( selectset( order, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ) );
        }
      pispipLeafs := selectset( pispips,
                                Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ),
                                pispip,
                                true );
      CustomerOrder::LockUnlock( macroplan, checkorders, false );
      ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/ButtonOrderLockHeader
Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick
{
  #keys: '[412960.0.221841965]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      thisfilter := "( object.OrderID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
      + " or " + "object.ProductID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
      + " or " + "object.UnitOfMeasureName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
      + " or " + "object.StockingPointID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
      + " or " + "object.CustomerName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )"
      + " or " + "object.SalesSegmentName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " ) )" ;
      existfilter := DataExtractorOrderLock.FixedFilter();
      if( existfilter = "true" ){
        existfilter := "";
        }
      existfilterlist := existfilter.Tokenize( " and " );
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "OrderID()", 0 ) >= 0 ){
          if( newfilter = "" ){
            newfilter := thisfilter;
            }else{
              newfilter := newfilter + " and " + thisfilter;
              }
          findcount := 1;
          }else{
            if( newfilter = "" ){
              newfilter := filter;
              }else{
                newfilter := newfilter + " and " + filter;
                }
            }
        }
      if( findcount = 0 ){
        if( newfilter = "" ){
          newfilter := thisfilter;
          }else{
            newfilter := newfilter + " and " + thisfilter;
            }
        }
      info( newfilter );
      DataExtractorOrderLock.FixedFilter( newfilter );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/DateSelectorOrderLockHeaderCustomerOrder
Response OnChanged () id:Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_OnChanged
{
  #keys: '[412960.0.221842202]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      existfilter := DataExtractorOrderLock.FixedFilter();
      if( existfilter = "true" ){
        existfilter := "";
        }
      existfilterlist := existfilter.Tokenize( " and " );
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "EndDate()", 0 ) >= 0 ){
          if( newfilter = "" ){
            newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
            }else{
              newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
              }
          findcount := 1;
          }else{
            if( newfilter = "" ){
              newfilter := filter;
              }else{
                newfilter := newfilter + " and " + filter;
                }
            }
        }
      if( findcount = 0 ){
        if( newfilter = "" ){
          newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )";
          }else{
            newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )";
            }
        }
      info( newfilter );
      DataExtractorOrderLock.FixedFilter( newfilter );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/DateSelectorOrderLockHeaderPlanDeliver
Response OnChanged () id:Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnChanged
{
  #keys: '[412960.0.221842649]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      existfilter := DataExtractorOrderLock.FixedFilter();
      if( existfilter = "true" ){
        existfilter := "";
        }
      existfilterlist := existfilter.Tokenize( " and " );
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){
          if( newfilter = "" ){
            newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
            }else{
              newfilter := newfilter + " and " + "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
              }
          findcount := 1;
          }else{
            if( newfilter = "" ){
              newfilter := filter;
              }else{
                newfilter := newfilter + " and " + filter;
                }
            }
        }
      if( findcount = 0 ){
        if( newfilter = "" ){
          newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
          }else{
            newfilter := newfilter + " and " + "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )";
            }
        }
      info( newfilter );
      DataExtractorOrderLock.FixedFilter( newfilter );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
Quintiq file version 2.0
#parent: PanelOrderLockHeader_545/RadioButtonGroupOrderLockHeader
Response OnChanged () id:Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged
{
  #keys: '[412960.0.221843171]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      existfilter := DataExtractorOrderLock.FixedFilter();
      if( existfilter = "true" ){
        existfilter := "";
        }
      existfilterlist := existfilter.Tokenize( " and " );
      newfilter := "";
      findcount := 0;
      traverse( existfilterlist, Elements, filter ){
        if( filter.FindString( "IsLocked()", 0 ) >= 0 ){
          if( this.BoundValue() = "locked" ){
            if( newfilter = "" ){
              newfilter := "( object.IsLocked() = true )";
              }else{
                newfilter := newfilter + " and " + "( object.IsLocked() = true )";
                }
            }else if( this.BoundValue() = "unlocked" ){
              if( newfilter = "" ){
                newfilter := "( object.IsLocked() = false )";
                }else{
                  newfilter := newfilter + " and " + "( object.IsLocked() = false )";
                  }
              }else if( this.BoundValue() = "all" ){
                newfilter := newfilter + "";
                }
          findcount := 1;
          }else{
            if( newfilter = "" ){
              newfilter := filter;
              }else{
                newfilter := newfilter + " and " + filter;
                }
            }
        }
      if( findcount = 0 ){
        if( this.BoundValue() = "locked" ){
          if( newfilter = "" ){
            newfilter := "( object.IsLocked() = true )";
            }else{
              newfilter := newfilter + " and " + "( object.IsLocked() = true )";
              }
          }else if( this.BoundValue() = "unlocked" ){
            if( newfilter = "" ){
              newfilter := "( object.IsLocked() = false )";
              }else{
                newfilter := newfilter + " and " + "( object.IsLocked() = false )";
                }
            }else if( this.BoundValue() = "all" ){
              newfilter := newfilter + "";
              }
        }
      DataExtractorOrderLock.FixedFilter( newfilter );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormOrderLock
{
  #keys: '[412960.0.212511678]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelOrderLock
    Component DataHolderOrderLock
    {
      #keys: '[412960.0.212571799]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[CustomerOrder]*'
      Children:
      [
        Component DataExtractorOrderLock
        {
          #keys: '[412960.0.212571816]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Description: '抽取订单数据'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'SalesDemand.astype(CustomerOrder)'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
      ]
    }
    Component DataHolderOrderLockGlobal
    {
      #keys: '[412960.0.212571897]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[Scenario]*'
      Properties:
      [
        Description: '存储是否锁定的筛选条件'
        Taborder: 2
      ]
    }
    Component DataHolderOrderLockCheckedOrder
    {
      #keys: '[412960.0.245361440]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[CustomerOrder]*'
      Properties:
      [
        Description: '储存选中的订单数据'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Description: '订单锁定解锁界面'
    Image: 'DATA_LOCK'
    Title: '订单锁定解锁界面'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_ListOrderLockLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListOrderLockLog
{
  #keys: '[412960.0.251923186]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorOrderLockLog473
    {
      #keys: '[412960.0.251923187]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[OrderLockLog]'
        Source: 'DataHolderOrderLockLog'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPageOrderLockLog
    Component DataSetLevelOrderLockLog
    {
      #keys: '[412960.0.251923192]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuOrderLockLog
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}}]'
        ContextMenu: 'listContextMenuOrderLockLog'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_PanelOrderLockLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelOrderLockLog
{
  #keys: '[412960.0.250590911]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListOrderLockLog
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_listActionBarPageOrderLockLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageOrderLockLog
{
  #keys: '[412960.0.251923189]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/Component_listContextMenuOrderLockLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuOrderLockLog
{
  #keys: '[412960.0.251923194]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOrderLockLog/_ROOT_Component_FormOrderLockLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormOrderLockLog
{
  #keys: '[412960.0.248150315]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelOrderLockLog
    Component DataHolderOrderLockLog
    {
      #keys: '[412960.0.250590928]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[OrderLockLog]*'
      Children:
      [
        Component DataExtractorOrderLockLog
        {
          #keys: '[412960.0.250590940]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'OrderLockLog'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Description: '订单锁定/解锁日志'
    Image: 'TEXT_LOCK'
    Title: '订单锁定/解锁日志'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_ListPriorityFactor.def
@@ -1,17 +1,17 @@
Quintiq file version 2.0
Component ListPriorityFactor
{
  #keys: '[414382.0.453382063]'
  #keys: '[414382.0.479644224]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPriorityFactor
    {
      #keys: '[414382.0.453382064]'
      #keys: '[414382.0.479644225]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[PriorityFactorDetails]'
        DataType: 'structured[PriorityFactor]'
        Source: 'DataHolderPriorityFactorSelect'
        Taborder: 0
        Transformation: 'Elements'
@@ -20,7 +20,7 @@
    #child: listActionBarPagePriorityFactor
    Component DataSetLevelPriorityFactor
    {
      #keys: '[414382.0.453382069]'
      #keys: '[414382.0.479644230]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorName","title":"PriorityFactorName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"coefficient","title":"coefficient","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"coefficient"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorDesc","title":"PriorityFactorDesc","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorDesc"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Coefficient","title":"系数","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Coefficient"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Desc","title":"描述","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Desc"}}]'
        ContextMenu: 'listContextMenuPriorityFactor'
        Taborder: 2
      ]
@@ -36,13 +36,13 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityFactor_WebMenu_OnClick
    {
      #keys: '[414382.0.452290439]'
      #keys: '[414382.0.484095232]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
@@ -50,7 +50,7 @@
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1187.0.7063875]'
          #keys: '[1239.0.11670068]'
          Binding: 'this.Selection()'
        }
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_PanelPriorityFactorSelect.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listActionBarPagePriorityFactor.def
@@ -1,7 +1,7 @@
Quintiq file version 2.0
Component listActionBarPagePriorityFactor
{
  #keys: '[414382.0.453382066]'
  #keys: '[414382.0.479644227]'
  BaseType: 'listActionBarPage'
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
@@ -1,29 +1,30 @@
Quintiq file version 2.0
Component listContextMenuPriorityFactor
{
  #keys: '[414382.0.453382071]'
  #keys: '[414382.0.479644232]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuTestData
    Component MenuInitData
    {
      #keys: '[414382.0.452290464]'
      #keys: '[414382.0.482890505]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR'
        Taborder: 3
        Title: 'Test'
        Title: 'Init Data'
      ]
    }
    Component MenuClearTestData
    Component MenuEdit
    {
      #keys: '[414382.0.453953843]'
      #keys: '[414382.0.485622263]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 4
        Title: 'ClearTestData'
        Title: '编辑'
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_BusinessTypeSelectStringList_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_BusinessTypeSelectStringList_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: DropDownStringListBusinessType
Response OnCreated () id:Response_FormPriorityFactor_DropDownStringListBusinessType_OnCreated
{
  #keys: '[414382.0.461201807]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
      this.Strings(strings);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: DropDownStringListBusinessType
Response OnSelectionChanged () id:Response_FormPriorityFactor_DropDownStringListBusinessType_OnSelectionChanged
{
  #keys: '[414382.0.461060940]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      DataHolderPriorityFactorSelect.Data(&list);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuClearTestData_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick (
  PriorityFactor selection
) id:Response_ListPriorityFactor_MenuEdit_OnClick
{
  #keys: '[414382.0.485894605]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  Initiator: 'MenuEdit'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditPriorityFactor );
      dlg.Edit( selection);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick () id:Response_ListPriorityFactor_MenuInitData_OnClick
{
  #keys: '[414382.0.482802120]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
  Initiator: 'MenuInitData'
  QuillAction
  {
    Body:
    [*
      PriorityFactorDetails::CreateTestData(  MacroPlan);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuTestData_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPriorityFactor
Response OnClick (
  PriorityFactor selection
) id:Response_ListPriorityFactor_OnClick
{
  #keys: '[414382.0.482282953]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnClick'
  QuillAction
  {
    Body:
    [*
      detaisls := PriorityFactorDetails::GetDataByPriorityFactor( selection, MacroPlan);
      DataHolderPriorityFactorDetailsSelect.Data(&detaisls);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_PanelPriorityFactorSelect_BusinessTypeSelectStringList_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -7,7 +7,6 @@
  BaseType: 'WebForm'
  Children:
  [
    #child: ListPriorityFactor
    Component DataHolderPriorityFactorSelect
    {
      #keys: '[414382.0.453562359]'
@@ -15,18 +14,29 @@
      Databinding: 'structured[PriorityFactor]*'
      Properties:
      [
        Taborder: 2
        Taborder: 1
      ]
    }
    Component BusinessTypeSelectStringList
    Component DropDownStringListBusinessType
    {
      #keys: '[414382.0.454113393]'
      #keys: '[414382.0.461144262]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '事业部: '
        Label: '事业部:'
        Taborder: 0
      ]
    }
    #child: ListPriorityFactor
    Component DataHolderPriorityFactorDetailsSelect
    {
      #keys: '[414382.0.482103344]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityFactorDetails]*'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_ListPriorityFactorGrading.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListPriorityFactorGrading
{
  #keys: '[414382.0.479530865]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPriorityFactorGrading961
    {
      #keys: '[414382.0.479530866]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[PriorityFactorDetails]'
        Source: 'DataHolderPriorityFactorGrading'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPagePriorityFactorGrading
    Component DataSetLevelPriorityFactorGrading
    {
      #keys: '[414382.0.479530871]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPriorityFactorGrading
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"GradingName","title":"细分名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"GradingName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"GradeValueStr","title":"分级","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"GradeValueStr"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"GradeDesc","title":"描述","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"GradeDesc"}}]'
        ContextMenu: 'listContextMenuPriorityFactorGrading'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
    {
      #keys: '[414382.0.482374475]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selction
        {
          #keys: '[1231.0.33373473]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listActionBarPagePriorityFactorGrading.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePriorityFactorGrading
{
  #keys: '[414382.0.479530868]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component listContextMenuPriorityFactorGrading
{
  #keys: '[414382.0.479530873]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEdit
    {
      #keys: '[414382.0.478491125]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 3
        Title: '编辑'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListPriorityFactorGrading
Response OnClick (
  PriorityFactorDetails selction
) id:Response_ListPriorityFactorGrading_MenuEdit_OnClick
{
  #keys: '[414382.0.479531766]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityFactorGrading/Responsedef_ListPriorityFactorGrading_WebMenu_OnClick
  Initiator: 'MenuEdit'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditPriorityFactorDetails);
      dlg.Edit( selction);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/_ROOT_Component_FormPriorityFactorGrading.def
@@ -5,4 +5,32 @@
{
  #keys: '[414382.0.447270082]'
  BaseType: 'WebForm'
  Children:
  [
    Component DataHolderPriorityFactorGrading
    {
      #keys: '[414382.0.478480902]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityFactorDetails]*'
      Children:
      [
        Component DataExtractorPriorityFactorGrading
        {
          #keys: '[414382.0.478480916]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[PriorityFactorDetails]'
            Source: 'FormPriorityFactor.DataHolderPriorityFactorDetailsSelect'
            Taborder: 0
          ]
        }
      ]
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: ListPriorityFactorGrading
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListPriorityPolicy
{
  #keys: '[414382.0.489382436]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPriorityPolicy
    {
      #keys: '[414382.0.489382437]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[PriorityPolicy]'
        Source: 'DataHolderPriorityPolicy'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPagePriorityPolicy
    Component DataSetLevelPriorityPolicy
    {
      #keys: '[414382.0.489382442]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPriorityPolicy
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Formula","title":"Formula","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Formula"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CalculateValue","title":"CalculateValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CalculateValue"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Desc","title":"Desc","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Desc"}}]'
        ContextMenu: 'listContextMenuPriorityPolicy'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 2
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityPolicy_WebMenu_OnClick
    {
      #keys: '[414382.0.489382571]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1245.0.22804476]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient#902.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
Component PanelPriorityPolicyCoefficient id:PanelPriorityPolicyCoefficient_902
{
  #keys: '[414382.0.494931779]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelPriorityPolicyCoefficient
    {
      #keys: '[414382.0.494931780]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '因子的系数'
        Taborder: 0
      ]
    }
    Component ButtonCommit
    {
      #keys: '[414382.0.494931877]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '完成'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
Component PanelPriorityPolicyOperation
{
  #keys: '[414382.0.495572021]'
  BaseType: 'WebPanel'
  Children:
  [
    Component PanelPriorityPolicyOperationName
    {
      #keys: '[414382.0.494931391]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '优先级策略名称:'
        Taborder: 0
      ]
    }
    Component LabelFormula id:LabelFormula_223
    {
      #keys: '[414382.0.494931658]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '公式:'
        Taborder: 1
      ]
    }
    Component LabelCalculateValue id:LabelCalculateValue_943
    {
      #keys: '[414382.0.494931674]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '计算值:'
        Taborder: 2
      ]
    }
    #child: PanelPriorityPolicyOperationButton
    #child: PanelPriorityPolicyCoefficient_902
  ]
  Properties:
  [
    Taborder: 3
    Title: '优先级策略配置'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton#713.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
Quintiq file version 2.0
Component PanelPriorityPolicyOperationButton
{
  #keys: '[414382.0.494931742]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonAddPriorityPolicy
    {
      #keys: '[414382.0.494931743]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '添加因子'
        Taborder: 1
      ]
    }
    Component Buttonplus
    {
      #keys: '[414382.0.494931744]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '+'
        Taborder: 2
      ]
    }
    Component ButtonSubtract
    {
      #keys: '[414382.0.494931745]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '*'
        Taborder: 3
      ]
    }
    Component ButtonMultiply
    {
      #keys: '[414382.0.494931747]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'x'
        Taborder: 4
      ]
    }
    Component ButtonDivide
    {
      #keys: '[414382.0.494931748]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '/'
        Taborder: 5
      ]
    }
    Component ButtonLeftParenthesis
    {
      #keys: '[414382.0.494931749]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '('
        Taborder: 6
      ]
    }
    Component ButtonRightParenthesis
    {
      #keys: '[414382.0.494931750]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: ')'
        Taborder: 7
      ]
    }
    Component ButtonRollBack
    {
      #keys: '[414382.0.494931751]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '<-'
        Taborder: 8
      ]
    }
    Component DropDownStringList
    {
      #keys: '[414382.0.501480353]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '优先级因子'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    MinimumColumns: 10
    MinimumRows: 1
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listActionBarPagePriorityPolicy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePriorityPolicy
{
  #keys: '[414382.0.489382439]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_listContextMenuPriorityPolicy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
Component listContextMenuPriorityPolicy
{
  #keys: '[414382.0.489382444]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuNew
    {
      #keys: '[414382.0.487792532]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_ADD'
        Taborder: 3
        Title: '新增'
      ]
    }
    Component MenuEdit
    {
      #keys: '[414382.0.487792555]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 4
        Title: '编辑'
      ]
    }
    Component MenuDelete
    {
      #keys: '[414382.0.487792557]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_DELETE'
        Taborder: 5
        Title: '删除'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicySelectBusinessType_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: DataHolderPriorityPolicySelectBusinessType
Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicySelectBusinessType_OnCreated
{
  #keys: '[414382.0.493813692]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.Data(PriorityPolicyBusinessType.Text());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: DataHolderPriorityPolicy
Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnDataChanged
{
  #keys: '[414382.0.502145694]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  QuillAction
  {
    Body:
    [*
      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      this.Data(&list);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPriorityPolicy
Response OnClick (
  PriorityPolicy selection
) id:Response_ListPriorityPolicy_MenuDelete_OnClick
{
  #keys: '[414382.0.489382736]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityPolicy/Responsedef_ListPriorityPolicy_WebMenu_OnClick
  Initiator: 'MenuDelete'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuEdit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListPriorityPolicy
Response OnClick (
  PriorityPolicy selection
) id:Response_ListPriorityPolicy_MenuEdit_OnClick
{
  #keys: '[414382.0.489382588]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityPolicy/Responsedef_ListPriorityPolicy_WebMenu_OnClick
  Initiator: 'MenuEdit'
  QuillAction
  {
    Body:
    [*
      PanelPriorityPolicyOperation.Visible(true);
      PanelPriorityPolicyOperationName.Text(selection.Name());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuNew_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListPriorityPolicy
Response OnClick () id:Response_ListPriorityPolicy_MenuNew_OnClick
{
  #keys: '[414382.0.489382662]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityPolicy/Responsedef_ListPriorityPolicy_WebMenu_OnClick
  Initiator: 'MenuNew'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogNewPriorityPolicy );
      businessType := PriorityPolicyBusinessType.Text();
      dlg.New( MacroPlan, businessType);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: ListPriorityPolicy
Response OnUserSelectionChanged (
  PriorityPolicy selection
) id:Response_ListPriorityPolicy_OnUserSelectionChanged
{
  #keys: '[414382.0.503822635]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserSelectionChanged'
  QuillAction
  {
    Body:
    [*
      PanelPriorityPolicyOperationName.Text(selection.Name());
      businessType := PriorityPolicyBusinessType.Text();
      str := PriorityFactor::GetNameList( MacroPlan, businessType);
      DropDownStringList.Strings(str);
      data := shadow( selection );
      DataHolderEditPriorityPolicy.Data( &data );
      //coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
      //LabelPriorityPolicyCoefficient.Text([String]coefficient);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyCoefficient_902/ButtonCommit
Response OnClick () id:Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick
{
  #keys: '[414382.0.506250033]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      DataHolderEditPriorityPolicy.Data().Formula(LabelFormula.Text());
      DataHolderEditPriorityPolicy.Data().CalculateValue(LabelCalculateValue.Text());
      DataHolderEditPriorityPolicy.Data().Commit();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonAddPriorityPolicy
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick
{
  #keys: '[414382.0.502145449]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      coefficient := LabelPriorityPolicyCoefficient.Text();
      text := DropDownStringList.Text();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      textCalculate := DropDownStringList.Text() + "[" + coefficient + "*L]";
      calculateText := LabelCalculateValue.Text() + textCalculate;
      LabelCalculateValue.Text(calculateText);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonDivide
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick
{
  #keys: '[414382.0.500261587]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      text := this.Label();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      calculateTest := LabelCalculateValue.Text() + text;
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonLeftParenthesis
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick
{
  #keys: '[414382.0.500261667]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      text := this.Label();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      calculateTest := LabelCalculateValue.Text() + text;
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonMultiply
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick
{
  #keys: '[414382.0.500261507]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      text := this.Label();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      calculateTest := LabelCalculateValue.Text() + text;
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonRightParenthesis
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick
{
  #keys: '[414382.0.500261748]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      text := this.Label();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      calculateTest := LabelCalculateValue.Text() + text;
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonRollBack
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick
{
  #keys: '[414382.0.506055261]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      businessType := PriorityPolicyBusinessType.Text();
      formulaText := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelFormula.Text());
      LabelFormula.Text(formulaText);
      calculateTest := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelCalculateValue.Text());
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/ButtonSubtract
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick
{
  #keys: '[414382.0.500261427]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      text := this.Label();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      calculateTest := LabelCalculateValue.Text() + text;
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/Buttonplus
Response OnClick () id:Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick
{
  #keys: '[414382.0.500261347]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      text := this.Label();
      formulaText := LabelFormula.Text() + text;
      LabelFormula.Text(formulaText);
      calculateTest := LabelCalculateValue.Text() + text;
      LabelCalculateValue.Text(calculateTest);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: PanelPriorityPolicyOperationButton/DropDownStringList
Response OnSelectionChanged () id:Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionChanged
{
  #keys: '[414382.0.507827790]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      info( "select changeed" );
      businessType := PriorityPolicyBusinessType.Text();
      coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
      LabelPriorityPolicyCoefficient.Text([String]coefficient);
      info("coefficient := " + [String]coefficient  );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: PriorityPolicyBusinessType
Response OnCreated () id:Response_FormPriorityPolicy_PriorityPolicyBusinessType_OnCreated
{
  #keys: '[414382.0.486330568]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
      this.Strings(strings);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: PriorityPolicyBusinessType
Response OnSelectionChanged () id:Response_FormPriorityPolicy_PriorityPolicyBusinessType_OnSelectionChanged
{
  #keys: '[414382.0.486330569]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      DataHolderPriorityPolicy.Data(&list);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormPriorityPolicy
{
  #keys: '[414382.0.487620644]'
  BaseType: 'WebForm'
  Children:
  [
    Component PriorityPolicyBusinessType
    {
      #keys: '[414382.0.486330570]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '事业部:'
        Taborder: 0
      ]
    }
    Component DataHolderPriorityPolicy
    {
      #keys: '[414382.0.487792124]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityPolicy]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: ListPriorityPolicy
    #child: PanelPriorityPolicyOperation
    Component DataHolderEditPriorityPolicy
    {
      #keys: '[414382.0.505995334]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[PriorityPolicy]*'
      Properties:
      [
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
    Title: '优先级策略列表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListPriorityResult
{
  #keys: '[414382.0.506312194]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPriorityResult
    {
      #keys: '[414382.0.506312195]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'PriorityResult'
      ]
    }
    #child: listActionBarPagePriorityResult
    Component DataSetLevelPriorityResult
    {
      #keys: '[414382.0.506312200]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPriorityResult
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}}]'
        ContextMenu: 'listContextMenuPriorityResult'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultBusinessTypeDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListPriorityResultBusinessTypeDetails
{
  #keys: '[414382.0.506313048]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPriorityResultDetails
    {
      #keys: '[414382.0.506313049]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[PriorityResultBusinessTypeDetail]'
        Source: 'DataHolderPriorityResultBusinessTypeDetails'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPagePriorityResultDetails
    Component DataSetLevelPriorityResultDetails
    {
      #keys: '[414382.0.506313054]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPriorityResultDetails
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityPolicyName","title":"PriorityPolicyName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityPolicyName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorName","title":"PriorityFactorName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorGradingName","title":"PriorityFactorGradingName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorGradingName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityTotalScore","title":"PriorityTotalScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityTotalScore"}}]'
        ContextMenu: 'listContextMenuPriorityResultDetails'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 2
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityResultBusinessTypeDetails_WebMenu_OnClick
    {
      #keys: '[414382.0.506320636]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1275.0.8208190]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultGroupDetails#743.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListPriorityResultGroupDetails
{
  #keys: '[414382.0.506313387]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorPriorityResultDetails859
    {
      #keys: '[414382.0.506313388]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[PriorityResultGroupDetail]'
        Source: 'DataHolderPriorityResultGroupDetails'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPagePriorityResultDetails642
    Component DataSetLevelPriorityResultDetails872
    {
      #keys: '[414382.0.506313393]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuPriorityResultDetails590
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityPolicyName","title":"PriorityPolicyName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityPolicyName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorName","title":"PriorityFactorName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorGradingName","title":"PriorityFactorGradingName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorGradingName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityTotalScore","title":"PriorityTotalScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityTotalScore"}}]'
        ContextMenu: 'listContextMenuPriorityResultDetails590'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResult.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelPriorityResult
{
  #keys: '[414382.0.506311784]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListPriorityResult
  ]
  Properties:
  [
    Taborder: 0
    Title: '优先级结果列表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails#633.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
Component PanelPriorityResultDetails
{
  #keys: '[414382.0.506311801]'
  BaseType: 'WebPanel'
  Children:
  [
    Component LabelPriorityResultProductID
    {
      #keys: '[414382.0.506311846]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '产品编码:'
        Taborder: 0
      ]
    }
    Component LabelPriorityResultBusinessTypeDetails
    {
      #keys: '[414382.0.506311875]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '事业部优先级得分详情'
        Taborder: 1
      ]
    }
    Component LabelPriorityResultGroupDetails
    {
      #keys: '[414382.0.506311903]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '集团优先级得分详情'
        Taborder: 3
      ]
    }
    #child: ListPriorityResultBusinessTypeDetails
    #child: ListPriorityResultGroupDetails
  ]
  Properties:
  [
    Taborder: 1
    Title: '优先级结果明细'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResult.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePriorityResult
{
  #keys: '[414382.0.506312197]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePriorityResultDetails
{
  #keys: '[414382.0.506313051]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails642.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPagePriorityResultDetails642
{
  #keys: '[414382.0.506313390]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuPriorityResult
{
  #keys: '[414382.0.506312202]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component listContextMenuPriorityResultDetails
{
  #keys: '[414382.0.506313056]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEmergencyTopping
    {
      #keys: '[414382.0.506320730]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_TIME'
        Taborder: 3
        Title: 'Emergency Topping'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails590.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuPriorityResultDetails590
{
  #keys: '[414382.0.506313395]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: ListPriorityResultBusinessTypeDetails
Response OnClick (
  PriorityResultBusinessTypeDetail selection
) id:Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick
{
  #keys: '[414382.0.507572437]'
  CanBindMultiple: false
  DefinitionID => /ListPriorityResultBusinessTypeDetails/Responsedef_ListPriorityResultBusinessTypeDetails_WebMenu_OnClick
  Initiator: 'MenuEmergencyTopping'
  Precondition:
  [*
    return PriorityResultBusinessTypeDetail::CheckCanTopping(selection);
  *]
  QuillAction
  {
    Body:
    [*
      // ç´§æ€¥ç½®é¡¶
      PriorityResultBusinessTypeDetail::EmergencyTopping( MacroPlan,selection);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_OnUserSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: ListPriorityResult
Response OnUserSelectionChanged (
  PriorityResult selection
) id:Response_ListPriorityResult_OnUserSelectionChanged
{
  #keys: '[414382.0.506312631]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserSelectionChanged'
  QuillAction
  {
    Body:
    [*
      businessTypeDetails := selectset( selection,PriorityResultBusinessTypeDetail,p,true);
      DataHolderPriorityResultBusinessTypeDetails.Data(&businessTypeDetails);
      groupDetails := selectset( selection,PriorityResultGroupDetail,p,true);
      DataHolderPriorityResultGroupDetails.Data( &groupDetails);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormPriorityResult
{
  #keys: '[414382.0.506311765]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelPriorityResultDetails
    #child: PanelPriorityResult
    Component DataHolderPriorityResultBusinessTypeDetails
    {
      #keys: '[414382.0.506312058]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityResultBusinessTypeDetail]*'
      Properties:
      [
        Taborder: 2
      ]
    }
    Component DataHolderPriorityResultGroupDetails
    {
      #keys: '[414382.0.506312077]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityResultGroupDetail]*'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormReleaseRecord/_ROOT_Component_FormReleaseRecord.def
@@ -25,7 +25,7 @@
  Properties:
  [
    Description: '反签/授权物料发布版本明细'
    Image: 'BULL'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '反签/授权物料发布版本明细'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
@@ -1,4 +1,118 @@
Quintiq file version 2.0
Component ListScenario #extension
{
  Children:
  [
    Component DataSetLevelScenario #extension
    {
      Children:
      [
        Component listContextMenuScenarioFolder #extension
        {
          Children:
          [
            Component MenuRelaeaseNewVersion
            {
              #keys: '[412960.0.168283194]'
              BaseType: 'WebMenu'
              Properties:
              [
                DelegationID: 'ActionBarScenario_Release'
                Description: '发布新版本'
                Image: 'EDITOR_ALGORITHM'
                Taborder: 10
                Title: 'Release New Version...'
              ]
            }
            Component MenuCopyScenario #extension
            {
            }
            Component MenuSaveNewVersion
            {
              #keys: '[412960.0.172960163]'
              BaseType: 'WebMenu'
              Properties:
              [
                DelegationID: 'ActionBarScenario_Save'
                Description: '发布新版本'
                Image: 'DATA_DISK'
                Taborder: 11
                Title: 'Save New Version...'
              ]
            }
            Component MenuSeparator2 #extension
            {
              Properties:
              [
                Taborder: 12
              ]
            }
            Component MenuSeparator3 #extension
            {
              Properties:
              [
                Taborder: 14
              ]
            }
            Component MenuSelectScenario #extension
            {
              Properties:
              [
                Taborder: 13
              ]
            }
            Component MenuEditAuthorization #extension
            {
              Properties:
              [
                Taborder: 15
              ]
            }
            Component MenuSeparator4 #extension
            {
              Properties:
              [
                Taborder: 16
              ]
            }
            Component MenuLoadScenario #extension
            {
              Properties:
              [
                Taborder: 17
              ]
            }
            Component MenuUnloadScenario #extension
            {
              Properties:
              [
                Taborder: 18
              ]
            }
            Component MenuSeparator5 #extension
            {
              Properties:
              [
                Taborder: 19
              ]
            }
            Component MenuAdministration #extension
            {
              Properties:
              [
                Taborder: 20
              ]
            }
            Component MenuRestoreItem #extension
            {
              Properties:
              [
                Taborder: 21
              ]
            }
          ]
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCopyScenario_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: ListScenario
Response OnClick (
  ScenarioMP selection
) id:Response_ListScenario_MenuCopyScenario_OnClick #extension
{
  Precondition:
  [*
    feedback := ApplicationMacroPlanner.HasValidDataset( selection );
    return feedback = '' and selection.CanCopy( feedback );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
Quintiq file version 2.0
#parent: ListScenario
Response OnClick (
  ScenarioMP selection
) id:Response_ListScenario_MenuRelaeaseNewVersion_OnClick
{
  #keys: '[412960.0.170112594]'
  CanBindMultiple: false
  DefinitionID => /ListScenario/Responsedef_ListScenario_WebMenu_OnClick
  Initiator: 'MenuRelaeaseNewVersion'
  Precondition:
  [*
    feedback := ApplicationMacroPlanner.HasValidDataset( selection );
    return feedback = '' and selection.CanCopy( feedback );
  *]
  QuillAction
  {
    Body:
    [*
      // Copy scenario
      owner := GlobalOTDTable;
      macroplan := MacroPlan;
      testbusinesstype := "集团";
      VersionControl::ReleaseNewVersion( owner, testbusinesstype );
      GlobalOTDTable::GetOutputVersionData( owner, macroplan, testbusinesstype );
      selection.SetReleased();
      versionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 3 );
      // Get the active scenario
      //data := selection;
      newscenario := null( Scenario );
      strategy := null( Strategy );
      data := ScenarioManager.ScenarioNode( relshadow,
                                                ScenarioMP,
                                                Parent := selection,
                                                Name := versionname,
                                                SelectedStrategy := selection.SelectedStrategy(),
                                                State := selection.State() );
      scenario := data.Parent().astype( ScenarioMP );
      strategy := data.SelectedStrategy();
      newscenario:= scenario.Copy( data.Parent(), versionname, "",
                                   data.Comment(), data.State() );
      newscenario.SelectedStrategy( relset, strategy );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
Quintiq file version 2.0
#parent: ListScenario
Response OnClick (
  ScenarioMP selection
) id:Response_ListScenario_MenuSaveNewVersion_OnClick
{
  #keys: '[412960.0.171680443]'
  CanBindMultiple: false
  DefinitionID => /ListScenario/Responsedef_ListScenario_WebMenu_OnClick
  Initiator: 'MenuSaveNewVersion'
  Precondition:
  [*
    feedback := ApplicationMacroPlanner.HasValidDataset( selection );
    return feedback = '' and selection.CanCopy( feedback );
  *]
  QuillAction
  {
    Body:
    [*
      // Copy scenario
      owner := GlobalOTDTable;
      macroplan := MacroPlan;
      testbusinesstype := "集团";
      VersionControl::CopyVersion( owner, testbusinesstype );
      versionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 3 );
      // Copy scenario
      newscenario := null( Scenario );
      strategy := null( Strategy );
      data := ScenarioManager.ScenarioNode( relshadow,
                                                ScenarioMP,
                                                Parent := selection,
                                                Name := versionname,
                                                SelectedStrategy := selection.SelectedStrategy(),
                                                State := selection.State() );
      scenario := data.Parent().astype( ScenarioMP );
      strategy := data.SelectedStrategy();
      newscenario:= scenario.Copy( data.Parent(), versionname, "",
                                   data.Comment(), data.State() );
      newscenario.SelectedStrategy( relset, strategy );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListVersionOfSOP
{
  #keys: '[412960.0.134950322]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorVersionOfSOP642
    {
      #keys: '[412960.0.134950323]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[VersionStatus]'
        Source: 'DataHolderVersionOfSOP'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPageVersionOfSOP
    Component DataSetLevelVersionOfSOP
    {
      #keys: '[412960.0.134950328]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuVersionOfSOP
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SortNumber","title":"SortNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SortNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessName","title":"BusinessName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastVersionName","title":"LastVersionName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastVersionName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastReleaseTime","title":"LastReleaseTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastReleaseTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastUser","title":"LastUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}}]'
        ContextMenu: 'listContextMenuVersionOfSOP'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_ListVersionOfSOPDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListVersionOfSOPDetails
{
  #keys: '[412960.0.142180298]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorVersionOfSOPDetails
    {
      #keys: '[412960.0.142180299]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[VersionStatusDetail]'
        Source: 'DataHolderVersionOfSOPDetails'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPageVersionOfSOPDetails
    Component DataSetLevelVersionOfSOPDetails
    {
      #keys: '[412960.0.142180304]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuVersionOfSOPDetails
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SortNumber","title":"SortNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SortNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SingleVersionName","title":"SingleVersionName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SingleVersionName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CreateTime","title":"CreateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CreateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReleaseTime","title":"ReleaseTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReleaseTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"User","title":"User","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"User"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionID","title":"VersionID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionID"}}]'
        ContextMenu: 'listContextMenuVersionOfSOPDetails'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelVersionOfSOP
{
  #keys: '[412960.0.134980204]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListVersionOfSOP
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelVersionOfSOPDetails
{
  #keys: '[412960.0.140720490]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListVersionOfSOPDetails
  ]
  Properties:
  [
    Description: '事业部发布状态详情panel'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
Quintiq file version 2.0
Component PanelVersionOfSOPHeader
{
  #keys: '[412960.0.137940569]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonVersionOfSOPHeaderFresh
    {
      #keys: '[412960.0.138000879]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '用于刷新各事业部当前版本发布状态的按钮'
        Label: '刷新'
        Taborder: 1
      ]
    }
    Component ButtonVersionOfSOPHeaderCopy
    {
      #keys: '[412960.0.138000890]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '用于复制选中的版本全量版本号的按钮'
        Label: '全量版本号复制'
        Taborder: 2
      ]
    }
    Component ButtonVersionOfSOPHeaderRelease
    {
      #keys: '[412960.0.142110396]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '发布一个新版本'
        Label: '测试用版本发布'
        Taborder: 3
        Visible: false
      ]
    }
    Component LabelVersionOfSOPHeader
    {
      #keys: '[412960.0.138000861]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '版本号展示处'
        FixedSize: false
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Description: '用于放置表头信息及按钮的panel'
    FixedSize: true
    Orientation: 'horizontal'
    Style: 'header'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageVersionOfSOP
{
  #keys: '[412960.0.134950325]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listActionBarPageVersionOfSOPDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageVersionOfSOPDetails
{
  #keys: '[412960.0.142180301]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuVersionOfSOP
{
  #keys: '[412960.0.134950330]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_listContextMenuVersionOfSOPDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuVersionOfSOPDetails
{
  #keys: '[412960.0.142180306]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelVersionOfSOPHeader/ButtonVersionOfSOPHeaderCopy
Response OnClick () id:Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick
{
  #keys: '[412960.0.149330244]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      owner := GlobalOTDTable;
      testbusinesstype := "集团";
      rootversionid := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 2 );
      dlg := construct( DialogVersionIDCopy );
      dlg.lblContent().Text( rootversionid );
      dlg.JustShow();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelVersionOfSOPHeader/ButtonVersionOfSOPHeaderFresh
Response OnClick () id:Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick
{
  #keys: '[412960.0.133611384]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      owner := GlobalOTDTable;
      testbusinesstype := "集团";
      //GlobalOTDTable::GetVersionData( owner, testbusinesstype );
      rootversionid := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 0 );
      DataExtractorVersionOfSOPDetails.FixedFilter( "object.VersionID().FindString( " + rootversionid.AsQUILL() + ", 0 ) = 0" );
      rootversionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 1 );
      LabelVersionOfSOPHeader.Text( rootversionname );
      VersionStatus::GetBusinessTypeStatus( owner, rootversionid );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelVersionOfSOPHeader/ButtonVersionOfSOPHeaderRelease
Response OnClick () id:Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick
{
  #keys: '[412960.0.142110414]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      owner := GlobalOTDTable;
      macroplan := MacroPlan;
      testbusinesstype := "集团";
      VersionControl::ReleaseNewVersion( owner, testbusinesstype );
      //GlobalOTDTable::GetOutputVersionData( owner, macroplan, testbusinesstype );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormVersionOfSOP
{
  #keys: '[412960.0.135200328]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelVersionOfSOP
    Component DataHolderVersionOfSOP
    {
      #keys: '[412960.0.134980222]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[VersionStatus]*'
      Children:
      [
        Component DataExtractorVersionOfSOP
        {
          #keys: '[412960.0.134980234]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            Taborder: 0
            Transformation: 'VersionStatus'
          ]
        }
      ]
      Properties:
      [
        Taborder: 3
      ]
    }
    #child: PanelVersionOfSOPHeader
    #child: PanelVersionOfSOPDetails
    Component DataHolderVersionOfSOPDetails
    {
      #keys: '[412960.0.140750496]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[VersionStatusDetail]*'
      Children:
      [
        Component DataExtractorVersionOfSOPDetails453
        {
          #keys: '[412960.0.142212532]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'VersionStatus'
            ExtractionMode: 'Selected'
            Source: 'ListVersionOfSOP'
            Taborder: 0
            Transformation: 'VersionStatusDetail'
          ]
        }
      ]
      Properties:
      [
        Description: '事业部对应详情数据'
        Taborder: 4
      ]
    }
    Component DataHolderVersionOfSOPCopy
    {
      #keys: '[412960.0.166861218]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[ScenarioMP]*'
      Properties:
      [
        Taborder: 5
      ]
    }
  ]
  Properties:
  [
    Description: 'SOP版本数据展示界面'
    Image: 'WINDOW_TIME'
    Title: 'SOP各事业部数据同步状态'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_Panel261.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelOptimizerGeneral718.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop0001#655.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop104.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop264.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop360.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop597.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop612.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop744.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop820.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Component_PanelTop846.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_Cancel_FAAC_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/Response_Panel261_btn_OK_FAAC_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign/_ROOT_Component_FrmAuthorizeAndCountersign.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/Response_OnCreated.def
@@ -15,13 +15,16 @@
    [*
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      if(not isnull( SelectItem))
      {
        StrValue := SelectItem.Value().Tokenize( ";");
        lb_SUK_FAACM.Text(StrValue.Element( 0));
        lb_MaterialCode_FAACM.Text(StrValue.Element( 1));
        lb_Unit_FAACM.Text(StrValue.Element( 2));
        lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName());
        if(SelectItem.Value().Length()>0)
        {
          StrValue := SelectItem.Value().Tokenize( ";");
          lb_SUK_FAACM.Text(StrValue.Element( 0));
          lb_MaterialCode_FAACM.Text(StrValue.Element( 1));
          lb_Unit_FAACM.Text(StrValue.Element( 2));
          lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName());
        }
      }
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Material/_ROOT_Component_FrmAuthorizeAndCountersign_Material.def
@@ -24,6 +24,7 @@
  Properties:
  [
    Description: '原材料半成品反签授权新增页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '原材料半成品反签授权新增页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel261#223.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
Component Panel261 id:Panel261_223
{
  #keys: '[414724.0.117732107]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_OK_FAAC
    {
      #keys: '[414724.0.117732108]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'OK'
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btn_Cancel_FAAC
    {
      #keys: '[414724.0.117732109]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'DELETE'
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 10
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel796.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component Panel796
{
  #keys: '[414724.0.116871632]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Label417
    {
      #keys: '[414724.0.115502113]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '订单反潜授权新增页'
        Taborder: 0
        Text: '订单反潜授权新增页'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_Panel989.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component Panel989
{
  #keys: '[414724.0.115531444]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ds_NeedDate id:ds_NeedDate_456
    {
      #keys: '[414724.0.117731536]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: '需求日期'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop#217.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
Component PanelTop id:PanelTop_217
{
  #keys: '[414724.0.117731595]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_SKUCode_FAAC
    {
      #keys: '[414724.0.117731596]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'SKU编码'
        NumberOfColumns: 30
        Taborder: 0
        Text: 'TM070RDH10-2322'
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop104#150.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
Component PanelTop104 id:PanelTop104_150
{
  #keys: '[414724.0.117731993]'
  BaseType: 'WebPanel'
  Children:
  [
    Component txt_CustomName_FAAC
    {
      #keys: '[414724.0.117731994]'
      BaseType: 'WebEditField'
      Properties:
      [
        Description: '客户名称'
        Enabled: false
        Label: '客户名称'
        NumberOfColumns: 30
        PlaceHolder: '请输入'
        ReadOnly: true
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 8
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop264#19.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
Component PanelTop264 id:PanelTop264_19
{
  #keys: '[414724.0.117731831]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_Util_FAAC
    {
      #keys: '[414724.0.117731832]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '单位'
        Label: '单位'
        NumberOfColumns: 30
        Taborder: 0
        Text: 'PCS'
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop360#136.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
Component PanelTop360 id:PanelTop360_136
{
  #keys: '[414724.0.117731775]'
  BaseType: 'WebPanel'
  Children:
  [
    Component np_Qty_FAAC
    {
      #keys: '[414724.0.117731776]'
      BaseType: 'WebNumberPicker'
      Properties:
      [
        Label: '数量'
        MaximumColumns: 50
        Min: '0'
        NumberOfColumns: 23
        Step: 100
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop597#324.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
Component PanelTop597 id:PanelTop597_324
{
  #keys: '[414724.0.117731885]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddsl_OperateType_FAAC
    {
      #keys: '[414724.0.117731886]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '反签'
        Label: '动作类型'
        NumberOfColumns: 26
        Strings: '反签;授权'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 6
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop612#612.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
Component PanelTop612 id:PanelTop612_612
{
  #keys: '[414724.0.117732047]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_Operator_FAAC
    {
      #keys: '[414724.0.117732048]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '操作人'
        Label: '操作人'
        NumberOfColumns: 30
        Taborder: 0
        Text: '李可'
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 9
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop744#568.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
Component PanelTop744 id:PanelTop744_568
{
  #keys: '[414724.0.117731719]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lb_SKUName_FAAC
    {
      #keys: '[414724.0.117731720]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'SKU名称'
        NumberOfColumns: 30
        Taborder: 0
        Text: 'T1型模组'
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Component_PanelTop846#618.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
Component PanelTop846 id:PanelTop846_618
{
  #keys: '[414724.0.117731939]'
  BaseType: 'WebPanel'
  Children:
  [
    Component txt_CustomID_FAAC
    {
      #keys: '[414724.0.117731940]'
      BaseType: 'WebEditField'
      Properties:
      [
        Enabled: false
        Label: '客户ID'
        NumberOfColumns: 30
        PlaceHolder: '请输入'
        ReadOnly: true
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 7
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FrmAuthorizeAndCountersign_Order_OnCreated
{
  #keys: '[414724.0.117762728]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      // éœ€æ±‚日期,默认下一个星期五
      ds_NeedDate.Date(H_FunctionClass::SM_GetNextFriday());
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem))
      {
        if(SelectItem.ValueJsonString().Length()>0)
        {
          // å¾—到选中的预测订单
          SelForecast := JSON::Parse( SelectItem.ValueJsonString());
          lb_SKUCode_FAAC.Text(SelForecast.Get( "SKU").GetString());
          lb_SKUName_FAAC.Text("产品");
          lb_Util_FAAC.Text(SelForecast.Get( "Util").GetString());
          txt_CustomID_FAAC.Text(SelForecast.Get( "CustomCode").GetString());
          txt_CustomName_FAAC.Text(SelForecast.Get( "CustomName").GetString());
          lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName());
      //    StrValue := SelectItem.Value().Tokenize( ";");
      //    lb_SKUCode_FAAC.Text(StrValue.Element( 0));
      //    lb_SKUName_FAAC.Text("产品");
      //    lb_Operator_FAAC.Text("");
      //    lb_Util_FAAC.Text(StrValue.Element( 1));
      //    txt_CustomID_FAAC.Text(StrValue.Element( 2));
      //    txt_CustomName_FAAC.Text(StrValue.Element( 3));
      //    lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName());
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_Cancel_FAAC_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: Panel261_223/btn_Cancel_FAAC
Response OnClick () id:Response_Panel261_223_btn_Cancel_FAAC_OnClick
{
  #keys: '[414724.0.117732105]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      FrmAuthorizeAndCountersign_Order.Close();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_Panel261_223_btn_OK_FAAC_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: Panel261_223/btn_OK_FAAC
Response OnClick () id:Response_Panel261_223_btn_OK_FAAC_OnClick
{
  #keys: '[414724.0.117732106]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan);
  *]
  QuillAction
  {
    Body:
    [*
      // æ•°é‡
      Qty := [Number]np_Qty_FAAC.Number().Round( 0);
      OperateMsg :="";
      OperateResult := H_FunctionClass::SM_OrderReverseOrAuthorize(  MacroPlan,lb_Util_FAAC.Text() ,"-",ds_NeedDate.Date() ,txt_CustomID_FAAC.Text(),lb_SKUCode_FAAC.Text(),Qty,
                                                            lb_Operator_FAAC.Text(),txt_CustomName_FAAC.Text(),OperateMsg,ddsl_OperateType_FAAC.Text());
      if( OperateResult)
      {
        FrmAuthorizeAndCountersign_Order.Close();
        if( OperateMsg.Length()>0)
        {
            WebMessageBox::Success( OperateMsg);
        }
      }
      else
      {
        WebMessageBox::Warning( OperateMsg);
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/_ROOT_Component_FrmAuthorizeAndCountersign_Order.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FrmAuthorizeAndCountersign_Order
{
  #keys: '[414724.0.115523082]'
  BaseType: 'WebForm'
  Children:
  [
    #child: Panel796
    #child: Panel989
    #child: PanelTop_217
    #child: PanelTop744_568
    #child: PanelTop360_136
    #child: PanelTop264_19
    #child: PanelTop597_324
    #child: PanelTop846_618
    #child: PanelTop104_150
    #child: PanelTop612_612
    #child: Panel261_223
  ]
  Properties:
  [
    Description: '原材料半成品反签授权新增页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '订单反签授权新增页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Component_Panel418.def
@@ -48,6 +48,23 @@
        Label: '新增反签/授权'
        Taborder: 3
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel418_btn_Add_FM_OnClick
        {
          #keys: '[414724.0.145266825]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[271.0.74853915]'
              Binding: 'List832.Selection()'
            }
          ]
        }
      ]
    }
  ]
  Properties:
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_OnCreated.def
@@ -2,20 +2,25 @@
#parent: #root
Response OnCreated () id:Response_FrmMaterial_OnCreated
{
  #keys: '[414724.0.93205703]'
  #keys: '[414724.0.118802220]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      txtSaveForecastData_FM.Text("");
      // èŽ·å–é€‰æ‹©åŽçš„SKU
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      if(not isnull( SelectItem))
      {
        StrValue := SelectItem.Value().Tokenize( ";");
        lb_SUK_FM.Text(StrValue.Element( 0));
        de_dh_FM_ProductMP.FixedFilter( "object.ParentID()="+lb_SUK_FM.Text());
        if( SelectItem.ValueJsonString().Length()>0)
        {
          txtSaveForecastData_FM.Text(  SelectItem.ValueJsonString());
          JSelect := JSON::Parse( SelectItem.ValueJsonString());
          lb_SUK_FM.Text(JSelect.Get( "SKU").GetString());
          de_dh_FM_ProductMP.FixedFilter( "object.ID() = " + JSelect.Get( "SKU").GetString().AsQUILL());
        }
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick#975.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: Panel418/btn_Add_FM
Response OnClick () id:Response_Panel418_btn_Add_FM_OnClick_975
{
  #keys: '[414724.0.145238844]'
  CanBindMultiple: false
  DefinitionID => /Panel418/Responsedef_Panel418_btn_Add_FM_OnClick
  Precondition:
  [*
    return not isnull( MacroPlan);
  *]
  QuillAction
  {
    Body:
    [*
      SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect");
      if( isnull( SelectItem))
      {
         MacroPlan.H_MessagePassing(relnew,FKey :="FrmMaterial",ItemKey := "ListSelect",Value := "");
      }
      else
      {
        //SelectItem.ValueJsonString()
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/Response_Panel418_btn_Add_FM_OnClick.def
@@ -13,7 +13,7 @@
  {
    Body:
    [*
      Application.OpenForm( "FrmAuthorizeAndCountersign_Material","popout");
      Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal");
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FrmMaterial/_ROOT_Component_FrmMaterial.def
@@ -35,10 +35,25 @@
        Taborder: 2
      ]
    }
    Component txtSaveForecastData_FM
    {
      #keys: '[414724.0.143737386]'
      BaseType: 'WebEditField'
      Properties:
      [
        Description: '存储所选物料信息'
        Enabled: false
        ReadOnly: true
        Taborder: 4
        Visible: false
      ]
    }
  ]
  Properties:
  [
    Description: '原料列表页'
    Image: 'NAV_REDO_LIGHT_BLUE'
    MinimumRows: 50
    Title: '原料列表页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel351.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
Quintiq file version 2.0
Component Panel351
{
  #keys: '[414724.0.115504403]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_Add_Order_FOF449
    {
      #keys: '[414724.0.115504404]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: '订单新增反签/授权'
        Label: '订单新增反签/授权'
        Taborder: 1
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel351_btn_Add_Order_FOF449_OnClick
        {
          #keys: '[414724.0.141224456]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[271.0.41037309]'
              Binding: 'liH_Forecast.Selection()'
            }
          ]
        }
      ]
    }
    Component btn_Add_Material_FOF503
    {
      #keys: '[414724.0.115504405]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: '原料新增反签/授权'
        Label: '原料新增反签/授权'
        Taborder: 2
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel351_btn_Add_Material_FOF503_OnClick
        {
          #keys: '[414724.0.145304022]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[271.0.68431130]'
              Binding: 'liH_Forecast.Selection()'
            }
          ]
        }
      ]
    }
    Component btn_InitialData778
    {
      #keys: '[414724.0.115504406]'
      BaseType: 'WebButton'
      Properties:
      [
        Description: '加载数据(假的,后续需要对接数据)'
        Label: '加载预测订单数据'
        Taborder: 0
        Visible: false
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel383.def
@@ -48,5 +48,6 @@
    MinimumColumns: 80
    Orientation: 'horizontal'
    Taborder: 0
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel647.def
@@ -36,6 +36,7 @@
        Description: '加载数据(假的,后续需要对接数据)'
        Label: '加载预测订单数据'
        Taborder: 0
        Visible: false
      ]
    }
  ]
@@ -43,7 +44,6 @@
  [
    Alignment: 'trailing'
    FixedSize: true
    MinimumColumns: 20
    Orientation: 'horizontal'
    Taborder: 1
  ]
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_Panel849.def
@@ -10,8 +10,10 @@
  ]
  Properties:
  [
    Description: '已经隐藏,暂未使用'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
    Taborder: 2
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_liH_Forecast.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedTime","title":"NeedTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Util","title":"Util","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Util"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"CustomName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"Department","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订单编号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU编码","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"预测数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedTime","title":"需求时间","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Util","title":"单位","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Util"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"客户名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"销售部门","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]'
        ContextMenu: 'listContextMenu367'
        Taborder: 2
      ]
@@ -36,6 +36,6 @@
  ]
  Properties:
  [
    Taborder: 6
    Taborder: 7
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Component_list_ForecastView_FOF#670.def
@@ -37,7 +37,7 @@
  ]
  Properties:
  [
    Taborder: 4
    Taborder: 5
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnClose.def
@@ -13,7 +13,8 @@
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if( not isnull( SelectItem))
      {
        SelectItem.Value("");
        SelectItem.Value("");
        SelectItem.ValueJsonString("");
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_OnCreated.def
@@ -11,41 +11,12 @@
    [*
      // åˆå§‹åŒ–查询参数月份
      ds_Month_FOF.Date(Date::ActualDate());
      // é¢„测数据2此处理(筛选+客户名称提取)
      if( MacroPlan.H_Forecast(relget ).Size()>0)
      // åˆå§‹åŒ–预测数据
      JResult := H_FunctionClass::SM_InitialForcastData( MacroPlan);
      if(not JResult.Get( "Status").GetBoolean())
      {
        MacroPlan.H_Forecast(relget ).Delete( 0,MacroPlan.H_Forecast(relget ).Size()-1);
          WebMessageBox::Warning( JResult.Get( "Msg").GetString());
      }
      //AllData:= selectset( MacroPlan, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth()
      //                     and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth()
      //                     and object.Quantity()>0 );
      //
      //CustomName:="";
      //DepartMent:="";
      //idx:=0;
      //traverse( AllData,Elements,Obj,not isnull(Obj))
      //{
      //  idx:=Obj.SalesSegmentName().FindString( "_",0);
      //  if(idx>0)
      //  {
      //    DepartMent:=Obj.SalesSegmentName().SubString( 0,idx+1);
      //    CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1));
      //  }
      //  else
      //  {
      //    CustomName :=Obj.SalesSegmentName();
      //  }
      //
      //   ArrayData:=Obj.SalesSegmentName().SubString( 0,Obj.SalesSegmentName().FindString( "_",0)+1);
      //   MacroPlan.H_Forecast(relnew,OrderCode := H_FunctionClass::SM_GenerateID( "OF"),
      //                          SKU := Obj.ProductID(),
      //                          CustomCode := CustomName,
      //                         CustomName := CustomName,
      //                         Util:=Obj.UnitOfMeasureName(),
      //                         NeedTime:=Obj.EndDate(),
      //                         ForecastQty:=[Number]Obj.Quantity().Round( 0),
      //                         Department:=DepartMent);
      //}
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Material_FOF503_OnClick#222.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: Panel351/btn_Add_Material_FOF503
Response OnClick (
  H_Forecast selection
) id:Response_Panel351_btn_Add_Material_FOF503_OnClick_222
{
  #keys: '[414724.0.145178766]'
  CanBindMultiple: false
  DefinitionID => /Panel351/Responsedef_Panel351_btn_Add_Material_FOF503_OnClick
  QuillAction
  {
    Body:
    [*
      if( not isnull( selection))
      {
        SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
        if( isnull( SelectItem))
        {
           MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
                                       Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(),
                                       ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
                                                                         .Add( "Util",selection.Util())
                                                                         .Add( "CustomCode",selection.CustomCode())
                                                                         .Add( "CustomName",selection.CustomName()).Build().AsString());
        }
        else
        {
          SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
          SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
                                   .Add( "Util",selection.Util())
                                   .Add( "CustomCode",selection.CustomCode())
                                   .Add( "CustomName",selection.CustomName()).Build().AsString());
        }
        Application.OpenForm( "FrmMaterial","popout");
      }
      else
      {
        WebMessageBox::Information( "请选择一项预测后再点击按钮!");
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_Add_Order_FOF449_OnClick#880.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: Panel351/btn_Add_Order_FOF449
Response OnClick (
  H_Forecast selection
) id:Response_Panel351_btn_Add_Order_FOF449_OnClick_880
{
  #keys: '[414724.0.141244111]'
  CanBindMultiple: false
  DefinitionID => /Panel351/Responsedef_Panel351_btn_Add_Order_FOF449_OnClick
  QuillAction
  {
    Body:
    [*
      if( not isnull( selection))
      {
        SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
        if( isnull( SelectItem))
        {
           MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
                                       Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(),
                                       ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
                                                                         .Add( "Util",selection.Util())
                                                                         .Add( "CustomCode",selection.CustomCode())
                                                                         .Add( "CustomName",selection.CustomName()).Build().AsString());
        }
        else
        {
          SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
          SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
                                   .Add( "Util",selection.Util())
                                   .Add( "CustomCode",selection.CustomCode())
                                   .Add( "CustomName",selection.CustomName()).Build().AsString());
        }
        Application.OpenForm( "FrmAuthorizeAndCountersign_Order","modal");
      }
      else
      {
        WebMessageBox::Information( "请选择一项预测后再点击按钮!");
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel351_btn_InitialData778_OnClick#971.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: Panel351/btn_InitialData778
Response OnClick () id:Response_Panel351_btn_InitialData778_OnClick_971
{
  #keys: '[414724.0.141222418]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      //// æ²¡æœ‰ç”¨çš„æŒ‰é’®å’Œå‡½æ•°ï¼Œåªä¸ºäº†æµ‹è¯•生成假数据。
      //StrCustoms:="XM_2023,小米;HW_2023,华为;OV_2023,VIVO;OP_2023,OPPO;HX_2023,æµ·ä¿¡;YJ_2023,一加;HE_2023,海尔;GL_2023,格力;";
      //ArrayCustom := StrCustoms.Tokenize( ";"); //8个客户
      //idx :=0;
      //for( i:=0;i<20;i:=i+1)
      //{
      //  idx :=Number::Random( 0,7);
      //  arrCustomInfo := ArrayCustom.Element( idx).Tokenize( ",");
      //  MacroPlan.H_Forecast(relnew, CustomName := arrCustomInfo.Element( 1),CustomCode := arrCustomInfo.Element( 0),ForecastQty := Number::Random( 100,5000),
      //                        Department := "销售1部",NeedTime := Date::ActualDate(),OrderCode := H_FunctionClass::SM_GenerateID( "OF") ,SKU := "SKU-CP-2023-N"+(Number::Random( 1000,9999)).AsQUILL(),Util := "PCS");
      //
      //}
      //// ç”Ÿæˆé¢„测 å®žæ—¶æ•°æ®ï¼Œåç­¾æ•°æ®ï¼ŒæŽˆæƒæ•°æ®ï¼ˆåç­¾ æŽˆæƒé»˜è®¤ä¸º0,对自动创建,这里不再添加)
      // traverse(MacroPlan,H_Forecast ,Obj,not isnull(Obj) )
      //{
      //  MacroPlan.H_OrderForecastRealQty(relnew,CustomID := Obj.CustomCode(),CustomName := Obj.CustomName(),ForecatsQty := Obj.ForecastQty(),
      //                                    ForecatsRealQty := Obj.ForecastQty(),ID := H_FunctionClass::SM_GenerateID( "OF"),Month := Date::ActualDate(),
      //                                    OrderCode := Obj.OrderCode(),SKU := Obj.SKU(),Unit := Obj.Util());
      //
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_Panel647_btn_Add_Order_FOF_OnClick.def
@@ -16,7 +16,7 @@
      SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if(not isnull( SelectItem) and SelectItem.Value().Length()>0)
      {
        Application.OpenForm( "FrmAuthorizeAndCountersign","popout");
        Application.OpenForm( "FrmAuthorizeAndCountersign_Order","popout");
      }
      else
      {
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnDoubleClick.def
@@ -14,9 +14,21 @@
      SelectItem :=  select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect");
      if( isnull( SelectItem))
      {
         MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",Value := "");
         MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect",
                                     Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(),
                                     ValueJsonString := JSON::Object().Add( "SKU",selection.SKU())
                                                                       .Add( "Util",selection.Util())
                                                                       .Add( "CustomCode",selection.CustomCode())
                                                                       .Add( "CustomName",selection.CustomName()).Build().AsString());
      }
      SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
      else
      {
        SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName());
        SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU())
                                 .Add( "Util",selection.Util())
                                 .Add( "CustomCode",selection.CustomCode())
                                 .Add( "CustomName",selection.CustomName()).Build().AsString());
      }
      Application.OpenForm( "FrmMaterial","popout");
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/Response_liH_Forecast_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmOrderForecast/_ROOT_Component_FrmOrderForecast.def
@@ -43,7 +43,7 @@
      ]
      Properties:
      [
        Taborder: 3
        Taborder: 4
      ]
    }
    #child: Panel961
@@ -93,7 +93,7 @@
      ]
      Properties:
      [
        Taborder: 2
        Taborder: 3
      ]
    }
    Component dh_FOF_H_Forecast
@@ -118,15 +118,16 @@
      ]
      Properties:
      [
        Taborder: 5
        Taborder: 6
      ]
    }
    #child: liH_Forecast
    #child: Panel351
  ]
  Properties:
  [
    Description: '订单预测页面'
    Image: 'GOLDFISH'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '预测列表页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmOrderResult/_ROOT_Component_FrmOrderResult.def
@@ -39,6 +39,7 @@
  Properties:
  [
    Description: '订单冲减过程及订单标签展示'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '订单冲减过程及订单标签展示'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_List696.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component List696
{
  #keys: '[414724.0.118276730]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor838
    {
      #keys: '[414724.0.118276731]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[H_MaterialHedgingResult]'
        Source: 'dh_FRAS'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    #child: listActionBarPage112
    Component DataSetLevel187
    {
      #keys: '[414724.0.118276736]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu660
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MType","title":"MType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}}]'
        ContextMenu: 'listContextMenu660'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel224.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
Component Panel224
{
  #keys: '[414724.0.132480968]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ds_Month_FRAS
    {
      #keys: '[414724.0.132481008]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Enabled: false
        Taborder: 0
        Visible: false
      ]
    }
    Component txt_QueryContent_FRAS
    {
      #keys: '[414724.0.132481038]'
      BaseType: 'WebEditField'
      Properties:
      [
        PlaceHolder: '模糊搜索'
        Taborder: 1
      ]
    }
    Component btn_Query_FRAS
    {
      #keys: '[414724.0.132481089]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'VIEW'
        Label: '查询'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_Panel950.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component Panel950
{
  #keys: '[414724.0.133671405]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Label782
    {
      #keys: '[414724.0.133671432]'
      BaseType: 'WebLabel'
      Properties:
      [
        Taborder: 0
        Text: '反签和授权列表展示页'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listActionBarPage112.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage112
{
  #keys: '[414724.0.118276733]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Component_listContextMenu660.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu660
{
  #keys: '[414724.0.118276738]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FrmRAShow_OnCreated
{
  #keys: '[414724.0.134602766]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      ds_Month_FRAS.Date(Date::ActualDate());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/Response_Panel224_btn_Query_FRAS_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel224/btn_Query_FRAS
Response OnClick () id:Response_Panel224_btn_Query_FRAS_OnClick
{
  #keys: '[414724.0.135920812]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      de_dh_FRAS.FixedFilter( "object.ID().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   + " or " + "object.SKU().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   + " or " + "object.CustomerCode().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   + " or " + "object.CustomerName().LikeUserLocale( " + txt_QueryContent_FRAS.Text().AsQUILL() + " )"
                                                   );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmRAShow/_ROOT_Component_FrmRAShow.def
@@ -5,8 +5,41 @@
{
  #keys: '[414724.0.87341476]'
  BaseType: 'WebForm'
  Children:
  [
    #child: List696
    Component dh_FRAS
    {
      #keys: '[414724.0.118276696]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[H_MaterialHedgingResult]*'
      Children:
      [
        Component de_dh_FRAS
        {
          #keys: '[414724.0.118276712]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'H_MaterialHedgingResult'
          ]
        }
      ]
      Properties:
      [
        Taborder: 2
      ]
    }
    #child: Panel950
    #child: Panel224
  ]
  Properties:
  [
    Description: '原料反签和授权展示'
    Image: 'NAV_REDO_LIGHT_BLUE'
    Title: '反签和授权列表展示页'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_ListData_FT#710.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_Panel675.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listActionBarPage748.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Component_listContextMenu623.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/Response_Panel675_ButtonClear_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FrmTEST/_ROOT_Component_FrmTEST.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Views/OrderLock.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: 2
    image: 'DOCUMENT_LOCK'
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    description: ''
  }
  formatversion: 2
  id: 'OrderLock'
  name: 'OrderLock'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/PriorityPolicy.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2258 @@
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: 197
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 91
            }
            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: false
        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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_1
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 2
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_1
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 3
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_2
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 4
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_2
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 5
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_3
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 6
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_3
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 7
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_4
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 8
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_4
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 9
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_5
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 10
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_5
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 11
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_6
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 12
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_6
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 13
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_7
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 14
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_7
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 15
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormSanityCheck
      {
        title: 'Sanity Check'
        shown: false
        componentID: 'FormSanityCheck'
        layout
        {
          mode: 'dockright'
          index: 16
        }
        components
        {
          FormSanityCheck_PanelSanityCheckToolbar
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckContent
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckGroup
          {
            sizeRatio: 4
          }
          FormSanityCheck_ListSanityCheckGroup
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckGroup
          {
            groupDepth: -1
            sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Group
            {
              columnId: 'Group'
              dataPath: 'Group'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 270
            }
            column__Expr3
            {
              columnId: '_Expr3'
              dataPath: '_Expr3'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 95
            }
          }
          FormSanityCheck_PanelSanityCheckMessage
          {
            sizeRatio: 5
          }
          FormSanityCheck_ListSanityCheckMessage
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckMessage
          {
            groupDepth: -1
            sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Messages
            {
              columnId: 'Messages'
              dataPath: 'Messages'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 32
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 585
            }
          }
        }
      }
      form_FormOptimizerPuzzles_8
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 17
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_8
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 18
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_9
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 19
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_9
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 20
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_10
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 21
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_10
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 22
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_11
      {
        title: 'Optimizer Puzzles'
        shown: true
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 23
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_11
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 24
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_12
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 25
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_12
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 26
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_13
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 27
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_13
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 28
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_14
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 29
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_14
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 30
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_15
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 31
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_15
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 32
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormSanityCheck_1
      {
        title: 'Sanity Check'
        shown: false
        componentID: 'FormSanityCheck'
        layout
        {
          mode: 'dockright'
          index: 33
        }
        components
        {
          FormSanityCheck_PanelSanityCheckToolbar
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckContent
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckGroup
          {
            sizeRatio: 4
          }
          FormSanityCheck_ListSanityCheckGroup
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckGroup
          {
            groupDepth: -1
            sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Group
            {
              columnId: 'Group'
              dataPath: 'Group'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 270
            }
            column__Expr3
            {
              columnId: '_Expr3'
              dataPath: '_Expr3'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 95
            }
          }
          FormSanityCheck_PanelSanityCheckMessage
          {
            sizeRatio: 5
          }
          FormSanityCheck_ListSanityCheckMessage
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckMessage
          {
            groupDepth: -1
            sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Messages
            {
              columnId: 'Messages'
              dataPath: 'Messages'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 32
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 585
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 14
    image: ''
    description: ''
  }
  formatversion: 2
  id: 'PriorityPolicy'
  name: 'PriorityPolicy'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2258 @@
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: 197
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 91
            }
            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: false
        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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_1
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 2
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_1
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 3
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_2
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 4
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_2
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 5
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_3
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 6
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_3
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 7
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_4
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 8
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_4
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 9
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_5
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 10
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_5
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 11
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_6
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 12
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_6
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 13
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_7
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 14
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_7
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 15
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormSanityCheck
      {
        title: 'Sanity Check'
        shown: false
        componentID: 'FormSanityCheck'
        layout
        {
          mode: 'dockright'
          index: 16
        }
        components
        {
          FormSanityCheck_PanelSanityCheckToolbar
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckContent
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckGroup
          {
            sizeRatio: 4
          }
          FormSanityCheck_ListSanityCheckGroup
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckGroup
          {
            groupDepth: -1
            sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Group
            {
              columnId: 'Group'
              dataPath: 'Group'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 270
            }
            column__Expr3
            {
              columnId: '_Expr3'
              dataPath: '_Expr3'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 95
            }
          }
          FormSanityCheck_PanelSanityCheckMessage
          {
            sizeRatio: 5
          }
          FormSanityCheck_ListSanityCheckMessage
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckMessage
          {
            groupDepth: -1
            sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Messages
            {
              columnId: 'Messages'
              dataPath: 'Messages'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 32
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 585
            }
          }
        }
      }
      form_FormOptimizerPuzzles_8
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 17
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_8
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 18
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_9
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 19
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_9
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 20
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_10
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 21
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_10
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 22
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_11
      {
        title: 'Optimizer Puzzles'
        shown: true
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 23
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_11
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 24
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_12
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 25
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_12
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 26
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_13
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 27
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_13
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 28
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_14
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 29
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_14
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 30
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormOptimizerPuzzles_15
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 31
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI_15
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 32
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: '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
            }
          }
        }
      }
      form_FormSanityCheck_1
      {
        title: 'Sanity Check'
        shown: false
        componentID: 'FormSanityCheck'
        layout
        {
          mode: 'dockright'
          index: 33
        }
        components
        {
          FormSanityCheck_PanelSanityCheckToolbar
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckContent
          {
            sizeRatio: 1
          }
          FormSanityCheck_PanelSanityCheckGroup
          {
            sizeRatio: 4
          }
          FormSanityCheck_ListSanityCheckGroup
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckGroup
          {
            groupDepth: -1
            sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Group
            {
              columnId: 'Group'
              dataPath: 'Group'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 270
            }
            column__Expr3
            {
              columnId: '_Expr3'
              dataPath: '_Expr3'
              dataType: 'number'
              index: 4
              subtotals: ''
              width: 95
            }
          }
          FormSanityCheck_PanelSanityCheckMessage
          {
            sizeRatio: 5
          }
          FormSanityCheck_ListSanityCheckMessage
          {
          }
          FormSanityCheck_DataSetLevelSanityCheckMessage
          {
            groupDepth: -1
            sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Show
            {
              columnId: 'Show'
              dataPath: 'Show'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 32
            }
            column_Messages
            {
              columnId: 'Messages'
              dataPath: 'Messages'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 32
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 585
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 15
    image: ''
    description: ''
  }
  formatversion: 2
  id: 'PriorityResults'
  name: 'PriorityResults'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/SOP_Versions.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: 'Name'
              index: 1
              subtotals: ''
              width: 197
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 91
            }
            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: 'Category'
              index: 1
              subtotals: ''
              width: 108
            }
            column_Importance
            {
              columnId: 'Importance'
              dataPath: 'Importance'
              dataType: 'string'
              title: 'Importance'
              index: 2
              subtotals: ''
              width: 110
            }
            column_Title
            {
              columnId: 'Title'
              dataPath: 'Title'
              dataType: 'string'
              title: '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: 'Name'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: 'Description'
              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: 'Name'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    index: 1
    image: 'WINDOW_TIME'
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    description: ''
  }
  formatversion: 2
  id: 'SOP_Versions'
  name: 'SOP Versions'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/Ìî²ú·½°¸Áбí.vw
@@ -180,10 +180,10 @@
    userconfigurableinformation
    {
    }
    index: 0
    image: ''
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2
_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties
@@ -204,11 +204,11 @@
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=/datasource=orclpdb /owner=TIANMA /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=1 E9FE769DABE91891284EBBA6CEA8F41B 479d6f99-cffb-41e6-94f1-d35bdf20703c
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxcolumnnamelength=0
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Ìî²ú·½°¸Áбí.vw
ÎļþÒÑɾ³ý