yanyuan
2023-11-01 c673b37d38537c136cd488b8430146573975d5e3
Merge branch 'dev' into dev_yy
已重命名4个文件
已添加146个文件
已修改25个文件
已删除7个文件
4257 ■■■■ 文件已修改
_Main/BL/Relations/Relation_S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpl.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/Attribute_TotalIdentification.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_InitializedData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_InitializedData.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_InitializedData.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_InitializedData.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_InitializedData.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeChart.qbl 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MAPISPIPCategory/Attribute_Critical.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MAPISPIPCategory/Function_CalcCritical.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProduct_MP/Attribute_Critical.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProduct_MP/Function_CalcCritical.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_BusinessType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_CurrencyID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerPolicy.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_DefaultUOMConversionFactor#413.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_DemandUncertaintyPercentage.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_DerivedPriorityName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_FulfilledQuantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_HasPostponedSalesDemand.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_HasValidConversionFactor.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_ID_SpliteStruct.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsAvailable.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsEligibleForNetting.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPI.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPIUser.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsFirmed.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLeaf.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLocked.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsManuallyConfigured.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsPostponed.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsSoftDeleted.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsValidData.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModify.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderLineID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTag.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_OutsideOfPlanningHorizonQuantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_PISPConversionFactor.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_ParentID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_Price.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_PriceUoM.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductGrade.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityPerDay.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesSegmentName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevere.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataTotalViolationCount.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SheetProfitability.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SplitCount.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteReason.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteRenmain.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_Status_Splite.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_StockingPointID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_UnitOfMeasureName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/Attribute_Variance.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_BusinessType.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_LastModify.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderTag.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderType.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_ProductGrade.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SheetProfitability.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/TypeIndex_PrimaryKey_ID.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_CustomOrder/_ROOT_Type_S_DT_CustomOrder.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_OrderSpliteRow/_ROOT_Type_S_DT_OrderSpliteRow.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_ForecastDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID_S_DT_CustomOrder.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_OrderID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_Qty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_SpliteReason.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/Attribute_Status.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_DT_SpliteStruct/_ROOT_Type_S_DT_SpliteStruct.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_FunctionClass/StaticMethod_SM_OrderToSpliteOrder.qbl 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_S_FunctionClass/_ROOT_Type_S_FunctionClass.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis633/Component_swTop.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis633/Component_swTopMost.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis633/_ROOT_Component_frmStandardAnalysis633.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioComparisonViews#859.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioComparison.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupScenarioComparisonViews_ButtonAnnualPro.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_pButton.def 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonExportDetail_OnClick#971.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonGenerateTestData_OnClick#19.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_pFilterCriteria.def 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_pFilterCriteria_ButtonCapacityAndSaleBudgeChartTest_OnClick#603.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_pButton.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_pButton_ButtonCapacityAndSaleBudgeCompare_OnClick#231.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_pButton_ButtonExportCompare_OnClick#325.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCh#171.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserChecke.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSDIP.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSDIP.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuSpliteOrder_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_Panel700.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listActionBarPage229#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950#1.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_list_SpliteDetails#136.def 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_OperateBtns_FCOS.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_function_FCOS.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_spliteDetails.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_splite_info.def 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_Cancel_FCOS_OnClick.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_OK_FCOS_OnClick.def 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_FCOS_OnDataChanged.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_list_SpliteDetails_136_m_delete_list_SD_OnClick.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_function_FCOS_btn_add_FCOS_OnClick.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_splite_info_btn_splite_add_OnClick.def 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/_ROOT_Component_FrmCustomOrderSpliteRow.def 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel651.def 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel713.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_lisplitedetails#450.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage243#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage978#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu199#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu655#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listOrders#635.def 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_DataView.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_Function_FCOV.def 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_Panel651_btn_delete_FCOV_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_listOrders_635_OnSelectionChanged.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/_ROOT_Component_FrmCustomOrderView.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Capacity___sale_budge.vw 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/年度产销复盘.vw 562 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-23/_ROOT_Role_Dev-23.properties 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-25/_ROOT_Role_Dev-25.properties 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-27/_ROOT_Role_Dev-27.properties 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent
{
  #keys: '1[414724.0.301487674]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Child
  {
    #keys: '3[414724.0.301487676][414724.0.301487675][414724.0.301487677]'
    Cardinality: '0to1'
    ObjectDefinition: S_DT_CustomOrder
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Parent
  {
    #keys: '3[414724.0.301487679][414724.0.301487678][414724.0.301487680]'
    Cardinality: '1toN'
    ObjectDefinition: S_DT_CustomOrder
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder
{
  #keys: '1[414724.0.292616032]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.292616034][414724.0.292616033][414724.0.292616035]'
    Cardinality: '0to1'
    ObjectDefinition: S_DT_CustomOrder
    OwningSide: 'Reference'
  }
  RelationSide.RightSide S_DT_CustomOrder
  {
    #keys: '3[414724.0.292616037][414724.0.292616036][414724.0.292616038]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow
{
  #keys: '1[414724.0.289871273]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.289871275][414724.0.289871274][414724.0.289871276]'
    Cardinality: '0to1'
    ObjectDefinition: S_DT_OrderSpliteRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide S_DT_OrderSpliteRow
  {
    #keys: '3[414724.0.289871278][414724.0.289871277][414724.0.289871279]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpliteRow
{
  #keys: '1[414724.0.292600485]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide S_DT_CustomOrder
  {
    #keys: '3[414724.0.292600487][414724.0.292600486][414724.0.292600488]'
    Cardinality: '0to1'
    ObjectDefinition: S_DT_OrderSpliteRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide S_DT_OrderSpliteRow
  {
    #keys: '3[414724.0.292600490][414724.0.292600489][414724.0.292600491]'
    Cardinality: '1toN'
    ObjectDefinition: S_DT_CustomOrder
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct
{
  #keys: '1[414724.0.291485612]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.291485614][414724.0.291485613][414724.0.291485615]'
    Cardinality: '0to1'
    ObjectDefinition: S_DT_SpliteStruct
    OwningSide: 'Reference'
  }
  RelationSide.RightSide S_DT_SpliteStruct
  {
    #keys: '3[414724.0.291485617][414724.0.291485616][414724.0.291485618]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass
{
  #keys: '1[414724.0.288796777]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[414724.0.288796779][414724.0.288796778][414724.0.288796780]'
    Cardinality: '0to1'
    ObjectDefinition: S_FunctionClass
    OwningSide: 'Reference'
  }
  RelationSide.RightSide S_FunctionClass
  {
    #keys: '3[414724.0.288796782][414724.0.288796781][414724.0.288796783]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/Attribute_TotalIdentification.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalIdentification
{
  #keys: '3[414702.1.286051925][414702.1.286051924][414702.1.286051926]'
  Description: '标识位(判断是否加和)'
  ValueType: Number
}
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl
@@ -10,9 +10,11 @@
  [*
    // yypsybs Sep-18-2023 (created)
    value := select( parent, CapacityAndSaleBudgeCompareItemRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray );
    if( isnull( value ) ) {
    if ( isnull( value ) ) {
      value := parent.CapacityAndSaleBudgeCompareItemRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray );  
    }
    }
    return value;
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_InitializedData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializedData (
  GlobalOTDSOP globalOTDSOP,
  const GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    globalOTDSOP.CapacityAndSaleBudgeFilterBusinessType( relflush );
    businessTypes := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, tempGMPMP, true, tempGMPMP.BusinessType() );
    traverse ( businessTypes, Elements, bt ) {
      globalOTDSOP.CapacityAndSaleBudgeFilterBusinessType( relnew, BusinessType := bt );
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_InitializedData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializedData (
  GlobalOTDSOP globalOTDSOP
)
{
  Description: '初始化对比项'
  TextBody:
  [*
    globalOTDSOP.CapacityAndSaleBudgeFilterItem( relflush );
    globalOTDSOP.CapacityAndSaleBudgeFilterItem( relnew, ItemName := "面板分配量" );
    globalOTDSOP.CapacityAndSaleBudgeFilterItem( relnew, ItemName := "销售额" );
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_InitializedData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializedData (
  GlobalOTDSOP globalOTDSOP
)
{
  Description: '初始化年份'
  TextBody:
  [*
    globalOTDSOP.CapacityAndSaleBudgeFilterMonth( relflush );
    for( i := 1; i <= 12; i++ ) {
      globalOTDSOP.CapacityAndSaleBudgeFilterMonth( relnew, MonthNo := i );
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_InitializedData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializedData (
  GlobalOTDSOP globalOTDSOP,
  const GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    globalOTDSOP.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relflush );
    organCodes := selectuniquevalues( globalOTDTable, Global_MappingOperation, tempGMO, true, tempGMO.OrganCode() );
    traverse ( organCodes, Elements, oc ) {
      globalOTDSOP.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relnew, PlaceOfProductionOfArray := oc );
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_InitializedData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitializedData (
  GlobalOTDSOP globalOTDSOP
)
{
  Description: '初始化年份'
  TextBody:
  [*
    // yypsybs Sep-15-2023 (created)
    globalOTDSOP.CapacityAndSaleBudgeFilterYear( relflush );
    nowYear := Date::Today().Year();
    for( i := nowYear - 10; i <= nowYear + 5; i++ ) {
      globalOTDSOP.CapacityAndSaleBudgeFilterYear( relnew, YearNo := i );
    }
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl
@@ -2,28 +2,45 @@
#parent: #root
Method InitTestDataByYear (
  MacroPlan macroPlan,
  CapacityAndSaleBudgeFilterYears years
  GlobalOTDSOP globalOTDSOP,
  CapacityAndSaleBudgeFilterYears years,
  CapacityAndSaleBudgeFilterBusinessTypes businessTypes,
  CapacityAndSaleBudgeFilterPlaceOfProductionOfArrays placeOfProductionOfArrays,
  Product_MPs product_MPs
)
{
  TextBody:
  [*
    // yypsybs Oct-7-2023 (created)
    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    product_MPs := selectset( product_MPs, Elements, tempPMP, tempPMP.IsLeaf() and not tempPMP.IsSystem() );
    
    this.Global_MappingAnnualBudgetData( relflush );
    debuginfo( "create Global_MappingAnnualBudgetData test data" );
    id := 1;
    traverse( years, Elements, year ) {
      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
        productCode := productCodeList.Element( i - 1 );
    if ( years.Size() = 0 ) {
      years := selectset( globalOTDSOP, CapacityAndSaleBudgeFilterYear, tempCASBFY,
                          tempCASBFY.YearNo() = Date::ActualDate().Year()     or
                          tempCASBFY.YearNo() = Date::ActualDate().Year() - 1 or
                          tempCASBFY.YearNo() = Date::ActualDate().Year() + 1
                         );
    }
    if ( businessTypes.Size() = 0 ) {
      businessTypes := selectset( globalOTDSOP, CapacityAndSaleBudgeFilterBusinessType, tempCASBFBT, true );
    }
    if ( placeOfProductionOfArrays.Size() = 0 ) {
      placeOfProductionOfArrays := selectset( globalOTDSOP, CapacityAndSaleBudgeFilterPlaceOfProductionOfArray, tempCASBFPOPOA, true );
    }
    traverse ( years, Elements, year ) {
      traverse ( product_MPs, Elements, pmp ) {
        businessType             := businessTypes.Element( Number::Random( 0, businessTypes.Size() - 1 ) ).BusinessType();
        placeOfProductionOfArray := placeOfProductionOfArrays.Element( Number::Random( 0, placeOfProductionOfArrays.Size() - 1 ) ).PlaceOfProductionOfArray();
        mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew, 
                                                                    ID := [String]id,
                                                                    YearNo := [String]year.YearNo(),
                                                                    BusinessType := "事业部" + [String](productCode.Length() mod 3),
                                                                    OrganCode := "I13",
                                                                    ProductID := productCode);
        id := id + 1;
                                                                    ID           := OS::GenerateGUIDAsString(),
                                                                    YearNo       := [String]year.YearNo(),
                                                                    BusinessType := businessType,
                                                                    OrganCode    := placeOfProductionOfArray,
                                                                    ProductID    := pmp.ID()
                                                                   );
        mappingAnnualBudget.MonthlyModCapacity1( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity2( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity3( [String]Real::Random( 20000.0, 30000.0 ) );
@@ -62,7 +79,5 @@
        mappingAnnualBudget.MonthlySales12(  [String]Real::Random( 20000.0, 30000.0 ) );
      }
    }
    result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
    debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
  *]
}
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeChart.qbl
@@ -15,73 +15,47 @@
  Description: '按入参处理数据,产生需要的CapacityAndSaleBudgeChartElement'
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    // true, false
    //info( saleOrCapacity );
    // æœˆ;季度;半年;å¹´
    //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() );
    //}
    info( "产能/销售额:", saleOrCapacity, "    æ—¶é—´åˆ†ç»„:", groupBy, "    åŸºåœ°/事业部:", byBusinessTypeOrByOrgCode );
    // å¹´ä»½ä¸é€‰æ—¶å…¨é€‰
    if( years.Size() = 0 ) {
      years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, true, item.YearNo() );
    if ( years.Size() = 0 ) {
      years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() );
    }
    //traverse( years, Elements, year ) {
    //  debuginfo( "yearNo : " + [String]year.YearNo() );
    //}
    // æœˆä»½ä¸é€‰æ—¶å…¨é€‰
    if( months.Size() = 0 ) {
    if ( months.Size() = 0 ) {
      months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, true, item.MonthNo() );
    }
    //traverse( months, Elements, month ) {
    //  debuginfo( "monthNo : " + [String]month.MonthNo() );
    //}
    
    // ====清理旧数据====
    this.CapacityAndSaleBudgeChartRow( relflush );
    this.CapacityAndSaleBudgeChartElement( relflush );
    
    // ====按面板基地和事业部对产品进行筛选分组====
    historyData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true );
    if( businessTypes.Size() > 0 ) {
    targeGlobal_MappingAnnualBudgetDatas := selectset( otdTable, Global_MappingAnnualBudgetData, tempGMABD, true );
    if ( businessTypes.Size() > 0 ) {
      businessTypeStrings := selectuniquevalues( businessTypes, Elements, item, true, item.BusinessType() );
      historyData := selectset( historyData, Elements, item, businessTypeStrings.Find( item.BusinessType() ) > -1 );
      targeGlobal_MappingAnnualBudgetDatas := selectset( targeGlobal_MappingAnnualBudgetDatas, Elements, item, businessTypeStrings.Find( item.BusinessType() ) > -1 );
    }
    if( placeOfProductionOfArrays.Size() > 0 ) {
    if ( placeOfProductionOfArrays.Size() > 0 ) {
      placeOfProductionOfArrayStrings := selectuniquevalues( placeOfProductionOfArrays, Elements, item, true, item.PlaceOfProductionOfArray() );
      historyData := selectset( historyData, Elements, item, placeOfProductionOfArrayStrings.Find( item.OrgCodeFromBom() ) > -1 );
      targeGlobal_MappingAnnualBudgetDatas := selectset( targeGlobal_MappingAnnualBudgetDatas, Elements, item, placeOfProductionOfArrayStrings.Find( item.OrganCode() ) > -1 );
    }
    //info( "historyData : " + [String]historyData.Size() );
    traverse( historyData, Elements, item ) {
      row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, item.BusinessType(), item.OrgCodeFromBom() );
    info( "选中的个数:", targeGlobal_MappingAnnualBudgetDatas.Size() );
    traverse ( targeGlobal_MappingAnnualBudgetDatas, Elements, gmabd ) {
      row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() );
      // è®°å½•每行包含哪些product
      CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, item.ProductID() );
      CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, gmabd.ProductID() );
    }
    rows := selectset( this, CapacityAndSaleBudgeChartRow, item, true );
    //info( "rows : " + [String]rows.Size() );
    placeOfProductionOfArrayList := selectuniquevalues( historyData, Elements, item, item.OrgCodeFromBom() );
    //traverse( placeOfProductionOfArrayList, Elements, item ) {
    //  info( "placeOfProduction : " + item );
    //}
    businessTypeList := selectuniquevalues( historyData, Elements, item, item.BusinessType() );
    //traverse( businessTypeList, Elements, item ) {
    //  info( "businessType : " + item );
    //}
    placeOfProductionOfArrayList := selectuniquevalues( targeGlobal_MappingAnnualBudgetDatas, Elements, tempGMABD, tempGMABD.OrganCode() );
    businessTypeList := selectuniquevalues( targeGlobal_MappingAnnualBudgetDatas, Elements, tempGMABD, tempGMABD.BusinessType() );
    // ç”Ÿæˆå›¾è¡¨å…ƒç´ 
    traverse( years, Elements, year ) {
    //  debuginfo( "process year start : " + [String]year.YearNo() );
      if( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "å¹´" ) {
    traverse ( years, Elements, year ) {
      if ( byBusinessTypeOrByOrgCode = "面板基地" and groupBy = "å¹´" ) {
        // ç›®æ ‡
        traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
        traverse ( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) {
          productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray );
          this.CapacityAndSaleBudgeChartElement( relnew, 
                                                 TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-目标",
@@ -89,9 +63,9 @@
                                                 Quantity := ifexpr( saleOrCapacity = "销售额",
                                                                     Global_MappingAnnualBudgetData::GetSaleByYear( productCodeList, otdTable, year.YearNo() ),
                                                                     Global_MappingForecast::GetQuantityByYear( productCodeList, otdTable, year.YearNo() ) )
                                                 );
                                                );
          // S&OP
          traverse( macroPlans, Elements, macroPlan ) {
          traverse ( macroPlans, Elements, macroPlan ) {
            this.CapacityAndSaleBudgeChartElement( relnew, 
                                                   TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName(),
                                                   BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, 
@@ -286,17 +260,16 @@
    //      debuginfo( "process month end : " + [String]month.MonthNo() );
        }
      }
    //  debuginfo( "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( "==↑==" );
    //}
    ////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_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl
@@ -11,35 +11,22 @@
  Description: 'todo : mappingParent改为mpSync, random删了'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    // ====不选时默认全选====
    if( years.Size() = 0 ) {
      years := selectsortedset( this, CapacityAndSaleBudgeFilterYear, item, item.YearNo() );
    if ( years.Size() = 0 ) {
      years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() );
    }
    if( months.Size() = 0 ) {
    if ( months.Size() = 0 ) {
      months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, item.MonthNo() );
    }
    traverse( macroPlans, Elements, item ) {
      debuginfo( "scenario : " + item.ScenarioName() );
    }
    traverse( items, Elements, item ) {
      debuginfo( "item : " + item.ItemName() );
    }
    traverse( years, Elements, item ) {
      debuginfo( "year : " + [String]item.YearNo() );
    }
    traverse( months, Elements, item ) {
      debuginfo( "month : " + [String]item.MonthNo() );
    }
    // ====清理旧数据====
    this.CapacityAndSaleBudgeCompareItemRow( relflush );
    this.CapacityAndSaleBudgeCompareItemColumn( relflush );
    // ====汇总所有出现的产品====
    historyData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true );
    debuginfo( "historyData : " + [String]historyData.Size() );
    
    traverse( historyData, Elements, one ) {
      productCode := one.ProductID();
    // ====汇总所有出现的产品====
    targetglobal_MappingAnnualBudgetData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true );
    traverse ( targetglobal_MappingAnnualBudgetData, Elements, gmabd ) {
      productCode := gmabd.ProductID();
    //  Global_MappingOperationBOM::CreateTestData( otdTable, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
    //  boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
    //  if( boms.Size() > 0 ) {
@@ -47,17 +34,16 @@
    //    businessType := bom.BusinessType();
    //    placeOfProductionOfArray := bom.OrganCode();
        // ç›¸åŒé¢æ¿åŸºåœ°å’Œäº‹ä¸šéƒ¨çš„æ”¾ä¸€è¡Œ
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, one.BusinessType(), one.OrgCodeFromBom() );
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() );
        // è®°å½•每行包含哪些product
        CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
    //  } else {
    //    debuginfo( "no boms for product : " + productCode );
    //  }
    }
    debuginfo( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
    // ====从左向右生成列头与内容====
    // äº‹ä¸šéƒ¨ï¼Œé¢æ¿åŸºåœ°
    debuginfo( "dealing businessType and placeOfProductionOfArray" )
    columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "事业部" );
    columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板基地" );
    traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
@@ -66,100 +52,159 @@
      cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() );
      cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    }
    // é¢æ¿åˆ†é…é‡ - å¹´åº¦é¢„ç®— (sheets)
    // æ ¼å¼ï¼š é¢æ¿åˆ†é…é‡ - å¹´ - æœˆï¼ˆ1-12 & total) - å¹´åº¦é¢„ç®—/scenarioName
    debuginfo( "dealing é¢æ¿åˆ†é…é‡" )
    if( CapacityAndSaleBudgeFilterItem::Contains( items, "面板分配量" ) ) {
      traverse( years, Elements, year ) {
        debuginfo( "面板分配量" + [String]year.YearNo() + "å¹´" );
    if ( CapacityAndSaleBudgeFilterItem::Contains( items, "面板分配量" ) ) {
      traverse ( years, Elements, year ) {
        // åŽ†å²æ•°æ®
        debuginfo( "面板分配量" + [String]year.YearNo() + "年历史数据" );
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() );
            cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //    traverse ( months, Elements, month ) {
    //      columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
    //      traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
    //        cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), otdTable, 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 := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), otdTable, year.YearNo() );
    //      cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
    //      cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //    }
        traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
          total := 0.0;
          traverse ( months, Elements, m ) {
            columnName  := "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "月-年度预算";
            columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
            cellReal    := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), otdTable, DateTime::Now().Year(), m.MonthNo() );
            cell        := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            total       := total + cellReal;
            cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
          }
          columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-total-年度预算" );
          cell       := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
          columnYear.TotalIdentification( year.YearNo() );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
        }
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-total-年度预算" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cellReal := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), otdTable, year.YearNo() );
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
        debuginfo( "面板分配量" + [String]year.YearNo() + "å¹´S&OP数据" );
        // 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() );
              cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
              cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //    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() );
    //          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 := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
    //        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
    //        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //      }
    //    }
        traverse ( macroPlans, Elements, mp ) {
          traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
            total := 0.0;
            traverse ( months, Elements, m ) {
              columnName  := "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "月-" + mp.ScenarioName();
              columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
              cellReal    := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() );
              cell        := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
              total       := total + cellReal;
              cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
            }
          }
          columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this,
                                                                                 "面板分配量-" + [String]year.YearNo() + "å¹´-total-" + macroPlan.ScenarioName() );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
            cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
            columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-total-" + mp.ScenarioName() );
            cell       := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
            columnYear.TotalIdentification( year.YearNo() );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
          }
        }
      }
    }
    // å¹´åº¦é”€å”®é¢
    debuginfo( "dealing é”€å”®é¢" )
    if( CapacityAndSaleBudgeFilterItem::Contains( items, "销售额" ) ) {
      traverse( years, Elements, year ) {
        debuginfo( "销售额" + [String]year.YearNo() + "å¹´" );
    if ( CapacityAndSaleBudgeFilterItem::Contains( items, "销售额" ) ) {
      traverse ( years, Elements, year ) {
        // åŽ†å²æ•°æ®
        debuginfo( "销售额" + [String]year.YearNo() + "年历史数据" );
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), otdTable, year.YearNo(), month.MonthNo() );
            cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //    traverse ( months, Elements, month ) {
    //      columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
    //      traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
    //        cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), otdTable, 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 := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), otdTable, year.YearNo() );
    //      cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
    //      cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //    }
        traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
          total := 0.0;
          traverse ( months, Elements, m ) {
            columnName  := "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "月-年度预算";
            columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
            cellReal    := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), otdTable, year.YearNo(), m.MonthNo() );
            cell        := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            total       := total + cellReal;
            cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
          }
          columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-total-年度预算" );
          cell       := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
          columnYear.TotalIdentification( year.YearNo() );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
        }
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-年度预算" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cellReal := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), otdTable, year.YearNo() );
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
        debuginfo( "销售额" + [String]year.YearNo() + "年历史数据S&OP数据" );
        // 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 := Forecast::GetFulfilledBalanceByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() );
              cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
              cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //    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 := Forecast::GetFulfilledBalanceByMonth( row.GetProductCodes(), macroPlan, 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 ) {
    //        // QID 23
    //        cellReal := Forecast::GetFulfilledBalanceByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
    //        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
    //        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
    //      }
    //    }
        traverse ( macroPlans, Elements, mp ) {
          traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
            total := 0.0;
            traverse ( months, Elements, m ) {
              columnName  := "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "月-" + mp.ScenarioName();
              columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
              cellReal    := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() );
              cell        := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
              total       := total + cellReal;
              cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
            }
          }
          columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-total-" + macroPlan.ScenarioName() );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            // QID 23
            cellReal := Forecast::GetFulfilledBalanceByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
            cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
            columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-total-" + mp.ScenarioName() );
            cell       := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
            columnYear.TotalIdentification( year.YearNo() );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
          }
        }
      }
    }
    // å¤§å¼ ç›ˆåˆ©é¢
    debuginfo( "dealing å¤§å¼ ç›ˆåˆ©é¢" )
    traverse( years, Elements, year ) {
    traverse ( years, Elements, year ) {
      // åŽ†å²æ•°æ®
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "大张盈利额-" + [String]year.YearNo() + "å¹´-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        // todo
        // QID 23
      traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
@@ -173,19 +218,17 @@
      }
    }
    // äº§å“ç›ˆåˆ©é¢
    debuginfo( "dealing äº§å“ç›ˆåˆ©é¢" )
    traverse( years, Elements, year ) {
    traverse ( years, Elements, year ) {
      // åŽ†å²æ•°æ®
      columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-" + [String]year.YearNo() + "å¹´-年度预算" );
      traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        // todo
      traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
        cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
      }
      // S&OP数据
      traverse( macroPlans, Elements, macroPlan ) {
      traverse ( macroPlans, Elements, macroPlan ) {
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产品盈利额-" + [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName() );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
        traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          // todo
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
@@ -194,7 +237,6 @@
    }
    
    // è®¾ç½®rowNo和columnNo
    debuginfo( "set rowNo and columnNo" );
    rowNo := 1;
    rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.PlaceOfProductionOfArray() + "_" + item.BusinessType() );
    traverse( rowSorted, Elements, item ) {
@@ -206,6 +248,5 @@
      item.ColumnNo( columnNo );
      columnNo := columnNo + 1;
    }
    debuginfo( "done" );
  *]
}
_Main/BL/Type_Global_MAPISPIPCategory/Attribute_Critical.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Critical
{
  #keys: '3[414882.0.72610025][414882.0.72610024][414882.0.72610026]'
  Description: '关键物料'
  ValueType: Boolean
}
_Main/BL/Type_Global_MAPISPIPCategory/Function_CalcCritical.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcCritical
{
  TextBody:
  [*
    // hongjli Oct-24-2023 (created)
    value := guard( select( this, Global_MappingProduct_MP, tempGMPMP, true ).Critical(), false );
    this.Critical(value);
  *]
}
_Main/BL/Type_Global_MappingProduct_MP/Attribute_Critical.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Critical
{
  #keys: '3[414882.0.72574612][414882.0.72574611][414882.0.72574613]'
  Description: '关键物料'
  ValueType: Boolean
}
_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl
@@ -3,5 +3,10 @@
Attribute KeyProduct
{
  #keys: '3[414702.0.247711010][414702.0.247711009][414702.0.247711011]'
  Description:
  [*
    å·²å¼ƒç”¨
    å…³é”®ç‰©æ–™æ²¡æœ‰æ•°æ®æ¥æºï¼Œä»¥åŽä»Žå…¶ä»–属性计算得到,改为Critical
  *]
  ValueType: Boolean
}
_Main/BL/Type_Global_MappingProduct_MP/Function_CalcCritical.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
Function CalcCritical
{
  TextBody:
  [*
    // renhao Oct-30-2023 (created)
    value := this.ProductMajorType()="成品" or this.ProductMajorType()="半成品";
    this.Critical(value);
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl
@@ -36,10 +36,11 @@
        info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      //product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true);
      if( /*not isnull( product*/ guard( actual.Global_MAPISPIPCategory().KeyProduct() = nuclear, false ) ){
      //if( guard( actual.Global_MAPISPIPCategory().KeyProduct() = nuclear, false ) ){
      if( not nuclear or (nuclear and actual.Global_MAPISPIPCategory().Critical() = nuclear) ){
      if( not isnull(businessTypes)){
      
        for( i :=0 ;i < businessTypes.Size();i++ ){
          //businessType := businessTypes.Element( i );
          if( /*product.BusinessType() = businessType and not product.IsCommon()*/ not actual.Global_MAPISPIPCategory().IsCommon() ){
            ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
@@ -49,7 +50,7 @@
                                                                  actual.ActualInventoryLevelEnd(),
                                                                  actual.ManufacturedDate());
          }
        }
        
      }else{
        ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
@@ -65,8 +65,11 @@
                                                        true, trash );
                    mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
                    mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
                    mainBOM.MinQuantityInGroup(0);
                    mainQty := mainBOM.Quantity();
                    Transaction::Transaction().Propagate();
                    altersize := alterRows.Size();
                    // æ·»åŠ è¾…æ–™
                    traverse( alterRows, Elements, alterRow ) {
                        alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() );
@@ -84,14 +87,23 @@
                          trash := construct( OperationBOMs );
                          if( not isnull( mainInput ) ) {
                              alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash );
                              alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
                              //alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
                              //alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
                              alterBom.Quantity( mainBOM.MaxQuantityInGroup() / altersize );
                              alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
                              alterBom.MinQuantityInGroup(0);
    //                          info( "Quantity" + [String]alterBom.Quantity() )
    //                          info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() )
                              mainQty := mainQty - alterBom.Quantity();
                          }
                      }
                      mainBOM.Quantity( mainQty );
                      Transaction::Transaction().Propagate( relation( OperationBOM, OperationInputGroup));
                      if( not isnull( mainBOM.OperationInputGroup())){
                        mainBOM.OperationInputGroup().InputGroupQuantity(mainBOM.MaxQuantityInGroup());
                        mainBOM.Quantity( mainBOM.MaxQuantityInGroup() / altersize );
                      }
                   }
                }
              }
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
@@ -16,53 +16,42 @@
    
    score := 0.0;
    remindFormula := formula;
    // éåŽ†ä¼˜å…ˆçº§å› å­é…ç½®
    if( not remindFormula = '' )
    {
    if( not remindFormula = '' ){
            // ä»Žèµ·å§‹ä½ç½®å¼€å§‹åŒ¹é… 
            if(remindFormula.StartsWith( "+" ))
            {
            if(remindFormula.StartsWith( "+" )){
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); 
                score := lastScore + score;
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }
            else if( remindFormula.StartsWith( "-" ))
            {
                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }else if( remindFormula.StartsWith( "-" )){
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
                score := lastScore - score;
                
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }
            else if( remindFormula.StartsWith( "*" ) )
            {
                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }else if( remindFormula.StartsWith( "*" ) ){
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
                score := lastScore * score;
                
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }
            else if( remindFormula.StartsWith( "/" ) )
            {
                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }else if( remindFormula.StartsWith( "/" ) ){
                remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1);
                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
                score := lastScore / score;
                
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }
            else if( remindFormula.StartsWith( "(" ) )
            {
                score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }else if( remindFormula.StartsWith( "(" ) ){
                // æ‰¾åˆ°ç¬¬ä¸€ä¸ªç»“束的 )
                // è®¡ç®—括号中的内容
                rightBracket := remindFormula.FindString( ")",0);
@@ -71,17 +60,14 @@
                
                // æˆªå– ) åŽçš„字符继续进行计算
                remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()-1);
            }
            else
            {
            }else{
                // ä¸æ˜¯ç¬¦å· ç›´æŽ¥èŽ·å–è®¡ç®—åŽçš„æ•°å€¼
                score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable);
                // æˆªå–掉已经计算的优先级因子 é€’归计算
                remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan);
                PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
                score := PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable);
            }
    }
    // æ²¡æœ‰åŒ¹é… å…¬å¼è®¡ç®—完成
    return score;
  *]
_Main/BL/Type_S_DT_CustomOrder/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414724.0.292616049][414724.0.292616048][414724.0.292616050]'
  Description: '事业部'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_CurrencyID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CurrencyID
{
  #keys: '3[414724.0.292600064][414724.0.292600063][414724.0.292600065]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerID
{
  #keys: '3[414724.0.292600051][414724.0.292600050][414724.0.292600052]'
  Description: 'CustomerID'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerName
{
  #keys: '3[414724.0.292600074][414724.0.292600073][414724.0.292600075]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerPolicy.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CustomerPolicy
{
  #keys: '3[414724.0.292600039][414724.0.292600038][414724.0.292600040]'
  Description: '客户策略'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_DefaultUOMConversionFactor#413.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute DefaultUOMConversionFactor
{
  #keys: '3[414724.0.292600084][414724.0.292600083][414724.0.292600085]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_DemandUncertaintyPercentage.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute DemandUncertaintyPercentage
{
  #keys: '3[414724.0.292600099][414724.0.292600098][414724.0.292600100]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_DerivedPriorityName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute DerivedPriorityName
{
  #keys: '3[414724.0.292600109][414724.0.292600108][414724.0.292600110]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[414724.0.292600119][414724.0.292600118][414724.0.292600120]'
  ValueType: Date
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ExpectedQuantity
{
  #keys: '3[414724.0.292600129][414724.0.292600128][414724.0.292600130]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_FulfilledQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute FulfilledQuantity
{
  #keys: '3[414724.0.292600139][414724.0.292600138][414724.0.292600140]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_HasPostponedSalesDemand.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute HasPostponedSalesDemand
{
  #keys: '3[414724.0.292600152][414724.0.292600151][414724.0.292600153]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_HasValidConversionFactor.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute HasValidConversionFactor
{
  #keys: '3[414724.0.292600162][414724.0.292600161][414724.0.292600163]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414724.0.292600172][414724.0.292600171][414724.0.292600173]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_ID_SpliteStruct.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID_SpliteStruct
{
  #keys: '3[414724.0.314769076][414724.0.314769075][414724.0.314769077]'
  Description: 'S_DT_SpliteStruct表ID'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsAvailable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsAvailable
{
  #keys: '3[414724.0.292600045][414724.0.292600044][414724.0.292600046]'
  Description: '订单是否参与计划'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsEligibleForNetting.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsEligibleForNetting
{
  #keys: '3[414724.0.292600182][414724.0.292600181][414724.0.292600183]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPI.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsExcludedFromFulfillmentKPI
{
  #keys: '3[414724.0.292600192][414724.0.292600191][414724.0.292600193]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPIUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsExcludedFromFulfillmentKPIUser
{
  #keys: '3[414724.0.292600202][414724.0.292600201][414724.0.292600203]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsFirmed.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsFirmed
{
  #keys: '3[414724.0.292600212][414724.0.292600211][414724.0.292600213]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLeaf.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsLeaf
{
  #keys: '3[414724.0.292600222][414724.0.292600221][414724.0.292600223]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLocked.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsLocked
{
  #keys: '3[414724.0.292600232][414724.0.292600231][414724.0.292600233]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsManuallyConfigured.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsManuallyConfigured
{
  #keys: '3[414724.0.292600242][414724.0.292600241][414724.0.292600243]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsPostponed.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsPostponed
{
  #keys: '3[414724.0.292600252][414724.0.292600251][414724.0.292600253]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsSoftDeleted.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsSoftDeleted
{
  #keys: '3[414724.0.292600262][414724.0.292600261][414724.0.292600263]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_IsValidData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsValidData
{
  #keys: '3[414724.0.292600272][414724.0.292600271][414724.0.292600273]'
  ValueType: Boolean
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModify.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastModify
{
  #keys: '3[414724.0.292600033][414724.0.292600032][414724.0.292600034]'
  Description: '最后修改人'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LastModifyTime
{
  #keys: '3[414724.0.292600021][414724.0.292600020][414724.0.292600022]'
  Description: '最后操作时间'
  ValueType: DateTime
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderID
{
  #keys: '3[414724.0.292600282][414724.0.292600281][414724.0.292600283]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderLineID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderLineID
{
  #keys: '3[414724.0.292600292][414724.0.292600291][414724.0.292600293]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTag.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderTag
{
  #keys: '3[414724.0.292600042][414724.0.292600041][414724.0.292600043]'
  Description: '订单状态,冲减后赋值,纯预测,有预测,无预测,反签,授权'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderTime
{
  #keys: '3[414724.0.292600024][414724.0.292600023][414724.0.292600025]'
  Description: '订单下单时间'
  ValueType: Date
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderType
{
  #keys: '3[414724.0.292600018][414724.0.292600017][414724.0.292600019]'
  Description: '订单类型'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_OutsideOfPlanningHorizonQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute OutsideOfPlanningHorizonQuantity
{
  #keys: '3[414724.0.292600302][414724.0.292600301][414724.0.292600303]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_PISPConversionFactor.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PISPConversionFactor
{
  #keys: '3[414724.0.292600312][414724.0.292600311][414724.0.292600313]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_ParentID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ParentID
{
  #keys: '3[414724.0.301487657][414724.0.301487656][414724.0.301487658]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_Price.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Price
{
  #keys: '3[414724.0.292600322][414724.0.292600321][414724.0.292600323]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_PriceUoM.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriceUoM
{
  #keys: '3[414724.0.292600332][414724.0.292600331][414724.0.292600333]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute PriorityName
{
  #keys: '3[414724.0.292600342][414724.0.292600341][414724.0.292600343]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductGrade.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductGrade
{
  #keys: '3[414724.0.292600036][414724.0.292600035][414724.0.292600037]'
  Description: '产品等级'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[414724.0.292600352][414724.0.292600351][414724.0.292600353]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[414724.0.292600368][414724.0.292600367][414724.0.292600369]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute QuantityInDefaultUoM
{
  #keys: '3[414724.0.292600378][414724.0.292600377][414724.0.292600379]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityPerDay.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute QuantityPerDay
{
  #keys: '3[414724.0.292600388][414724.0.292600387][414724.0.292600389]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SalesDemandConversionFactor
{
  #keys: '3[414724.0.292600398][414724.0.292600397][414724.0.292600399]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesSegmentName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SalesSegmentName
{
  #keys: '3[414724.0.292600408][414724.0.292600407][414724.0.292600409]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevere.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SanityCheckDataMostSevere
{
  #keys: '3[414724.0.292600416][414724.0.292600415][414724.0.292600417]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SanityCheckDataMostSevereCount
{
  #keys: '3[414724.0.292600426][414724.0.292600425][414724.0.292600427]'
  ValueType: Number
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataTotalViolationCount.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SanityCheckDataTotalViolationCount
{
  #keys: '3[414724.0.292600436][414724.0.292600435][414724.0.292600437]'
  ValueType: Number
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SegmentPriority
{
  #keys: '3[414724.0.292600030][414724.0.292600029][414724.0.292600031]'
  Description: '细分市场优先级'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SheetProfitability.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SheetProfitability
{
  #keys: '3[414724.0.292600027][414724.0.292600026][414724.0.292600028]'
  Description: '大张盈利水平'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SplitCount.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SplitCount
{
  #keys: '3[414724.0.297907220][414724.0.297907219][414724.0.297907221]'
  Description: '拆行行数'
  ValueType: Number
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteReason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SpliteReason
{
  #keys: '3[414724.0.297907210][414724.0.297907209][414724.0.297907211]'
  Description: '拆行原因'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteRenmain.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SpliteRenmain
{
  #keys: '3[414724.0.297907230][414724.0.297907229][414724.0.297907231]'
  Description: '拆行剩余量'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[414724.0.292600446][414724.0.292600445][414724.0.292600447]'
  ValueType: Date
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_Status_Splite.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Status_Splite
{
  #keys: '3[414724.0.297907200][414724.0.297907199][414724.0.297907201]'
  Description: '拆行状态:未拆行,已拆行'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_StockingPointID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StockingPointID
{
  #keys: '3[414724.0.292600456][414724.0.292600455][414724.0.292600457]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_UnitOfMeasureName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UnitOfMeasureName
{
  #keys: '3[414724.0.292600466][414724.0.292600465][414724.0.292600467]'
  ValueType: String
}
_Main/BL/Type_S_DT_CustomOrder/Attribute_Variance.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Variance
{
  #keys: '3[414724.0.292600476][414724.0.292600475][414724.0.292600477]'
  ValueType: Real
}
_Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
DeclarativeTypeIndexRelation CalcChild
{
  #keys: '1[414724.0.314769003]'
  Relation: Child
  TypeIndex: PrimaryKey_ID
  TypeIndexExpressions:
  [
    DeclarativeRelationTypeIndexExpression
    {
      #keys: '1[414724.0.314769004]'
      TypeIndexExpression: 'this.ParentID()'
    }
  ]
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: BusinessType
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: CustomerPolicy
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_LastModify.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: LastModify
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderTag.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: OrderTag
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: OrderType
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_ProductGrade.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ProductGrade
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SegmentPriority
}
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SheetProfitability.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: SheetProfitability
}
_Main/BL/Type_S_DT_CustomOrder/TypeIndex_PrimaryKey_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
TypeIndex PrimaryKey_ID
{
  Attributes:
  [
    TypeIndexAttribute
    {
      ModelElement: ID
    }
  ]
}
_Main/BL/Type_S_DT_CustomOrder/_ROOT_Type_S_DT_CustomOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type S_DT_CustomOrder
{
  #keys: '5[414724.0.292616028][414724.0.292616026][0.0.0][414724.0.292616027][414724.0.292616029]'
  BaseType: Object
  Description: '预拆行订单'
  StructuredName: 'S_DT_CustomOrders'
}
_Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute NewAttribute
{
  #keys: '3[414724.0.289871335][414724.0.289871334][414724.0.289871336]'
  ValueType: BinaryValue
}
_Main/BL/Type_S_DT_OrderSpliteRow/_ROOT_Type_S_DT_OrderSpliteRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type S_DT_OrderSpliteRow
{
  #keys: '5[414724.0.289871270][414724.0.289871268][0.0.0][414724.0.289871269][414724.0.289871271]'
  BaseType: Object
  Description: '预拆行订单'
  StructuredName: 'S_DT_OrderSpliteRows'
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_ForecastDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ForecastDate
{
  #keys: '3[414724.0.291485648][414724.0.291485647][414724.0.291485649]'
  Description: '需求日期'
  ValueType: Date
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414724.0.291485698][414724.0.291485697][414724.0.291485699]'
  Description: '主键ID'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID_S_DT_CustomOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID_S_DT_CustomOrder
{
  #keys: '3[414724.0.320004537][414724.0.320004536][414724.0.320004538]'
  Description: 'S_DT_CustomOrder表ID,外键关联(OrderID在订单表不唯一,无法使用)'
  ValueType: String
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_OrderID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderID
{
  #keys: '3[414724.0.291485665][414724.0.291485664][414724.0.291485666]'
  Description: '订单ID'
  ValueType: String
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_Qty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Qty
{
  #keys: '3[414724.0.291485658][414724.0.291485657][414724.0.291485659]'
  Description: '数量'
  ValueType: Number
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_SpliteReason.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SpliteReason
{
  #keys: '3[414724.0.320004525][414724.0.320004524][414724.0.320004526]'
  Description: '拆分原因'
  ValueType: String
}
_Main/BL/Type_S_DT_SpliteStruct/Attribute_Status.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Status
{
  #keys: '3[414724.0.291485678][414724.0.291485677][414724.0.291485679]'
  Description: '状态:null/1 æœ‰æ•ˆï¼Œ0删除'
  ValueType: Number
}
_Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  ISOValue: '1'
  TargetAttribute: Status
}
_Main/BL/Type_S_DT_SpliteStruct/_ROOT_Type_S_DT_SpliteStruct.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type S_DT_SpliteStruct
{
  #keys: '5[414724.0.291485609][414724.0.291485607][0.0.0][414724.0.291485608][414724.0.291485610]'
  BaseType: Object
  Description: '拆分结构'
  StructuredName: 'S_DT_SpliteStructs'
}
_Main/BL/Type_S_FunctionClass/StaticMethod_SM_OrderToSpliteOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_OrderToSpliteOrder (
  MacroPlan Owner,
  CustomerOrder OrderInfo,
  String SpliteReason
) as owning JSON
{
  Description: '订单转为预拆分订单函数'
  TextBody:
  [*
    /************************************订单转换为预拆分订单******************************
    *函数名:SM_OrderToSpliteOrder
    *创建人:yunying
    *创建时间:2023-10-26
    *描述:订单拆行,将传入的订单存入预拆分表,并在订单表中将该订单移除。
          åŒæ—¶ç”Ÿæˆå­è®¢å•(若S_DT_SpliteStruct存在相同订单号)
    *-----------------------------
    *参数:Owner      MacroPlan
    *     OrderInfo  è¦è½¬ä¸ºé¢„拆分的订单
    *     SpliteReason æ‹†åˆ†åŽŸå› 
    *****************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    // èŽ·å–ç‰ˆæœ¬å·,这里是否需要和版本号功能对接
    VCode :=H_FunctionClass::SM_GenerateID("VC");
    try{
      if( not isnull( Owner))
      {
        // æ‹†åˆ†è¡Œæ•°
        SplitCount := selectset( Owner,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1).Size();
        // æ‹†åˆ†æ•°é‡
        SpliteQty:= sum( Owner,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1,obj.Qty());
        // å‰©ä½™æ•°é‡
        UnSpliteQty:= OrderInfo.Quantity() - SpliteQty;
        // ä¿æŒæ‹†åˆ†ä¿¡æ¯
        SCustomOrder:=select( Owner,S_DT_CustomOrder,obj,obj.ID()=OrderInfo.ID());
        if( isnull( SCustomOrder))
        {
          Owner.S_DT_CustomOrder(relnew,BusinessType:=OrderInfo.BusinessType()
                                        ,CurrencyID:=OrderInfo.CurrencyID()
                                        ,CustomerID:=OrderInfo.CustomerID()
                                        ,CustomerName:=OrderInfo.CustomerName()
                                        ,CustomerPolicy:=OrderInfo.CustomerPolicy()
                                        ,DefaultUOMConversionFactor:=OrderInfo.DefaultUOMConversionFactor()
                                        ,DemandUncertaintyPercentage:=OrderInfo.DemandUncertaintyPercentage()
                                        ,DerivedPriorityName:=OrderInfo.DerivedPriorityName()
                                        ,EndDate:=OrderInfo.EndDate()
                                        ,ExpectedQuantity:=OrderInfo.ExpectedQuantity()
                                        ,FulfilledQuantity:=OrderInfo.FulfilledQuantity()
                                        ,HasPostponedSalesDemand:=OrderInfo.HasPostponedSalesDemand()
                                        ,HasValidConversionFactor:=OrderInfo.HasValidConversionFactor()
                                        ,ID:=OrderInfo.ID()
                                        ,IsEligibleForNetting:=OrderInfo.IsEligibleForNetting()
                                        ,IsExcludedFromFulfillmentKPI:=OrderInfo.IsExcludedFromFulfillmentKPI()
                                        ,IsExcludedFromFulfillmentKPIUser:=OrderInfo.IsExcludedFromFulfillmentKPIUser()
                                        ,IsFirmed:=OrderInfo.IsFirmed()
                                        ,IsLeaf := OrderInfo.IsLeaf()
                                        ,IsLocked:=OrderInfo.IsLocked()
                                        ,IsAvailable := OrderInfo.IsAvailable()
                                        ,IsManuallyConfigured:=OrderInfo.IsManuallyConfigured()
                                        ,IsPostponed:=OrderInfo.IsPostponed()
                                        ,IsSoftDeleted:=OrderInfo.IsSoftDeleted()
                                        ,IsValidData:=OrderInfo.IsValidData()
                                        ,LastModify:=OrderInfo.LastModify()
                                        ,LastModifyTime:=OrderInfo.LastModifyTime()
                                        ,OrderID:=OrderInfo.OrderID()
                                        ,OrderLineID:=OrderInfo.OrderLineID()
                                        ,OrderTag:=OrderInfo.OrderTag()
                                        ,OrderTime:=OrderInfo.OrderTime()
                                        ,OrderType:=OrderInfo.OrderType()
                                        ,OutsideOfPlanningHorizonQuantity:=OrderInfo.OutsideOfPlanningHorizonQuantity()
                                        ,PISPConversionFactor:=OrderInfo.PISPConversionFactor()
                                        ,Price:=OrderInfo.Price()
                                        ,PriceUoM:=OrderInfo.PriceUoM()
                                        ,PriorityName:=OrderInfo.PriorityName()
                                        ,ProductGrade:=OrderInfo.ProductGrade()
                                        ,ProductID:=OrderInfo.ProductID()
                                        ,Quantity:=OrderInfo.Quantity()
                                        ,QuantityInDefaultUoM:=OrderInfo.QuantityInDefaultUoM()
                                        ,QuantityPerDay:=OrderInfo.QuantityPerDay()
                                        ,SalesDemandConversionFactor:=OrderInfo.SalesDemandConversionFactor()
                                        ,SalesSegmentName:=OrderInfo.SalesSegmentName()
                                        ,SanityCheckDataMostSevere:=OrderInfo.SanityCheckDataMostSevere()
                                        ,SanityCheckDataMostSevereCount:=OrderInfo.SanityCheckDataMostSevereCount()
                                        ,SanityCheckDataTotalViolationCount:=OrderInfo.SanityCheckDataTotalViolationCount()
                                        ,SegmentPriority:=OrderInfo.SegmentPriority()
                                        ,SheetProfitability:=OrderInfo.SheetProfitability()
                                        ,StartDate:=OrderInfo.StartDate()
                                        ,StockingPointID:=OrderInfo.StockingPointID()
                                        ,UnitOfMeasureName:=OrderInfo.UnitOfMeasureName()
                                        ,SplitCount := SplitCount
                                        ,SpliteRenmain := UnSpliteQty);
        }
        else
        {
          SCustomOrder.SplitCount(SplitCount);
          SCustomOrder.SpliteRenmain(UnSpliteQty);
        }
        OId:=0;
        NewID:="";
        SpliteOrderInfo :=null( S_DT_CustomOrder,constcontent );
        // ç”Ÿæˆå­è®¢å•
        traverse( Owner,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID())
        {
          OId:=OId+1;
          // å¾—到对应的已拆分订单
          SpliteOrderInfo := select( Owner,S_DT_CustomOrder,objSO,objSO.ID_SpliteStruct()=obj.ID());
          // æ‹†åˆ†è¢«åˆ é™¤ï¼Œå°†å·²ç»ä¿æŒçš„æ‹†åˆ†è®¢å•跟随删除
          if(obj.Status()=0)
          {
            if(not isnull( SpliteOrderInfo))
            {
              SpliteOrderInfo.Delete();
            }
            obj.Delete();
          }
          else
          {
            // ä¿å­˜æ–°å¢žçš„æ‹†åˆ†
            if(isnull( SpliteOrderInfo))
            {
              NewID:=OrderInfo.ID()+"_"+OId.AsQUILL()+"_"+DateTime::ActualGMTTime().Format( "hms");
              Owner.S_DT_CustomOrder(relnew,BusinessType:=OrderInfo.BusinessType()
                                          ,CurrencyID:=OrderInfo.CurrencyID()
                                          ,CustomerID:=OrderInfo.CustomerID()
                                          ,CustomerName:=OrderInfo.CustomerName()
                                          ,CustomerPolicy:=OrderInfo.CustomerPolicy()
                                          ,DefaultUOMConversionFactor:=OrderInfo.DefaultUOMConversionFactor()
                                          ,DemandUncertaintyPercentage:=OrderInfo.DemandUncertaintyPercentage()
                                          ,DerivedPriorityName:=OrderInfo.DerivedPriorityName()
                                          ,EndDate:=obj.ForecastDate()
                                          ,ExpectedQuantity:=OrderInfo.ExpectedQuantity()
                                          ,FulfilledQuantity:=OrderInfo.FulfilledQuantity()
                                          ,HasPostponedSalesDemand:=OrderInfo.HasPostponedSalesDemand()
                                          ,HasValidConversionFactor:=OrderInfo.HasValidConversionFactor()
                                          ,ID:=NewID
                                          ,IsEligibleForNetting:=OrderInfo.IsEligibleForNetting()
                                          ,IsExcludedFromFulfillmentKPI:=OrderInfo.IsExcludedFromFulfillmentKPI()
                                          ,IsExcludedFromFulfillmentKPIUser:=OrderInfo.IsExcludedFromFulfillmentKPIUser()
                                          ,IsFirmed:=OrderInfo.IsFirmed()
                                          ,IsLeaf := OrderInfo.IsLeaf()
                                          ,IsLocked:=OrderInfo.IsLocked()
                                          ,IsAvailable := OrderInfo.IsAvailable()
                                          ,IsManuallyConfigured:=OrderInfo.IsManuallyConfigured()
                                          ,IsPostponed:=OrderInfo.IsPostponed()
                                          ,IsSoftDeleted:=OrderInfo.IsSoftDeleted()
                                          ,IsValidData:=OrderInfo.IsValidData()
                                          ,LastModify:=OrderInfo.LastModify()
                                          ,LastModifyTime:=OrderInfo.LastModifyTime()
                                          ,OrderID:=OrderInfo.OrderID()
                                          ,OrderLineID:=OrderInfo.OrderLineID()
                                          ,OrderTag:=OrderInfo.OrderTag()
                                          ,OrderTime:=OrderInfo.OrderTime()
                                          ,OrderType:=OrderInfo.OrderType()
                                          ,OutsideOfPlanningHorizonQuantity:=OrderInfo.OutsideOfPlanningHorizonQuantity()
                                          ,PISPConversionFactor:=OrderInfo.PISPConversionFactor()
                                          ,Price:=OrderInfo.Price()
                                          ,PriceUoM:=OrderInfo.PriceUoM()
                                          ,PriorityName:=OrderInfo.PriorityName()
                                          ,ProductGrade:=OrderInfo.ProductGrade()
                                          ,ProductID:=OrderInfo.ProductID()
                                          ,Quantity:=obj.Qty()
                                          ,QuantityInDefaultUoM:=OrderInfo.QuantityInDefaultUoM()
                                          ,QuantityPerDay:=OrderInfo.QuantityPerDay()
                                          ,SalesDemandConversionFactor:=OrderInfo.SalesDemandConversionFactor()
                                          ,SalesSegmentName:=OrderInfo.SalesSegmentName()
                                          ,SanityCheckDataMostSevere:=OrderInfo.SanityCheckDataMostSevere()
                                          ,SanityCheckDataMostSevereCount:=OrderInfo.SanityCheckDataMostSevereCount()
                                          ,SanityCheckDataTotalViolationCount:=OrderInfo.SanityCheckDataTotalViolationCount()
                                          ,SegmentPriority:=OrderInfo.SegmentPriority()
                                          ,SheetProfitability:=OrderInfo.SheetProfitability()
                                          ,StartDate:=OrderInfo.StartDate()
                                          ,StockingPointID:=OrderInfo.StockingPointID()
                                          ,UnitOfMeasureName:=OrderInfo.UnitOfMeasureName()
                                          ,ParentID := OrderInfo.ID()
                                          ,SpliteReason := obj.SpliteReason()
                                          ,ID_SpliteStruct := obj.ID());
            }
          }
        }
        // åˆ é™¤è®¢å•
        //Order:=select( Owner,SalesDemand.astype( CustomerOrder ),obj,obj.ID()=OrderInfo.ID());
        //OrderInfo.Delete();
        bStatus:=true;
        strMsg:="订单:"+OrderInfo.OrderID()+"已转入预拆分记录,可使用还原功能恢复!";
      }
      else
      {
        strMsg:="场景初始化失败,请选择场景后使用该功能。";
      }
    }
    onerror
    {
      strMsg :="设置为预拆分行失败,请联系系统管理员!";
      // è®°å½•错误日志
      Owner.H_ErrorLogs(relnew,EClassName := "S_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderToSpliteOrder",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "VersionCode",VCode)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_S_FunctionClass/_ROOT_Type_S_FunctionClass.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type S_FunctionClass
{
  #keys: '5[414724.0.288796771][414724.0.288796769][0.0.0][414724.0.288796770][414724.0.288796772]'
  BaseType: Object
  Description: '订单拆行操作类'
  StructuredName: 'S_FunctionClasss'
}
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -85,6 +85,7 @@
        Component MenuDoSync { #keys: '[414384.0.605664172]' BaseType: 'Menu' Properties: [ Image: 'CLOUD_DOWNLOAD' Text: 'DoSync' ] }
        Component menuSeparator506 { #keys: '[414702.0.137524309]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenuAnalysisGlobalOTDTable { #keys: '[414702.0.137524953]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysisGlobalOTDTable' Text: '' ] }
        Component ComponentMenu749 { #keys: '[414702.1.273394009]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysis633' Text: '' ] }
      ]
      Properties:
      [
@@ -103,6 +104,7 @@
          c: MenuDoSync
          c: menuSeparator506
          c: ComponentMenuAnalysisGlobalOTDTable
          c: ComponentMenu749
        }
      ]
    }
_Main/UI/MacroPlanner/Component_frmStandardAnalysis633/Component_swTop.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
Component swTop
{
  #keys: '[530.0.3531806]'
  BaseType: 'swTop'
  IsDerived: true
  Children:
  [
    Component spTopLeft
    {
      #keys: '[530.0.3531807]'
      BaseType: 'spTopLeft'
      IsDerived: true
      Children:
      [
        Component Analysis
        {
          #keys: '[530.0.3532065]'
          BaseType: 'Analysis'
          IsDerived: true
          Properties:
          [
            GlobalInstance: 'GlobalOTDSOP'
          ]
        }
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis633/Component_swTopMost.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component swTopMost
{
  #keys: '[530.0.3531801]'
  BaseType: 'swTopMost'
  IsDerived: true
  Children:
  [
    Component SplitterPane1
    {
      #keys: '[530.0.3531802]'
      BaseType: 'SplitterPane1'
      IsDerived: true
      Children:
      [
        #child: swTop
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis633/_ROOT_Component_frmStandardAnalysis633.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#root
#parent: MacroPlanner
OrphanComponent frmStandardAnalysis633
{
  #keys: '[414702.1.273394023]'
  BaseType: 'frmStandardAnalysis'
  Children:
  [
    #child: swTopMost
  ]
  Properties:
  [
    Height: 740
    Image: 'BEER_GLASS'
    Title: 'Analysis GlobalOTDSOP'
    Width: 1300
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioComparisonViews#859.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component ActionBarGroupScenarioComparisonViews #extension
{
  Children:
  [
    Component ButtonAnnualProductionAndSalesReview
    {
      #keys: '[414702.1.286513416]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'COCKTAIL'
        Label: '年度产销复盘'
        Taborder: 8
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioComparison.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component ActionBarPageScenarioComparison #extension
{
  Children:
  [
    #child: ActionBarGroupScenarioComparisonViews
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def
@@ -22,7 +22,7 @@
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PIG'
        Image: 'LEMONADE_GLASS'
        Taborder: 6
        Title: '年度产销复盘'
      ]
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupScenarioComparisonViews_ButtonAnnualPro.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ActionBarGroupScenarioComparisonViews/ButtonAnnualProductionAndSalesReview
Response OnClick () id:Response_TIANMA_JITUAN_ActionBarGroupScenarioComparisonViews_ButtonAnnualProductionAndSalesReview_OnClick
{
  #keys: '[414702.1.288075432]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
  *]
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "年度产销复盘", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -15,6 +15,7 @@
        #child: ActionBarPagePlan
        #child: ActionBarPageInventory
        #child: ActionBarPageScenarioSelection
        #child: ActionBarPageScenarioComparison
      ]
    }
    Component DataHolderCapacityAndSaleBudgeFilterItem
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
@@ -12,7 +12,6 @@
      Properties:
      [
        DataType: 'GlobalOTDTable'
        FixedFilter: '[Number]object.YearNo() = Date::ActualDate().Year()'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'Global_MappingAnnualBudgetData'
@@ -29,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"YearNo","title":"YearNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"YearNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayTechSort","title":"DisplayTechSort","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayTechSort"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessSort","title":"BusinessSort","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessSort"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductLineAndSpecification","title":"ProductLineAndSpecification","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductLineAndSpecification"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCodeFromBom","title":"OrgCodeFromBom","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCodeFromBom"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ResolutionRatio","title":"ResolutionRatio","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ResolutionRatio"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShippingForm","title":"ShippingForm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShippingForm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CutsNumber","title":"CutsNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CutsNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityEquivalent","title":"CapacityEquivalent","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityEquivalent"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaskNumber","title":"MaskNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaskNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity1","title":"MonthlyModCapacity1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity2","title":"MonthlyModCapacity2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity3","title":"MonthlyModCapacity3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity4","title":"MonthlyModCapacity4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity5","title":"MonthlyModCapacity5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity6","title":"MonthlyModCapacity6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity7","title":"MonthlyModCapacity7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity8","title":"MonthlyModCapacity8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity9","title":"MonthlyModCapacity9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity10","title":"MonthlyModCapacity10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity11","title":"MonthlyModCapacity11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity12","title":"MonthlyModCapacity12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity1","title":"MonthlySheetCapacity1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity2","title":"MonthlySheetCapacity2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity3","title":"MonthlySheetCapacity3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity4","title":"MonthlySheetCapacity4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity5","title":"MonthlySheetCapacity5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity6","title":"MonthlySheetCapacity6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity7","title":"MonthlySheetCapacity7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity8","title":"MonthlySheetCapacity8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity9","title":"MonthlySheetCapacity9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity10","title":"MonthlySheetCapacity10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity11","title":"MonthlySheetCapacity11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity12","title":"MonthlySheetCapacity12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales1","title":"MonthlySales1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales2","title":"MonthlySales2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales3","title":"MonthlySales3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales4","title":"MonthlySales4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales5","title":"MonthlySales5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales6","title":"MonthlySales6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales7","title":"MonthlySales7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales8","title":"MonthlySales8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales9","title":"MonthlySales9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales10","title":"MonthlySales10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales11","title":"MonthlySales11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales12","title":"MonthlySales12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales12"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"YearNo","title":"YearNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"YearNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayTechSort","title":"DisplayTechSort","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayTechSort"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessSort","title":"BusinessSort","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessSort"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductLineAndSpecification","title":"ProductLineAndSpecification","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductLineAndSpecification"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCodeFromBom","title":"OrgCodeFromBom","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCodeFromBom"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ResolutionRatio","title":"ResolutionRatio","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ResolutionRatio"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShippingForm","title":"ShippingForm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShippingForm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CutsNumber","title":"CutsNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CutsNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityEquivalent","title":"CapacityEquivalent","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityEquivalent"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaskNumber","title":"MaskNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaskNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity1","title":"MonthlyModCapacity1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity2","title":"MonthlyModCapacity2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity3","title":"MonthlyModCapacity3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity4","title":"MonthlyModCapacity4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity5","title":"MonthlyModCapacity5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity6","title":"MonthlyModCapacity6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity7","title":"MonthlyModCapacity7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity8","title":"MonthlyModCapacity8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity9","title":"MonthlyModCapacity9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity10","title":"MonthlyModCapacity10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity11","title":"MonthlyModCapacity11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlyModCapacity12","title":"MonthlyModCapacity12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlyModCapacity12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity1","title":"MonthlySheetCapacity1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity2","title":"MonthlySheetCapacity2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity3","title":"MonthlySheetCapacity3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity4","title":"MonthlySheetCapacity4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity5","title":"MonthlySheetCapacity5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity6","title":"MonthlySheetCapacity6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity7","title":"MonthlySheetCapacity7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity8","title":"MonthlySheetCapacity8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity9","title":"MonthlySheetCapacity9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity10","title":"MonthlySheetCapacity10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity11","title":"MonthlySheetCapacity11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySheetCapacity12","title":"MonthlySheetCapacity12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySheetCapacity12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales1","title":"MonthlySales1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales2","title":"MonthlySales2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales3","title":"MonthlySales3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales4","title":"MonthlySales4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales5","title":"MonthlySales5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales6","title":"MonthlySales6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales7","title":"MonthlySales7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales8","title":"MonthlySales8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales9","title":"MonthlySales9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales10","title":"MonthlySales10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales11","title":"MonthlySales11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MonthlySales12","title":"MonthlySales12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MonthlySales12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCode","title":"OrganCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCode"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudge'
        SortCriteria: 'BusinessSort;OrganCode;ProductID'
        Taborder: 2
@@ -38,6 +37,6 @@
  ]
  Properties:
  [
    Taborder: 2
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_pButton.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
Component pButton
{
  #keys: '[414702.1.268476564]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonGenerateTestData id:ButtonGenerateTestData_136
    {
      #keys: '[414702.1.266041306]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'ARROW_CIRCLE2'
        Label: '刷新筛选数据'
        Taborder: 0
      ]
    }
    Component ButtonExportDetail id:ButtonExportDetail_97
    {
      #keys: '[414702.1.266041310]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 2
      ]
    }
    Component ButtonCreateData
    {
      #keys: '[414702.1.266042204]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'ICE_CREAM'
        Label: '生成数据'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
#parent: pButton/ButtonCreateData
Response OnClick () id:Response_pButton_ButtonCreateData_OnClick
{
  #keys: '[414702.1.266042218]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    flag := true;
    flag := GlobalOTDSOP.CapacityAndSaleBudgeFilterYear( relsize ) > 0                     and
            GlobalOTDSOP.CapacityAndSaleBudgeFilterBusinessType( relsize ) > 0             and
            GlobalOTDSOP.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relsize ) > 0;
    return flag;
  *]
  QuillAction
  {
    Body:
    [*
      option := WebMessageBox::Question( "请选择数据源", "数据湖|测试数据|取消" );
      if ( option = 0 ) {
        WebMessageBox::Error( "数据湖暂无数据", true );
      } else if ( option = 1 ) {
        if ( DataHolderCheckedProduct.Data().Size() = 0 ) {
          WebMessageBox::Error( "请先在左侧导航栏选择要生成测试数据的产品!", true );
        } else {
          GlobalOTDTable.InitTestDataByYear( MacroPlan,
                                             GlobalOTDSOP,
                                             DataHolderCapacityAndSaleBudgeFilterYear.Data(),
                                             DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
                                             DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data(),
                                             DataHolderCheckedProduct.Data() );
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonExportDetail_OnClick#971.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: ButtonExportDetail
Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportDetail_OnClick
#parent: pButton/ButtonExportDetail_97
Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportDetail_OnClick_971
{
  #keys: '[414384.0.887310502]'
  #keys: '[414702.1.266041309]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonGenerateTestData_OnClick#19.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: pButton/ButtonGenerateTestData_136
Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonGenerateTestData_OnClick_19
{
  #keys: '[414702.1.266041305]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan ) and not isnull( GlobalOTDSOP ) and not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      CapacityAndSaleBudgeFilterItem::InitializedData( GlobalOTDSOP );
      CapacityAndSaleBudgeFilterYear::InitializedData( GlobalOTDSOP );
      CapacityAndSaleBudgeFilterMonth::InitializedData( GlobalOTDSOP );
      CapacityAndSaleBudgeFilterBusinessType::InitializedData( GlobalOTDSOP, GlobalOTDTable );
      CapacityAndSaleBudgeFilterPlaceOfProductionOfArray::InitializedData( GlobalOTDSOP, GlobalOTDTable );
      GlobalOTDTable.Global_MappingAnnualBudgetData( relflush );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
@@ -8,28 +8,7 @@
  Children:
  [
    #child: ListCapacityAndSaleBudge
    Component ButtonExportDetail
    {
      #keys: '[414384.0.887310503]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 1
      ]
    }
    Component ButtonGenerateTestData
    {
      #keys: '[414384.0.971540693]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Label: '根据筛选年份生成测试数据'
        Taborder: 0
      ]
    }
    #child: pButton
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
@@ -80,6 +80,6 @@
  Properties:
  [
    ContextMenu: 'chartContextMenuCapacityAndSaleBudge'
    Taborder: 7
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_pFilterCriteria.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
Quintiq file version 2.0
Component pFilterCriteria
{
  #keys: '[414702.1.277336951]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DropDownByBusinessTypeOrByOrgCode id:DropDownByBusinessTypeOrByOrgCode_549
    {
      #keys: '[414702.1.277808126]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '根据面板基地/事业部分组'
        Strings: '面板基地;事业部'
        Taborder: 1
      ]
    }
    Component DropDownTimeGroup id:DropDownTimeGroup_593
    {
      #keys: '[414702.1.277808195]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '时间分组'
        Strings: '月;季度;半年;å¹´'
        Taborder: 2
      ]
    }
    Component DropDownSaleOrCapacity id:DropDownSaleOrCapacity_715
    {
      #keys: '[414702.1.277808264]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '产能/销售额'
        Strings: '产能;销售额'
        Taborder: 3
      ]
    }
    Component ButtonCapacityAndSaleBudgeChartTest id:ButtonCapacityAndSaleBudgeChartTest_844
    {
      #keys: '[414702.1.277808330]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'PRESENTATION_CHART'
        Label: '生成图表'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_pFilterCriteria_ButtonCapacityAndSaleBudgeChartTest_OnClick#603.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def ÐÞ¸Ä
@@ -1,11 +1,10 @@
Quintiq file version 2.0
#parent: ButtonCapacityAndSaleBudgeChartTest
Response OnClick () id:Response_FormCapacityAndSaleBudgeChart_ButtonCapacityAndSaleBudgeChartTest_OnClick
#parent: pFilterCriteria/ButtonCapacityAndSaleBudgeChartTest_844
Response OnClick () id:Response_FormCapacityAndSaleBudgeChart_ButtonCapacityAndSaleBudgeChartTest_OnClick_603
{
  #keys: '[414384.0.857443403]'
  #keys: '[414702.1.277808329]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
@@ -22,5 +21,6 @@
                                              DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                              GlobalOTDTable );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def
@@ -8,16 +8,6 @@
  Children:
  [
    #child: ChartCapacityAndSaleBudgeChart
    Component ButtonCapacityAndSaleBudgeChartTest
    {
      #keys: '[414384.0.857443217]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '生成'
        Taborder: 6
      ]
    }
    Component DropDownYears
    {
      #keys: '[414384.0.857740648]'
@@ -25,7 +15,7 @@
      Properties:
      [
        Label: '年份'
        Taborder: 2
        Taborder: 0
        Visible: false
      ]
    }
@@ -37,7 +27,7 @@
      [
        AllowEmpty: true
        Label: '事业部'
        Taborder: 3
        Taborder: 1
        Visible: false
      ]
    }
@@ -49,46 +39,11 @@
      [
        AllowEmpty: true
        Label: '面板基地'
        Taborder: 4
        Taborder: 2
        Visible: false
      ]
    }
    Component DropDownTimeGroup
    {
      #keys: '[414384.0.857771238]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '月'
        Label: '时间分组'
        Strings: '月;季度;半年;å¹´'
        Taborder: 1
      ]
    }
    Component DropDownByBusinessTypeOrByOrgCode
    {
      #keys: '[414384.0.857702904]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '事业部'
        Label: '根据面板基地/事业部分组'
        Strings: '面板基地;事业部'
        Taborder: 0
      ]
    }
    Component DropDownSaleOrCapacity
    {
      #keys: '[414384.0.886240556]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '销售额'
        Label: '销售额/产能'
        Strings: '销售额;产能'
        Taborder: 5
      ]
    }
    #child: pFilterCriteria
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def
@@ -93,6 +93,6 @@
    ContextMenu: 'matrixeditorContextMenuCapacityAndSaleBudgeCompare'
    Editable: false
    Rows: 'MatrixEditorRowsCapacityAndSaleBudgeCompare'
    Taborder: 2
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_pButton.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
Component pButton
{
  #keys: '[414702.1.272379026]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonCapacityAndSaleBudgeCompare id:ButtonCapacityAndSaleBudgeCompare_956
    {
      #keys: '[414702.1.272313474]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'COCKTAIL'
        Label: '刷新'
        Taborder: 0
      ]
    }
    Component ButtonExportCompare id:ButtonExportCompare_364
    {
      #keys: '[414702.1.269961255]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_pButton_ButtonCapacityAndSaleBudgeCompare_OnClick#231.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def ÐÞ¸Ä
@@ -1,24 +1,20 @@
Quintiq file version 2.0
#parent: ButtonCapacityAndSaleBudgeCompare
Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonCapacityAndSaleBudgeCompare_OnClick
#parent: pButton/ButtonCapacityAndSaleBudgeCompare_956
Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonCapacityAndSaleBudgeCompare_OnClick_231
{
  #keys: '[414384.0.818241703]'
  #keys: '[414702.1.272313473]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      info( DataHolderMacroPlansForScenarioComparison.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterItem.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterYear.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterMonth.Data().Size() );
      GlobalOTDSOP.CapacityAndSaleBudgeCompare( DataHolderMacroPlansForScenarioComparison.Data(), 
                                                DataHolderCapacityAndSaleBudgeFilterItem.Data(), 
                                                DataHolderCapacityAndSaleBudgeFilterYear.Data(), 
                                                DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                                GlobalOTDTable );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_pButton_ButtonExportCompare_OnClick#325.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: ButtonExportCompare
Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonExportCompare_OnClick
#parent: pButton/ButtonExportCompare_364
Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonExportCompare_OnClick_325
{
  #keys: '[414384.0.881345276]'
  #keys: '[414702.1.269961254]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def
@@ -8,27 +8,7 @@
  Children:
  [
    #child: MatrixEditorCapacityAndSaleBudgeCompare
    Component ButtonCapacityAndSaleBudgeCompare
    {
      #keys: '[414384.0.818241675]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '刷新'
        Taborder: 0
      ]
    }
    Component ButtonExportCompare
    {
      #keys: '[414384.0.881345277]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 1
      ]
    }
    #child: pButton
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCh#171.def
@@ -5,12 +5,12 @@
  #keys: '[414384.0.875704514]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderCapacityAndSaleBudgeFilterYear.Data().Flush();
      DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data().Flush();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserChecke.def
@@ -1,18 +1,18 @@
Quintiq file version 2.0
#parent: ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
Response OnUserCheckedChanged (
  structured[CapacityAndSaleBudgeFilterYear] checkeditems
  structured[CapacityAndSaleBudgeFilterPlaceOfProductionOfArray] checkeditems
) id:Response_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_OnUserCheckedChanged
{
  #keys: '[414384.0.875704513]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      DataHolderCapacityAndSaleBudgeFilterYear.Data( checkeditems.Copy() );
      DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data( checkeditems.Copy() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSDIP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component ListSDIP #extension
{
  Children:
  [
    Component DataExtractorSDIP #extension
    {
      Properties:
      [
        FixedFilter: 'object.ProductInStockingPoint_MP().Product_MP().IsLeaf()and isnull( object.OriginalSalesDemand() )'
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSDIP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component PanelSDIP #extension
{
  Children:
  [
    #child: ListSDIP
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def
@@ -4,5 +4,6 @@
  Children:
  [
    #child: PanelAllSalesDemands
    #child: PanelSDIP
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
@@ -23,5 +23,27 @@
        Title: '修改客户订单优先级因子信息'
      ]
    }
    Component MenuSpliteOrder
    {
      #keys: '[414724.0.284248096]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: '订单拆行'
        Image: 'ARROW_FORK'
        Taborder: 13
        Title: '拆行'
      ]
    }
    Component Menu189
    {
      #keys: '[414724.0.314997570]'
      BaseType: 'WebMenu'
      Properties:
      [
        Separator: true
        Taborder: 12
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuSpliteOrder_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: ListSalesDemands
Response OnClick (
  SalesDemandBase selection
) id:Response_ListSalesDemands_MenuSpliteOrder_OnClick
{
  #keys: '[414724.0.284211940]'
  CanBindMultiple: false
  DefinitionID => //FormSalesDemands/ListSalesDemands/Responsedef_ListSalesDemands_WebMenu_OnClick
  Initiator: 'MenuSpliteOrder'
  QuillAction
  {
    Body:
    [*
      data := selection.astype( CustomerOrder );
      frmOrderSplite := construct( FrmCustomOrderSpliteRow );
      frmOrderSplite.dh_Paramer_FCOS().Data( data);
      frmOrderSplite.ShowModal();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_Panel700.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
Component Panel700
{
  #keys: '[414724.0.286088539]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_OK_FCOS
    {
      #keys: '[414724.0.286088604]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Image: 'CHECKS'
        Label: '确定'
        Taborder: 0
      ]
    }
    Component btn_Cancel_FCOS
    {
      #keys: '[414724.0.286088615]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Image: 'NAVIGATE_CROSS_ORANGE'
        Label: '取消'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listActionBarPage229#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage229 id:listActionBarPage229_1
{
  #keys: '[414724.0.290316538]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component listContextMenu950 id:listContextMenu950_1
{
  #keys: '[414724.0.290316540]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component m_delete_list_SD
    {
      #keys: '[414724.0.312760935]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: '删除-拆分明细表'
        Image: 'GARBAGE'
        Taborder: 3
        Title: '删除'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_list_SpliteDetails#136.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
Quintiq file version 2.0
Component list_SpliteDetails id:list_SpliteDetails_136
{
  #keys: '[414724.0.290316536]'
  BaseType: 'WebList'
  Children:
  [
    Component de_splisteDetailsFCOS
    {
      #keys: '[414724.0.290316537]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'S_DT_SpliteStruct'
      ]
    }
    #child: listActionBarPage229_1
    Component DataSetLevel583
    {
      #keys: '[414724.0.290316539]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu950_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastDate","title":"需求日期","subtotals":"","tooltip":"","width":10,"display":"shown","editable":false,"attribute":"ForecastDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"数量","subtotals":"","tooltip":"","width":8,"display":"shown","editable":true,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteReason","title":"拆分原因","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteReason"}}]'
        ContextMenu: 'listContextMenu950'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Description: '拆分明细'
    MinimumRows: 6
    Taborder: 1
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_list_SpliteDetails_136_WebMenu_OnClick
    {
      #keys: '[414724.0.312731020]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[593.0.13413230]'
          Binding: 'list_SpliteDetails.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_OperateBtns_FCOS.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component pl_OperateBtns_FCOS
{
  #keys: '[414724.0.286058675]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: Panel700
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Taborder: 6
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_function_FCOS.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component pl_function_FCOS
{
  #keys: '[414724.0.285282557]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_add_FCOS
    {
      #keys: '[414724.0.290316633]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Image: 'LINK_ADD'
        Label: '预拆行'
        Taborder: 1
        Visible: false
      ]
    }
    Component lb_OrderID_FCOS id:lb_OrderID_FCOS_652
    {
      #keys: '[414724.0.290316653]'
      BaseType: 'WebLabel'
      Properties:
      [
        Description: '订单ID'
        Label: '订单号:'
        Taborder: 0
        Text: '2021564445'
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_spliteDetails.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component pl_spliteDetails
{
  #keys: '[414724.0.294615998]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: list_SpliteDetails_136
    Component Label130
    {
      #keys: '[414724.0.290316544]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '拆行明细:'
        NumberOfColumns: 0
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_splite_info.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
Quintiq file version 2.0
Component pl_splite_info
{
  #keys: '[414724.0.289968198]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ds_ForcastDate_FCOS id:ds_ForcastDate_FCOS_675
    {
      #keys: '[414724.0.289968265]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: '需求时间:'
        Taborder: 0
      ]
    }
    Component np_Qty_FCOS id:np_Qty_FCOS_656
    {
      #keys: '[414724.0.289968285]'
      BaseType: 'WebNumberPicker'
      Properties:
      [
        Label: '数量:'
        Min: '0'
        PlaceHolder: '数量不大于订单重量'
        Step: 200
        Taborder: 1
      ]
    }
    Component btn_splite_add
    {
      #keys: '[414724.0.289968313]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Image: 'DOWN_PLUS'
        Label: '拆'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_Cancel_FCOS_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
#parent: Panel700/btn_Cancel_FCOS
Response OnClick () id:Response_Panel700_btn_Cancel_FCOS_OnClick
{
  #keys: '[414724.0.294294721]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      // æ“ä½œæ¢å¤ï¼šåˆ é™¤æ–°å¢žçš„æ‹†åˆ†æ“ä½œï¼Œè¿˜åŽŸåˆ é™¤çš„æ‹†åˆ†æ“ä½œ
      OrderInfo:=dh_Paramer_FCOS.Data();
      if( not isnull( OrderInfo))
      {
        SOrder:=null( S_DT_CustomOrder,constcontent );
        // å¾—到所有拆分操作记录
        traverse( MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder() = OrderInfo.ID())
        {
          SOrder:=select( MacroPlan,S_DT_CustomOrder,objSO,objSO.ID_SpliteStruct() = obj.ID());
          // æ— å¯¹åº”的拆分订单,视为新增的操作,进行移除
          if( isnull( SOrder))
          {
              obj.Delete();
          }
          else
          {
            // å¦‚果状态为删除状态,则恢复删除
            if( obj.Status()=0)
            {
              obj.Status(1);
            }
          }
        }
      }
      FrmCustomOrderSpliteRow.Close();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_OK_FCOS_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
Quintiq file version 2.0
#parent: Panel700/btn_OK_FCOS
Response OnClick () id:Response_Panel700_btn_OK_FCOS_OnClick
{
  #keys: '[414724.0.294747709]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      // ä»Žè®¢å•进入拆行
      if( not isnull( dh_Paramer_FCOS.Data()))
      {
        // å°†è®¢å•移除并添加到预拆行订单中
        JResult := S_FunctionClass::SM_OrderToSpliteOrder( MacroPlan,dh_Paramer_FCOS.Data(),ef_SpliteReason_FCOS.Text());
        if( JResult.Get( "Status").GetBoolean())
        {
          // ç”Ÿæˆæ‹†è¡Œè®¢å•
          FrmCustomOrderSpliteRow.Close();
          if( JResult.Get( "Msg").GetString().Length()>0)
          {
            WebMessageBox::Information(JResult.Get( "Msg").GetString());
          }
        }
        else
        {
          WebMessageBox::Warning(JResult.Get( "Msg").GetString());
        }
      }
      else
      {
        // ç”Ÿæˆæ‹†è¡Œè®¢å•
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_FCOS_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: dh_Paramer_FCOS
Response OnDataChanged () id:Response_FrmCustomOrderSpliteRow_dh_Paramer_FCOS_OnDataChanged
{
  #keys: '[414724.0.285614685]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  QuillAction
  {
    Body:
    [*
      Form.lb_OrderID_FCOS().Text(this.Data().OrderID());
      Form.lb_CustomName_FCOS().Text(this.Data().CustomerName());
      Form.lb_OrderRowNum_FCOS().Text(this.Data().OrderLineID());
      Form.ds_ForcastDate_FCOS().Date(this.Data().EndDate());
      Form.de_splisteDetailsFCOS().FixedFilter( "object.ID_S_DT_CustomOrder() = " + this.Data().ID().AsQUILL() + "and object.Status()=1");
      HQty:=sum( MacroPlan,S_DT_SpliteStruct,Obj,Obj.ID_S_DT_CustomOrder()=this.Data().ID() and Obj.Status()=1,Obj.Qty());
      Form.np_Qty_FCOS().Max(this.Data().Quantity()-HQty);
      Form.np_Qty_FCOS().Number(this.Data().Quantity()-HQty);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: dh_Paramer_SCustomOrder_FCOS
Response OnDataChanged () id:Response_FrmCustomOrderSpliteRow_dh_Paramer_SCustomOrder_FCOS_OnDataChanged
{
  #keys: '[414724.0.303295647]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.lb_OrderID_FCOS().Text(this.Data().OrderID());
      Form.lb_CustomName_FCOS().Text(this.Data().CustomerName());
      Form.lb_OrderRowNum_FCOS().Text(this.Data().OrderLineID());
      //Form.np_Qty_FCOS().Max(this.Data().Quantity());
      //Form.np_Qty_FCOS().Number(this.Data().Quantity());
      Form.ds_ForcastDate_FCOS().Date(this.Data().EndDate());
      Form.de_splisteDetailsFCOS().FixedFilter( "object.OrderID() = " + this.Data().OrderID().AsQUILL());
      HQty:=sum( MacroPlan,S_DT_SpliteStruct,Obj,Obj.OrderID()=this.Data().OrderID(),Obj.Qty());
      Form.np_Qty_FCOS().Max(this.Data().Quantity()-HQty);
      Form.np_Qty_FCOS().Number(this.Data().Quantity()-HQty);
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_list_SpliteDetails_136_m_delete_list_SD_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: list_SpliteDetails_136
Response OnClick (
  S_DT_SpliteStruct selection
) id:Response_list_SpliteDetails_136_m_delete_list_SD_OnClick
{
  #keys: '[414724.0.314884983]'
  CanBindMultiple: false
  DefinitionID => /list_SpliteDetails_136/Responsedef_list_SpliteDetails_136_WebMenu_OnClick
  Initiator: 'm_delete_list_SD'
  Precondition:
  [*
    return not isnull( selection);
  *]
  QuillAction
  {
    Body:
    [*
      OrderInfo:=dh_Paramer_FCOS.Data();
      if( isnull( OrderInfo))
      {
        WebMessageBox::Warning( "操作失败,请重新选择订单进行拆行!");
      }
      else
      {
        selection.Status(0);
        Qty_Rows:=sum( MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1,obj.Qty());
        Qty_Max:=0.0;
        Qty_Max:= OrderInfo.Quantity()-Qty_Rows;
        np_Qty_FCOS.Max(Qty_Max);
        np_Qty_FCOS.Number(Qty_Max);
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_function_FCOS_btn_add_FCOS_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: pl_function_FCOS/btn_add_FCOS
Response OnClick () id:Response_FrmCustomOrderSpliteRow_btn_add_FCOS_OnClick
{
  #keys: '[414724.0.290316632]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( dh_Paramer_FCOS.Data());
  *]
  QuillAction
  {
    Body:
    [*
      JResult := S_FunctionClass::SM_OrderToSpliteOrder( MacroPlan,dh_Paramer_FCOS.Data(),ef_SpliteReason_FCOS.Text());
      if( JResult.Get( "Status").GetBoolean())
      {
        FrmCustomOrderSpliteRow.Close();
        if( JResult.Get( "Msg").GetString().Length()>0)
        {
         WebMessageBox::Information(JResult.Get( "Msg").GetString());
        }
      }
      else
      {
        WebMessageBox::Warning(JResult.Get( "Msg").GetString());
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_splite_info_btn_splite_add_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
#parent: pl_splite_info/btn_splite_add
Response OnClick () id:Response_pl_splite_info_btn_splite_add_OnClick
{
  #keys: '[414724.0.292801656]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( dh_Paramer_FCOS.Data());
  *]
  QuillAction
  {
    Body:
    [*
      // æ‹†åˆ†ä¸€ä¸ªè®¢å•
      SQty:=[Number]np_Qty_FCOS.Number().Round( 0);
      if(SQty>0)
      {
        OrderInfo :=dh_Paramer_FCOS.Data();
        MacroPlan.S_DT_SpliteStruct(relnew,ID := H_FunctionClass::SM_GenerateID( "OSR")
                                            ,OrderID := OrderInfo.OrderID()
                                            ,ID_S_DT_CustomOrder := OrderInfo.ID()
                                            ,SpliteReason := ef_SpliteReason_FCOS.Text()
                                            ,Qty :=SQty
                                            ,Status := 1
                                            ,ForecastDate:= ds_ForcastDate_FCOS.Date());
        // è®¡ç®—剩余拆分
        LQty:= OrderInfo.Quantity()-sum(MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1,obj.Qty()) ;
        np_Qty_FCOS.Max(LQty);
        np_Qty_FCOS.Number(LQty);
        if( np_Qty_FCOS.Max()=0)
        {
         WebMessageBox::Information( "订单已经全部拆完!");
        }
      }
      else
      {
        if( np_Qty_FCOS.Max()=0)
        {
         WebMessageBox::Information( "订单已经全部拆完!");
        }
        else
        {
          WebMessageBox::Information( "请调整 è®¢å•数量");
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/_ROOT_Component_FrmCustomOrderSpliteRow.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FrmCustomOrderSpliteRow
{
  #keys: '[414724.0.285177352]'
  Accessibility: 'Extensible'
  BaseType: 'WebForm'
  Children:
  [
    #child: pl_function_FCOS
    Component lb_OrderRowNum_FCOS
    {
      #keys: '[414724.0.285570507]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '订单行号:'
        Taborder: 1
        Text: '1.1'
      ]
    }
    Component lb_CustomName_FCOS
    {
      #keys: '[414724.0.284201013]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '客户名称:'
        Taborder: 2
        Text: '--小米'
      ]
    }
    Component ef_SpliteReason_FCOS
    {
      #keys: '[414724.0.285687770]'
      BaseType: 'WebEditField'
      Properties:
      [
        Label: '拆行原因:'
        MaxRows: 3
        Multiline: true
        PlaceHolder: '请录入'
        Taborder: 3
      ]
    }
    Component dh_Paramer_FCOS
    {
      #keys: '[414724.0.285920379]'
      BaseType: 'WebDataHolder'
      Databinding: 'CustomerOrder'
      Properties:
      [
        Taborder: 8
      ]
    }
    #child: pl_OperateBtns_FCOS
    #child: pl_splite_info
    Component dh_splitestruct
    {
      #keys: '[414724.0.294099522]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[S_DT_SpliteStruct]*'
      Children:
      [
        Component DataExtractor645
        {
          #keys: '[414724.0.293956350]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'S_DT_SpliteStruct'
          ]
        }
      ]
      Properties:
      [
        Taborder: 7
      ]
    }
    #child: pl_spliteDetails
    Component dh_Paramer_SCustomOrder_FCOS
    {
      #keys: '[414724.0.303602526]'
      BaseType: 'WebDataHolder'
      Databinding: 'S_DT_CustomOrder'
      Properties:
      [
        Taborder: 9
      ]
    }
  ]
  Properties:
  [
    Description: '订单拆行表单'
    Image: 'ARROW_FORK'
    Title: '订单拆行'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel651.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
Quintiq file version 2.0
Component Panel651
{
  #keys: '[414724.0.302810875]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_delete_FCOV id:btn_delete_FCOV_902
    {
      #keys: '[414724.0.302810937]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'GARBAGE'
        Label: '删除'
        Taborder: 0
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_Panel651_btn_delete_FCOV_902_OnClick
        {
          #keys: '[414724.0.303035901]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[575.0.41049375]'
              Binding: 'lisplitedetails.Selection()'
            }
          ]
        }
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel713.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component Panel713
{
  #keys: '[414724.0.302735923]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: lisplitedetails_450
    #child: Panel651
    Component Label963
    {
      #keys: '[414724.0.302811066]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '拆行明细:'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_lisplitedetails#450.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
Component lisplitedetails id:lisplitedetails_450
{
  #keys: '[414724.0.302735971]'
  BaseType: 'WebList'
  Children:
  [
    Component de_liSpliteDetails
    {
      #keys: '[414724.0.302735972]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'S_DT_SpliteStruct'
      ]
    }
    #child: listActionBarPage243_1
    Component DataSetLevel404
    {
      #keys: '[414724.0.302735974]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu199_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"原订单ID","subtotals":"","tooltip":"","width":10,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastDate","title":"需求日期","subtotals":"","tooltip":"","width":8,"display":"shown","editable":false,"attribute":"ForecastDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"状态","subtotals":"","tooltip":"","width":6,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SDateTime","title":"发送至ERP时间","subtotals":"","tooltip":"","width":8,"display":"shown","editable":false,"attribute":"SDateTime"}}]'
        ContextMenu: 'listContextMenu199'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    MinimumColumns: 5
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage243#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage243 id:listActionBarPage243_1
{
  #keys: '[414724.0.302735973]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage978#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage978 id:listActionBarPage978_1
{
  #keys: '[414724.0.300320629]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu199#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu199 id:listContextMenu199_1
{
  #keys: '[414724.0.302735975]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu655#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu655 id:listContextMenu655_1
{
  #keys: '[414724.0.300320631]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listOrders#635.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
Quintiq file version 2.0
Component listOrders id:listOrders_635
{
  #keys: '[414724.0.300320627]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor726
    {
      #keys: '[414724.0.300320628]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        FixedFilter: 'object.ParentID()=""'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'S_DT_CustomOrder'
      ]
    }
    #child: listActionBarPage978_1
    Component DataSetLevel439
    {
      #keys: '[414724.0.300320630]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu655_1
        Component DataSetLevel422
        {
          #keys: '[414724.0.315209998]'
          BaseType: 'WebDataSetLevel'
          Properties:
          [
            Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"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":"ProductID","title":"产品","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"需求日期","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"单位","subtotals":"","tooltip":"","width":2,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SplitCount","title":"已拆行数","subtotals":"","tooltip":"","width":3,"display":"shown","editable":false,"attribute":"SplitCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteRenmain","title":"剩余数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteRenmain"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteReason","title":"拆行原因","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteReason"}}]'
            RelationFromParent: 'Parent'
            RelationRepeating: 'Parent'
            Taborder: 1
          ]
        }
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"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":"ProductID","title":"产品","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"需求日期","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"单位","subtotals":"","tooltip":"","width":2,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SplitCount","title":"已拆行数","subtotals":"","tooltip":"","width":3,"display":"shown","editable":false,"attribute":"SplitCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteRenmain","title":"剩余数量","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteRenmain"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteReason","title":"拆行原因","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteReason"}}]'
        ContextMenu: 'listContextMenu655'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_DataView.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component pl_DataView
{
  #keys: '[414724.0.300320579]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: listOrders_635
    #child: Panel713
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_Function_FCOV.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
Quintiq file version 2.0
Component pl_Function_FCOV
{
  #keys: '[414724.0.295131518]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btn_sendERP_FCOV
    {
      #keys: '[414724.0.295131536]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '发送至ERP'
        Taborder: 0
      ]
    }
    Component btn_huanyuan_FCOV
    {
      #keys: '[414724.0.295131559]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'ARROW_INTO'
        Label: '还原'
        Taborder: 1
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick
        {
          #keys: '[414724.0.303365423]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[575.0.65737681]'
              Binding: 'listOrders.Selection()'
            }
          ]
        }
      ]
    }
    Component btn_splitRow_FCOV
    {
      #keys: '[414724.0.295131572]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'GRAPH_FORK'
        Label: '拆行'
        Taborder: 2
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_pl_Function_FCOV_btn_splitRow_FCOV_OnClick
        {
          #keys: '[414724.0.303295769]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[575.0.74590107]'
              Binding: 'listOrders.Selection()'
            }
          ]
        }
      ]
    }
    Component btn_deleteOrder_FCOV
    {
      #keys: '[414724.0.323807222]'
      BaseType: 'WebButton'
      Properties:
      [
        ButtonSize: 'compact'
        Description: '删除子订单按钮'
        Image: 'GARBAGE'
        Label: '删除'
        Taborder: 3
      ]
      ResponseDefinitions:
      [
        ResponseDefinition OnClick id:Responsedef_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick
        {
          #keys: '[414724.0.323889224]'
          IsInherited: false
          ResponseType: 'OnClick'
          Arguments:
          [
            ResponseDefinitionArgument selection
            {
              #keys: '[607.0.62176891]'
              Binding: 'listOrders.Selection()'
            }
          ]
        }
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_Panel651_btn_delete_FCOV_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: Panel651/btn_delete_FCOV_902
Response OnClick (
  S_DT_SpliteStruct selection
) id:Response_Panel651_btn_delete_FCOV_OnClick
{
  #keys: '[414724.0.302931548]'
  CanBindMultiple: false
  DefinitionID => /Panel651/Responsedef_Panel651_btn_delete_FCOV_902_OnClick
  Precondition:
  [*
    return not isnull( selection);
  *]
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_listOrders_635_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: listOrders_635
Response OnSelectionChanged (
  S_DT_CustomOrder selection
) id:Response_listOrders_635_OnSelectionChanged
{
  #keys: '[414724.0.302697813]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      Form.de_liSpliteDetails().FixedFilter( "object.OrderID() = " + selection.OrderID().AsQUILL());
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: pl_Function_FCOV/btn_deleteOrder_FCOV
Response OnClick (
  S_DT_CustomOrder selection
) id:Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick
{
  #keys: '[414724.0.321284302]'
  CanBindMultiple: false
  DefinitionID => /pl_Function_FCOV/Responsedef_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick
  Precondition:
  [*
    return not isnull( selection) and selection.ParentID()<>"";
  *]
  QuillAction
  {
    Body:
    [*
      Num:=WebMessageBox::Question("确认删除?",true);
      if( Num=0)
      {
        OrderInfo:=select( MacroPlan,SalesDemand.astype( CustomerOrder ),obj,obj.ID()=selection.ParentID());
        SSI := select(MacroPlan,S_DT_SpliteStruct,obj,obj.ID() = selection.ID_SpliteStruct());
        if( not isnull( SSI))
        {
          SSI.Status(0);
        }
        S_FunctionClass::SM_OrderToSpliteOrder( MacroPlan,OrderInfo,"");
        if( not isnull( selection))
        {
          selection.Delete();
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
#parent: pl_Function_FCOV/btn_huanyuan_FCOV
Response OnClick (
  S_DT_CustomOrder selection
) id:Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick
{
  #keys: '[414724.0.303365693]'
  CanBindMultiple: false
  DefinitionID => /pl_Function_FCOV/Responsedef_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick
  Precondition:
  [*
    return not isnull( selection) and selection.ParentID()="";
  *]
  QuillAction
  {
    Body:
    [*
      Num:=WebMessageBox::Question(  "确认要还原拆分订单吗?
                                     æ³¨æ„ï¼šè¿˜åŽŸåŽå·²æ‹†åˆ†ç»“æžœå°†è¢«æ¸…ç©º",true);
      if(Num=0)
      {
        // æ¸…理拆分记录表
        traverse( MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=selection.ID())
        {
          obj.Delete();
        }
        // æ¸…理拆分订单
        traverse( MacroPlan,S_DT_CustomOrder,obj,obj.ParentID()=selection.ID())
        {
            obj.Delete();
        }
        // æ¸…理订单
        selection.Delete();
        WebMessageBox::Information( "订单已经还原");
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pl_Function_FCOV/btn_sendERP_FCOV
Response OnClick () id:Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick
{
  #keys: '[414724.0.295170066]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "功能尚未实现,事件执行成功!");
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: pl_Function_FCOV/btn_splitRow_FCOV
Response OnClick (
  S_DT_CustomOrder selection
) id:Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick
{
  #keys: '[414724.0.303198250]'
  CanBindMultiple: false
  DefinitionID => /pl_Function_FCOV/Responsedef_pl_Function_FCOV_btn_splitRow_FCOV_OnClick
  Precondition:
  [*
    return not isnull( selection) and selection.ParentID()="";
  *]
  QuillAction
  {
    Body:
    [*
      frmOrderSplite := construct( FrmCustomOrderSpliteRow );
      orderInfo:= select( MacroPlan,SalesDemand.astype(CustomerOrder ),obj,obj.ID()=selection.ID());
      frmOrderSplite.dh_Paramer_FCOS().Data(orderInfo);
      frmOrderSplite.ShowModal();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/_ROOT_Component_FrmCustomOrderView.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FrmCustomOrderView
{
  #keys: '[414724.0.294851286]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pl_Function_FCOV
    #child: pl_DataView
  ]
  Properties:
  [
    Description: '预拆行窗体'
    Image: 'ARROW_FORK'
    Title: '拆行订单'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Views/Äê¶È²úÏú¸´ÅÌ.vw
@@ -12,495 +12,59 @@
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          rowPosition: 6
          rowSpan: 8
          columnPosition: 1
          columnSpan: 2
          columnSpan: 12
        }
        components
        {
          FormCapacityAndSaleBudge_pButton
          {
            sizeRatio: 1
          }
          FormCapacityAndSaleBudge_ListCapacityAndSaleBudge
          {
          }
          FormCapacityAndSaleBudge_DataSetLevelCapacityAndSaleBudge
          {
            groupDepth: -1
            column_Deleted
            {
              columnId: 'Deleted'
              dataPath: 'Deleted'
              dataType: 'boolean'
              index: 0
              subtotals: ''
              width: 150
            }
            column_YearNo
            {
              columnId: 'YearNo'
              dataPath: 'YearNo'
              dataType: 'number'
              index: 1
              subtotals: ''
              width: 150
            }
            column_OrgCode
            {
              columnId: 'OrgCode'
              dataPath: 'OrgCode'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_DisplayTechnology
            {
              columnId: 'DisplayTechnology'
              dataPath: 'DisplayTechnology'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            sort: 'YearNo,ProductID'
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 4
              index: 0
              subtotals: ''
              width: 150
              width: 107
            }
            column_LineAndSpecification
            column_ProductID
            {
              columnId: 'LineAndSpecification'
              dataPath: 'LineAndSpecification'
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 5
              index: 1
              subtotals: ''
              width: 150
              width: 178
            }
            column_ProductCode
            column_OrganCode
            {
              columnId: 'ProductCode'
              dataPath: 'ProductCode'
              columnId: 'OrganCode'
              dataPath: 'OrganCode'
              dataType: 'string'
              index: 6
              index: 2
              subtotals: ''
              width: 150
              width: 98
            }
            column_PlaceOfProductionOfArray
            column_YearNo
            {
              columnId: 'PlaceOfProductionOfArray'
              dataPath: 'PlaceOfProductionOfArray'
              columnId: 'YearNo'
              dataPath: 'YearNo'
              dataType: 'string'
              index: 7
              index: 3
              subtotals: ''
              width: 150
            }
            column_PlaceOfProductionOfEvaporation
            {
              columnId: 'PlaceOfProductionOfEvaporation'
              dataPath: 'PlaceOfProductionOfEvaporation'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_Resolution
            {
              columnId: 'Resolution'
              dataPath: 'Resolution'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_ShippingForm
            {
              columnId: 'ShippingForm'
              dataPath: 'ShippingForm'
              dataType: 'string'
              index: 10
              subtotals: ''
              width: 150
            }
            column_NumberOfCut
            {
              columnId: 'NumberOfCut'
              dataPath: 'NumberOfCut'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_CapacityEquivalent
            {
              columnId: 'CapacityEquivalent'
              dataPath: 'CapacityEquivalent'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_NumberOfMask
            {
              columnId: 'NumberOfMask'
              dataPath: 'NumberOfMask'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth1
            {
              columnId: 'CapacityInPCSInMonth1'
              dataPath: 'CapacityInPCSInMonth1'
              dataType: 'real'
              index: 14
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth2
            {
              columnId: 'CapacityInPCSInMonth2'
              dataPath: 'CapacityInPCSInMonth2'
              dataType: 'real'
              index: 15
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth3
            {
              columnId: 'CapacityInPCSInMonth3'
              dataPath: 'CapacityInPCSInMonth3'
              dataType: 'real'
              index: 16
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth4
            {
              columnId: 'CapacityInPCSInMonth4'
              dataPath: 'CapacityInPCSInMonth4'
              dataType: 'real'
              index: 17
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth5
            {
              columnId: 'CapacityInPCSInMonth5'
              dataPath: 'CapacityInPCSInMonth5'
              dataType: 'real'
              index: 18
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth6
            {
              columnId: 'CapacityInPCSInMonth6'
              dataPath: 'CapacityInPCSInMonth6'
              dataType: 'real'
              index: 19
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth7
            {
              columnId: 'CapacityInPCSInMonth7'
              dataPath: 'CapacityInPCSInMonth7'
              dataType: 'real'
              index: 20
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth8
            {
              columnId: 'CapacityInPCSInMonth8'
              dataPath: 'CapacityInPCSInMonth8'
              dataType: 'real'
              index: 21
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth9
            {
              columnId: 'CapacityInPCSInMonth9'
              dataPath: 'CapacityInPCSInMonth9'
              dataType: 'real'
              index: 22
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth10
            {
              columnId: 'CapacityInPCSInMonth10'
              dataPath: 'CapacityInPCSInMonth10'
              dataType: 'real'
              index: 23
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth11
            {
              columnId: 'CapacityInPCSInMonth11'
              dataPath: 'CapacityInPCSInMonth11'
              dataType: 'real'
              index: 24
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth12
            {
              columnId: 'CapacityInPCSInMonth12'
              dataPath: 'CapacityInPCSInMonth12'
              dataType: 'real'
              index: 25
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSTotal
            {
              columnId: 'CapacityInPCSTotal'
              dataPath: 'CapacityInPCSTotal'
              dataType: 'real'
              index: 26
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth1
            {
              columnId: 'CapacityInSheetInMonth1'
              dataPath: 'CapacityInSheetInMonth1'
              dataType: 'real'
              index: 27
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth2
            {
              columnId: 'CapacityInSheetInMonth2'
              dataPath: 'CapacityInSheetInMonth2'
              dataType: 'real'
              index: 28
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth3
            {
              columnId: 'CapacityInSheetInMonth3'
              dataPath: 'CapacityInSheetInMonth3'
              dataType: 'real'
              index: 29
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth4
            {
              columnId: 'CapacityInSheetInMonth4'
              dataPath: 'CapacityInSheetInMonth4'
              dataType: 'real'
              index: 30
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth5
            {
              columnId: 'CapacityInSheetInMonth5'
              dataPath: 'CapacityInSheetInMonth5'
              dataType: 'real'
              index: 31
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth6
            {
              columnId: 'CapacityInSheetInMonth6'
              dataPath: 'CapacityInSheetInMonth6'
              dataType: 'real'
              index: 32
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth7
            {
              columnId: 'CapacityInSheetInMonth7'
              dataPath: 'CapacityInSheetInMonth7'
              dataType: 'real'
              index: 33
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth8
            {
              columnId: 'CapacityInSheetInMonth8'
              dataPath: 'CapacityInSheetInMonth8'
              dataType: 'real'
              index: 34
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth9
            {
              columnId: 'CapacityInSheetInMonth9'
              dataPath: 'CapacityInSheetInMonth9'
              dataType: 'real'
              index: 35
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth10
            {
              columnId: 'CapacityInSheetInMonth10'
              dataPath: 'CapacityInSheetInMonth10'
              dataType: 'real'
              index: 36
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth11
            {
              columnId: 'CapacityInSheetInMonth11'
              dataPath: 'CapacityInSheetInMonth11'
              dataType: 'real'
              index: 37
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth12
            {
              columnId: 'CapacityInSheetInMonth12'
              dataPath: 'CapacityInSheetInMonth12'
              dataType: 'real'
              index: 38
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetTotal
            {
              columnId: 'CapacityInSheetTotal'
              dataPath: 'CapacityInSheetTotal'
              dataType: 'real'
              index: 39
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth1
            {
              columnId: 'SaleAmountInMonth1'
              dataPath: 'SaleAmountInMonth1'
              dataType: 'real'
              index: 40
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth2
            {
              columnId: 'SaleAmountInMonth2'
              dataPath: 'SaleAmountInMonth2'
              dataType: 'real'
              index: 41
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth3
            {
              columnId: 'SaleAmountInMonth3'
              dataPath: 'SaleAmountInMonth3'
              dataType: 'real'
              index: 42
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth5
            {
              columnId: 'SaleAmountInMonth5'
              dataPath: 'SaleAmountInMonth5'
              dataType: 'real'
              index: 43
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth4
            {
              columnId: 'SaleAmountInMonth4'
              dataPath: 'SaleAmountInMonth4'
              dataType: 'real'
              index: 44
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth6
            {
              columnId: 'SaleAmountInMonth6'
              dataPath: 'SaleAmountInMonth6'
              dataType: 'real'
              index: 45
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth7
            {
              columnId: 'SaleAmountInMonth7'
              dataPath: 'SaleAmountInMonth7'
              dataType: 'real'
              index: 46
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth8
            {
              columnId: 'SaleAmountInMonth8'
              dataPath: 'SaleAmountInMonth8'
              dataType: 'real'
              index: 47
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth9
            {
              columnId: 'SaleAmountInMonth9'
              dataPath: 'SaleAmountInMonth9'
              dataType: 'real'
              index: 48
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth10
            {
              columnId: 'SaleAmountInMonth10'
              dataPath: 'SaleAmountInMonth10'
              dataType: 'real'
              index: 49
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth11
            {
              columnId: 'SaleAmountInMonth11'
              dataPath: 'SaleAmountInMonth11'
              dataType: 'real'
              index: 50
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth12
            {
              columnId: 'SaleAmountInMonth12'
              dataPath: 'SaleAmountInMonth12'
              dataType: 'real'
              index: 51
              subtotals: ''
              width: 150
            }
            column_SaleAmountTotal
            {
              columnId: 'SaleAmountTotal'
              dataPath: 'SaleAmountTotal'
              dataType: 'real'
              index: 52
              subtotals: ''
              width: 150
              width: 84
            }
          }
        }
@@ -513,20 +77,24 @@
        layout
        {
          mode: 'open'
          rowPosition: 5
          rowSpan: 10
          columnPosition: 5
          columnSpan: 8
          rowPosition: 14
          rowSpan: 8
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormCapacityAndSaleBudgeCompare_pButton
          {
            sizeRatio: 1
          }
          FormCapacityAndSaleBudgeCompare_MatrixEditorCapacityAndSaleBudgeCompare
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            totalHeaderWidth: 67
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            columnWidth: 264
            horizontalGrid: true
            verticalGrid: true
            backendState
@@ -576,7 +144,7 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          rowSpan: 5
          columnPosition: 3
          columnSpan: 2
        }
@@ -588,6 +156,7 @@
          FormCapacityAndSaleBudgeFilterItem_DataSetLevelCapacityAndSaleBudgeFilterItem
          {
            groupDepth: -1
            sort: 'ItemName'
            column_ItemName
            {
              columnId: 'ItemName'
@@ -608,13 +177,17 @@
        layout
        {
          mode: 'open'
          rowPosition: 5
          rowSpan: 11
          rowPosition: 22
          rowSpan: 13
          columnPosition: 1
          columnSpan: 4
          columnSpan: 12
        }
        components
        {
          FormCapacityAndSaleBudgeChart_pFilterCriteria
          {
            sizeRatio: 1
          }
          FormCapacityAndSaleBudgeChart_ChartCapacityAndSaleBudgeChart
          {
            SynchronizationGroup: ''
@@ -636,7 +209,7 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          rowSpan: 5
          columnPosition: 5
          columnSpan: 2
        }
@@ -669,8 +242,8 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 7
          rowSpan: 5
          columnPosition: 9
          columnSpan: 2
        }
        components
@@ -702,8 +275,8 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 11
          rowSpan: 5
          columnPosition: 7
          columnSpan: 2
        }
        components
@@ -735,8 +308,8 @@
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 9
          rowSpan: 5
          columnPosition: 11
          columnSpan: 2
        }
        components
@@ -759,6 +332,39 @@
          }
        }
      }
      form_FormScenarioManager
      {
        title: 'QLibMacroPlannerWebUI::FormScenarioManager'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenarioManager'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 5
          columnPosition: 1
          columnSpan: 2
        }
        components
        {
          FormScenarioManager_ListScenario
          {
          }
          FormScenarioManager_DataSetLevelScenario
          {
            groupDepth: -1
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 240
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
_var/_Main/ModelSettings/Common/Dev-23/_ROOT_Role_Dev-23.properties
@@ -6,6 +6,10 @@
_self.configsettype=Role
_self.description=OTD专显 éžæ˜¾ ç‰¹æ˜¾
_self.name=Dev-23
arg=template:serverargs
arg.architectdependencies=
arg.custom=""
arg.versioncontrolmode=true
domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
@@ -451,16 +455,56 @@
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=true
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
_var/_Main/ModelSettings/Common/Dev-25/_ROOT_Role_Dev-25.properties
@@ -6,6 +6,10 @@
_self.configsettype=Role
_self.description=OTD汽车电子 å¤©åŽ
_self.name=Dev-25
arg=template:serverargs
arg.architectdependencies=
arg.custom=""
arg.versioncontrolmode=true
domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
@@ -451,16 +455,56 @@
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=true
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
_var/_Main/ModelSettings/Common/Dev-27/_ROOT_Role_Dev-27.properties
@@ -6,6 +6,10 @@
_self.configsettype=Role
_self.description=OTD车载事业
_self.name=Dev-27
arg=template:serverargs
arg.architectdependencies=
arg.custom=""
arg.versioncontrolmode=true
domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
@@ -451,16 +455,56 @@
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=true
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
ÎļþÒÑɾ³ý