From 30c02e0c981b16be0918483543f4b812956c45d4 Mon Sep 17 00:00:00 2001 From: Lai,Risheng <risheng.lai@capgemini.com> Date: 星期四, 02 十一月 2023 10:50:51 +0800 Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/dev' --- _Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl | 16 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 24 _Main/BL/Type_PeggingResult/StaticMethod_SetParentChildRelationship.qbl | 14 _Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl | 3 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPeggingAnalyse_OnClick.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_pButton.def | 37 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl | 28 _Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 20 _Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl | 3 _Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/_ROOT_Component_FormPeggingAllResult.def | 17 _Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl | 27 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 20 _Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listContextMenuPeggingAllResult.def | 25 _Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl | 28 _Main/UI/MacroPlanner/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def | 41 _Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl | 31 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/_ROOT_Component_FormPeggingProductInSalesDemandBase.def | 17 _Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ListPeggingProductInSalesDemandBase.def | 117 + _Main/BL/Relations/Relation_PeggingResult_PeggingProductInSalesDemandBase_PeggingProductInSales.qbl | 23 _Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl | 6 _Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl | 2 _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl | 4 _Main/BL/Relations/Relation_PeggingResult_AllChild_PeggingResult_AllParent.qbl | 23 _Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def | 17 _Main/BL/Type_Lane/StaticMethod_FindById.qbl | 15 _Main/BL/Type_Lane/StaticMethod_CreateLane.qbl | 3 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Response_ListPeggingResult_MenuSelectionAll_OnClick.def | 17 _Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl | 17 _Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl | 6 _Main/BL/Type_PeggingResult/Attribute_UnitOfMeasurementName.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listActionBarPagePeggingProductInSalesDemandBase.def | 10 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl | 7 _Main/BL/Type_PeggingResult/StaticMethod_Create.qbl | 31 _Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/UI/MacroPlannerWebApp/Views/Pegging分析.vw | 332 +++ _Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl | 8 _Main/BL/Type_PeggingResult/StaticMethod_CreateAllChildRelation.qbl | 17 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_MenuSelectionAll_OnClick.def | 17 _Main/BL/Type_PeggingProduct_MP/Attribute_ProductID.qbl | 7 _Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl | 2 _Main/BL/Type_PeggingResult/_ROOT_Type_PeggingResult.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def | 10 _Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_Quantity.qbl | 7 _Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl | 17 _Main/BL/Type_PeggingResult/StaticMethod_CreateAllGroupChildRelation.qbl | 7 _Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl | 52 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listContextMenuPeggingProductInSalesDemandBase.def | 36 _Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl | 2 _Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl | 42 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/_ROOT_Component_FormPeggingProduct_MP.def | 18 _Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl | 243 - _Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StartDate.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bRunPeggingAlgorithm_OnClick.def | 22 _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 20 _Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _var/_Main/ProjSettings/MacroPlanner/Views/X_分析视图_[414702.1.50321581].vw | 3645 +++++++++++++++++++++++++------- _Main/BL/Relations/Relation_PeggingProductInSalesDemandBase_PeggingProduct_MP_PeggingProduct_MP.qbl | 23 _Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl | 27 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def | 6 _Main/BL/Relations/Relation_PeggingResult_AllGroupChild_PeggingResult_AllGroupParent.qbl | 23 _Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl | 14 _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl | 35 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def | 25 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl | 30 _Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl | 2 _Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl | 8 _Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl | 25 _Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl | 20 _Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def | 4 _Main/BL/Type_PeggingResult/Attribute_NumberOfPlies.qbl | 7 _Main/BL/Type_PeggingResult/Attribute_ProductID.qbl | 7 _Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl | 2 _Main/UI/MacroPlanner/Component_FormPeggingResult/Response_ListPeggingProductInSalesDemandBase_MenuGeneratePeggingResult_OnCli.def | 15 _Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl | 4 _Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl | 5 _Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl | 6 _Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ColumnTitles552.def | 18 _Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_PeggingResult/Attribute_StockingPointID.qbl | 7 _Main/BL/Type_PeggingResult/Attribute_SupplyQuantity.qbl | 7 _Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StockingPointID.qbl | 7 _Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick.def | 17 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_ListPeggingProductInSalesDemandBase.def | 60 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def | 63 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def | 24 _Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_SalesDemandBaseID.qbl | 7 _Main/BL/Type_PeggingProduct_MP/StaticMethod_Create.qbl | 25 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listActionBarPagePeggingProduct_MP.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listContextMenuPeggingResult.def | 25 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def | 59 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_mGeneratePeggingResult_OnClick.def | 23 _Main/BL/Relations/Relation_PeggingResult_Child_PeggingResult_Parent.qbl | 23 _Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl | 10 _Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl | 66 _Main/BL/Type_PeggingResultGroup/_ROOT_Type_PeggingResultGroup.qbl | 9 _Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl | 59 _Main/BL/Type_PeggingResult/Attribute_ActualFulfillmentQuantity.qbl | 8 _Main/BL/Relations/Relation_PeggingProduct_MP_GlobalOTDSOP_GlobalOTDSOP_PeggingProduct_MP.qbl | 23 _Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listActionBarPagePeggingAllResult.def | 10 _Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl | 3 _Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Response_ListPeggingAllResult_MenuSelectAll_OnClick.def | 17 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl | 3 _Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl | 3 _Main/BL/Type_PeggingProduct_MP/_ROOT_Type_PeggingProduct_MP.qbl | 9 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl | 30 _Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl | 2 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listActionBarPagePeggingResult.def | 10 _Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl | 16 _Main/BL/Type_PeggingResult/Attribute_SupplyType.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bCreate_OnClick.def | 23 _Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def | 60 _Main/BL/Type_PeggingProductInSalesDemandBase/_ROOT_Type_PeggingProductInSalesDemandBase.qbl | 9 _Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl | 28 /dev/null | 6 _Main/BL/Type_PeggingResult/Attribute_StartDate.qbl | 7 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl | 28 _Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl | 8 _Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl | 59 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl | 25 126 files changed, 5,137 insertions(+), 1,308 deletions(-) diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl index 571fce9..f201682 100644 --- a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl @@ -2,7 +2,7 @@ #parent: #root EDIBroker GlobalOTDTable_CAR_Export { - MDSDefinition: GlobalOTDTable + MDSDefinition: GlobalOTDSOP TimeZone: 'ACT' UseOSTimeZone: false EDIModelLink.Source Source13 diff --git a/_Main/BL/Relations/Relation_PeggingProductInSalesDemandBase_PeggingProduct_MP_PeggingProduct_MP.qbl b/_Main/BL/Relations/Relation_PeggingProductInSalesDemandBase_PeggingProduct_MP_PeggingProduct_MP.qbl new file mode 100644 index 0000000..aabfffd --- /dev/null +++ b/_Main/BL/Relations/Relation_PeggingProductInSalesDemandBase_PeggingProduct_MP_PeggingProduct_MP.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation PeggingProductInSalesDemandBase_PeggingProduct_MP_PeggingProduct_MP_PeggingProductInSalesDemandBase +{ + #keys: '1[414702.1.290710058]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide PeggingProduct_MP + { + #keys: '3[414702.1.290710060][414702.1.290710059][414702.1.290710061]' + Cardinality: '0to1' + ObjectDefinition: PeggingProductInSalesDemandBase + OwningSide: 'Reference' + } + RelationSide.RightSide PeggingProductInSalesDemandBase + { + #keys: '3[414702.1.290710063][414702.1.290710062][414702.1.290710064]' + Cardinality: '1toN' + ObjectDefinition: PeggingProduct_MP + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_PeggingProduct_MP_GlobalOTDSOP_GlobalOTDSOP_PeggingProduct_MP.qbl b/_Main/BL/Relations/Relation_PeggingProduct_MP_GlobalOTDSOP_GlobalOTDSOP_PeggingProduct_MP.qbl new file mode 100644 index 0000000..17eff95 --- /dev/null +++ b/_Main/BL/Relations/Relation_PeggingProduct_MP_GlobalOTDSOP_GlobalOTDSOP_PeggingProduct_MP.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation PeggingProduct_MP_GlobalOTDSOP_GlobalOTDSOP_PeggingProduct_MP +{ + #keys: '1[414702.1.290710038]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide GlobalOTDSOP + { + #keys: '3[414702.1.290710040][414702.1.290710039][414702.1.290710041]' + Cardinality: '0to1' + ObjectDefinition: PeggingProduct_MP + OwningSide: 'Reference' + } + RelationSide.RightSide PeggingProduct_MP + { + #keys: '3[414702.1.290710043][414702.1.290710042][414702.1.290710044]' + Cardinality: '1toN' + ObjectDefinition: GlobalOTDSOP + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_PeggingResult_AllChild_PeggingResult_AllParent.qbl b/_Main/BL/Relations/Relation_PeggingResult_AllChild_PeggingResult_AllParent.qbl new file mode 100644 index 0000000..485b308 --- /dev/null +++ b/_Main/BL/Relations/Relation_PeggingResult_AllChild_PeggingResult_AllParent.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation PeggingResult_AllChild_PeggingResult_AllParent +{ + #keys: '1[414702.1.294852003]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide AllChild + { + #keys: '3[414702.1.294852005][414702.1.294852004][414702.1.294852006]' + Cardinality: '1toN' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } + RelationSide.RightSide AllParent + { + #keys: '3[414702.1.294852008][414702.1.294852007][414702.1.294852009]' + Cardinality: '0to1' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_PeggingResult_AllGroupChild_PeggingResult_AllGroupParent.qbl b/_Main/BL/Relations/Relation_PeggingResult_AllGroupChild_PeggingResult_AllGroupParent.qbl new file mode 100644 index 0000000..edc59bb --- /dev/null +++ b/_Main/BL/Relations/Relation_PeggingResult_AllGroupChild_PeggingResult_AllGroupParent.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation PeggingResult_AllGroupChild_PeggingResult_AllGroupParent +{ + #keys: '1[414702.1.320753677]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide AllGroupChild + { + #keys: '3[414702.1.320753679][414702.1.320753678][414702.1.320753680]' + Cardinality: '1toN' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } + RelationSide.RightSide AllGroupParent + { + #keys: '3[414702.1.320753682][414702.1.320753681][414702.1.320753683]' + Cardinality: '0to1' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_PeggingResult_Child_PeggingResult_Parent.qbl b/_Main/BL/Relations/Relation_PeggingResult_Child_PeggingResult_Parent.qbl new file mode 100644 index 0000000..c36e77b --- /dev/null +++ b/_Main/BL/Relations/Relation_PeggingResult_Child_PeggingResult_Parent.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation PeggingResult_Child_PeggingResult_Parent +{ + #keys: '1[414702.1.290710113]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide Child + { + #keys: '3[414702.1.290710115][414702.1.290710114][414702.1.290710116]' + Cardinality: '1toN' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } + RelationSide.RightSide Parent + { + #keys: '3[414702.1.290710118][414702.1.290710117][414702.1.290710119]' + Cardinality: '0to1' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_PeggingResult_PeggingProductInSalesDemandBase_PeggingProductInSales.qbl b/_Main/BL/Relations/Relation_PeggingResult_PeggingProductInSalesDemandBase_PeggingProductInSales.qbl new file mode 100644 index 0000000..b399e75 --- /dev/null +++ b/_Main/BL/Relations/Relation_PeggingResult_PeggingProductInSalesDemandBase_PeggingProductInSales.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation PeggingResult_PeggingProductInSalesDemandBase_PeggingProductInSalesDemandBase_PeggingResult +{ + #keys: '1[414702.1.290710098]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide PeggingProductInSalesDemandBase + { + #keys: '3[414702.1.290710100][414702.1.290710099][414702.1.290710101]' + Cardinality: '0to1' + ObjectDefinition: PeggingResult + OwningSide: 'Reference' + } + RelationSide.RightSide PeggingResult + { + #keys: '3[414702.1.290710103][414702.1.290710102][414702.1.290710104]' + Cardinality: '1toN' + ObjectDefinition: PeggingProductInSalesDemandBase + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl index cd44e09..2e4ee74 100644 --- a/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl @@ -26,6 +26,20 @@ if( productId <> "" ) { product := Product_MP::FindById( macroPlan, productId ); }else{ + // info( productId ); + // cf := select( source, + // AsSourceUnitOfMeasure, + // cf, + // ( cf.TargetUnitOfMeasure() = target + // or cf.TargetUnitOfMeasure() = source ) + // and cf.Product_MP() = product + // ); + // info( isnull( cf ) ); + // info( "sourceuomname: " + cf.astype( BaseConversionFactor ).SourceUnitOfMeasureName() ); + // info( "targetuomname: " + target.Name() ); + // info( "cf.targetuomname: " + cf.astype( BaseConversionFactor ).TargetUnitOfMeasureName() ); + // info( "productid: " + guard( product.ID(), "" ) ); + // info( "cf.product: " + cf.astype( BaseConversionFactor ).ProductID() ); result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ) } diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl index 14045dd..1b8028f 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl @@ -1,12 +1,12 @@ Quintiq file version 2.0 #parent: #root StaticMethod Export ( - GlobalOTDTable globalOTDTable + GlobalOTDSOP globalOTDSOP ) as BinaryValue { TextBody: [* - binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); + binaryData := globalOTDSOP.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); return binaryData.AsBinaryValue(); *] diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl new file mode 100644 index 0000000..51e9eb4 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateData ( + const GlobalOTDTable globalOTDTable, + GlobalOTDSOP this +) +{ + TextBody: + [* + traverse ( globalOTDTable, Global_MappingAnnualBudgetData, gmabd ) { + productCode := gmabd.ProductID(); + row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() ); + CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode ); + } + + columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" ); + columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" ); + traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { + cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl new file mode 100644 index 0000000..da29213 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreatePanelAllocationBudget ( + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year, + const GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + 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(), globalOTDTable, 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 ); + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl new file mode 100644 index 0000000..4cf1bf3 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreatePanelAllocationByScenario ( + MacroPlans macroPlans, + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year +) +{ + TextBody: + [* + 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-" + mp.ScenarioName() ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); + columnYear.TotalIdentification( year.YearNo() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl new file mode 100644 index 0000000..6741062 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateSalesVolume ( + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year, + const GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + 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(), globalOTDTable, 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 ); + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl new file mode 100644 index 0000000..4335178 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateSalesVolumeByScenario ( + MacroPlans macroPlans, + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year +) +{ + TextBody: + [* + 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-" + mp.ScenarioName() ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); + columnYear.TotalIdentification( year.YearNo() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + } + *] +} diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl index b3244e0..272b16c 100644 --- a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateCurrencyRate ( + MacroPlan mp, String currencyid, Date start, Real rate @@ -11,10 +12,10 @@ [* // Administrator Jul-19-2023 (created) isfromdb := true; - currency := Currency_MP::FindCurrencyTypeIndex( currencyid ); + currency := Currency_MP::FindById( mp, currencyid ); //create new currency - result := CurrencyRate_MP::FindCurrencyRateTypeIndex( currencyid, start ); + result := CurrencyRate_MP::FindByIdAndStart( currency, currencyid, start ); if( isnull( result ) ) { diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl index 67cd2c8..97a01d2 100644 --- a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateCurrencyRateFromJson ( + MacroPlan mp, JSON datarow ) as CurrencyRate_MP { @@ -16,7 +17,7 @@ day := [Number]startstring.SubString( 8, 2 ); start := Date::Construct( years, month, day ); - result := CurrencyRate_MP::CreateCurrencyRate( currencyid, start, rate ); + result := CurrencyRate_MP::CreateCurrencyRate( mp, currencyid, start, rate ); return result; *] diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..82dc0fa --- /dev/null +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateFromMapping ( + const GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + TextBody: + [* + // Administrator Oct-31-2023 (created) + updates := construct( CurrencyRate_MPs ); + traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true ) + { + a := CurrencyRate_MP::CreateCurrencyRate( macroPlan, gcr.CurrencyID(), gcr.Start(), gcr.Rate() ); + updates.Add( a ); + } + origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true ); + obsoletes := origindataset.Difference( updates ); + // delete obsoleted + difflength := obsoletes.Size(); + for( j:=0; j<difflength; j++ ) + { + obsolete := obsoletes.Element( j ); + obsolete.Delete(); + } + *] +} diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl new file mode 100644 index 0000000..2c39de8 --- /dev/null +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod FindByIdAndStart ( + Currency_MP owner, + String id, + Date start +) as CurrencyRate_MP +{ + TextBody: + [* + // yypsybs Aug-14-2023 (created) + + result := select( owner, CurrencyRate_MP, item, true, item.CurrencyID() = id and item.Start() = start ); + + return result; + *] +} diff --git a/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl b/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl index ade128e..155abb3 100644 --- a/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl +++ b/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl @@ -16,7 +16,7 @@ isfromdb := true; //create new currency - result := Currency_MP::FindCurrencyTypeIndex( id ); + result := Currency_MP::FindById( mp, id ); if( isnull( result ) ) { diff --git a/_Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..dbda48a --- /dev/null +++ b/_Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateFromMapping ( + const GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + TextBody: + [* + // Administrator Oct-31-2023 (created) + updates := construct( Currency_MPs ); + traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true ) + { + a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() ); + updates.Add( a ); + } + origindataset := selectset( macroPlan, Currency_MP, c, true ); + obsoletes := origindataset.Difference( updates ); + // delete obsoleted + difflength := obsoletes.Size(); + for( j:=0; j<difflength; j++ ) + { + obsolete := obsoletes.Element( j ); + obsolete.Delete(); + } + *] +} diff --git a/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl b/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl index 2d3b108..ac48151 100644 --- a/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl +++ b/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl @@ -12,11 +12,11 @@ // yypsybs Sep-18-2023 (created) result := sum( macroPlan, Product_MP.SalesDemand, - item, - item.istype( Forecast ) and productNo.Find( item.ProductID() ) > -1 - and item.StartDate().Year() = yearNo - and item.StartDate().Month() = monthNo, - item.FulfilledQuantity() * item.Price() ); + tempSD, + productNo.Find( tempSD.ProductID() ) > -1 + and tempSD.StartDate().Year() = yearNo + and tempSD.StartDate().Month() = monthNo, + tempSD.FulfilledQuantity() * tempSD.Price() ); return result; *] } diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" index 66ff081..254563a 100644 --- "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" +++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" @@ -50,11 +50,11 @@ macroPlan.InitialUnitAndStockingPoint(); if ( isUnitOfMeasure_MP ) { - Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan ); + Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser ); } if ( isCustomOrder ) { - Global_MappingCustomOrder::SynchronizeMacroPlanData( this, macroPlan, executionUser ); + Global_MappingCustomOrder::SynchronizeMacroPlanData( this, macroPlan, businessTypes, organcodelist, executionUser ); } if ( isForeacst ) { @@ -82,7 +82,7 @@ } if ( isProductInLane ) { - Global_MappingProductInLane::SynchronizeMacroPlanData( this, macroPlan, executionUser ); + Global_MappingProductInLane::SynchronizeMacroPlanData( this, macroPlan, businessTypes, executionUser ); } if ( isAIPISPIP ) { @@ -94,7 +94,7 @@ } if ( isStockingPointCost ) { - Global_MappingStockingPointCost::SynchronizeMacroPlanData( this, macroPlan, executionUser ); + Global_MappingStockingPointCost::SynchronizeMacroPlanData( this, macroPlan, businessTypes, executionUser ); } if ( isOperationCost ) { diff --git a/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl index 0ba67ec..8b53f33 100644 --- a/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl +++ b/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl @@ -5,13 +5,12 @@ CapacityAndSaleBudgeFilterItems items, CapacityAndSaleBudgeFilterYears years, CapacityAndSaleBudgeFilterMonths months, - const GlobalOTDTable otdTable + const GlobalOTDTable globalOTDTable ) { Description: 'todo : mappingParent鏀逛负mpSync, random鍒犱簡' TextBody: [* - // ====涓嶉�夋椂榛樿鍏ㄩ��==== if ( years.Size() = 0 ) { years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() ); } @@ -22,219 +21,57 @@ this.CapacityAndSaleBudgeCompareItemRow( relflush ); this.CapacityAndSaleBudgeCompareItemColumn( relflush ); - // ====姹囨�绘墍鏈夊嚭鐜扮殑浜у搧==== - targetglobal_MappingAnnualBudgetData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true ); + CapacityAndSaleBudgeCompareItemCell::CreateData( globalOTDTable, this ); - 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 ) { - // bom := boms.First(); - // businessType := bom.BusinessType(); - // placeOfProductionOfArray := bom.OrganCode(); - // 鐩稿悓闈㈡澘鍩哄湴鍜屼簨涓氶儴鐨勬斁涓�琛� - row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() ); - // 璁板綍姣忚鍖呭惈鍝簺product - CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode ); - // } else { - // debuginfo( "no boms for product : " + productCode ); - // } - } - - // ====浠庡乏鍚戝彸鐢熸垚鍒楀ご涓庡唴瀹�==== - // 浜嬩笟閮紝闈㈡澘鍩哄湴 - columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" ); - columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" ); - traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - - // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 (sheets) - // 鏍煎紡锛� 闈㈡澘鍒嗛厤閲� - 骞� - 鏈堬紙1-12 & total锛� - 骞村害棰勭畻/scenarioName if ( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) { traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - // 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 ); - } - - // 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 ); - // } - // } - // 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-" + mp.ScenarioName() ); - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); - columnYear.TotalIdentification( year.YearNo() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - } + CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationBudget( this, months, year, globalOTDTable ); + CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationByScenario( macroPlans, this, months, year ); } } - // 骞村害閿�鍞 if ( CapacityAndSaleBudgeFilterItem::Contains( items, "閿�鍞" ) ) { traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - // 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 ); - } - - // 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 ); - // } - // } - // 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-" + mp.ScenarioName() ); - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); - columnYear.TotalIdentification( year.YearNo() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - } + CapacityAndSaleBudgeCompareItemCell::CreateSalesVolume( this, months, year, globalOTDTable ); + CapacityAndSaleBudgeCompareItemCell::CreateSalesVolumeByScenario( macroPlans, this, months, year ); } } // 澶у紶鐩堝埄棰� - traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); - traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - // S&OP鏁版嵁 - traverse( macroPlans, Elements, macroPlan ) { - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); - traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - } - } - // 浜у搧鐩堝埄棰� - traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); - traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - // S&OP鏁版嵁 - traverse ( macroPlans, Elements, macroPlan ) { - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); - traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // todo - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - } - } + //traverse ( years, Elements, year ) { + // // 鍘嗗彶鏁版嵁 + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); + // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // // S&OP鏁版嵁 + // traverse( macroPlans, Elements, macroPlan ) { + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); + // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // } + //} + //// 浜у搧鐩堝埄棰� + //traverse ( years, Elements, year ) { + // // 鍘嗗彶鏁版嵁 + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); + // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // // S&OP鏁版嵁 + // traverse ( macroPlans, Elements, macroPlan ) { + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); + // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // // todo + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // } + //} // 璁剧疆rowNo鍜宑olumnNo rowNo := 1; diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl index 984a0eb..ad249d7 100644 --- a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl @@ -12,14 +12,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾瀹為檯搴撳瓨鏁版嵁", + BrokerName := "鍚屾瀹為檯搴撳瓨鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable, isKeyProduct, organcodelist ); + macroPlan.DoASyncMappingActualPISPIPData( businessTypes, globalOTDTable, isKeyProduct, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl index 9467117..51aa067 100644 --- a/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,14 +9,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾鍗曚綅杞崲鏁版嵁", + BrokerName := "鍚屾鍗曚綅杞崲鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingBaseConversionFactorData(globalOTDTable); + macroPlan.DoASyncMappingBaseConversionFactorData(globalOTDTable); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 5913ebe..e30d9ef 100644 --- a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,29 +9,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾璐у竵姹囩巼鏁版嵁", + BrokerName := "鍚屾璐у竵姹囩巼鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - updates := construct( CurrencyRate_MPs ); - traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true ) - { - a := CurrencyRate_MP::CreateCurrencyRate( gcr.CurrencyID(), gcr.Start(), gcr.Rate() ); - updates.Add( a ); - } - origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true ); - obsoletes := origindataset.Difference( updates ); - // delete obsoleted - difflength := obsoletes.Size(); - for( j:=0; j<difflength; j++ ) - { - obsolete := obsoletes.Element( j ); - obsolete.Delete(); - } - + CurrencyRate_MP::CreateFromMapping( globalOTDTable, macroPlan ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); } onerror { diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 38ac6bb..31f2109 100644 --- a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,29 +9,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾璐у竵鏁版嵁", + BrokerName := "鍚屾璐у竵鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - updates := construct( Currency_MPs ); - traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true ) - { - a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() ); - updates.Add( a ); - } - origindataset := selectset( macroPlan, Currency_MP, c, true ); - obsoletes := origindataset.Difference( updates ); - // delete obsoleted - difflength := obsoletes.Size(); - for( j:=0; j<difflength; j++ ) - { - obsolete := obsoletes.Element( j ); - obsolete.Delete(); - } - + Currency_MP::CreateFromMapping( globalOTDTable, macroPlan ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); } onerror { diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl index 9a69cf5..7e2f51f 100644 --- a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl @@ -3,20 +3,23 @@ StaticMethod SynchronizeMacroPlanData ( GlobalOTDTable globalOTDTable, MacroPlan macroPlan, + Strings businessTypes, + Strings organcodelist, String executionUser ) { TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾璁㈠崟鏁版嵁", + BrokerName := "鍚屾璁㈠崟鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - Global_MappingCustomOrder::CreateCustomOrder( globalOTDTable, macroPlan ); + macroPlan.DoASyncMappingCustomerOrderData( businessTypes, globalOTDTable, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl index ef72e85..cb14755 100644 --- a/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾棰勬祴鏁版嵁", + BrokerName := "鍚屾棰勬祴鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingForecastData( businessTypes, globalOTDTable, organcodelist ); + macroPlan.DoASyncMappingForecastData( businessTypes, globalOTDTable, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl index 06d00c5..7de7b35 100644 --- a/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl @@ -12,14 +12,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾鍦ㄩ�斿簱瀛樻暟鎹�", + BrokerName := "鍚屾鍦ㄩ�斿簱瀛樻暟鎹�", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist ); + macroPlan.DoASyncMappingExternalSupplyData( businessTypes, isKeyProduct, globalOTDTable, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl index 60224b2..6cfc45e 100644 --- a/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,61 +9,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾杞﹂亾鏁版嵁", + BrokerName := "鍚屾杞﹂亾鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - updates := construct( Lanes ); - traverse( globalOTDTable, Global_MappingLane, gl, true ) - { - id := gl.ID(); - unitid := gl.UnitID(); - name := gl.Name(); - userleadtime := gl.UserLeadTime(); - processingtime := Duration::Zero(); - - unitofmeasurename := "PCS"; - currencyid := "CNY"; - startdate := Date::Date( 1900, 1, 1 ); - enddate := Date::Date( 9999, 12, 31 ); - capacitytype := "Transport quantity"; - if( userleadtime.Length() = 0 ) - { - processingtime := Duration::Zero(); - } - else - { - processingtime := Duration::Hours( [Number]userleadtime ); - }; - - unit := Unit::FindUnitTypeIndex( unitid ); - if( isnull( unit)){ - unit :=macroPlan.Unit( relnew, - ID := unitid, - Name := unitid, - UnitOfMeasureName := unitofmeasurename, - CurrencyID := currencyid, - StartDate := startdate, - EndDate := enddate, - CapacityType := capacitytype ); - } - - a := Lane::CreateLane( unit, id, name, processingtime); - updates.Add( a ); - } - origindataset := selectset( macroPlan, Unit.Lane, l, true ); - obsoletes := origindataset.Difference( updates ); - // delete obsoleted - difflength := obsoletes.Size(); - for( j:=0; j<difflength; j++ ) - { - obsolete := obsoletes.Element( j ); - obsolete.Delete(); - } - + Lane::CreasteFromMapping( globalOTDTable, macroPlan ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); } onerror { diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl index d1743ec..dacd193 100644 --- a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,44 +9,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾杞﹂亾璺嚎鏁版嵁", + BrokerName := "鍚屾杞﹂亾璺嚎鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - updates := construct( LaneLegs ); - traverse( globalOTDTable, Global_MappingLaneLeg, gll, true ) - { - processingtime := Duration::Zero(); - hasprocessingtime := true; - userleadtime := gll.UserLeadTime(); - if( userleadtime.Length() = 0 ) - { - hasprocessingtime := false; - processingtime := Duration::Zero(); - } - else - { - hasprocessingtime := true; - processingtime := Duration::Hours( [Number]userleadtime ); - }; - - lane := Lane::FindLaneTypeIndex( gll.LaneID() ); - a := LaneLeg::CreateLaneleg(lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime); - updates.Add( a ); - } - origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true ); - obsoletes := origindataset.Difference( updates ); - // delete obsoleted - difflength := obsoletes.Size(); - for( j:=0; j<difflength; j++ ) - { - obsolete := obsoletes.Element( j ); - obsolete.Delete(); - } - + LaneLeg::CreateFromMapping( globalOTDTable, macroPlan ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); } onerror { diff --git a/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl index 6a663dd..59d2808 100644 --- a/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾宸ヨ壓璺嚎鏁版嵁", + BrokerName := "鍚屾宸ヨ壓璺嚎鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist ); + macroPlan.DoASyncMappingOperationData( businessTypes, globalOTDTable, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl index 3198fd5..86e1e89 100644 --- a/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl @@ -13,14 +13,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾BOM鏁版嵁", + BrokerName := "鍚屾BOM鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial, globalOTDTable, organcodelist ); + macroPlan.DoASyncMappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial, globalOTDTable, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl index 9e722b5..00eddb8 100644 --- a/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl @@ -3,20 +3,22 @@ StaticMethod SynchronizeMacroPlanData ( GlobalOTDTable globalOTDTable, MacroPlan macroPlan, + Strings businessTypes, String executionUser ) { TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾杩愯緭璺嚎浜у搧鏁版嵁", + BrokerName := "鍚屾杩愯緭璺嚎浜у搧鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingProductInLaneData(globalOTDTable); + macroPlan.DoASyncMappingProductInLaneData( globalOTDTable, businessTypes ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 8c10d2f..47d8f21 100644 --- a/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾浜у搧鏁版嵁", + BrokerName := "鍚屾浜у搧鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingProductData( businessTypes, globalOTDTable,isKeyProduct ); + macroPlan.DoASyncMappingProductData( businessTypes, globalOTDTable, isKeyProduct ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl index fc881d2..636f6a8 100644 --- a/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -10,14 +10,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾閿�鍞儴闂ㄦ暟鎹�", + BrokerName := "鍚屾閿�鍞儴闂ㄦ暟鎹�", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingSalesSegmentData( businessTypes, globalOTDTable ); + macroPlan.DoASyncMappingSalesSegmentData( businessTypes, globalOTDTable ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl index df0cc31..adfe937 100644 --- a/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl @@ -3,20 +3,22 @@ StaticMethod SynchronizeMacroPlanData ( GlobalOTDTable globalOTDTable, MacroPlan macroPlan, + Strings businessTypes, String executionUser ) { TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾搴撳瓨鎴愭湰鏁版嵁", + BrokerName := "鍚屾搴撳瓨鎴愭湰鏁版嵁", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingInventoryValueAndCostData(globalOTDTable); + macroPlan.DoASyncMappingInventoryValueAndCostData( globalOTDTable, businessTypes ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 7db4814..a388711 100644 --- a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,29 +9,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾搴撳瓨鐐规暟鎹�", + BrokerName := "鍚屾搴撳瓨鐐规暟鎹�", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - updates := construct( StockingPoint_MPs ); - traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true ) - { - a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() ); - updates.Add( a ); - } - origindataset := selectset( macroPlan, StockingPoint_MP, sp, true ); - obsoletes := origindataset.Difference( updates ); - // delete obsoleted - difflength := obsoletes.Size(); - for( j:=0; j<difflength; j++ ) - { - obsolete := obsoletes.Element( j ); - obsolete.Delete(); - } - + StockingPoint_MP::CreateFromMapping( globalOTDTable, macroPlan ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); } onerror { diff --git a/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl index 8f08b84..2b7b644 100644 --- a/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾鍒堕�犳垚鏈暟鎹�", + BrokerName := "鍚屾鍒堕�犳垚鏈暟鎹�", + ExecutionStatus := "InOperation", IsSuccess := true, ExecuteUser := executionUser ); try { - macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist ); + macroPlan.DoASyncMappingOperationCostData( globalOTDTable, businessTypes, organcodelist ); global_BrokerExecuteLog.ExecutionStatus( "Complete" ); global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl index d31811e..30bfa48 100644 --- a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -2,30 +2,30 @@ #parent: #root StaticMethod SynchronizeMacroPlanData ( GlobalOTDTable globalOTDTable, - MacroPlan macroPlan + MacroPlan macroPlan, + String executionUser ) { TextBody: [* global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, - Name := "鍚屾鍗曚綅鏁版嵁", - IsSuccess := true + BrokerName := "鍚屾鍗曚綅鏁版嵁", + ExecutionStatus := "InOperation", + IsSuccess := true, + ExecuteUser := executionUser ); try { - traverse ( globalOTDTable, Global_MappingUnitOfMeasure_MP, gmuommp ) { - unitOfMeasure_MP := select( macroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = gmuommp.Name() ); - if ( isnull( unitOfMeasure_MP ) ) { - unitOfMeasure_MP := UnitOfMeasure_MP::Create( macroPlan, gmuommp.Name(), false, false ); - } - if ( gmuommp.IsDefault() ) { - unitOfMeasure_MP.SetAsDefault(); - } - } + macroPlan.DoASyncMappingUnitOfMeasureData(globalOTDTable); + + global_BrokerExecuteLog.ExecutionStatus( "Complete" ); + global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); } onerror { global_BrokerExecuteLog.IsSuccess( false ); global_BrokerExecuteLog.ErrorNo( e.ErrorNr() ); global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() ); + global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); + global_BrokerExecuteLog.ExecutionStatus( "Complete" ); } *] } diff --git a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl index 4116cce..9dec2cd 100644 --- a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl @@ -32,16 +32,16 @@ //if( isnull( account ) ) { // error( "account not found" ); //} - result := InventoryValueAndCost::FindById( macroPlan, stockingPointId,productId,start,id ); + result := InventoryValueAndCost::FindById( macroPlan, stockingPointId, productId, start, id ); if( not isnull( product) and not isnull( stockingPoint) and not isnull( account)){ if( isnull( result ) ) { result := InventoryValueAndCost::Create( id, product, stockingPoint, account, costDriver, start, cost, true ).astype( InventoryValueAndCost ); } else if( result.ProductID() <> productId ) { info( "cannot change product of inventory value and cost" ) } - // else { - // result.Update( account, costDriver, start, account.DefaultTimeUnit(), account.DefaultLengthOfTime(), cost, true ); - // } + else { + result.Update( account, costDriver, start, account.DefaultTimeUnit(), account.DefaultLengthOfTime(), cost, true ); + } } return result; diff --git a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl index 133145d..e49e111 100644 --- a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl +++ b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl @@ -12,6 +12,9 @@ [* // yypsybs Aug-16-2023 (created) value := select( macroPlan, Product_MP.InventoryValueAndCost, item, true, item.ProductID()=productId and item.StockingPointID() = stockPointId and item.Start() = start ); + if( isnull( value ) ){ + value := select( macroPlan, Product_MP.InventoryValueAndCost, item, true, item.ID() = id ); + } return value; *] } diff --git a/_Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl b/_Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl new file mode 100644 index 0000000..ab95433 --- /dev/null +++ b/_Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl @@ -0,0 +1,59 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreasteFromMapping ( + const GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + TextBody: + [* + // Administrator Oct-31-2023 (created) + updates := construct( Lanes ); + traverse( globalOTDTable, Global_MappingLane, gl, true ) + { + id := gl.ID(); + unitid := gl.UnitID(); + name := gl.Name(); + userleadtime := gl.UserLeadTime(); + processingtime := Duration::Zero(); + + unitofmeasurename := "PCS"; + currencyid := "CNY"; + startdate := Date::Date( 1900, 1, 1 ); + enddate := Date::Date( 9999, 12, 31 ); + capacitytype := "Transport quantity"; + if( userleadtime.Length() = 0 ) + { + processingtime := Duration::Zero(); + } + else + { + processingtime := Duration::Hours( [Number]userleadtime ); + }; + + unit := Unit::FindById( macroPlan, unitid ); + if( isnull( unit)){ + unit :=macroPlan.Unit( relnew, + ID := unitid, + Name := unitid, + UnitOfMeasureName := unitofmeasurename, + CurrencyID := currencyid, + StartDate := startdate, + EndDate := enddate, + CapacityType := capacitytype ); + } + + a := Lane::CreateLane( macroPlan, unit, id, name, processingtime); + updates.Add( a ); + } + origindataset := selectset( macroPlan, Unit.Lane, l, true ); + obsoletes := origindataset.Difference( updates ); + // delete obsoleted + difflength := obsoletes.Size(); + for( j:=0; j<difflength; j++ ) + { + obsolete := obsoletes.Element( j ); + obsolete.Delete(); + } + *] +} diff --git a/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl b/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl index 64c72eb..286b75f 100644 --- a/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl +++ b/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateLane ( + MacroPlan mp, Unit unit, String id, String name, @@ -19,7 +20,7 @@ isfromdb := true; //create new stockingpoint - result := Lane::FindLaneTypeIndex( id ); + result := Lane::FindById( mp, id ); if( isnull( result ) ) { diff --git a/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl b/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl index 060eabc..d4e9b77 100644 --- a/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl +++ b/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl @@ -40,7 +40,7 @@ EndDate := enddate ); } - result := Lane::CreateLane( unit, id, name, processingtime); + result := Lane::CreateLane( macroplan, unit, id, name, processingtime); return result; *] diff --git a/_Main/BL/Type_Lane/StaticMethod_FindById.qbl b/_Main/BL/Type_Lane/StaticMethod_FindById.qbl new file mode 100644 index 0000000..05cf40a --- /dev/null +++ b/_Main/BL/Type_Lane/StaticMethod_FindById.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod FindById ( + MacroPlan mp, + String id +) as Lane +{ + TextBody: + [* + // yypsybs Aug-14-2023 (created) + result := select( mp, Unit.Lane, lane, true, lane.ID() = id ); + + return result; + *] +} diff --git a/_Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl b/_Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl new file mode 100644 index 0000000..b60c9e4 --- /dev/null +++ b/_Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod FindByIdAndUnit ( + Unit unit, + String id +) as Lane +{ + TextBody: + [* + // yypsybs Aug-14-2023 (created) + + result := select( unit, Lane, item, true, item.ID() = id ); + + return result; + *] +} diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..f15c486 --- /dev/null +++ b/_Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,42 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateFromMapping ( + const GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + TextBody: + [* + // Administrator Oct-31-2023 (created) + updates := construct( LaneLegs ); + traverse( globalOTDTable, Global_MappingLaneLeg, gll, true ) + { + processingtime := Duration::Zero(); + hasprocessingtime := true; + userleadtime := gll.UserLeadTime(); + if( userleadtime.Length() = 0 ) + { + hasprocessingtime := false; + processingtime := Duration::Zero(); + } + else + { + hasprocessingtime := true; + processingtime := Duration::Hours( [Number]userleadtime ); + }; + + lane := Lane::FindById( macroPlan, gll.LaneID() ); + a := LaneLeg::CreateLaneleg( macroPlan, lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime); + updates.Add( a ); + } + origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true ); + obsoletes := origindataset.Difference( updates ); + // delete obsoleted + difflength := obsoletes.Size(); + for( j:=0; j<difflength; j++ ) + { + obsolete := obsoletes.Element( j ); + obsolete.Delete(); + } + *] +} diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl index ed77c9e..021a0f6 100644 --- a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl +++ b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateLaneLegFromJson ( + MacroPlan mp, JSON datarow ) as LaneLeg { @@ -29,7 +30,7 @@ lane := Lane::FindLaneTypeIndex( laneid ); - result := LaneLeg::CreateLaneleg(lane, laneid, originstockingpointid, destinationstockingpointid, name, hasprocessingtime, processingtime); + result := LaneLeg::CreateLaneleg( mp, lane, laneid, originstockingpointid, destinationstockingpointid, name, hasprocessingtime, processingtime); return result; *] diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl index c72fe3d..6ca8d7e 100644 --- a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl +++ b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateLaneleg ( + MacroPlan mp, Lane lane, String laneid, String originstockingpointid, @@ -25,16 +26,16 @@ isfromdb := true; //create new stockingpoint - originstockingpoint := StockingPoint_MP::FindStockingPointTypeIndex( originstockingpointid ); + originstockingpoint := StockingPoint_MP::FindById( mp, originstockingpointid ); lane.AddStockingPoint( originstockingpoint, true, isfromdb ); Transaction::Transaction().Propagate(); - destinationstockingpoint := StockingPoint_MP::FindStockingPointTypeIndex( destinationstockingpointid ); + destinationstockingpoint := StockingPoint_MP::FindById( mp, destinationstockingpointid ); lane.AddStockingPoint( destinationstockingpoint, false, isfromdb ); Transaction::Transaction().Propagate(); - result := LaneLeg::FindLaneLegTypeIndex( laneid, originstockingpointid, destinationstockingpointid ); + result := LaneLeg::FindByIdAndLane( lane, originstockingpointid, destinationstockingpointid ); if( isnull( result ) ) { diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl new file mode 100644 index 0000000..a6a90ec --- /dev/null +++ b/_Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod FindByIdAndLane ( + Lane lane, + String originstockingpointid, + String destinationstockingpointid +) as LaneLeg +{ + TextBody: + [* + // yypsybs Aug-14-2023 (created) + + result := select( lane, LaneLeg, item, true, item.OriginStockingPointID() = originstockingpointid and item.DestinationStockingPointID() = destinationstockingpointid ); + + return result; + *] +} diff --git a/_Main/BL/Type_MacroPlan/DefaultValue_BusinessType.qbl b/_Main/BL/Type_MacroPlan/DefaultValue_BusinessType.qbl deleted file mode 100644 index 1672b03..0000000 --- a/_Main/BL/Type_MacroPlan/DefaultValue_BusinessType.qbl +++ /dev/null @@ -1,6 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -DefaultValue -{ - TargetAttribute: BusinessType -} diff --git a/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl b/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl index 9f5c492..e4ee8c5 100644 --- a/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root Method ApiCurencyRatesData ( + MacroPlan mp, JSON data ) { @@ -14,7 +15,7 @@ for( i:=0; i<data_length; i++ ) { datarow := data.Get( i ); - a := CurrencyRate_MP::CreateCurrencyRateFromJson( datarow ); + a := CurrencyRate_MP::CreateCurrencyRateFromJson( mp, datarow ); updates.Add( a ); } origindataset := selectset( this, Currency_MP.CurrencyRate_MP, cr, true ); diff --git a/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl b/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl index 450d6ae..c3e7b0c 100644 --- a/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root Method ApiLaneLegsData ( + MacroPlan mp, JSON data ) { @@ -14,7 +15,7 @@ for( i:=0; i<data_length; i++ ) { datarow := data.Get( i ); - a := LaneLeg::CreateLaneLegFromJson( datarow ); + a := LaneLeg::CreateLaneLegFromJson( mp, datarow ); updates.Add( a ); } origindataset := selectset( this, Unit.Lane.LaneLeg, ll, true ); diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl index e56a4f7..16ec956 100644 --- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl @@ -22,7 +22,7 @@ ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); } queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); - queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); + //queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate /*and item.OrderDate() <= queryEndDate*/, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockingPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) ); totalcount := listToDeal.Size(); diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl index ad47aed..6b2f316 100644 --- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl @@ -11,7 +11,7 @@ [* // renhao Aug-14-2023 (created) queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); - queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); + //queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); listtodeal := construct( Global_MappingInventorySupplys, constcontent ); if ( businessTypes.Size() > 0 ) { diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" index 0c397f4..70b4b76 100644 --- "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" +++ "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" @@ -17,6 +17,8 @@ info( "Prepare to do sync" ) info( "Get organ code list" ) businessTypeName := businessType.BusinessTypeName().Tokenize( "," ); + macroPlan.BusinessType( businessType.BusinessTypeName() ); + organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() ); if( organcodelist.Size() = 0 ){ @@ -44,34 +46,23 @@ macroPlan.DoASyncMappingUnitData( businessTypeName ,globalOTDTable, organcodelist); // 搴撳瓨鐐�-3 - info( "Sales Segment Finished, Start Get StockingPoint From Api" ) - parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" ); - postrequestbody := parameter.PostRequestBody(); - address := parameter.Address(); - url := parameter.AttributeValue(); - port := [Number]parameter.Port(); - data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiStockingPointData( data ); + info( "Sales Segment Finished, Start Get StockingPoint From Mapping" ) + StockingPoint_MP::CreateFromMapping( globalOTDTable, macroPlan ); + //parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" ); + //postrequestbody := parameter.PostRequestBody(); + //address := parameter.Address(); + //url := parameter.AttributeValue(); + //port := [Number]parameter.Port(); + //data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); + //macroPlan.ApiStockingPointData( data ); // 璐у竵淇℃伅-4 - info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Api" ) - parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" ); - postrequestbody := parameter.PostRequestBody(); - address := parameter.Address(); - url := parameter.AttributeValue(); - port := [Number]parameter.Port(); - data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiCurenciesData( data ); + info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Mapping" ) + Currency_MP::CreateFromMapping( globalOTDTable, macroPlan ); //璐у竵姹囩巼淇℃伅-5 - info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Api" ) - parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyRates" ); - postrequestbody := parameter.PostRequestBody(); - address := parameter.Address(); - url := parameter.AttributeValue(); - port := [Number]parameter.Port(); - data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiCurencyRatesData( data ); + info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Mapping" ) + CurrencyRate_MP::CreateFromMapping( globalOTDTable, macroPlan ); // 浜у搧鐗╂枡-6 //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) @@ -92,24 +83,12 @@ macroPlan.DoASyncMappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist ); //杞﹂亾淇℃伅-10 - info( "BOM Finished, Start Get Lanes From Api" ); - parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "Lanes" ); - postrequestbody := parameter.PostRequestBody(); - address := parameter.Address(); - url := parameter.AttributeValue(); - port := [Number]parameter.Port(); - data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiLanesData( data ); + info( "BOM Finished, Start Get Lanes From Mapping" ); + Lane::CreasteFromMapping( globalOTDTable, macroPlan ); //杞﹂亾杩愯緭娈�-11 - info( "Get Lanes From Api Finished, Start Get LaneLegs From Api" ); - parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "LaneLegs" ); - postrequestbody := parameter.PostRequestBody(); - address := parameter.Address(); - url := parameter.AttributeValue(); - port := [Number]parameter.Port(); - data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiLaneLegsData( data ); + info( "Get Lanes From Api Finished, Start Get LaneLegs From Mapping" ); + LaneLeg::CreateFromMapping( globalOTDTable, macroPlan ); // 渚涘簲缃戠粶锛堣溅閬擄級-12 //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl index 8cb5656..25df795 100644 --- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl +++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl @@ -71,7 +71,7 @@ url := "/otdService/https/GetCurrencyRatesInfo"; port := 443; data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiCurencyRatesData( data ); + macroPlan.ApiCurencyRatesData( macroPlan, data ); // 浜у搧鐗╂枡-6 //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) @@ -109,7 +109,7 @@ url := "/otdService/https/GetLaneLegsInfo"; port := 443; data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); - macroPlan.ApiLaneLegsData( data ); + macroPlan.ApiLaneLegsData( macroPlan, data ); // 渚涘簲缃戠粶锛堣溅閬擄級-12 //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); diff --git a/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_Quantity.qbl b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_Quantity.qbl new file mode 100644 index 0000000..47736bd --- /dev/null +++ b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_Quantity.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Quantity +{ + #keys: '3[414702.1.294748144][414702.1.294748143][414702.1.294748145]' + ValueType: Real +} diff --git a/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_SalesDemandBaseID.qbl b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_SalesDemandBaseID.qbl new file mode 100644 index 0000000..1df641d --- /dev/null +++ b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_SalesDemandBaseID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SalesDemandBaseID +{ + #keys: '3[414702.1.294144484][414702.1.294144483][414702.1.294144485]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StartDate.qbl b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StartDate.qbl new file mode 100644 index 0000000..76121f8 --- /dev/null +++ b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StartDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StartDate +{ + #keys: '3[414702.1.294179414][414702.1.294179413][414702.1.294179415]' + ValueType: Date +} diff --git a/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StockingPointID.qbl b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..7571b1e --- /dev/null +++ b/_Main/BL/Type_PeggingProductInSalesDemandBase/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414702.1.294179270][414702.1.294179269][414702.1.294179271]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingProductInSalesDemandBase/_ROOT_Type_PeggingProductInSalesDemandBase.qbl b/_Main/BL/Type_PeggingProductInSalesDemandBase/_ROOT_Type_PeggingProductInSalesDemandBase.qbl new file mode 100644 index 0000000..1563969 --- /dev/null +++ b/_Main/BL/Type_PeggingProductInSalesDemandBase/_ROOT_Type_PeggingProductInSalesDemandBase.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type PeggingProductInSalesDemandBase +{ + #keys: '5[414702.1.290710055][414702.1.290710053][0.0.0][414702.1.290710054][414702.1.290710056]' + BaseType: Object + StructuredName: 'PeggingProductInSalesDemandBases' +} diff --git a/_Main/BL/Type_PeggingProduct_MP/Attribute_ProductID.qbl b/_Main/BL/Type_PeggingProduct_MP/Attribute_ProductID.qbl new file mode 100644 index 0000000..1aa0e94 --- /dev/null +++ b/_Main/BL/Type_PeggingProduct_MP/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[414702.1.290710074][414702.1.290710073][414702.1.290710075]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingProduct_MP/StaticMethod_Create.qbl b/_Main/BL/Type_PeggingProduct_MP/StaticMethod_Create.qbl new file mode 100644 index 0000000..c64e4ba --- /dev/null +++ b/_Main/BL/Type_PeggingProduct_MP/StaticMethod_Create.qbl @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Create ( + GlobalOTDSOP globalOTDSOP, + Product_MPs product_MPs +) +{ + TextBody: + [* + globalOTDSOP.PeggingProduct_MP( relflush ); + + product_MPs := selectset( product_MPs, Elements, tempPMP, tempPMP.IsLeaf() ); + + traverse ( product_MPs, Elements, pmp ) { + targetPeggingProduct_MP := globalOTDSOP.PeggingProduct_MP( relnew, ProductID := pmp.ID() ); + traverse ( pmp, SalesDemand, sd ) { + targetPeggingProduct_MP.PeggingProductInSalesDemandBase( relnew, + StockingPointID := sd.StockingPointID(), + SalesDemandBaseID := sd.ID(), + Quantity := sd.Quantity(), + StartDate := sd.StartDate() ); + } + } + *] +} diff --git a/_Main/BL/Type_PeggingProduct_MP/_ROOT_Type_PeggingProduct_MP.qbl b/_Main/BL/Type_PeggingProduct_MP/_ROOT_Type_PeggingProduct_MP.qbl new file mode 100644 index 0000000..6b2219e --- /dev/null +++ b/_Main/BL/Type_PeggingProduct_MP/_ROOT_Type_PeggingProduct_MP.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type PeggingProduct_MP +{ + #keys: '5[414702.1.290710035][414702.1.290710033][0.0.0][414702.1.290710034][414702.1.290710036]' + BaseType: Object + StructuredName: 'PeggingProduct_MPs' +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_ActualFulfillmentQuantity.qbl b/_Main/BL/Type_PeggingResult/Attribute_ActualFulfillmentQuantity.qbl new file mode 100644 index 0000000..54dd8e4 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_ActualFulfillmentQuantity.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ActualFulfillmentQuantity +{ + #keys: '3[414702.1.314092328][414702.1.314092327][414702.1.314092329]' + Description: '瀹為檯浜や粯鐨勬暟閲�' + ValueType: Real +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl b/_Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl new file mode 100644 index 0000000..36ca7a2 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute FulfillmentQuantity +{ + #keys: '3[414702.1.294201083][414702.1.294201082][414702.1.294201084]' + Description: '璁㈠崟鎵�闇�瑕佺殑鏁伴噺' + ValueType: Real +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_NumberOfPlies.qbl b/_Main/BL/Type_PeggingResult/Attribute_NumberOfPlies.qbl new file mode 100644 index 0000000..610302a --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_NumberOfPlies.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute NumberOfPlies +{ + #keys: '3[414702.1.294145595][414702.1.294145594][414702.1.294145596]' + ValueType: Number +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_ProductID.qbl b/_Main/BL/Type_PeggingResult/Attribute_ProductID.qbl new file mode 100644 index 0000000..d0beff9 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[414702.1.294201096][414702.1.294201095][414702.1.294201097]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_StartDate.qbl b/_Main/BL/Type_PeggingResult/Attribute_StartDate.qbl new file mode 100644 index 0000000..62f0fec --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_StartDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StartDate +{ + #keys: '3[414702.1.294201063][414702.1.294201062][414702.1.294201064]' + ValueType: Date +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_StockingPointID.qbl b/_Main/BL/Type_PeggingResult/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..6a9dcad --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414702.1.294201106][414702.1.294201105][414702.1.294201107]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_SupplyQuantity.qbl b/_Main/BL/Type_PeggingResult/Attribute_SupplyQuantity.qbl new file mode 100644 index 0000000..053a461 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_SupplyQuantity.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SupplyQuantity +{ + #keys: '3[414702.1.294201073][414702.1.294201072][414702.1.294201074]' + ValueType: Real +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_SupplyType.qbl b/_Main/BL/Type_PeggingResult/Attribute_SupplyType.qbl new file mode 100644 index 0000000..fcfb218 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_SupplyType.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SupplyType +{ + #keys: '3[414702.1.294201053][414702.1.294201052][414702.1.294201054]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingResult/Attribute_UnitOfMeasurementName.qbl b/_Main/BL/Type_PeggingResult/Attribute_UnitOfMeasurementName.qbl new file mode 100644 index 0000000..1d741f1 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/Attribute_UnitOfMeasurementName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UnitOfMeasurementName +{ + #keys: '3[414702.1.294852022][414702.1.294852021][414702.1.294852023]' + ValueType: String +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl new file mode 100644 index 0000000..35370aa --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl @@ -0,0 +1,31 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Create ( + PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, + String productID, + String stockingPointID, + Date startDate, + Real supplyQuantity, + Real actualFulfillmentQuantity, + Real fulfillmentQuantity, + String supplyType, + Number numberOfPlies, + String unitOfMeasurementName +) as PeggingResult +{ + TextBody: + [* + peggingResult := peggingProductInSalesDemandBase.PeggingResult( relnew, + ProductID := productID, + StockingPointID := stockingPointID, + StartDate := startDate, + SupplyQuantity := supplyQuantity, + ActualFulfillmentQuantity := actualFulfillmentQuantity, + FulfillmentQuantity := fulfillmentQuantity, + SupplyType := supplyType, + NumberOfPlies := numberOfPlies, + UnitOfMeasurementName := unitOfMeasurementName + ); + return peggingResult; + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_CreateAllChildRelation.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_CreateAllChildRelation.qbl new file mode 100644 index 0000000..b435f3b --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_CreateAllChildRelation.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateAllChildRelation ( + PeggingProductInSalesDemandBase ppisdb +) +{ + TextBody: + [* + targetPeggingResults := selectset( ppisdb, PeggingResult, tempPR, tempPR.NumberOfPlies() = 0 ); + + traverse ( targetPeggingResults, Elements, pr ) { + parentPeggingResult := pr; + childPeggingResult := pr; + PeggingResult::SetAllChildRelation( ppisdb, parentPeggingResult, childPeggingResult ); + } + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_CreateAllGroupChildRelation.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_CreateAllGroupChildRelation.qbl new file mode 100644 index 0000000..3e19eca --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_CreateAllGroupChildRelation.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateAllGroupChildRelation ( + PeggingProductInSalesDemandBase ppisdb +) +{ +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl new file mode 100644 index 0000000..b121c0d --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateData ( + PeggingProductInSalesDemandBases peggingProductInSalesDemandBases, + const MacroPlan macroPlan +) +{ + TextBody: + [* + traverse ( peggingProductInSalesDemandBases, Elements, ppisdb ) { + ppisdb.PeggingResult( relflush ); + targetSalesDemand := select( macroPlan, SalesDemand, tempSD, tempSD.ID() = ppisdb.SalesDemandBaseID() ); + traverse ( targetSalesDemand, SalesDemandInPeriod.Fulfillment, f ) { + smp := f.Supply_MP(); + fulfillmentQuantity := f.Quantity(); + PeggingResult::GeneratePeggingResult( ppisdb, + 0, + smp, + fulfillmentQuantity, + fulfillmentQuantity, + null( PeggingResult ) ); + } + + PeggingResult::CreateAllChildRelation( ppisdb ); + PeggingResult::CreateAllGroupChildRelation( ppisdb ); + } + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl new file mode 100644 index 0000000..6d10ac1 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl @@ -0,0 +1,31 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GenerateInventorySupply ( + PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, + Number numberOfPlies, + const InventorySupply is, + Real actualFulfillmentQuantity, + Real fulfillmentQuantity, + PeggingResult parentPeggingResult +) +{ + TextBody: + [* + //info( "渚涘簲绫诲瀷锛圛nventorySupply锛� ", "渚涘簲鏃堕棿锛�", is.Date().Format( "Y-M2-D2" ), " 渚涘簲閲忥細", is.Quantity(), + // " 瀹為檯鐢ㄩ噺锛�", fulfillmentQuantity, " ", is.ProductInStockingPoint_MP().Name() ); + pisp := is.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(); + childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, + pisp.ProductID(), + pisp.StockingPointID(), + is.Date(), + is.Quantity(), + actualFulfillmentQuantity, + fulfillmentQuantity, + "搴撳瓨渚涘簲", + numberOfPlies, + pisp.UnitOfMeasureName() + ); + + PeggingResult::SetParentChildRelationship( parentPeggingResult, childPeggingResult ); + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl new file mode 100644 index 0000000..cc10732 --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl @@ -0,0 +1,66 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GenerateNewSupply ( + PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, + Number numberOfPlies, + const NewSupply ns, + Real actualFulfillmentQuantity, + Real fulfillmentQuantity, + PeggingResult parentPeggingResult +) +{ + TextBody: + [* + //info( "渚涘簲绫诲瀷锛圢ewSupply锛�", " 渚涘簲閲忥細", ns.Quantity(), " 婊¤冻锛�", fulfillmentQuantity ); + + pisp := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(); + + childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, + pisp.ProductID(), + pisp.StockingPointID(), + ns.Start().Date(), + ns.Quantity(), + actualFulfillmentQuantity, + fulfillmentQuantity, + "", + numberOfPlies, + pisp.UnitOfMeasureName() ); + PeggingResult::SetParentChildRelationship( parentPeggingResult, childPeggingResult ); + + ontype ( ns.PeriodTask_MP() ) { + PeriodTaskOperation as pto : { + childPeggingResult.SupplyType( "浜х嚎渚涘簲" ); + // info( "鎿嶄綔鍛ㄦ湡浠诲姟 ", "渚涘簲鏃堕棿锛�", ns.Start().Format( "Y-M2-D2" ), " 鍛ㄦ湡浠诲姟KEY锛�", pto.Key(), " ", + // ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() ); + traverse ( pto, DependentDemand, dd, dd.Quantity() > 0 ) { + traverse ( dd, Fulfillment, f ) { + actualFulfillmentQuantity := f.Quantity(); + smp1 := f.Supply_MP(); + numberOfPlies++; + fulfillmentQuantity := ( dd.Quantity() / ns.Quantity() ) * fulfillmentQuantity; + // info( "--------------------------------------------------------------" ); + PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult ); + numberOfPlies--; + } + } + } + + PeriodTaskLaneLeg as ptll : { + childPeggingResult.SupplyType( "杞﹂亾渚涘簲" ); + targetDependentDemand := select( ptll, DependentDemand, dd, + dd.ProcessInput().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() and + dd.Quantity() = ns.Quantity() ); + // info( "杞﹂亾鍛ㄦ湡浠诲姟 ", "渚涘簲鏃堕棿锛�", ns.Start().Format( "Y-M2-D2" ), " 鍛ㄦ湡浠诲姟KEY锛�", ptll.Key(), " ", + // ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() ); + traverse ( targetDependentDemand, Fulfillment, f ) { + actualFulfillmentQuantity := f.Quantity(); + smp1 := f.Supply_MP(); + numberOfPlies++; + // info( "--------------------------------------------------------------" ); + PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult ); + numberOfPlies--; + } + } + } + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl new file mode 100644 index 0000000..3e6f64e --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GeneratePeggingResult ( + PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, + Number numberOfPlies, + const Supply_MP smp, + Real actualFulfillmentQuantity, + Real fulfillmentQuantity, + PeggingResult parentPeggingResult +) +{ + TextBody: + [* + //info( "灞傛暟锛�", numberOfPlies ); + ontype ( smp ) { + NewSupply as ns : { + PeggingResult::GenerateNewSupply( peggingProductInSalesDemandBase, numberOfPlies, ns, actualFulfillmentQuantity, fulfillmentQuantity, parentPeggingResult ); + } + + InventorySupply as is : { + PeggingResult::GenerateInventorySupply( peggingProductInSalesDemandBase, numberOfPlies, is, actualFulfillmentQuantity, fulfillmentQuantity, parentPeggingResult ); + } + } + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl new file mode 100644 index 0000000..caee0aa --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SetAllChildRelation ( + PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, + PeggingResult parentPeggingResult, + PeggingResult childPeggingResult +) +{ + TextBody: + [* + if ( childPeggingResult.Child( relsize ) = 0 ) { + childPeggingResult.AllParent( relset, parentPeggingResult ); + } + + traverse ( childPeggingResult, Child, pr ) { + pr.AllParent( relset, parentPeggingResult ); + PeggingResult::SetAllChildRelation( peggingProductInSalesDemandBase, parentPeggingResult, pr ); + } + *] +} diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_SetParentChildRelationship.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_SetParentChildRelationship.qbl new file mode 100644 index 0000000..144505c --- /dev/null +++ b/_Main/BL/Type_PeggingResult/StaticMethod_SetParentChildRelationship.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod SetParentChildRelationship ( + PeggingResult parentPeggingResult, + PeggingResult childPeggingResult +) +{ + TextBody: + [* + if ( not isnull( parentPeggingResult ) and not isnull( childPeggingResult ) ) { + childPeggingResult.Parent( relset, parentPeggingResult ); + } + *] +} diff --git a/_Main/BL/Type_PeggingResult/_ROOT_Type_PeggingResult.qbl b/_Main/BL/Type_PeggingResult/_ROOT_Type_PeggingResult.qbl new file mode 100644 index 0000000..cd1bb3b --- /dev/null +++ b/_Main/BL/Type_PeggingResult/_ROOT_Type_PeggingResult.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type PeggingResult +{ + #keys: '5[414702.1.290710095][414702.1.290710093][0.0.0][414702.1.290710094][414702.1.290710096]' + BaseType: Object + StructuredName: 'PeggingResults' +} diff --git a/_Main/BL/Type_PeggingResultGroup/_ROOT_Type_PeggingResultGroup.qbl b/_Main/BL/Type_PeggingResultGroup/_ROOT_Type_PeggingResultGroup.qbl new file mode 100644 index 0000000..d7fa0eb --- /dev/null +++ b/_Main/BL/Type_PeggingResultGroup/_ROOT_Type_PeggingResultGroup.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type PeggingResultGroup +{ + #keys: '5[414702.1.320753704][414702.1.320753702][0.0.0][414702.1.320753703][414702.1.320753705]' + BaseType: Object + StructuredName: 'PeggingResultGroups' +} diff --git a/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl index 0359b3f..8fd36c2 100644 --- a/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl @@ -15,15 +15,15 @@ // Get product&line product := Product_MP::FindById( owner, productid ); - line := Lane::FindLaneTypeIndex( lineid ); + line := Lane::FindById( owner, lineid ); if( not isnull( product) and not isnull( line)){ - productinline := ProductInLane::FindProductInLaneTypeIndex( lineid, productid ); + productinline := ProductInLane::FindById( owner, productid, lineid ); if( isnull( productinline ) ){ ProductInLane::Create( product, line, isexcluded, isfromdb ); }else{ - productinline.Update( productid, lineid, isexcluded, isfromdb ); + productinline.Update( lineid, productid, isexcluded, isfromdb ); } } *] diff --git a/_Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl b/_Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl new file mode 100644 index 0000000..e0065ed --- /dev/null +++ b/_Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod FindById ( + MacroPlan mp, + String id, + String laneid +) as ProductInLane +{ + TextBody: + [* + // yy 2023-11-01 + result := select( mp, Product_MP.ProductInLane, pil, true, pil.ProductID() = id and pil.LaneID() = laneid ); + + return result; + *] +} diff --git a/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..f56738d --- /dev/null +++ b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateFromMapping ( + const GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + Description: '浠巑apping琛ㄥ垱寤哄簱瀛樼偣' + TextBody: + [* + // Administrator Oct-31-2023 (created) + updates := construct( StockingPoint_MPs ); + traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true ) + { + a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() ); + updates.Add( a ); + } + origindataset := selectset( macroPlan, StockingPoint_MP, sp, true ); + obsoletes := origindataset.Difference( updates ); + // delete obsoleted + difflength := obsoletes.Size(); + for( j:=0; j<difflength; j++ ) + { + obsolete := obsoletes.Element( j ); + obsolete.Delete(); + } + *] +} diff --git a/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl index 857199b..3e2a601 100644 --- a/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl +++ b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl @@ -22,7 +22,7 @@ isfromdb := true; //create new stockingpoint - result := StockingPoint_MP::FindStockingPointTypeIndex( id ); + result := StockingPoint_MP::FindById( mp, id ); if( isnull( result ) ) { diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def index 2cd8ea3..07ca890 100644 --- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def +++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def @@ -145,6 +145,8 @@ Component ComponentMenu666 { #keys: '[414702.0.265704260]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormBrokerExecuteLog' Text: '' ] } Component menuSeparator822 { #keys: '[414702.0.340555024]' BaseType: 'Menu' Properties: [ Separator: true ] } Component ComponentMenu783 { #keys: '[414702.0.340555035]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormTestButtonCollection' Text: '' ] } + Component menuSeparator432 { #keys: '[414702.1.299084028]' BaseType: 'Menu' Properties: [ Separator: true ] } + Component ComponentMenu420 { #keys: '[414702.1.299224194]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormPeggingResult' Text: '' ] } ] Properties: [ @@ -165,6 +167,8 @@ c: ComponentMenu666 c: menuSeparator822 c: ComponentMenu783 + c: menuSeparator432 + c: ComponentMenu420 } ] } diff --git a/_Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ColumnTitles552.def b/_Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ColumnTitles552.def new file mode 100644 index 0000000..b2a7bab --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ColumnTitles552.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +Component ColumnTitles552 +{ + #keys: '[414702.1.299084155]' + BaseType: 'ColumnTitles' + Children: + [ + Component popupColumnTitles881 + { + #keys: '[414702.1.299084158]' + BaseType: 'popupColumnTitles' + } + ] + Properties: + [ + ContextMenu: 'popupColumnTitles881' + ] +} diff --git a/_Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ListPeggingProductInSalesDemandBase.def b/_Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ListPeggingProductInSalesDemandBase.def new file mode 100644 index 0000000..7e94c7c --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_FormPeggingResult/Component_ListPeggingProductInSalesDemandBase.def @@ -0,0 +1,117 @@ +Quintiq file version 2.0 +Component ListPeggingProductInSalesDemandBase +{ + #keys: '[414702.1.299084152]' + BaseType: 'List' + Children: + [ + #child: ColumnTitles552 + Component popupList809 + { + #keys: '[414702.1.299084184]' + BaseType: 'popupList' + Children: + [ + Component PopupParent + { + #keys: '[514.0.129466]' + BaseType: 'PopupParent' + IsDerived: true + Children: + [ + Component menuSeparator { #keys: '[414702.1.299084264]' BaseType: 'Menu' Properties: [ Separator: true ] } + Component MenuGeneratePeggingResult { #keys: '[414702.1.299084327]' BaseType: 'Menu' Properties: [ Image: 'BEER_GLASS' Text: 'GeneratePeggingResult' ] } + ] + Properties: + [ + ModeledStringList ChildOrdering + { + c: MenuActions + c: MenuFilter + c: menuListQuintiqSetQuantor + c: menuSeparator + c: MenuGeneratePeggingResult + } + ] + } + ] + Properties: + [ + PosX: 35 + PosY: 60 + ] + } + Component GUIDataExtractor968 + { + #keys: '[414702.1.299084216]' + BaseType: 'GUIDataExtractor' + Properties: + [ + DataSet: 'GlobalOTDSOP' + DataType: 'GlobalOTDSOP' + PosX: 5 + PosY: 30 + Transformation: 'PeggingProduct_MP.PeggingProductInSalesDemandBase' + ] + } + Component GUIDataSetLevel641 + { + #keys: '[414702.1.299084219]' + BaseType: 'GUIDataSetLevel' + Properties: + [ + DataExtractor: 'GUIDataExtractor968' + PosX: 35 + PosY: 30 + ] + } + ] + Properties: + [ + AutoDrag: true + BackgroundColor: 'Window' + Border: true + ContextMenu: 'popupList809' + FullRowSelect: true + ModeledStringList ChildOrdering + { + c: ColumnTitles552 + c: popupList809 + c: GUIDataExtractor968 + c: GUIDataSetLevel641 + } + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProductInSalesDemandBase_Menu_OnClick + { + #keys: '[414702.1.299084225]' + Initiator: 'Menu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[621.0.8331282]' + Binding: 'this.Selection()' + } + ] + } + DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProductInSalesDemandBase_GUIButtonBase_OnClick + { + #keys: '[414702.1.299084226]' + Initiator: 'GUIButtonBase' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[621.0.8331327]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlanner/Component_FormPeggingResult/Response_ListPeggingProductInSalesDemandBase_MenuGeneratePeggingResult_OnCli.def b/_Main/UI/MacroPlanner/Component_FormPeggingResult/Response_ListPeggingProductInSalesDemandBase_MenuGeneratePeggingResult_OnCli.def new file mode 100644 index 0000000..16ee6ba --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_FormPeggingResult/Response_ListPeggingProductInSalesDemandBase_MenuGeneratePeggingResult_OnCli.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: ListPeggingProductInSalesDemandBase +Response OnClick ( + structured[PeggingProductInSalesDemandBase] selection +) id:Response_ListPeggingProductInSalesDemandBase_MenuGeneratePeggingResult_OnClick +{ + #keys: '[414702.1.299224579]' + Body: + [* + PeggingResult::CreateData( selection, MacroPlan ); + *] + CanBindMultiple: false + DefinitionID => /ListPeggingProductInSalesDemandBase/Responsedef_ListPeggingProductInSalesDemandBase_Menu_OnClick + Initiator: 'MenuGeneratePeggingResult' +} diff --git a/_Main/UI/MacroPlanner/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def b/_Main/UI/MacroPlanner/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def new file mode 100644 index 0000000..bebc147 --- /dev/null +++ b/_Main/UI/MacroPlanner/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def @@ -0,0 +1,41 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlanner +OrphanComponent FormPeggingResult +{ + #keys: '[414702.1.299084054]' + BaseType: 'Form' + GBLayout + { + Type: 'internal[GBLayoutDefinition]' + Columns: + [ + GBFlow.Column { grow: 128 id: 199 parent: 0 } + ] + Elements: + [ + GBElement + { + Component => ListPeggingProductInSalesDemandBase + Position { startcolumn: 199 startrow: 785 endcolumn: 199 endrow: 785 } + } + ] + Gaps: [ left: 0 right: 0 top: 0 bottom: 0 inner: 5 ] + Rows: + [ + GBFlow.Row { grow: 128 id: 785 parent: 0 } + ] + } + Children: + [ + #child: ListPeggingProductInSalesDemandBase + ] + Properties: + [ + Height: 270 + Image: 'FISH_BOWL' + IncludeInView: true + Title: 'PeggingResult' + Width: 494 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def index 3103966..6d1c1b0 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def @@ -49,7 +49,7 @@ Title: '闈㈡澘鎷夋枡_闆嗗洟鎿嶄綔' ] } - Component mn224 + Component mn222 { #keys: '[414702.1.5593849]' BaseType: 'WebMenu' @@ -81,6 +81,28 @@ Title: '鏁版嵁鍒嗗彂' ] } + Component mn666 + { + #keys: '[414702.1.293023106]' + BaseType: 'WebMenu' + Properties: + [ + Separator: true + Taborder: 7 + ] + } + Component mnPeggingAnalyse + { + #keys: '[414702.1.293023171]' + BaseType: 'WebMenu' + Properties: + [ + Description: 'Pegging鍒嗘瀽' + Image: 'COCKTAIL' + Taborder: 8 + Title: 'Pegging鍒嗘瀽' + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPeggingAnalyse_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPeggingAnalyse_OnClick.def new file mode 100644 index 0000000..eecfc42 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPeggingAnalyse_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: cmTestAttempt/mnPeggingAnalyse +Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnPeggingAnalyse_OnClick +{ + #keys: '[414702.1.294401302]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebMenu_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + ApplicationScope.ViewManager().ResetUserViewById( "Pegging鍒嗘瀽", true ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def index 4428575..fd5f58b 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def @@ -5,11 +5,15 @@ #keys: '[414702.0.391791234]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( GlobalOTDSOP ); + *] QuillAction { Body: [* - Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() ); + Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDSOP ).AsBinaryData() ); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def index 087a1e2..97b6783 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def @@ -23,6 +23,16 @@ Taborder: 0 ] } + Component DataHolderInterfaceTest + { + #keys: '[414502.0.443241895]' + BaseType: 'WebDataHolder' + Databinding: 'Scenario' + Properties: + [ + Taborder: 7 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def new file mode 100644 index 0000000..f6acc5b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def @@ -0,0 +1,60 @@ +Quintiq file version 2.0 +Component ListPeggingAllResult +{ + #keys: '[414702.1.306657922]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorPeggingAllResult + { + #keys: '[414702.1.306657923]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'PeggingResult' + ExtractionMode: 'Selected' + Source: 'FormPeggingResult.ListPeggingResult' + Taborder: 0 + Transformation: 'AllChild' + ] + } + #child: listActionBarPagePeggingAllResult + Component DataSetLevelPeggingAllResult + { + #keys: '[414702.1.306657928]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuPeggingAllResult + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PeggingProductInSalesDemandBase.SalesDemandBaseID","title":"璁㈠崟ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PeggingProductInSalesDemandBase.SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐笽D","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"寮�濮嬫椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyQuantity","title":"渚涘簲鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfillmentQuantity","title":"瀹為檯闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyType","title":"渚涘簲绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasurementName","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasurementName"}}]' + ContextMenu: 'listContextMenuPeggingAllResult' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 0 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingAllResult_WebMenu_OnClick + { + #keys: '[414702.1.305581888]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[639.0.20605876]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listActionBarPagePeggingAllResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listActionBarPagePeggingAllResult.def new file mode 100644 index 0000000..73bb8e7 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listActionBarPagePeggingAllResult.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPagePeggingAllResult +{ + #keys: '[414702.1.306657925]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listContextMenuPeggingAllResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listContextMenuPeggingAllResult.def new file mode 100644 index 0000000..261fbc7 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_listContextMenuPeggingAllResult.def @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +Component listContextMenuPeggingAllResult +{ + #keys: '[414702.1.306657930]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuSelectAll + { + #keys: '[414702.1.305511008]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'DOCUMENT_SELECTION' + Shortcut: 'Ctrl+A' + Taborder: 3 + Title: '鍏ㄩ��' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Response_ListPeggingAllResult_MenuSelectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Response_ListPeggingAllResult_MenuSelectAll_OnClick.def new file mode 100644 index 0000000..9f80468 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Response_ListPeggingAllResult_MenuSelectAll_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ListPeggingAllResult +Response OnClick () id:Response_ListPeggingAllResult_MenuSelectAll_OnClick +{ + #keys: '[414702.1.306792785]' + CanBindMultiple: false + DefinitionID => /ListPeggingAllResult/Responsedef_ListPeggingAllResult_WebMenu_OnClick + Initiator: 'MenuSelectAll' + QuillAction + { + Body: + [* + this.SelectAll(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/_ROOT_Component_FormPeggingAllResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/_ROOT_Component_FormPeggingAllResult.def new file mode 100644 index 0000000..7fd5a9c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/_ROOT_Component_FormPeggingAllResult.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormPeggingAllResult +{ + #keys: '[414702.1.305404879]' + BaseType: 'WebForm' + Children: + [ + #child: ListPeggingAllResult + ] + Properties: + [ + Image: 'DIAMOND' + Title: 'Pegging鎵�鏈夊瓙缁撴灉' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_ListPeggingProductInSalesDemandBase.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_ListPeggingProductInSalesDemandBase.def new file mode 100644 index 0000000..31d1862 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_ListPeggingProductInSalesDemandBase.def @@ -0,0 +1,60 @@ +Quintiq file version 2.0 +Component ListPeggingProductInSalesDemandBase +{ + #keys: '[414702.1.294477745]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorPeggingProductInSalesDemandBase + { + #keys: '[414702.1.294477746]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'PeggingProduct_MP' + ExtractionMode: 'Selected' + Source: 'FormPeggingProduct_MP.ListPeggingProduct_MP' + Taborder: 0 + Transformation: 'PeggingProductInSalesDemandBase' + ] + } + #child: listActionBarPagePeggingProductInSalesDemandBase + Component DataSetLevelPeggingProductInSalesDemandBase + { + #keys: '[414702.1.294477751]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuPeggingProductInSalesDemandBase + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesDemandBaseID","title":"璁㈠崟ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐笽D","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"寮�濮嬫椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}}]' + ContextMenu: 'listContextMenuPeggingProductInSalesDemandBase' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 0 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProductInSalesDemandBase_WebMenu_OnClick + { + #keys: '[414702.1.298881590]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[619.0.10848847]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listActionBarPagePeggingProductInSalesDemandBase.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listActionBarPagePeggingProductInSalesDemandBase.def new file mode 100644 index 0000000..0a23391 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listActionBarPagePeggingProductInSalesDemandBase.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPagePeggingProductInSalesDemandBase +{ + #keys: '[414702.1.294477748]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listContextMenuPeggingProductInSalesDemandBase.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listContextMenuPeggingProductInSalesDemandBase.def new file mode 100644 index 0000000..07fe2f0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Component_listContextMenuPeggingProductInSalesDemandBase.def @@ -0,0 +1,36 @@ +Quintiq file version 2.0 +Component listContextMenuPeggingProductInSalesDemandBase +{ + #keys: '[414702.1.294477753]' + BaseType: 'listContextMenu' + Children: + [ + Component mGeneratePeggingResult + { + #keys: '[414702.1.298700850]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'PUMPKIN_HALLOWEEN' + Taborder: 3 + Title: '鐢熸垚Pegging缁撴灉' + ] + } + Component MenuSelectionAll + { + #keys: '[414702.1.300701803]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'SELECTION' + Shortcut: 'Ctrl+A' + Taborder: 4 + Title: '鍏ㄩ��' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_MenuSelectionAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_MenuSelectionAll_OnClick.def new file mode 100644 index 0000000..5f3082e --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_MenuSelectionAll_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ListPeggingProductInSalesDemandBase +Response OnClick () id:Response_ListPeggingProductInSalesDemandBase_MenuSelectionAll_OnClick +{ + #keys: '[414702.1.300762760]' + CanBindMultiple: false + DefinitionID => /ListPeggingProductInSalesDemandBase/Responsedef_ListPeggingProductInSalesDemandBase_WebMenu_OnClick + Initiator: 'MenuSelectionAll' + QuillAction + { + Body: + [* + this.SelectAll(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_mGeneratePeggingResult_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_mGeneratePeggingResult_OnClick.def new file mode 100644 index 0000000..09b333a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/Response_ListPeggingProductInSalesDemandBase_mGeneratePeggingResult_OnClick.def @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: ListPeggingProductInSalesDemandBase +Response OnClick ( + structured[PeggingProductInSalesDemandBase] selection +) id:Response_ListPeggingProductInSalesDemandBase_mGeneratePeggingResult_OnClick +{ + #keys: '[414702.1.298700997]' + CanBindMultiple: false + DefinitionID => /ListPeggingProductInSalesDemandBase/Responsedef_ListPeggingProductInSalesDemandBase_WebMenu_OnClick + Initiator: 'mGeneratePeggingResult' + Precondition: + [* + return not isnull( MacroPlan ); + *] + QuillAction + { + Body: + [* + PeggingResult::CreateData( selection, MacroPlan ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/_ROOT_Component_FormPeggingProductInSalesDemandBase.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/_ROOT_Component_FormPeggingProductInSalesDemandBase.def new file mode 100644 index 0000000..abac889 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProductInSalesDemandBase/_ROOT_Component_FormPeggingProductInSalesDemandBase.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormPeggingProductInSalesDemandBase +{ + #keys: '[414702.1.291680100]' + BaseType: 'WebForm' + Children: + [ + #child: ListPeggingProductInSalesDemandBase + ] + Properties: + [ + Image: 'BANANA' + Title: 'Pegging浜у搧鐨勮鍗�' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def new file mode 100644 index 0000000..6cd63a5 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def @@ -0,0 +1,59 @@ +Quintiq file version 2.0 +Component ListPeggingProduct_MP +{ + #keys: '[414702.1.291408736]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorPeggingProduct_MP + { + #keys: '[414702.1.291408737]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'GlobalOTDSOP' + Source: 'GlobalOTDSOP' + Taborder: 0 + Transformation: 'PeggingProduct_MP' + ] + } + #child: listActionBarPagePeggingProduct_MP + Component DataSetLevelPeggingProduct_MP + { + #keys: '[414702.1.291408742]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuPeggingProduct_MP + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐笽D","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}}]' + ContextMenu: 'listContextMenuPeggingProduct_MP' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 1 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProduct_MP_WebMenu_OnClick + { + #keys: '[414702.1.309521164]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[645.0.18569723]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listActionBarPagePeggingProduct_MP.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listActionBarPagePeggingProduct_MP.def new file mode 100644 index 0000000..66424ec --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listActionBarPagePeggingProduct_MP.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPagePeggingProduct_MP +{ + #keys: '[414702.1.291408739]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def new file mode 100644 index 0000000..2a8c05a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +Component listContextMenuPeggingProduct_MP +{ + #keys: '[414702.1.291408744]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuSelectionAll + { + #keys: '[414702.1.308101396]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'SELECTION' + Shortcut: 'Ctrl+A' + Taborder: 3 + Title: '鍏ㄩ��' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_pButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_pButton.def new file mode 100644 index 0000000..ff6359c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_pButton.def @@ -0,0 +1,37 @@ +Quintiq file version 2.0 +Component pButton +{ + #keys: '[414702.1.288412503]' + BaseType: 'WebPanel' + Children: + [ + Component bCreate + { + #keys: '[414702.1.288443069]' + BaseType: 'WebButton' + Properties: + [ + Image: 'BOMB' + Label: '鍒涘缓Pegging浜у搧' + Taborder: 1 + ] + } + Component bRunPeggingAlgorithm + { + #keys: '[414702.1.302382530]' + BaseType: 'WebButton' + Properties: + [ + Image: 'TREE' + Label: '杩愯Pegging绠楁硶' + Taborder: 0 + ] + } + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick.def new file mode 100644 index 0000000..e9aae6b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ListPeggingProduct_MP +Response OnClick () id:Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick +{ + #keys: '[414702.1.309596514]' + CanBindMultiple: false + DefinitionID => /ListPeggingProduct_MP/Responsedef_ListPeggingProduct_MP_WebMenu_OnClick + Initiator: 'MenuSelectionAll' + QuillAction + { + Body: + [* + this.SelectAll(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bCreate_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bCreate_OnClick.def new file mode 100644 index 0000000..84c4002 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bCreate_OnClick.def @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: pButton/bCreate +Response OnClick () id:Response_pButton_bCreate_OnClick +{ + #keys: '[414702.1.288443717]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( GlobalOTDSOP ) and not isnull( MacroPlan ); + *] + QuillAction + { + Body: + [* + form := construct( FormNavigationPanel ); + form.ShowDockLeft(); + + PeggingProduct_MP::Create( GlobalOTDSOP, DataHolderCheckedProduct.Data() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bRunPeggingAlgorithm_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bRunPeggingAlgorithm_OnClick.def new file mode 100644 index 0000000..6218f0f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_pButton_bRunPeggingAlgorithm_OnClick.def @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: pButton/bRunPeggingAlgorithm +Response OnClick () id:Response_pButton_bRunPeggingAlgorithm_OnClick +{ + #keys: '[414702.1.304801095]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( MacroPlan ); + *] + QuillAction + { + Body: + [* + MacroPlan.RunPeggingAlgorithm(); + + WebMessageBox::Success( "杩愯鎴愬姛锛�", true ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/_ROOT_Component_FormPeggingProduct_MP.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/_ROOT_Component_FormPeggingProduct_MP.def new file mode 100644 index 0000000..0cbaf23 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/_ROOT_Component_FormPeggingProduct_MP.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormPeggingProduct_MP +{ + #keys: '[414702.1.290901529]' + BaseType: 'WebForm' + Children: + [ + #child: ListPeggingProduct_MP + #child: pButton + ] + Properties: + [ + Image: 'ORANGE' + Title: 'Pegging浜у搧鍒嗘瀽' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def new file mode 100644 index 0000000..ea8def8 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def @@ -0,0 +1,63 @@ +Quintiq file version 2.0 +Component ListPeggingResult +{ + #keys: '[414702.1.296178342]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorPeggingResult + { + #keys: '[414702.1.296178343]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'PeggingProductInSalesDemandBase' + ExtractionMode: 'Selected' + FixedFilter: 'object.NumberOfPlies() = 0' + Source: 'FormPeggingProductInSalesDemandBase.ListPeggingProductInSalesDemandBase' + Taborder: 0 + Transformation: 'PeggingResult' + ] + } + #child: listActionBarPagePeggingResult + Component DataSetLevelPeggingResult + { + #keys: '[414702.1.296178348]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuPeggingResult + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PeggingProductInSalesDemandBase.SalesDemandBaseID","title":"璁㈠崟ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PeggingProductInSalesDemandBase.SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐笽D","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"寮�濮嬫椂闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyQuantity","title":"渚涘簲鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ActualFulfillmentQuantity","title":"瀹為檯闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ActualFulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfillmentQuantity","title":"璁㈠崟闇�瑕佹暟閲�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyType","title":"渚涘簲绫诲瀷","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasurementName","title":"鍗曚綅","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasurementName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPlies","title":"灞傛暟","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPlies"}}]' + ContextMenu: 'listContextMenuPeggingResult' + RelationFromParent: 'Child' + RelationRepeating: 'Child' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 0 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingResult_WebMenu_OnClick + { + #keys: '[414702.1.302148620]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[627.0.29218476]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listActionBarPagePeggingResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listActionBarPagePeggingResult.def new file mode 100644 index 0000000..0cf5674 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listActionBarPagePeggingResult.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPagePeggingResult +{ + #keys: '[414702.1.296178345]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listContextMenuPeggingResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listContextMenuPeggingResult.def new file mode 100644 index 0000000..8534bcc --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_listContextMenuPeggingResult.def @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +Component listContextMenuPeggingResult +{ + #keys: '[414702.1.296178350]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuSelectionAll + { + #keys: '[414702.1.302117859]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'SELECTION' + Shortcut: 'Ctrl+A' + Taborder: 3 + Title: '鍏ㄩ��' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Response_ListPeggingResult_MenuSelectionAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Response_ListPeggingResult_MenuSelectionAll_OnClick.def new file mode 100644 index 0000000..5498502 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Response_ListPeggingResult_MenuSelectionAll_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ListPeggingResult +Response OnClick () id:Response_ListPeggingResult_MenuSelectionAll_OnClick +{ + #keys: '[414702.1.302148638]' + CanBindMultiple: false + DefinitionID => /ListPeggingResult/Responsedef_ListPeggingResult_WebMenu_OnClick + Initiator: 'MenuSelectionAll' + QuillAction + { + Body: + [* + this.SelectAll(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def new file mode 100644 index 0000000..9268901 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/_ROOT_Component_FormPeggingResult.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormPeggingResult +{ + #keys: '[414702.1.295031324]' + BaseType: 'WebForm' + Children: + [ + #child: ListPeggingResult + ] + Properties: + [ + Image: 'CUP' + Title: 'Pegging缁撴灉' + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw" "b/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw" new file mode 100644 index 0000000..cf84f9c --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Views/Pegging\345\210\206\346\236\220.vw" @@ -0,0 +1,332 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_FormPeggingProduct_MP + { + title: 'QTIANMA_JITUAN::FormPeggingProduct_MP' + shown: true + componentID: 'QTIANMA_JITUAN::FormPeggingProduct_MP' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 7 + columnPosition: 1 + columnSpan: 3 + } + components + { + FormPeggingProduct_MP_pButton + { + sizeRatio: 1 + } + FormPeggingProduct_MP_ListPeggingProduct_MP + { + } + FormPeggingProduct_MP_DataSetLevelPeggingProduct_MP + { + groupDepth: -1 + column_ProductID + { + columnId: 'ProductID' + dataPath: 'ProductID' + dataType: 'string' + index: 0 + subtotals: '' + width: 150 + } + } + } + } + form_FormPeggingProductInSalesDemandBase_1 + { + title: 'QTIANMA_JITUAN::FormPeggingProductInSalesDemandBase' + shown: true + componentID: 'QTIANMA_JITUAN::FormPeggingProductInSalesDemandBase' + layout + { + mode: 'open' + rowPosition: 8 + rowSpan: 6 + columnPosition: 1 + columnSpan: 3 + } + components + { + FormPeggingProductInSalesDemandBase_ListPeggingProductInSalesDemandBase + { + } + FormPeggingProductInSalesDemandBase_DataSetLevelPeggingProductInSalesDemandBase + { + groupDepth: -1 + sort: 'StartDate' + column_SalesDemandBaseID + { + columnId: 'SalesDemandBaseID' + dataPath: 'SalesDemandBaseID' + dataType: 'string' + index: 0 + subtotals: 'count' + width: 61 + } + column_StockingPointID + { + columnId: 'StockingPointID' + dataPath: 'StockingPointID' + dataType: 'string' + index: 1 + subtotals: '' + width: 95 + } + column_Quantity + { + columnId: 'Quantity' + dataPath: 'Quantity' + dataType: 'real' + index: 2 + subtotals: '' + width: 51 + } + column_StartDate + { + columnId: 'StartDate' + dataPath: 'StartDate' + dataType: 'date' + index: 3 + subtotals: '' + width: 76 + } + } + } + } + form_FormPeggingResult + { + title: 'QTIANMA_JITUAN::FormPeggingResult' + shown: true + componentID: 'QTIANMA_JITUAN::FormPeggingResult' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 13 + columnPosition: 4 + columnSpan: 9 + } + components + { + FormPeggingResult_ListPeggingResult + { + } + FormPeggingResult_DataSetLevelPeggingResult + { + groupDepth: -1 + sort: 'ProductID' + column_PeggingProductInSalesDemandBase_SalesDemandBaseID + { + columnId: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' + dataPath: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' + dataType: 'string' + index: 0 + subtotals: 'count' + width: 122 + } + column_ProductID + { + columnId: 'ProductID' + dataPath: 'ProductID' + dataType: 'string' + index: 1 + subtotals: '' + width: 164 + } + column_StockingPointID + { + columnId: 'StockingPointID' + dataPath: 'StockingPointID' + dataType: 'string' + index: 2 + subtotals: '' + width: 92 + } + column_StartDate + { + columnId: 'StartDate' + dataPath: 'StartDate' + dataType: 'date' + index: 3 + subtotals: '' + width: 82 + } + column_SupplyQuantity + { + columnId: 'SupplyQuantity' + dataPath: 'SupplyQuantity' + dataType: 'real' + index: 4 + subtotals: '' + width: 86 + } + column_ActualFulfillmentQuantity + { + columnId: 'ActualFulfillmentQuantity' + dataPath: 'ActualFulfillmentQuantity' + dataType: 'real' + index: 5 + subtotals: '' + width: 97 + } + column_FulfillmentQuantity + { + columnId: 'FulfillmentQuantity' + dataPath: 'FulfillmentQuantity' + dataType: 'real' + index: 6 + subtotals: '' + width: 108 + } + column_SupplyType + { + columnId: 'SupplyType' + dataPath: 'SupplyType' + dataType: 'string' + index: 7 + subtotals: '' + width: 78 + } + column_UnitOfMeasurementName + { + columnId: 'UnitOfMeasurementName' + dataPath: 'UnitOfMeasurementName' + dataType: 'string' + index: 8 + subtotals: '' + width: 50 + } + column_NumberOfPlies + { + columnId: 'NumberOfPlies' + dataPath: 'NumberOfPlies' + dataType: 'number' + index: 9 + subtotals: '' + width: 56 + } + } + } + } + form_FormPeggingAllResult + { + title: 'QTIANMA_JITUAN::FormPeggingAllResult' + shown: true + componentID: 'QTIANMA_JITUAN::FormPeggingAllResult' + layout + { + mode: 'open' + rowPosition: 14 + rowSpan: 12 + columnPosition: 1 + columnSpan: 12 + } + components + { + FormPeggingAllResult_ListPeggingAllResult + { + } + FormPeggingAllResult_DataSetLevelPeggingAllResult + { + groupDepth: 2 + sort: 'ProductID,StockingPointID,StartDate,DESC:PeggingProductInSalesDemandBase.SalesDemandBaseID' + column_PeggingProductInSalesDemandBase_SalesDemandBaseID + { + columnId: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' + dataPath: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' + dataType: 'string' + index: 0 + subtotals: 'count' + width: 150 + } + column_ProductID + { + columnId: 'ProductID' + dataPath: 'ProductID' + dataType: 'string' + index: 1 + subtotals: '' + width: 150 + } + column_StockingPointID + { + columnId: 'StockingPointID' + dataPath: 'StockingPointID' + dataType: 'string' + index: 2 + subtotals: '' + width: 150 + } + column_StartDate + { + columnId: 'StartDate' + dataPath: 'StartDate' + dataType: 'date' + index: 3 + subtotals: '' + width: 150 + } + column_SupplyQuantity + { + columnId: 'SupplyQuantity' + dataPath: 'SupplyQuantity' + dataType: 'real' + index: 4 + subtotals: '' + width: 150 + } + column_FulfillmentQuantity + { + columnId: 'FulfillmentQuantity' + dataPath: 'FulfillmentQuantity' + dataType: 'real' + index: 5 + subtotals: 'sum' + width: 150 + } + column_SupplyType + { + columnId: 'SupplyType' + dataPath: 'SupplyType' + dataType: 'string' + index: 6 + subtotals: '' + width: 150 + } + column_UnitOfMeasurementName + { + columnId: 'UnitOfMeasurementName' + dataPath: 'UnitOfMeasurementName' + dataType: 'string' + index: 7 + subtotals: '' + width: 150 + } + } + } + } + } + userconfigurableinformation + { + } + page: '' + group: '' + index: 0 + image: 'VIEW' + description: '' + } + formatversion: 2 + id: 'Pegging鍒嗘瀽' + name: '鍒嗘瀽Pegging' + isglobal: false + isroot: true +} diff --git "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" index 3c61315..31640c2 100644 --- "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" +++ "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" @@ -14,9 +14,9 @@ ICONIMAGE 'WINDOWS' CREATIONDATETIME '2023-10-12T10:00:44' CREATIONUSER 'quintiq/hongjli' - UPDATEDATETIME '2023-10-12T23:32:10' + UPDATEDATETIME '2023-11-01T11:42:14' UPDATEUSER 'quintiq/hongjli' - LASTACCESSDATE '2023-10-13' + LASTACCESSDATE '2023-11-01' VIEWSCOPE 0 } AUTHORIZATIONS @@ -42,33 +42,35 @@ INFOOBJECT { KEY [626.0.4514905] - OBJECTTYPE Application + OBJECTTYPE Application // ApplicationLibMacroPlanner BASEINFOOBJECTS { BASEINFOOBJECT { KEY [626.0.4514905] - OBJECTTYPE GUIComponent + OBJECTTYPE GUIComponent // ApplicationLibMacroPlanner CONTENTS { SETTINGS_MDS_WITH_FOLDER { - [414702.1.62804981]:LibInt_IntegratorProxy:/root:LibInt_IntegratorProxy - [414702.1.62833373]:SWF_CommunicationDataset:/root:SWF_CommunicationDataset - [414702.1.62828776]:SWF_WorkflowDataset:/root:SWF_WorkflowDataset - [414702.1.62800409]:LibDEF_DataBroker:/root:LibDEF_DataBroker - [414702.1.61685849]:LibDEF_DataRepository:/root:LibDEF_DataRepository - [414702.1.61676708]:DMF_ConvertorDataset:/root:DMF_ConvertorDataset - [414702.1.62842521]:LibMon_Monitor:/root:LibMon_Monitor - [414702.1.62837950]:LibUTF:/root:UTF - [414702.1.62860001]:Lib3DS_RootDataset:/root:Lib3DS_RootDataset - [414702.1.62850001]:KpiTracker:/root:KpiTracker - [414702.1.62875363]:MacroPlan:/root:MacroPlan - [414702.1.61681280]:MPDomainHandler:/root:MPDomainHandler - [414702.1.62880001]:MPSync:/root:MPSync - [414702.1.62809550]:ScenarioManager:/root:ScenarioManager - [414702.1.62870001]:LibSCIIntegrationInterface:/root:LibSCIIntegrationInterface - [414702.1.62819619]:GlobalOTDTable:/root:GlobalOTDTable + [414702.1.311783034]:LibInt_IntegratorProxy:/root:LibInt_IntegratorProxy + [414702.1.314030658]:SWF_CommunicationDataset:/root:SWF_CommunicationDataset + [414702.1.314026045]:SWF_WorkflowDataset:/root:SWF_WorkflowDataset + [414702.1.311778446]:LibDEF_DataBroker:/root:LibDEF_DataBroker + [414702.1.311773861]:LibDEF_DataRepository:/root:LibDEF_DataRepository + [414702.1.311764688]:DMF_ConvertorDataset:/root:DMF_ConvertorDataset + [414702.1.314039838]:LibMon_Monitor:/root:LibMon_Monitor + [414702.1.314035251]:LibUTF:/root:UTF + [414702.1.314050001]:Lib3DS_RootDataset:/root:Lib3DS_RootDataset + [414702.1.314070001]:KpiTracker:/root:KpiTracker + [414702.1.314075378]:MacroPlan:/root:MacroPlan + [414702.1.311769276]:MPDomainHandler:/root:MPDomainHandler + [414702.1.314060001]:MPSync:/root:MPSync + [414702.1.311787619]:ScenarioManager:/root:ScenarioManager + [414702.1.314080001]:LibSCIIntegrationInterface:/root:LibSCIIntegrationInterface + [414702.1.314007695]:GlobalOTDTable:/root:GlobalOTDTable + [414702.1.314016865]:GlobalOTDLog:/root:GlobalOTDLog + [414702.1.314012280]:GlobalOTDSOP:/root:GlobalOTDSOP } } } @@ -78,19 +80,19 @@ INFOOBJECT { KEY [514.0.2180] - OBJECTTYPE Frame + OBJECTTYPE Frame // Frame CONTENTS { State := maximized (200,0,1536,809) - WorkspaceLocation := + WorkspaceLocation := } INFOOBJECTS { INFOOBJECT { KEY [113694.2.1024236755] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderViewLayout CONTENTS { Value '' @@ -99,16 +101,16 @@ INFOOBJECT { KEY [127710.1.721401771] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderActiveMacroPlan CONTENTS { - Value '[414702.1.64020493]' + Value '[414702.1.314120528]' } } INFOOBJECT { KEY [132448.0.224582518] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderSetMPDefaultViewForFirstLogin CONTENTS { Value 'false' @@ -117,7 +119,7 @@ INFOOBJECT { KEY [146450.2.1404665746] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhConfiguration CONTENTS { Value 'false' @@ -126,7 +128,7 @@ INFOOBJECT { KEY [146874.1.233869144] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhConfigurationMatrix CONTENTS { Value 'false' @@ -135,7 +137,7 @@ INFOOBJECT { KEY [132894.0.1007052496] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderSetDataHolderSelectedPISPIPExtractor CONTENTS { Value 'false' @@ -144,7 +146,7 @@ INFOOBJECT { KEY [108684.0.1782661552] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderLastSelected3DDriveDirectory CONTENTS { Value '' @@ -153,16 +155,16 @@ INFOOBJECT { KEY [107654.0.557163713] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderUserGroup CONTENTS { - Value ';MRPPlanning;ProductionPlan;BusinessUnitOM;Web_BlendingPlan;Web_Plan;Web_TripPlan;Web_PurchasingPlan;Web_ProductionPlan;KpiTrackerAdmin;Web_SafetyStock;Web_Inventory;Web_CapacitySmoothing;Web_ShelfLife;Web_LotSizes;Web_Optimizer;Web_SupplyDashboard;Web_OptimizerBenchmarking;Web_Integration;Web_MyActivities;Web_WorkFlowConfiguration;Web_SafetyStockCalculation;Web_InventoryMixBalancing;Web_Feedbacks;Web_Financials;Web_Allocation;Web_DemandPostponement;Web_Blending;Web_ScenariosAndSettings;Web;Web_Development;Web_Sales;Web_CampaignPlanning;Web_SupplyChainData;Web_SupplyPlanning;SOAPServerUserGroup;CollaborativeForecasting;DemandPlanner;SupplyPlanner;SupplyChainDirector;OnPremise;Cloud;SOP;Software;Functionalities;Workflow;TransportationPlanning;SupplySpecifications;SupplyChainMap;ShelfLife;SalesDemandPostponement;SafetyStockCalculation;ProductPlanningGanttChart;Pegging;OptimizerBenchmarking;LotSizes;InventorySupplies;InventorySpecifications;InventoryMixBalancing;Groups;Feedback;Development;DatabaseIntegration;CapacitySmoothing;CampaignPlanning;Blending;AggregatedPlanning;Developer;Administrator;Implementors;AppConfigurators' + Value ';Administrator;Developer;AggregatedPlanning;MRPPlanning;ProductionPlan;BusinessUnitOM;Web_BlendingPlan;Web_Plan;Web_TripPlan;Web_PurchasingPlan;Web_ProductionPlan;KpiTrackerAdmin;Web_SafetyStock;Web_Inventory;Web_CapacitySmoothing;Web_ShelfLife;Web_LotSizes;Web_Optimizer;Web_SupplyDashboard;Web_OptimizerBenchmarking;Web_Integration;Web_MyActivities;Web_WorkFlowConfiguration;Web_SafetyStockCalculation;Web_InventoryMixBalancing;Web_Feedbacks;Web_Financials;Web_Allocation;Web_DemandPostponement;Web_Blending;Web_ScenariosAndSettings;Web;Web_Development;Web_Sales;Web_CampaignPlanning;Web_SupplyChainData;Web_SupplyPlanning;SOAPServerUserGroup;CollaborativeForecasting;DemandPlanner;SupplyPlanner;SupplyChainDirector;OnPremise;Cloud;SOP;Software;Functionalities;Workflow;TransportationPlanning;SupplySpecifications;SupplyChainMap;ShelfLife;SalesDemandPostponement;SafetyStockCalculation;ProductPlanningGanttChart;Pegging;OptimizerBenchmarking;LotSizes;InventorySupplies;InventorySpecifications;InventoryMixBalancing;Groups;Feedback;Development;DatabaseIntegration;CapacitySmoothing;CampaignPlanning;Blending;AppConfigurators;Implementors' } } INFOOBJECT { KEY [113694.1.227882923] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderShowSanityCheck CONTENTS { Value '' @@ -171,7 +173,7 @@ INFOOBJECT { KEY [126224.0.581715] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolder CONTENTS { Value 'Feasible' @@ -180,7 +182,7 @@ INFOOBJECT { KEY [132894.0.388222255] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderImportProfileMessage CONTENTS { Value '' @@ -189,7 +191,7 @@ INFOOBJECT { KEY [127238.1.80067038] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderSizing CONTENTS { Value 'true' @@ -198,7 +200,7 @@ INFOOBJECT { KEY [122192.0.103731718] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderSanityCheckHighestSeverityMsgCount CONTENTS { Value '39' @@ -207,7 +209,7 @@ INFOOBJECT { KEY [113694.2.1085093394] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderIsImportSucceed CONTENTS { Value 'true' @@ -216,7 +218,7 @@ INFOOBJECT { KEY [132448.0.331221783] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderScenarioMPSize CONTENTS { Value '1' @@ -225,7 +227,7 @@ INFOOBJECT { KEY [127238.1.502176570] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderPeriodRollStatus CONTENTS { Value 'false' @@ -234,7 +236,7 @@ INFOOBJECT { KEY [112884.1.706803944] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderSanityCheckHighestSeverity CONTENTS { Value '2' @@ -243,7 +245,7 @@ INFOOBJECT { KEY [132448.0.662420775] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel CONTENTS { Columns @@ -283,13 +285,13 @@ INFOOBJECT { KEY [136682.0.314428046] - OBJECTTYPE GUIComponent + OBJECTTYPE GUIComponent // PTFPanelTestController INFOOBJECTS { INFOOBJECT { KEY [105690.0.246954464] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhLogging CONTENTS { Value '' @@ -298,7 +300,7 @@ INFOOBJECT { KEY [104342.0.773994982] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhDoActionInfoReturn CONTENTS { Value '' @@ -307,7 +309,7 @@ INFOOBJECT { KEY [104342.0.867521338] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhPendingActions CONTENTS { Value '' @@ -316,7 +318,7 @@ INFOOBJECT { KEY [104342.0.867524820] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhSharedRepository CONTENTS { Value '\\\\CNLEN1845000693\\PTF_Repository\\' @@ -325,7 +327,7 @@ INFOOBJECT { KEY [105690.0.892938783] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhAsyncActionStatus CONTENTS { Value '' @@ -334,7 +336,7 @@ INFOOBJECT { KEY [105690.0.247211998] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhResultLogPath CONTENTS { Value '' @@ -343,7 +345,7 @@ INFOOBJECT { KEY [105690.0.892939622] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhPTFExecutionStatus CONTENTS { Value 'Inactive' @@ -352,7 +354,7 @@ INFOOBJECT { KEY [103546.0.81355542] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhAutoClose CONTENTS { Value '' @@ -361,7 +363,7 @@ INFOOBJECT { KEY [103546.0.54652306] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // vhLogStart CONTENTS { Value '' @@ -372,7 +374,7 @@ INFOOBJECT { KEY [113694.2.1146370710] - OBJECTTYPE Toolbar + OBJECTTYPE Toolbar // ToolbarWorkflow CONTENTS { 'vertical' '50' '0' @@ -382,16 +384,19 @@ INFOOBJECT { KEY [113694.2.1146375645] - OBJECTTYPE CustomDrawComponent + OBJECTTYPE CustomDrawComponent // SWF_MP_CustomDrawComponentProcessDashboard + BASEINFOOBJECTS + { + } INFOOBJECTS { INFOOBJECT { KEY [132478.0.288924864] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderLastSyncDateTime CONTENTS { - Value '12-10-2023, 20:12:19' + Value '01-11-2023, 10:05:04' } } } @@ -401,17 +406,17 @@ INFOOBJECT { KEY [11660.0.360702312] - OBJECTTYPE Toolbar + OBJECTTYPE Toolbar // ToolbarSupplyChainPanel CONTENTS { - 'horizontal' '50' '336' + 'horizontal' '50' '320' } INFOOBJECTS { INFOOBJECT { KEY [113694.2.1070869880] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderNavigationPanelState CONTENTS { Value 'true' @@ -420,22 +425,22 @@ INFOOBJECT { KEY [113694.2.1070870209] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderNavigationPanelSize CONTENTS { - Value '336' + Value '320' } } INFOOBJECT { KEY [113694.2.1033284312] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd INFOOBJECTS { INFOOBJECT { KEY [113694.2.1033284313] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane CONTENTS { VISIBLE true @@ -445,7 +450,7 @@ INFOOBJECT { KEY [127238.0.1883499282] - OBJECTTYPE TabComponent + OBJECTTYPE TabComponent // TabComponent CONTENTS { ActivePageIndex 0 @@ -455,7 +460,7 @@ INFOOBJECT { KEY [132448.0.71838188] - OBJECTTYPE List + OBJECTTYPE List // ListNavigationPanelSelection CONTENTS { Quantorrow := false @@ -465,16 +470,16 @@ INFOOBJECT { KEY [127238.0.1883514459] - OBJECTTYPE ValueHolder + OBJECTTYPE ValueHolder // ValueHolderListSelections CONTENTS { - Value 'Products' + Value 'Stocking points and units' } } INFOOBJECT { KEY [127238.0.1883514458] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel288 CONTENTS { Columns @@ -505,13 +510,13 @@ INFOOBJECT { KEY [127238.0.1883516525] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd516 INFOOBJECTS { INFOOBJECT { KEY [127238.0.1883516526] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPaneEntities CONTENTS { Size 100 @@ -522,17 +527,20 @@ INFOOBJECT { KEY [127238.0.1883516528] - OBJECTTYPE List + OBJECTTYPE List // ListEntityTreeInPanel CONTENTS { Quantorrow := false + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [113694.2.1026852831] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelUnit CONTENTS { Columns @@ -567,7 +575,7 @@ INFOOBJECT { KEY [127238.0.1883516541] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPaneProducts CONTENTS { Size 0 @@ -578,17 +586,20 @@ INFOOBJECT { KEY [127238.0.1883516544] - OBJECTTYPE List + OBJECTTYPE List // ListProductInPanel CONTENTS { Quantorrow := false + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [113694.2.1025678105] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelProducts CONTENTS { Columns @@ -621,7 +632,7 @@ INFOOBJECT { KEY [127238.0.1883516552] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPaneSalesSegment CONTENTS { Size 0 @@ -632,17 +643,20 @@ INFOOBJECT { KEY [127238.0.1883516554] - OBJECTTYPE List + OBJECTTYPE List // ListSalesSegmentInPanel CONTENTS { Quantorrow := false + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [11660.0.1616690288] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSalesSegment CONTENTS { Columns @@ -675,7 +689,7 @@ INFOOBJECT { KEY [131438.0.356639347] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPanePeriods CONTENTS { Size 0 @@ -686,7 +700,7 @@ INFOOBJECT { KEY [131438.0.353247249] - OBJECTTYPE List + OBJECTTYPE List // ListPeriodSpecificationInPanel CONTENTS { Quantorrow := false @@ -696,7 +710,7 @@ INFOOBJECT { KEY [131438.0.371333408] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelPeriodSpecifications CONTENTS { Columns @@ -728,7 +742,7 @@ INFOOBJECT { KEY [131438.0.402834330] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelPeriods CONTENTS { Columns @@ -777,13 +791,13 @@ INFOOBJECT { KEY [127238.0.1884468404] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd466 INFOOBJECTS { INFOOBJECT { KEY [127238.0.1884468405] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane252 CONTENTS { VISIBLE true @@ -793,7 +807,7 @@ INFOOBJECT { KEY [127238.0.1884468597] - OBJECTTYPE List + OBJECTTYPE List // ListBookmarks CONTENTS { Quantorrow := false @@ -803,7 +817,7 @@ INFOOBJECT { KEY [130238.0.368320209] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelBookmarks CONTENTS { Columns @@ -834,7 +848,7 @@ INFOOBJECT { KEY [130238.0.368320210] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelBookmarkChildren CONTENTS { Columns @@ -879,728 +893,33 @@ } INFOOBJECT { - KEY [108486.1.1170974339] - SINGLEINSTANCE false - ID 'Pegging' - PARENTKEY [514.0.2180] - OBJECTTYPE Form - CREATETYPE FormPegging - CONTENTS - { - State := normal - (354,421,990,664) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[0]Selection[NONE] - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1171911809] - OBJECTTYPE SplitterWnd - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1171911810] - OBJECTTYPE SplitterPane - CONTENTS - { - Size 50.132802124834 - VISIBLE true - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1171921411] - OBJECTTYPE SplitterWnd - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1171921412] - OBJECTTYPE SplitterPane - CONTENTS - { - Size 52.6515151515151 - VISIBLE true - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1171921414] - OBJECTTYPE List - CONTENTS - { - Quantorrow := false - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1171924299] - OBJECTTYPE GUIDataSetLevel - CONTENTS - { - Columns - { - Definition := [11766.0.1025088210] - { - [11766.1.490215920] - } - SubTotals := true - Visible - { - Column internal[DataSetImageColumn] [108486.1.2111697545] - { - Width := 19 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'DemandType [11660.0.340434965]' - } - } - Column internal[DataSetImageColumn] [108486.2.15728337] - { - Header := 'HasValidPeggedQuantity' - Width := 21 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasValidPeggedQuantity [108486.2.15494714]' - } - } - Column internal[DataSetDataColumn] [127710.1.1139010297] - { - Header := 'Stocking point' - Width := 137 - Subtotals := false - Specific - { - DataPath := 'ProductInStockingPointInPeriodPlanning [134266.1.219045427]|AsPlanningProductInStockingPoint [134266.1.8545642]|StockingPoint_MP [11660.0.488414369]|Name [101472.1.1554218718]' - } - } - Column internal[DataSetDataColumn] [108486.1.2110122000] - { - Header := 'Product' - Width := 184 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ProductInStockingPointInPeriodPlanning [134266.1.219045427]|ProductInStockingPoint_MP [134266.1.5798354]|Product_MP [11660.0.486228287]|Name [101472.1.1551142288]' - } - } - Column internal[DataSetConfigurableColumn] [108486.1.2112140291] - { - Header := 'Period start' - Width := 115 - Subtotals := false - Specific - { - Text := 'VALUE( object.GetPeriodStart() )' - Alignment := '' - } - } - Column internal[DataSetDataColumn] [11766.1.490215920] - { - Width := 80 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'Quantity [101320.0.110374989]' - } - } - Column internal[DataSetDataColumn] [108486.1.2110122001] - { - Header := 'Fulfilled' - Width := 82 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'FulfilledQuantity [11660.0.157649047]' - } - } - Column internal[DataSetConfigurableColumn] [110880.2.1142677800] - { - Header := 'Available' - Width := 79 - Subtotals := false - Specific - { - Text := 'VALUE( object.GetAvailableQuantityForPegging() )' - Alignment := '' - } - } - Column internal[DataSetChartColumn] [108486.1.2112734746] - { - Header := 'Fulfillment' - Width := 104 - SizedByUser := true - Subtotals := false - Specific - { - Type := 'Stacked Bar' - Relative := true - Points - { - PointDefinition - { - Text := 'minvalue( object.GetPeggedQuantity(), object.FulfilledQuantity() )' - Color := 'Green' - NegativeColor := 'Red' - Description := 'Fulfilled pegged quantity' - } - PointDefinition - { - Text := 'maxvalue( object.FulfilledQuantity() - object.GetPeggedQuantity(), 0 )' - Color := '$FF9900' - NegativeColor := 'Red' - Description := 'Unpegged quantity' - } - PointDefinition - { - Text := 'maxvalue( object.GetPeggedQuantity() - object.FulfilledQuantity(), 0 )' - Color := 'Red' - NegativeColor := 'Red' - Description := 'Overpegged quantity' - } - } - } - } - } - } - ColumnSort [108486.1.2112140291] true false - } - } - } - } - } - } - INFOOBJECT - { - KEY [108486.1.1171921413] - OBJECTTYPE SplitterPane - CONTENTS - { - Size 47.3484848484849 - VISIBLE true - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [113694.0.1490022148] - OBJECTTYPE List - CONTENTS - { - Quantorrow := false - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [113694.0.1490022154] - OBJECTTYPE GUIDataSetLevel - CONTENTS - { - Columns - { - Definition := [108486.1.1171928381] - { - [108486.1.1171960868] - [108486.1.1320715923] - } - SubTotals := true - Visible - { - Column internal[DataSetImageColumn] [135072.0.40676723] - { - Width := 22 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'Supply_MP [134266.1.11843917]|SupplyType [108486.1.1185051348]' - } - } - Column internal[DataSetImageColumn] [110880.9.1181376772] - { - Header := 'HasUserQuantity' - Width := 23 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasUserQuantity [108486.1.1707654857]' - } - } - Column internal[DataSetImageColumn] [113694.0.1490534244] - { - Width := 21 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasSupply [108486.2.16148330]' - } - } - Column internal[DataSetConfigurableColumn] [113694.0.1490809329] - { - Header := 'Period start' - Width := 115 - Subtotals := false - Specific - { - Text := 'VALUE( object.Supply_MP().GetPeriodStart() )' - Alignment := 'Default' - } - } - Column internal[DataSetDataColumn] [113694.0.1490521540] - { - Width := 100 - Subtotals := false - Quantor - { - Simple := 'sum' DataMemberString := 'Quantity [134266.1.8545959]' - } - Specific - { - DataPath := 'Quantity [134266.1.8545959]' - } - } - Column internal[DataSetConfigurableColumn] [112884.0.2032524903] - { - Header := 'Cost' - Width := 100 - Subtotals := false - Quantor - { - Expression := 'sum' 'object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity()' - } - Specific - { - Text := 'VALUE( object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity() )' - Alignment := 'Default' - } - } - } - } - Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Fulfillment Q134266_1_8545931">\n <GEBFiltering Key="@Default_Filter1" TargetType="Fulfillment Q134266_1_8545931">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@Quantity1" ElementType="Fulfillment Q134266_1_8545931" ValueType="Real">\n <ColumnID>[112610.0.1005221707]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBFilter Key="@3">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@4" Column="@Quantity1">\n <ColumnID>[112610.0.1005221707]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@5">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' - ColumnSort [113694.0.1490809329] true false - ColumnSort [113694.0.1490521540] true false - } - } - } - } - } - } - } - } - } - } - INFOOBJECT - { - KEY [108486.1.1171911811] - OBJECTTYPE SplitterPane - CONTENTS - { - Size 49.867197875166 - VISIBLE true - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1175693802] - OBJECTTYPE SplitterWnd - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1175693803] - OBJECTTYPE SplitterPane - CONTENTS - { - Size 52.6315789473684 - VISIBLE true - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1175693804] - OBJECTTYPE List - CONTENTS - { - Quantorrow := false - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1175693807] - OBJECTTYPE GUIDataSetLevel - CONTENTS - { - Columns - { - Definition := [108486.1.1175456932] - { - [108486.1.1175896212] - } - SubTotals := true - Visible - { - Column internal[DataSetImageColumn] [108486.1.2113319927] - { - Width := 23 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'SupplyType [108486.1.1185051348]' - } - } - Column internal[DataSetImageColumn] [108486.2.521730743] - { - Header := 'HasValidPegging' - Width := 21 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasValidPegging [108486.2.479981617]' - } - } - Column internal[DataSetImageColumn] [108486.2.14534947] - { - Header := 'HasValidPeggedQuantity' - Width := 23 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasValidPeggedQuantity [108486.1.2146810434]' - } - } - Column internal[DataSetConfigurableColumn] [108486.1.2113344305] - { - Header := 'Period start' - Width := 115 - Subtotals := false - Specific - { - Text := 'VALUE( object.GetPeriodStart() )' - Alignment := '' - } - } - Column internal[DataSetDataColumn] [108486.1.2110122007] - { - Width := 116 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'Quantity [112884.1.1160030032]' - } - } - Column internal[DataSetChartColumn] [108486.1.2113393570] - { - Header := 'Supply' - Width := 72 - SizedByUser := true - Subtotals := false - Specific - { - Type := 'Stacked Bar' - Relative := true - Points - { - PointDefinition - { - Text := 'minvalue( object.GetPeggedQuantity(), object.Quantity() )' - Color := '$CCCCCC' - NegativeColor := 'Red' - Description := 'Used quantity for pegging' - } - PointDefinition - { - Text := 'object.GetAvailableQuantityForPegging()' - Color := 'Green' - NegativeColor := 'Red' - Description := 'Available quantity for pegging' - } - PointDefinition - { - Text := 'maxvalue( object.GetPeggedQuantity() - object.Quantity(), 0 )' - Color := 'Red' - NegativeColor := 'Red' - Description := 'Overused quantity' - } - } - } - } - Column internal[DataSetConfigurableColumn] [110880.2.1142925855] - { - Header := 'Available' - Width := 79 - Subtotals := false - Specific - { - Text := 'VALUE( object.GetAvailableQuantityForPegging() )' - Alignment := '' - } - } - } - } - ColumnSort [108486.1.2113344305] true false - } - } - } - } - } - } - INFOOBJECT - { - KEY [108486.1.1175693810] - OBJECTTYPE SplitterPane - CONTENTS - { - Size 47.3684210526316 - VISIBLE true - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1175693811] - OBJECTTYPE List - CONTENTS - { - Quantorrow := false - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [108486.1.1175693814] - OBJECTTYPE GUIDataSetLevel - CONTENTS - { - Columns - { - Definition := [108486.1.1175456935] - { - [108486.1.1175896215] - [108486.1.1320715924] - } - SubTotals := true - Visible - { - Column internal[DataSetImageColumn] [108486.1.2113733284] - { - Header := 'DemandType' - Width := 23 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'Demand_MP [134266.1.16794407]|DemandType [11660.0.340434965]' - } - } - Column internal[DataSetImageColumn] [110880.9.1181425511] - { - Header := 'HasUserQuantity' - Width := 25 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasUserQuantity [108486.1.1707654857]' - } - } - Column internal[DataSetImageColumn] [113694.0.1488690244] - { - Width := 21 - SizedByUser := true - Subtotals := false - Specific - { - DataPath := 'ImgHasDemand [113694.0.1488476421]' - } - } - Column internal[DataSetConfigurableColumn] [108486.1.2113843687] - { - Header := 'Period start' - Width := 115 - Subtotals := false - Specific - { - Text := 'VALUE( object.Demand_MP().GetPeriodStart() )' - Alignment := '' - } - } - Column internal[DataSetDataColumn] [108486.1.2110122012] - { - Width := 100 - Subtotals := false - Quantor - { - Simple := 'sum' DataMemberString := 'Quantity [134266.1.8545959]' - } - Specific - { - DataPath := 'Quantity [134266.1.8545959]' - } - } - Column internal[DataSetDataColumn] [108486.1.2110122013] - { - Header := 'Cost' - Width := 100 - Subtotals := false - Quantor - { - Simple := 'sum' DataMemberString := 'BaseCost [134266.1.8545935]' - } - Specific - { - DataPath := 'BaseCost [134266.1.8545935]' - } - } - } - } - ColumnSort [108486.1.2113843687] true false - } - } - } - } - } - } - } - } - } - } - } - } - } - } - INFOOBJECT - { - KEY [127710.1.818301225] - SINGLEINSTANCE false - ID '浜у搧瑙勫垝鏁版嵁鐭╅樀' - PARENTKEY [514.0.2180] - OBJECTTYPE Form - CREATETYPE FormProductPlanningMatrix - CONTENTS - { - State := normal - (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[0]Selection[FRONT] - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [127710.1.821866707] - OBJECTTYPE CheckBox - CONTENTS - { - Checkstate 1 - } - } - INFOOBJECT - { - KEY [127710.1.821866918] - OBJECTTYPE StringSelection - CONTENTS - { - BoundValue '[Leaf product]' - } - } - INFOOBJECT - { - KEY [127710.1.818312567] - OBJECTTYPE MatrixEditor - CONTENTS - { - RowHeight 29 - ColumnWidth 82 - FirstColumnWidth 433 - Attributes 'SupplyQuantity;DependentDemandAndSalesDemandQuantity;TargetInventoryLevel;InventoryLevelEnd;StockLevelInDays' - } - INFOOBJECTS - { - INFOOBJECT - { - KEY [127710.1.819572713] - OBJECTTYPE GUIScaleView - INFOOBJECTS - { - INFOOBJECT - { - KEY [127710.1.820829335] - OBJECTTYPE UserConfigurableInformation - CONTENTS - { - ObjectText 'VALUE(object.Start())' - } - } - } - } - INFOOBJECT - { - KEY [127710.1.819572710] - OBJECTTYPE GUIScaleView - INFOOBJECTS - { - INFOOBJECT - { - KEY [127710.1.820300549] - OBJECTTYPE UserConfigurableInformation - CONTENTS - { - ObjectText 'VALUE( object.Name() ) (VALUE( object.UnitOfMeasureName() ))' - } - } - } - } - } - } - } - } - INFOOBJECT - { KEY [107654.0.139602704] SINGLEINSTANCE false ID '閿�鍞渶姹�' PARENTKEY [514.0.2180] - OBJECTTYPE Form + OBJECTTYPE Form // FormSalesDemands CREATETYPE FormSalesDemands CONTENTS { State := normal (1344,0,192,928) - DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[1]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[0]Selection[NONE] + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [124112.0.87054864] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd1 INFOOBJECTS { INFOOBJECT { KEY [124112.0.87054865] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPaneSalesDemand CONTENTS { Size 72.2642807983482 @@ -1611,7 +930,7 @@ INFOOBJECT { KEY [124112.0.87250426] - OBJECTTYPE List + OBJECTTYPE List // ListSalesDemand CONTENTS { Quantorrow := false @@ -1621,7 +940,7 @@ INFOOBJECT { KEY [124112.0.87253131] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSalesDemand CONTENTS { Columns @@ -1745,7 +1064,7 @@ } } } - Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Forecast Q124112_0_61686821">\n <GEBFiltering Key="@Default_Filter1" TargetType="Forecast Q124112_0_61686821">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@Quantity1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n <ColumnID>[112610.0.1212345820]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@FulfilledQuantity1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n <ColumnID>[112610.0.1212349003]</ColumnID>\n <BaseName>FulfilledQuantity</BaseName>\n <Name>FulfilledQuantity</Name>\n <Title>FulfilledQuantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>FulfilledQuantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBFilter Key="@3">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@4" Column="@Quantity1">\n <ColumnID>[112610.0.1212345820]</ColumnID>\n </GEBFilterColumn>\n <GEBFilterColumn Key="@5" Column="@FulfilledQuantity1">\n <ColumnID>[112610.0.1212349003]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@6">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' + Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Forecast Q124112_0_61686821">\n <GEBFiltering Key="@Default_Filter1" TargetType="Forecast Q124112_0_61686821">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@StartDate1" ElementType="Forecast Q124112_0_61686821" ValueType="Date">\n <ColumnID>[414702.1.317510867]</ColumnID>\n <BaseName>StartDate</BaseName>\n <Name>StartDate</Name>\n <Title>StartDate</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>StartDate</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@ImgNotLinkedToPeriod1" ElementType="Forecast Q124112_0_61686821" ValueType="String">\n <ColumnID>[414702.1.317510868]</ColumnID>\n <BaseName>ImgNotLinkedToPeriod</BaseName>\n <Name>ImgNotLinkedToPeriod</Name>\n <Title>ImgNotLinkedToPeriod</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ImgNotLinkedToPeriod</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@ImgIsPostponed1" ElementType="Forecast Q124112_0_61686821" ValueType="String">\n <ColumnID>[414702.1.317510869]</ColumnID>\n <BaseName>ImgIsPostponed</BaseName>\n <Name>ImgIsPostponed</Name>\n <Title>ImgIsPostponed</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ImgIsPostponed</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Sales_segment1" ElementType="Forecast Q124112_0_61686821" ValueType="String">\n <ColumnID>[414702.1.317510870]</ColumnID>\n <BaseName>Sales_segment</BaseName>\n <Name>Sales_segment</Name>\n <Title>Sales segment</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>SalesSegment_MP.Name</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Product1" ElementType="Forecast Q124112_0_61686821" ValueType="String">\n <ColumnID>[414702.1.317510871]</ColumnID>\n <BaseName>Product</BaseName>\n <Name>Product</Name>\n <Title>Product</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ProductInStockingPoint_MP.Product_MP.Name</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Stocking_point1" ElementType="Forecast Q124112_0_61686821" ValueType="String">\n <ColumnID>[414702.1.317510872]</ColumnID>\n <BaseName>Stocking_point</BaseName>\n <Name>Stocking_point</Name>\n <Title>Stocking point</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ProductInStockingPoint_MP.StockingPoint_MP.Name</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Quantity1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n <ColumnID>[112610.0.1212345820]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Price1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n <ColumnID>[414702.1.317510873]</ColumnID>\n <BaseName>Price</BaseName>\n <Name>Price</Name>\n <Title>Price</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Price</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@FulfilledQuantity1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n <ColumnID>[112610.0.1212349003]</ColumnID>\n <BaseName>FulfilledQuantity</BaseName>\n <Name>FulfilledQuantity</Name>\n <Title>FulfilledQuantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>FulfilledQuantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBFilter Key="@3">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@4" Column="@Quantity1">\n <ColumnID>[112610.0.1212345820]</ColumnID>\n </GEBFilterColumn>\n <GEBFilterColumn Key="@5" Column="@FulfilledQuantity1">\n <ColumnID>[112610.0.1212349003]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@6">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' ColumnSort [414702.1.48371364] true false } } @@ -1756,7 +1075,7 @@ INFOOBJECT { KEY [124112.0.87054866] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPaneSalesDemandInPeriod CONTENTS { Size 27.7357192016518 @@ -1767,13 +1086,13 @@ INFOOBJECT { KEY [116826.1.6886965] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd INFOOBJECTS { INFOOBJECT { KEY [116826.1.6886966] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane CONTENTS { VISIBLE true @@ -1783,7 +1102,7 @@ INFOOBJECT { KEY [116826.1.6887229] - OBJECTTYPE List + OBJECTTYPE List // ListAggregatedSalesDemandInPeriod CONTENTS { Quantorrow := false @@ -1793,7 +1112,7 @@ INFOOBJECT { KEY [116826.1.6887235] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSalesDemandInPeriod CONTENTS { Columns @@ -1886,7 +1205,7 @@ INFOOBJECT { KEY [116826.1.6886967] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane552 CONTENTS { VISIBLE true @@ -1896,7 +1215,7 @@ INFOOBJECT { KEY [116826.1.6889558] - OBJECTTYPE List + OBJECTTYPE List // ListDisaggregatedSalesDemandInPeriod CONTENTS { Quantorrow := false @@ -1906,7 +1225,7 @@ INFOOBJECT { KEY [116826.1.6889563] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel CONTENTS { Columns @@ -2007,30 +1326,742 @@ } INFOOBJECT { + KEY [108486.1.1170974339] + SINGLEINSTANCE false + ID 'Pegging' + PARENTKEY [514.0.2180] + OBJECTTYPE Form // FormPegging + CREATETYPE FormPegging + CONTENTS + { + State := normal + (354,421,990,664) + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[0]Selection[NONE] + } + BASEINFOOBJECTS + { + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1171911809] + OBJECTTYPE SplitterWnd // SplitterWnd1 + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1171911810] + OBJECTTYPE SplitterPane // SplitterPane + CONTENTS + { + Size 50.132802124834 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1171921411] + OBJECTTYPE SplitterWnd // SplitterWndDemand_MP_Pegging + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1171921412] + OBJECTTYPE SplitterPane // SplitterPane2 + CONTENTS + { + Size 52.6515151515151 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1171921414] + OBJECTTYPE List // ListDemand + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1171924299] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelDemand_MP + CONTENTS + { + Columns + { + Definition := [11766.0.1025088210] + { + [11766.1.490215920] + } + SubTotals := true + Visible + { + Column internal[DataSetImageColumn] [108486.1.2111697545] + { + Width := 19 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'DemandType [11660.0.340434965]' + } + } + Column internal[DataSetImageColumn] [108486.2.15728337] + { + Header := 'HasValidPeggedQuantity' + Width := 21 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasValidPeggedQuantity [108486.2.15494714]' + } + } + Column internal[DataSetDataColumn] [127710.1.1139010297] + { + Header := 'Stocking point' + Width := 137 + Subtotals := false + Specific + { + DataPath := 'ProductInStockingPointInPeriodPlanning [134266.1.219045427]|AsPlanningProductInStockingPoint [134266.1.8545642]|StockingPoint_MP [11660.0.488414369]|Name [101472.1.1554218718]' + } + } + Column internal[DataSetDataColumn] [108486.1.2110122000] + { + Header := 'Product' + Width := 184 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ProductInStockingPointInPeriodPlanning [134266.1.219045427]|ProductInStockingPoint_MP [134266.1.5798354]|Product_MP [11660.0.486228287]|Name [101472.1.1551142288]' + } + } + Column internal[DataSetConfigurableColumn] [108486.1.2112140291] + { + Header := 'Period start' + Width := 115 + Subtotals := false + Specific + { + Text := 'VALUE( object.GetPeriodStart() )' + Alignment := '' + } + } + Column internal[DataSetDataColumn] [11766.1.490215920] + { + Width := 91 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Quantity [101320.0.110374989]' + } + } + Column internal[DataSetDataColumn] [108486.1.2110122001] + { + Header := 'Fulfilled' + Width := 82 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'FulfilledQuantity [11660.0.157649047]' + } + } + Column internal[DataSetConfigurableColumn] [110880.2.1142677800] + { + Header := 'Available' + Width := 79 + Subtotals := false + Specific + { + Text := 'VALUE( object.GetAvailableQuantityForPegging() )' + Alignment := '' + } + } + Column internal[DataSetChartColumn] [108486.1.2112734746] + { + Header := 'Fulfillment' + Width := 104 + SizedByUser := true + Subtotals := false + Specific + { + Type := 'Stacked Bar' + Relative := true + Points + { + PointDefinition + { + Text := 'minvalue( object.GetPeggedQuantity(), object.FulfilledQuantity() )' + Color := 'Green' + NegativeColor := 'Red' + Description := 'Fulfilled pegged quantity' + } + PointDefinition + { + Text := 'maxvalue( object.FulfilledQuantity() - object.GetPeggedQuantity(), 0 )' + Color := '$FF9900' + NegativeColor := 'Red' + Description := 'Unpegged quantity' + } + PointDefinition + { + Text := 'maxvalue( object.GetPeggedQuantity() - object.FulfilledQuantity(), 0 )' + Color := 'Red' + NegativeColor := 'Red' + Description := 'Overpegged quantity' + } + } + } + } + } + } + Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Demand_MP Q11660_0_96892572">\n <GEBFiltering Key="@Default_Filter1" TargetType="Demand_MP Q11660_0_96892572">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@DemandType1" ElementType="Demand_MP Q11660_0_96892572" ValueType="String">\n <ColumnID>[108486.2.847961104]</ColumnID>\n <BaseName>DemandType</BaseName>\n <Name>DemandType</Name>\n <Title>DemandType</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>DemandType</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@HasValidPeggedQuantity1" ElementType="Demand_MP Q11660_0_96892572" ValueType="String">\n <ColumnID>[108486.2.847961073]</ColumnID>\n <BaseName>HasValidPeggedQuantity</BaseName>\n <Name>HasValidPeggedQuantity</Name>\n <Title>HasValidPeggedQuantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ImgHasValidPeggedQuantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Stocking_point1" ElementType="Demand_MP Q11660_0_96892572" ValueType="String">\n <ColumnID>[414702.1.317581380]</ColumnID>\n <BaseName>Stocking_point</BaseName>\n <Name>Stocking_point</Name>\n <Title>Stocking point</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ProductInStockingPointInPeriodPlanning.AsPlanningProductInStockingPoint.StockingPoint_MP.Name</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Product1" ElementType="Demand_MP Q11660_0_96892572" ValueType="String">\n <ColumnID>[414702.1.317581381]</ColumnID>\n <BaseName>Product</BaseName>\n <Name>Product</Name>\n <Title>Product</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ProductInStockingPointInPeriodPlanning.ProductInStockingPoint_MP.Product_MP.Name</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBProcessColumn Key="@Period_start1" ElementType="Demand_MP Q11660_0_96892572" ValueType="Date">\n <ColumnID>[414702.1.317581382]</ColumnID>\n <BaseName>Period_start</BaseName>\n <Name>Period_start</Name>\n <Title>Period start</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <GEBDerivation Key="@3">\n <GEBDerivationBase Key="@4" TargetType="Demand_MP Q11660_0_96892572">\n <ColumnID>[0.0.0]</ColumnID>\n <GEBNodeDerivation Key="@5">\n <Operation>FirstExpression</Operation>\n <Conditional>false</Conditional>\n <Multiple>false</Multiple>\n <AllowWildcards>false</AllowWildcards>\n <GEBNodeDerivationExpression Key="@6">\n <GEBNodeDerivationExpressionBody Key="@7">\n <ExpressionText>object.GetPeriodStart()</ExpressionText>\n <Converter>\n <ZeroConverter Key="@8">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBNodeDerivationExpressionBody>\n </GEBNodeDerivationExpression>\n </GEBNodeDerivation>\n </GEBDerivationBase>\n </GEBDerivation>\n </GEBProcessColumn>\n <GEBSelectColumn Key="@Quantity1" ElementType="Demand_MP Q11660_0_96892572" ValueType="Real">\n <ColumnID>[414702.1.317581383]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Fulfilled1" ElementType="Demand_MP Q11660_0_96892572" ValueType="Real">\n <ColumnID>[108486.2.847961228]</ColumnID>\n <BaseName>Fulfilled</BaseName>\n <Name>Fulfilled</Name>\n <Title>Fulfilled</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>FulfilledQuantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBProcessColumn Key="@Available1" ElementType="Demand_MP Q11660_0_96892572" ValueType="Real">\n <ColumnID>[414702.1.317581384]</ColumnID>\n <BaseName>Available</BaseName>\n <Name>Available</Name>\n <Title>Available</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <GEBDerivation Key="@9">\n <GEBDerivationBase Key="@10" TargetType="Demand_MP Q11660_0_96892572">\n <ColumnID>[0.0.0]</ColumnID>\n <GEBNodeDerivation Key="@11">\n <Operation>FirstExpression</Operation>\n <Conditional>false</Conditional>\n <Multiple>false</Multiple>\n <AllowWildcards>false</AllowWildcards>\n <GEBNodeDerivationExpression Key="@12">\n <GEBNodeDerivationExpressionBody Key="@13">\n <ExpressionText>object.GetAvailableQuantityForPegging()</ExpressionText>\n <Converter>\n <ZeroConverter Key="@14">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBNodeDerivationExpressionBody>\n </GEBNodeDerivationExpression>\n </GEBNodeDerivation>\n </GEBDerivationBase>\n </GEBDerivation>\n </GEBProcessColumn>\n <GEBProcessColumn Key="@Date1" ElementType="Demand_MP Q11660_0_96892572" ValueType="Date">\n <ColumnID>[108486.1.1930448455]</ColumnID>\n <BaseName>Date</BaseName>\n <Name>Date</Name>\n <Title>Date</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <GEBDerivation Key="@15">\n <GEBDerivationBase Key="@16" TargetType="Demand_MP Q11660_0_96892572">\n <ColumnID>[0.0.0]</ColumnID>\n <GEBNodeDerivation Key="@17">\n <Operation>FirstExpression</Operation>\n <Conditional>false</Conditional>\n <Multiple>false</Multiple>\n <AllowWildcards>false</AllowWildcards>\n <GEBNodeDerivationExpression Key="@18">\n <GEBNodeDerivationExpressionBody Key="@19">\n <ExpressionText>object.GetDate()</ExpressionText>\n <Converter>\n <ZeroConverter Key="@20">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBNodeDerivationExpressionBody>\n </GEBNodeDerivationExpression>\n </GEBNodeDerivation>\n </GEBDerivationBase>\n </GEBDerivation>\n </GEBProcessColumn>\n <GEBFilter Key="@21">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@22" Column="@Fulfilled1">\n <ColumnID>[108486.2.847961228]</ColumnID>\n </GEBFilterColumn>\n <GEBFilterColumn Key="@23" Column="@Product1">\n <ColumnID>[414702.1.317581381]</ColumnID>\n <GEBFilterColumnMatch Key="@24">\n <Operation>=</Operation>\n <Enabled>true</Enabled>\n <RHSValue>\n <RHSFreeValue Key="@25">\n <StringValue></StringValue>\n <Value>UString:120 kW Motor</Value>\n </RHSFreeValue>\n </RHSValue>\n </GEBFilterColumnMatch>\n </GEBFilterColumn>\n <GEBFilterColumn Key="@26" Column="@Period_start1">\n <ColumnID>[414702.1.317581382]</ColumnID>\n <GEBFilterColumnMatch Key="@27">\n <Operation>=</Operation>\n <Enabled>true</Enabled>\n <RHSValue>\n <RHSFreeValue Key="@28">\n <StringValue></StringValue>\n <Value>Date:2020-04-01</Value>\n </RHSFreeValue>\n </RHSValue>\n </GEBFilterColumnMatch>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@29">\n <ExpressionText></ExpressionText>\n <Converter>\n <ZeroConverter Key="@30">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' + ColumnSort [11766.1.490215920] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [108486.1.1171921413] + OBJECTTYPE SplitterPane // SplitterPane3 + CONTENTS + { + Size 47.3484848484849 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [113694.0.1490022148] + OBJECTTYPE List // ListDemandPegging + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [113694.0.1490022154] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2 + CONTENTS + { + Columns + { + Definition := [108486.1.1171928381] + { + [108486.1.1171960868] + [108486.1.1320715923] + } + SubTotals := true + Visible + { + Column internal[DataSetImageColumn] [135072.0.40676723] + { + Width := 22 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Supply_MP [134266.1.11843917]|SupplyType [108486.1.1185051348]' + } + } + Column internal[DataSetImageColumn] [110880.9.1181376772] + { + Header := 'HasUserQuantity' + Width := 23 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasUserQuantity [108486.1.1707654857]' + } + } + Column internal[DataSetImageColumn] [113694.0.1490534244] + { + Width := 21 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasSupply [108486.2.16148330]' + } + } + Column internal[DataSetConfigurableColumn] [113694.0.1490809329] + { + Header := 'Period start' + Width := 115 + Subtotals := false + Specific + { + Text := 'VALUE( object.Supply_MP().GetPeriodStart() )' + Alignment := 'Default' + } + } + Column internal[DataSetDataColumn] [113694.0.1490521540] + { + Width := 100 + Subtotals := false + Quantor + { + Simple := 'sum' DataMemberString := 'Quantity [134266.1.8545959]' + } + Specific + { + DataPath := 'Quantity [134266.1.8545959]' + } + } + Column internal[DataSetConfigurableColumn] [112884.0.2032524903] + { + Header := 'Cost' + Width := 100 + Subtotals := false + Quantor + { + Expression := 'sum' 'object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity()' + } + Specific + { + Text := 'VALUE( object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity() )' + Alignment := 'Default' + } + } + } + } + Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Fulfillment Q134266_1_8545931">\n <GEBFiltering Key="@Default_Filter1" TargetType="Fulfillment Q134266_1_8545931">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@Supply_MPSupplyType1" ElementType="Fulfillment Q134266_1_8545931" ValueType="String">\n <ColumnID>[414702.1.317581385]</ColumnID>\n <BaseName>Supply_MPSupplyType</BaseName>\n <Name>Supply_MPSupplyType</Name>\n <Title>SupplyType</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Supply_MP.SupplyType</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@HasUserQuantity1" ElementType="Fulfillment Q134266_1_8545931" ValueType="String">\n <ColumnID>[414702.1.317581386]</ColumnID>\n <BaseName>HasUserQuantity</BaseName>\n <Name>HasUserQuantity</Name>\n <Title>HasUserQuantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>true</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ImgHasUserQuantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@ImgHasSupply1" ElementType="Fulfillment Q134266_1_8545931" ValueType="String">\n <ColumnID>[414702.1.317581387]</ColumnID>\n <BaseName>ImgHasSupply</BaseName>\n <Name>ImgHasSupply</Name>\n <Title>ImgHasSupply</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ImgHasSupply</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBProcessColumn Key="@Period_start1" ElementType="Fulfillment Q134266_1_8545931" ValueType="Date">\n <ColumnID>[414702.1.317581388]</ColumnID>\n <BaseName>Period_start</BaseName>\n <Name>Period_start</Name>\n <Title>Period start</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <GEBDerivation Key="@3">\n <GEBDerivationBase Key="@4" TargetType="Fulfillment Q134266_1_8545931">\n <ColumnID>[0.0.0]</ColumnID>\n <GEBNodeDerivation Key="@5">\n <Operation>FirstExpression</Operation>\n <Conditional>false</Conditional>\n <Multiple>false</Multiple>\n <AllowWildcards>false</AllowWildcards>\n <GEBNodeDerivationExpression Key="@6">\n <GEBNodeDerivationExpressionBody Key="@7">\n <ExpressionText>object.Supply_MP().GetPeriodStart()</ExpressionText>\n <Converter>\n <ZeroConverter Key="@8">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBNodeDerivationExpressionBody>\n </GEBNodeDerivationExpression>\n </GEBNodeDerivation>\n </GEBDerivationBase>\n </GEBDerivation>\n </GEBProcessColumn>\n <GEBSelectColumn Key="@Quantity1" ElementType="Fulfillment Q134266_1_8545931" ValueType="Real">\n <ColumnID>[112610.0.1005221707]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBProcessColumn Key="@Cost1" ElementType="Fulfillment Q134266_1_8545931" ValueType="Real">\n <ColumnID>[414702.1.317581389]</ColumnID>\n <BaseName>Cost</BaseName>\n <Name>Cost</Name>\n <Title>Cost</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <GEBDerivation Key="@9">\n <GEBDerivationBase Key="@10" TargetType="Fulfillment Q134266_1_8545931">\n <ColumnID>[0.0.0]</ColumnID>\n <GEBNodeDerivation Key="@11">\n <Operation>FirstExpression</Operation>\n <Conditional>false</Conditional>\n <Multiple>false</Multiple>\n <AllowWildcards>false</AllowWildcards>\n <GEBNodeDerivationExpression Key="@12">\n <GEBNodeDerivationExpressionBody Key="@13">\n <ExpressionText>object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity()</ExpressionText>\n <Converter>\n <ZeroConverter Key="@14">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBNodeDerivationExpressionBody>\n </GEBNodeDerivationExpression>\n </GEBNodeDerivation>\n </GEBDerivationBase>\n </GEBDerivation>\n </GEBProcessColumn>\n <GEBFilter Key="@15">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@16" Column="@Quantity1">\n <ColumnID>[112610.0.1005221707]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@17">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' + ColumnSort [113694.0.1490809329] true false + ColumnSort [113694.0.1490521540] true false + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [108486.1.1171911811] + OBJECTTYPE SplitterPane // SplitterPane1 + CONTENTS + { + Size 49.867197875166 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1175693802] + OBJECTTYPE SplitterWnd // SplitterWndSupply_MP_Pegging + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1175693803] + OBJECTTYPE SplitterPane // SplitterPane4 + CONTENTS + { + Size 52.6315789473684 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1175693804] + OBJECTTYPE List // ListSupply + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1175693807] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSupply_MP + CONTENTS + { + Columns + { + Definition := [108486.1.1175456932] + { + [108486.1.1175896212] + } + SubTotals := true + Visible + { + Column internal[DataSetImageColumn] [108486.1.2113319927] + { + Width := 23 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'SupplyType [108486.1.1185051348]' + } + } + Column internal[DataSetImageColumn] [108486.2.521730743] + { + Header := 'HasValidPegging' + Width := 21 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasValidPegging [108486.2.479981617]' + } + } + Column internal[DataSetImageColumn] [108486.2.14534947] + { + Header := 'HasValidPeggedQuantity' + Width := 23 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasValidPeggedQuantity [108486.1.2146810434]' + } + } + Column internal[DataSetConfigurableColumn] [108486.1.2113344305] + { + Header := 'Period start' + Width := 115 + Subtotals := false + Specific + { + Text := 'VALUE( object.GetPeriodStart() )' + Alignment := '' + } + } + Column internal[DataSetDataColumn] [108486.1.2110122007] + { + Width := 116 + SizedByUser := true + Subtotals := true + Specific + { + DataPath := 'Quantity [112884.1.1160030032]' + } + } + Column internal[DataSetChartColumn] [108486.1.2113393570] + { + Header := 'Supply' + Width := 72 + SizedByUser := true + Subtotals := false + Specific + { + Type := 'Stacked Bar' + Relative := true + Points + { + PointDefinition + { + Text := 'minvalue( object.GetPeggedQuantity(), object.Quantity() )' + Color := '$CCCCCC' + NegativeColor := 'Red' + Description := 'Used quantity for pegging' + } + PointDefinition + { + Text := 'object.GetAvailableQuantityForPegging()' + Color := 'Green' + NegativeColor := 'Red' + Description := 'Available quantity for pegging' + } + PointDefinition + { + Text := 'maxvalue( object.GetPeggedQuantity() - object.Quantity(), 0 )' + Color := 'Red' + NegativeColor := 'Red' + Description := 'Overused quantity' + } + } + } + } + Column internal[DataSetConfigurableColumn] [110880.2.1142925855] + { + Header := 'Available' + Width := 79 + Subtotals := false + Specific + { + Text := 'VALUE( object.GetAvailableQuantityForPegging() )' + Alignment := '' + } + } + } + } + ColumnSort [108486.1.2113344305] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [108486.1.1175693810] + OBJECTTYPE SplitterPane // SplitterPane5 + CONTENTS + { + Size 47.3684210526316 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1175693811] + OBJECTTYPE List // ListSupplyPegging + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [108486.1.1175693814] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel4 + CONTENTS + { + Columns + { + Definition := [108486.1.1175456935] + { + [108486.1.1175896215] + [108486.1.1320715924] + } + SubTotals := true + Visible + { + Column internal[DataSetImageColumn] [108486.1.2113733284] + { + Header := 'DemandType' + Width := 23 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Demand_MP [134266.1.16794407]|DemandType [11660.0.340434965]' + } + } + Column internal[DataSetImageColumn] [110880.9.1181425511] + { + Header := 'HasUserQuantity' + Width := 25 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasUserQuantity [108486.1.1707654857]' + } + } + Column internal[DataSetImageColumn] [113694.0.1488690244] + { + Width := 21 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ImgHasDemand [113694.0.1488476421]' + } + } + Column internal[DataSetConfigurableColumn] [108486.1.2113843687] + { + Header := 'Period start' + Width := 115 + Subtotals := false + Specific + { + Text := 'VALUE( object.Demand_MP().GetPeriodStart() )' + Alignment := '' + } + } + Column internal[DataSetDataColumn] [108486.1.2110122012] + { + Width := 150 + SizedByUser := true + Subtotals := false + Quantor + { + Simple := 'sum' DataMemberString := 'Quantity [134266.1.8545959]' + } + Specific + { + DataPath := 'Quantity [134266.1.8545959]' + } + } + Column internal[DataSetDataColumn] [108486.1.2110122013] + { + Header := 'Cost' + Width := 100 + Subtotals := false + Quantor + { + Simple := 'sum' DataMemberString := 'BaseCost [134266.1.8545935]' + } + Specific + { + DataPath := 'BaseCost [134266.1.8545935]' + } + } + } + } + ColumnSort [108486.1.2113843687] true false + } + } + } + } + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [127710.1.818301225] + SINGLEINSTANCE false + ID '浜у搧瑙勫垝鏁版嵁鐭╅樀' + PARENTKEY [514.0.2180] + OBJECTTYPE Form // FormProductPlanningMatrix + CREATETYPE FormProductPlanningMatrix + CONTENTS + { + State := normal + (0,0,0,0) + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[1]Selection[NONE] + } + BASEINFOOBJECTS + { + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [127710.1.821866707] + OBJECTTYPE CheckBox // CheckBoxFilterByProductLevel + CONTENTS + { + Checkstate 1 + } + } + INFOOBJECT + { + KEY [127710.1.821866918] + OBJECTTYPE StringSelection // StringSelectionProductLevel + CONTENTS + { + BoundValue '[Leaf product]' + } + INFOOBJECTS + { + } + } + INFOOBJECT + { + KEY [127710.1.818312567] + OBJECTTYPE MatrixEditor // MatrixEditorProductPlanning + CONTENTS + { + RowHeight 29 + ColumnWidth 82 + FirstColumnWidth 433 + Attributes 'SupplyQuantity;DependentDemandAndSalesDemandQuantity;TargetInventoryLevel;InventoryLevelEnd;StockLevelInDays' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [127710.1.819572713] + OBJECTTYPE GUIScaleView // MatrixEditorColumns + INFOOBJECTS + { + INFOOBJECT + { + KEY [127710.1.820829335] + OBJECTTYPE UserConfigurableInformation // UserConfigurableInformationPeriod + CONTENTS + { + ObjectText 'VALUE(object.Start())' + } + } + } + } + INFOOBJECT + { + KEY [127710.1.819572710] + OBJECTTYPE GUIScaleView // MatrixEditorRows + INFOOBJECTS + { + INFOOBJECT + { + KEY [127710.1.820300549] + OBJECTTYPE UserConfigurableInformation // UserConfigurableInformationPISP + CONTENTS + { + ObjectText 'VALUE( object.Name() ) (VALUE( object.UnitOfMeasureName() ))' + } + } + } + } + } + } + } + } + INFOOBJECT + { KEY [136682.0.365472357] SINGLEINSTANCE false ID '鍔犲伐璺緞' PARENTKEY [514.0.2180] - OBJECTTYPE Form + OBJECTTYPE Form // FormRoutings CREATETYPE FormRoutings CONTENTS { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[1]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[1]Selection[NONE] + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [136682.0.365497231] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd1 INFOOBJECTS { INFOOBJECT { KEY [136682.0.365497232] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane CONTENTS { VISIBLE true @@ -2040,7 +2071,7 @@ INFOOBJECT { KEY [136682.0.365497233] - OBJECTTYPE List + OBJECTTYPE List // ListRouting CONTENTS { Quantorrow := false @@ -2050,7 +2081,7 @@ INFOOBJECT { KEY [136682.0.365497235] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelRouting CONTENTS { Columns @@ -2295,7 +2326,7 @@ INFOOBJECT { KEY [136682.0.365497250] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane1 CONTENTS { VISIBLE true @@ -2305,16 +2336,19 @@ INFOOBJECT { KEY [136682.0.365497251] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd2 INFOOBJECTS { INFOOBJECT { KEY [136682.0.365497252] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane2 CONTENTS { VISIBLE true + } + INFOOBJECTS + { } } } @@ -2326,7 +2360,7 @@ INFOOBJECT { KEY [136682.0.365502343] - OBJECTTYPE CheckBox + OBJECTTYPE CheckBox // CheckBoxFilterProduct CONTENTS { Checkstate 1 @@ -2340,13 +2374,16 @@ SINGLEINSTANCE false ID '鍔熻兘娴嬭瘯鎸夐挳' PARENTKEY [514.0.2180] - OBJECTTYPE Form + OBJECTTYPE Form // FormTestButtonCollection CREATETYPE FormTestButtonCollection CONTENTS { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[3]Selection[FOCUS] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[2]Selection[NONE] + } + BASEINFOOBJECTS + { } } INFOOBJECT @@ -2355,20 +2392,23 @@ SINGLEINSTANCE false ID '鍚庡彴杈撳嚭' PARENTKEY [514.0.2180] - OBJECTTYPE Dialog + OBJECTTYPE Dialog // dlgServerMessages CREATETYPE dlgServerMessages CONTENTS { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[2]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[3]Selection[FRONT] + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [514.0.2141287] - OBJECTTYPE List + OBJECTTYPE List // List1 CONTENTS { Quantorrow := false @@ -2378,7 +2418,7 @@ INFOOBJECT { KEY [536.0.860799] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // dslServerMessages CONTENTS { Columns @@ -2416,26 +2456,29 @@ SINGLEINSTANCE false ID 'Analysis GlobalOTDTable' PARENTKEY [514.0.2180] - OBJECTTYPE Form + OBJECTTYPE Form // frmStandardAnalysisGlobalOTDTable CREATETYPE frmStandardAnalysisGlobalOTDTable CONTENTS { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[2]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[2]Selection[NONE] + } + BASEINFOOBJECTS + { } INFOOBJECTS { INFOOBJECT { KEY [530.0.3531801] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // swTopMost INFOOBJECTS { INFOOBJECT { KEY [530.0.3531802] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane1 CONTENTS { VISIBLE true @@ -2445,13 +2488,13 @@ INFOOBJECT { KEY [530.0.3531806] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // swTop INFOOBJECTS { INFOOBJECT { KEY [530.0.3531807] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // spTopLeft CONTENTS { VISIBLE true @@ -2461,14 +2504,14 @@ INFOOBJECT { KEY [530.0.3532065] - OBJECTTYPE GUIAnalysis + OBJECTTYPE GUIAnalysis // Analysis CONTENTS { START(0,0,0,0,false) ANALYSIS(0,0,0,0,false,'Analysis1') { SOURCE 'Types' '[414702.0.340560328]' 0 - + NAME 'Analysis1' } COLUMNSETTINGS @@ -2658,7 +2701,7 @@ INFOOBJECT { KEY [530.1.25480335] - OBJECTTYPE List + OBJECTTYPE List // ListGUIAnalysisData CONTENTS { Quantorrow := false @@ -2668,7 +2711,7 @@ INFOOBJECT { KEY [530.1.25480340] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel4 CONTENTS { Columns @@ -2684,7 +2727,7 @@ Column internal[DataSetDataColumn] [530.1.25480393] { Header := 'Name' - Width := 100 + Width := 68 Subtotals := false Specific { @@ -2694,7 +2737,7 @@ Column internal[DataSetDataColumn] [530.1.25480394] { Header := 'Description' - Width := 100 + Width := 105 Subtotals := false Specific { @@ -2713,7 +2756,7 @@ INFOOBJECT { KEY [530.0.3531808] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // spTopRight CONTENTS { VISIBLE true @@ -2723,10 +2766,21 @@ INFOOBJECT { KEY [530.0.3532013] - OBJECTTYPE GUIAnalysisGrid + OBJECTTYPE GUIAnalysisGrid // AnalysisGrid CONTENTS { NEWFORMAT + COLUMN 91 50 + COLUMN 92 50 + COLUMN 93 50 + COLUMN 94 50 + COLUMN 95 50 + COLUMN 96 50 + COLUMN 97 50 + COLUMN 98 50 + COLUMN 99 50 + COLUMN 100 50 + COLUMN 101 50 COLUMN 102 50 COLUMN 103 50 } @@ -2740,7 +2794,7 @@ INFOOBJECT { KEY [530.0.3531803] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane2 CONTENTS { VISIBLE true @@ -2750,13 +2804,13 @@ INFOOBJECT { KEY [530.0.3531811] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // swBottom INFOOBJECTS { INFOOBJECT { KEY [530.0.3531812] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // spBottomLeft CONTENTS { Size 44.6569920844327 @@ -2767,13 +2821,13 @@ INFOOBJECT { KEY [530.0.3532136] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd4 INFOOBJECTS { INFOOBJECT { KEY [530.0.3532137] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane7 CONTENTS { VISIBLE true @@ -2783,13 +2837,13 @@ INFOOBJECT { KEY [530.0.3532138] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd5 INFOOBJECTS { INFOOBJECT { KEY [530.0.3532139] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane9 CONTENTS { VISIBLE true @@ -2799,7 +2853,7 @@ INFOOBJECT { KEY [530.0.3532140] - OBJECTTYPE List + OBJECTTYPE List // lstAttributes CONTENTS { Quantorrow := false @@ -2809,7 +2863,7 @@ INFOOBJECT { KEY [530.0.3532156] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2 CONTENTS { Columns @@ -2865,7 +2919,7 @@ INFOOBJECT { KEY [530.0.3532169] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane10 CONTENTS { VISIBLE true @@ -2875,7 +2929,7 @@ INFOOBJECT { KEY [530.0.3532170] - OBJECTTYPE List + OBJECTTYPE List // List3 CONTENTS { Quantorrow := false @@ -2885,7 +2939,7 @@ INFOOBJECT { KEY [530.0.3532175] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel3 CONTENTS { Columns @@ -2902,7 +2956,7 @@ Column internal[DataSetDataColumn] [514.0.499730] { Header := 'Name' - Width := 100 + Width := 68 Subtotals := false Specific { @@ -2912,7 +2966,7 @@ Column internal[DataSetDataColumn] [530.1.32701549] { Header := 'Description' - Width := 100 + Width := 105 Subtotals := false Specific { @@ -2922,7 +2976,7 @@ Column internal[DataSetDataColumn] [678.0.64301138] { Header := 'astype(UITypeDataMember).DataType.FullName' - Width := 100 + Width := 404 Subtotals := false Specific { @@ -2945,7 +2999,7 @@ INFOOBJECT { KEY [530.0.3532181] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane8 CONTENTS { VISIBLE true @@ -2955,13 +3009,13 @@ INFOOBJECT { KEY [530.1.8006303] - OBJECTTYPE SplitterWnd + OBJECTTYPE SplitterWnd // SplitterWnd1 INFOOBJECTS { INFOOBJECT { KEY [530.1.8006304] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane3 CONTENTS { VISIBLE true @@ -2970,7 +3024,7 @@ INFOOBJECT { KEY [530.1.8006305] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // SplitterPane4 CONTENTS { VISIBLE true @@ -2980,7 +3034,7 @@ INFOOBJECT { KEY [530.0.3532182] - OBJECTTYPE GUIAnalysisBarChart + OBJECTTYPE GUIAnalysisBarChart // AnalysisBarChart CONTENTS { LeftSize 207 @@ -2999,7 +3053,7 @@ INFOOBJECT { KEY [530.0.3531813] - OBJECTTYPE SplitterPane + OBJECTTYPE SplitterPane // spBottomRight CONTENTS { Size 55.3430079155673 @@ -3010,7 +3064,7 @@ INFOOBJECT { KEY [530.0.3531950] - OBJECTTYPE List + OBJECTTYPE List // List1 CONTENTS { Quantorrow := false @@ -3020,7 +3074,7 @@ INFOOBJECT { KEY [530.0.3531958] - OBJECTTYPE GUIDataSetLevel + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel1 CONTENTS { Columns @@ -3210,6 +3264,1891 @@ } } } + INFOOBJECT + { + KEY [414702.1.299084054] + SINGLEINSTANCE false + ID 'PeggingResult' + PARENTKEY [514.0.2180] + OBJECTTYPE Form // FormPeggingResult + CREATETYPE FormPeggingResult + CONTENTS + { + State := normal + (0,0,0,0) + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[4]Selection[FOCUS] + } + BASEINFOOBJECTS + { + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [414702.1.299084152] + OBJECTTYPE List // ListPeggingProductInSalesDemandBase + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [414702.1.299084219] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel641 + CONTENTS + { + Columns + { + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [414702.1.299300693] + { + Width := 197 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'SalesDemandBaseID [414702.1.294144483]' + } + } + Column internal[DataSetDataColumn] [414702.1.299300692] + { + Width := 83 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Quantity [414702.1.294748143]' + } + } + Column internal[DataSetDataColumn] [414702.1.299300694] + { + Width := 163 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'StartDate [414702.1.294179413]' + } + } + Column internal[DataSetDataColumn] [414702.1.299300695] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'StockingPointID [414702.1.294179269]' + } + } + } + } + Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="PeggingProductInSalesDemandBase Q414702_1_290710053">\n <GEBFiltering Key="@Default_Filter1" TargetType="PeggingProductInSalesDemandBase Q414702_1_290710053">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@SalesDemandBaseID1" ElementType="PeggingProductInSalesDemandBase Q414702_1_290710053" ValueType="String">\n <ColumnID>[414702.1.317561783]</ColumnID>\n <BaseName>SalesDemandBaseID</BaseName>\n <Name>SalesDemandBaseID</Name>\n <Title>SalesDemandBaseID</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>SalesDemandBaseID</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Quantity1" ElementType="PeggingProductInSalesDemandBase Q414702_1_290710053" ValueType="Real">\n <ColumnID>[414702.1.300710952]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@StartDate1" ElementType="PeggingProductInSalesDemandBase Q414702_1_290710053" ValueType="Date">\n <ColumnID>[414702.1.317561784]</ColumnID>\n <BaseName>StartDate</BaseName>\n <Name>StartDate</Name>\n <Title>StartDate</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>StartDate</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@StockingPointID1" ElementType="PeggingProductInSalesDemandBase Q414702_1_290710053" ValueType="String">\n <ColumnID>[414702.1.317561785]</ColumnID>\n <BaseName>StockingPointID</BaseName>\n <Name>StockingPointID</Name>\n <Title>StockingPointID</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>StockingPointID</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBFilter Key="@3">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@4" Column="@Quantity1">\n <ColumnID>[414702.1.300710952]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@5">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' + ColumnSort [414702.1.299300693] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [414702.1.273394023] + SINGLEINSTANCE false + ID 'Analysis GlobalOTDSOP' + PARENTKEY [514.0.2180] + OBJECTTYPE Form // frmStandardAnalysis633 + CREATETYPE frmStandardAnalysis633 + CONTENTS + { + State := normal + (0,0,0,0) + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[4]Selection[NONE] + } + BASEINFOOBJECTS + { + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531801] + OBJECTTYPE SplitterWnd // swTopMost + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531802] + OBJECTTYPE SplitterPane // SplitterPane1 + CONTENTS + { + Size 0 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531806] + OBJECTTYPE SplitterWnd // swTop + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531807] + OBJECTTYPE SplitterPane // spTopLeft + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532065] + OBJECTTYPE GUIAnalysis // Analysis + CONTENTS + { + START(0,0,0,0,false) + ANALYSIS(0,0,0,0,false,'Analysis1') + { + SOURCE 'Types' '[414702.1.290710093]' 0 + + GROUP 'NumberOfPlies' + NAME 'Analysis1' + } + ANALYSIS(0,0,0,0,false,'Analysis2') + { + SOURCE 'Analysis1' '0' 1 + N[0] + TRAVERSE 'AllChild' + NAME 'Analysis2' + } + COLUMNSETTINGS + { + CapacityAndSaleBudgeCompareItemRow + { + Columns + { + Visible + { + Column internal[DataSetDataColumn] [414702.1.272348160] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'RowNo [414384.0.829650683]' + } + } + Column internal[DataSetDataColumn] [414702.1.272348159] + { + Width := 78 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'PlaceOfProductionOfArray [414384.0.864360343]' + } + } + Column internal[DataSetDataColumn] [414702.1.272348158] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'BusinessType [414384.0.819696514]' + } + } + } + } + ColumnSort [414702.1.272348160] true false + } + CapacityAndSaleBudgeCompareItemRowProduct + { + Columns + { + Visible + { + Column internal[DataSetDataColumn] [414702.1.272348161] + { + Width := 272 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ProductCode [414384.0.819696603]' + } + } + } + } + ColumnSort [414702.1.272348161] true false + } + CapacityAndSaleBudgeChartElement + { + Columns + { + Visible + { + Column internal[DataSetDataColumn] [414702.1.276292160] + { + Width := 368 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'BusinessTypeOrPlaceOfProductionOfArray [414384.0.852466561]' + } + } + Column internal[DataSetDataColumn] [414702.1.276292162] + { + Width := 312 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'TimeStringAndScenarioName [414384.0.852466528]' + } + } + Column internal[DataSetDataColumn] [414702.1.276292161] + { + Width := 210 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Quantity [414384.0.852466538]' + } + } + } + } + ColumnSort [414702.1.276292160] true false + } + CapacityAndSaleBudgeCompareItemColumn + { + Columns + { + Visible + { + Column internal[DataSetDataColumn] [414702.1.286540437] + { + Width := 287 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ColumnName [414384.0.816630974]' + } + } + Column internal[DataSetDataColumn] [414702.1.286540438] + { + Width := 126 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ColumnNo [414384.0.829650696]' + } + } + Column internal[DataSetDataColumn] [414702.1.286540439] + { + Width := 191 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'TotalIdentification [414702.1.286051924]' + } + } + } + } + ColumnSort [414702.1.286540438] true false + } + PeggingResult + { + Columns + { + Visible + { + Column internal[DataSetDataColumn] [414702.1.301867879] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'FulfillmentQuantity [414702.1.294201082]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867880] + { + Width := 150 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'NumberOfPlies [414702.1.294145594]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867881] + { + Width := 157 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ProductID [414702.1.294201095]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867882] + { + Width := 110 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'StartDate [414702.1.294201062]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867883] + { + Width := 188 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'StockingPointID [414702.1.294201105]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867884] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'SupplyQuantity [414702.1.294201072]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867885] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'SupplyType [414702.1.294201052]' + } + } + } + } + ColumnSort [414702.1.301867885] false false + } + } + CURRENT 'Analysis2' + HOME 'Types' + FIXEDANALYSIS + { + } + } + } + INFOOBJECT + { + KEY [530.1.25480335] + OBJECTTYPE List // ListGUIAnalysisData + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.1.25480340] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel4 + CONTENTS + { + Columns + { + Definition := [530.1.25480345] + { + [530.1.25480393] + [530.1.25480394] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [530.1.25480393] + { + Header := 'Name' + Width := 68 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.2366]' + } + } + Column internal[DataSetDataColumn] [530.1.25480394] + { + Header := 'Description' + Width := 105 + Subtotals := false + Specific + { + DataPath := 'Description [1.2.1211]' + } + } + } + } + ColumnSort [530.1.25480393] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [530.0.3531808] + OBJECTTYPE SplitterPane // spTopRight + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532013] + OBJECTTYPE GUIAnalysisGrid // AnalysisGrid + CONTENTS + { + NEWFORMAT + COLUMN 95 50 + COLUMN 96 50 + COLUMN 97 50 + COLUMN 98 50 + COLUMN 99 50 + COLUMN 100 50 + COLUMN 101 50 + COLUMN 102 50 + COLUMN 103 50 + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [530.0.3531803] + OBJECTTYPE SplitterPane // SplitterPane2 + CONTENTS + { + Size 100 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531811] + OBJECTTYPE SplitterWnd // swBottom + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531812] + OBJECTTYPE SplitterPane // spBottomLeft + CONTENTS + { + Size 44.5645263827082 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532136] + OBJECTTYPE SplitterWnd // SplitterWnd4 + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532137] + OBJECTTYPE SplitterPane // SplitterPane7 + CONTENTS + { + Size 34.7701149425287 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532138] + OBJECTTYPE SplitterWnd // SplitterWnd5 + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532139] + OBJECTTYPE SplitterPane // SplitterPane9 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532140] + OBJECTTYPE List // lstAttributes + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532156] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2 + CONTENTS + { + Columns + { + Definition := [514.0.499727] + { + [514.0.499730] + [530.1.32701549] + [678.0.64301138] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [514.0.499730] + { + Header := 'Name' + Width := 68 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.34]' + } + } + Column internal[DataSetDataColumn] [530.1.32701549] + { + Header := 'Description' + Width := 105 + Subtotals := false + Specific + { + DataPath := 'Description [1.2.2564]' + } + } + Column internal[DataSetDataColumn] [678.0.64301138] + { + Header := 'astype(UITypeDataMember).DataType.FullName' + Width := 404 + Subtotals := false + Specific + { + DataPath := 'downcast(internal[UITypeDataMember]) [1.1.1409]|DataType [1.3.1182]|FullName [1.2.8615]' + } + } + } + } + ColumnSort [514.0.499730] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [530.0.3532169] + OBJECTTYPE SplitterPane // SplitterPane10 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532170] + OBJECTTYPE List // List3 + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532175] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel3 + CONTENTS + { + Columns + { + Definition := [514.0.499727] + { + [514.0.499730] + [530.1.32701549] + [678.0.64301138] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [514.0.499730] + { + Header := 'Name' + Width := 68 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.34]' + } + } + Column internal[DataSetDataColumn] [530.1.32701549] + { + Header := 'Description' + Width := 105 + Subtotals := false + Specific + { + DataPath := 'Description [1.2.2564]' + } + } + Column internal[DataSetDataColumn] [678.0.64301138] + { + Header := 'astype(UITypeDataMember).DataType.FullName' + Width := 404 + Subtotals := false + Specific + { + DataPath := 'downcast(internal[UITypeDataMember]) [1.1.1409]|DataType [1.3.1182]|FullName [1.2.8615]' + } + } + } + } + ColumnSort [514.0.499730] true false + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [530.0.3532181] + OBJECTTYPE SplitterPane // SplitterPane8 + CONTENTS + { + Size 65.2298850574713 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.1.8006303] + OBJECTTYPE SplitterWnd // SplitterWnd1 + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.1.8006304] + OBJECTTYPE SplitterPane // SplitterPane3 + CONTENTS + { + VISIBLE true + } + } + INFOOBJECT + { + KEY [530.1.8006305] + OBJECTTYPE SplitterPane // SplitterPane4 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3532182] + OBJECTTYPE GUIAnalysisBarChart // AnalysisBarChart + CONTENTS + { + LeftSize 257 + } + } + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [530.0.3531813] + OBJECTTYPE SplitterPane // spBottomRight + CONTENTS + { + Size 55.4354736172919 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531950] + OBJECTTYPE List // List1 + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [530.0.3531958] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel1 + CONTENTS + { + Columns + { + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [414702.1.301867879] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'FulfillmentQuantity [414702.1.294201082]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867880] + { + Width := 150 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'NumberOfPlies [414702.1.294145594]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867881] + { + Width := 157 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ProductID [414702.1.294201095]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867882] + { + Width := 110 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'StartDate [414702.1.294201062]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867883] + { + Width := 188 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'StockingPointID [414702.1.294201105]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867884] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'SupplyQuantity [414702.1.294201072]' + } + } + Column internal[DataSetDataColumn] [414702.1.301867885] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'SupplyType [414702.1.294201052]' + } + } + } + } + ColumnSort [414702.1.301867885] false false + } + } + } + } + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [107654.0.148565389] + SINGLEINSTANCE false + ID '鏃舵浠诲姟' + PARENTKEY [514.0.2180] + OBJECTTYPE Form // FormPeriodTasks + CREATETYPE FormPeriodTasks + CONTENTS + { + State := normal + (0,0,0,0) + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[3]Selection[NONE] + } + BASEINFOOBJECTS + { + BASEINFOOBJECT + { + KEY [107654.0.148565389] + OBJECTTYPE GUIContainerComponent // FormPeriodTasks + COMPONENTDATA + { + [107654.0.148565389]:[110880.4.1427962314]:[110880.4.1427962316]:[110880.4.1427968321]:[110880.4.1427968322]:[110880.4.1427969404]:[110880.4.1427969405]:[110880.4.1427973280]:[11766.0.1791753774]:[514.0.129466]:[104128.0.40995014]:[127710.1.1037824422] STR 'false' + [107654.0.148565389]:[110880.4.1427962314]:[110880.4.1427962316]:[110880.4.1427968321]:[110880.4.1427968322]:[110880.4.1427969404]:[110880.4.1427969405]:[110880.4.1427973280]:[11766.0.1791753774]:[514.0.129466]:[104128.0.40995014]:[127710.1.1037824123] STR 'false' + } + } + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427962314] + OBJECTTYPE SplitterWnd // SplitterWnd1 + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427962316] + OBJECTTYPE SplitterPane // SplitterPane1 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427968321] + OBJECTTYPE SplitterWnd // SplitterWnd2 + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427968322] + OBJECTTYPE SplitterPane // SplitterPane2 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427969404] + OBJECTTYPE SplitterWnd // SplitterWnd3 + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427969405] + OBJECTTYPE SplitterPane // SplitterPane4 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427973280] + OBJECTTYPE List // ListPeriodTask_MP + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [11766.0.1791753776] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelPeriodTask_MP + CONTENTS + { + Columns + { + Definition := [11766.0.1176668425] + { + [112884.0.420632428] + [11766.1.490571536] + [11766.1.490571537] + [11766.0.1176668437] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [112884.0.420632428] + { + Width := 195 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Process_MP [110880.2.1152117000]|Name [110702.0.510655046]' + } + } + Column internal[DataSetDataColumn] [11766.1.490571536] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'UnitPeriod [11766.0.881988410]|Start [101472.1.1929377045]' + } + } + Column internal[DataSetDataColumn] [11766.1.490571537] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'UnitPeriod [11766.0.881988410]|End [101472.1.1929377307]' + } + } + Column internal[DataSetDataColumn] [11766.0.1176668437] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'QuantityToProcess [11766.0.1140253578]' + } + } + Column internal[DataSetDataColumn] [414702.1.53972253] + { + Width := 175 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Key [1.2.81]' + AttributePathIdentifier := "StartType('external[PeriodTask_MP]') + Attribute([1.2.81])" + } + } + } + } + Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="PeriodTask_MP Q11766_0_874292114">\n <GEBFiltering Key="@Default_Filter1" TargetType="PeriodTask_MP Q11766_0_874292114">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@Process_MPName1" ElementType="PeriodTask_MP Q11766_0_874292114" ValueType="String">\n <ColumnID>[414702.1.317561778]</ColumnID>\n <BaseName>Process_MPName</BaseName>\n <Name>Process_MPName</Name>\n <Title>Name</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Process_MP.Name</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@UnitPeriodStart1" ElementType="PeriodTask_MP Q11766_0_874292114" ValueType="DateTime">\n <ColumnID>[414702.1.317561779]</ColumnID>\n <BaseName>UnitPeriodStart</BaseName>\n <Name>UnitPeriodStart</Name>\n <Title>Start</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>UnitPeriod.Start</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@UnitPeriodEnd1" ElementType="PeriodTask_MP Q11766_0_874292114" ValueType="DateTime">\n <ColumnID>[414702.1.317561780]</ColumnID>\n <BaseName>UnitPeriodEnd</BaseName>\n <Name>UnitPeriodEnd</Name>\n <Title>End</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>UnitPeriod.End</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@QuantityToProcess1" ElementType="PeriodTask_MP Q11766_0_874292114" ValueType="Real">\n <ColumnID>[414702.1.317561781]</ColumnID>\n <BaseName>QuantityToProcess</BaseName>\n <Name>QuantityToProcess</Name>\n <Title>QuantityToProcess</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>QuantityToProcess</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Key1" ElementType="PeriodTask_MP Q11766_0_874292114" ValueType="Key">\n <ColumnID>[414702.1.317561782]</ColumnID>\n <BaseName>Key</BaseName>\n <Name>Key</Name>\n <Title>Key</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Key</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBFilter Key="@3">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@4" Column="@Key1">\n <ColumnID>[414702.1.317561782]</ColumnID>\n <GEBFilterColumnMatch Key="@5">\n <Operation>=</Operation>\n <Enabled>true</Enabled>\n <RHSValue>\n <RHSFreeValue Key="@6">\n <StringValue></StringValue>\n <Value>Key:[414702.1.314706304]</Value>\n </RHSFreeValue>\n </RHSValue>\n </GEBFilterColumnMatch>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@7">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' + ColumnSort [112884.0.420632428] true false + ColumnSort [11766.1.490571536] true false + ColumnSort [11766.1.490571537] true false + ColumnSort [11766.0.1176668437] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [110880.4.1427969406] + OBJECTTYPE SplitterPane // SplitterPane5 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + } + } + } + } + } + } + INFOOBJECT + { + KEY [110880.4.1427968323] + OBJECTTYPE SplitterPane // SplitterPane3 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427969947] + OBJECTTYPE SplitterWnd // SplitterWnd4 + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427969948] + OBJECTTYPE SplitterPane // SplitterPane6 + CONTENTS + { + Size 31.659249841068 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427981196] + OBJECTTYPE List // ListInputInputDemand + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [11766.0.1791753785] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2 + CONTENTS + { + Columns + { + Definition := [11766.0.1025088210] + { + [11766.1.490215920] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [11766.1.490215920] + { + Width := 145 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Quantity [101320.0.110374989]' + } + } + Column internal[DataSetDataColumn] [414702.1.19001156] + { + Width := 259 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ProcessInput [110880.8.886850132]|downcast(OperationInput) [108486.1.157418918]|ProductID [113694.1.2134238792]' + AttributePathIdentifier := "StartType('external[DependentDemand]') + Node(R[110880.8.886850132], TT[108486.1.157418918], nondistinctive) + Attribute([113694.1.2134238792])" + } + } + } + } + ColumnSort [11766.1.490215920] true false + } + } + } + } + } + } + INFOOBJECT + { + KEY [110880.4.1427969949] + OBJECTTYPE SplitterPane // SplitterPane7 + CONTENTS + { + Size 68.340750158932 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [110880.4.1427985019] + OBJECTTYPE List // ListInputOutputSupply1 + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [11766.0.1791753792] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel3 + CONTENTS + { + Columns + { + Definition := [11766.0.1025296083] + { + [11766.0.1025296085] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [11766.0.1025296085] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Quantity [112884.1.1160030032]' + } + } + Column internal[DataSetDataColumn] [414702.1.19001111] + { + Width := 266 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'ProcessOutput [110880.8.945109647]|downcast(OperationOutput) [101318.0.90160276]|ProductID [113694.1.2134238792]' + AttributePathIdentifier := "StartType('external[NewSupply]') + Node(R[110880.8.945109647], TT[101318.0.90160276], nondistinctive) + Attribute([113694.1.2134238792])" + } + } + Column internal[DataSetDataColumn] [414702.1.55207096] + { + Width := 173 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'Start [108486.2.80172755]' + AttributePathIdentifier := "StartType('external[NewSupply]') + Attribute([108486.2.80172755])" + } + } + Column internal[DataSetDataColumn] [414702.1.55207125] + { + Width := 194 + SizedByUser := true + Subtotals := false + Specific + { + DataPath := 'AsProductionSupply [134266.1.5797947]|ProductInStockingPoint_MP [134266.1.5798354]|StockingPointID [108486.0.343831378]' + AttributePathIdentifier := "StartType('external[NewSupply]') + Node(R[134266.1.5797947], TT[134266.1.852406], distinctive) + Node(R[134266.1.5798354], TT[11660.0.485565014], distinctive) + Attribute([108486.0.343831378])" + } + } + Column internal[DataSetConfigurableColumn] [414702.1.305339206] + { + Header := 'PeriodKey' + Width := 243 + SizedByUser := true + Subtotals := false + Specific + { + Text := 'VALUE( object.PeriodTask_MP().Key() )' + Alignment := '榛樿' + } + } + } + } + Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="NewSupply Q11660_0_958335014">\n <GEBFiltering Key="@Default_Filter1" TargetType="NewSupply Q11660_0_958335014">\n <CurrentFilter>true</CurrentFilter>\n <Name>Default Filter</Name>\n <Active>true</Active>\n <IsFavorite>false</IsFavorite>\n <SortIndex>0</SortIndex>\n <GEBFilteringData Key="@2">\n <DefaultColumnPrefix></DefaultColumnPrefix>\n <ColumnPostfix></ColumnPostfix>\n <GEBSelectColumn Key="@Quantity1" ElementType="NewSupply Q11660_0_958335014" ValueType="Real">\n <ColumnID>[414702.1.317561786]</ColumnID>\n <BaseName>Quantity</BaseName>\n <Name>Quantity</Name>\n <Title>Quantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Quantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@OperationOutputProductID1" ElementType="NewSupply Q11660_0_958335014" ValueType="String">\n <ColumnID>[414702.1.317561787]</ColumnID>\n <BaseName>OperationOutputProductID</BaseName>\n <Name>OperationOutputProductID</Name>\n <Title>ProductID</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ProcessOutput.astype(OperationOutput).ProductID</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@Start1" ElementType="NewSupply Q11660_0_958335014" ValueType="DateTime">\n <ColumnID>[414702.1.317561788]</ColumnID>\n <BaseName>Start</BaseName>\n <Name>Start</Name>\n <Title>Start</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>Start</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBSelectColumn Key="@AsProductionSupplyProductInStockingPointInPeriodProductInStockingPoint_MPStockingPointID1" ElementType="NewSupply Q11660_0_958335014" ValueType="String">\n <ColumnID>[414702.1.317561789]</ColumnID>\n <BaseName>AsProductionSupplyProductInStockingPointInPeriodProductInStockingPoint_MPStockingPointID</BaseName>\n <Name>AsProductionSupplyProductInStockingPointInPeriodProductInStockingPoint_MPStockingPointID</Name>\n <Title>StockingPointID</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>AsProductionSupply.ProductInStockingPoint_MP.StockingPointID</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\n <GEBProcessColumn Key="@PeriodKey1" ElementType="NewSupply Q11660_0_958335014" ValueType="Key">\n <ColumnID>[414702.1.317561790]</ColumnID>\n <BaseName>PeriodKey</BaseName>\n <Name>PeriodKey</Name>\n <Title>PeriodKey</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <GEBDerivation Key="@3">\n <GEBDerivationBase Key="@4" TargetType="NewSupply Q11660_0_958335014">\n <ColumnID>[0.0.0]</ColumnID>\n <GEBNodeDerivation Key="@5">\n <Operation>FirstExpression</Operation>\n <Conditional>false</Conditional>\n <Multiple>false</Multiple>\n <AllowWildcards>false</AllowWildcards>\n <GEBNodeDerivationExpression Key="@6">\n <GEBNodeDerivationExpressionBody Key="@7">\n <ExpressionText>object.PeriodTask_MP().Key()</ExpressionText>\n <Converter>\n <ZeroConverter Key="@8">\n <IsStandard>true</IsStandard>\n <IsISO>false</IsISO>\n <IsCustom>false</IsCustom>\n <ConversionType>0</ConversionType>\n </ZeroConverter>\n </Converter>\n </GEBNodeDerivationExpressionBody>\n </GEBNodeDerivationExpression>\n </GEBNodeDerivation>\n </GEBDerivationBase>\n </GEBDerivation>\n </GEBProcessColumn>\n <GEBFilter Key="@9">\n <FreeFilterEnabled>true</FreeFilterEnabled>\n <GEBFilterColumn Key="@10" Column="@AsProductionSupplyProductInStockingPointInPeriodProductInStockingPoint_MPStockingPointID1">\n <ColumnID>[414702.1.317561789]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@11">\n <ExpressionText></ExpressionText>\n <Converter>\n </Converter>\n </GEBFreeFilterBody>\n </GEBFilter>\n </GEBFilteringData>\n </GEBFiltering>\n</GEBObjectsFilter>\n' + ColumnSort [414702.1.19001111] true false + ColumnSort [414702.1.55207096] true false + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [666.6.1042075] + SINGLEINSTANCE false + ID '杩囨护' + PARENTKEY [514.0.2180] + OBJECTTYPE Dialog // tlpFiltering + CREATETYPE tlpFiltering + CONTENTS + { + State := normal + (0,0,0,0) + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[5]Selection[NONE] + } + BASEINFOOBJECTS + { + BASEINFOOBJECT + { + KEY [666.6.1042075] + OBJECTTYPE GUIContainerComponent // tlpFiltering + COMPONENTDATA + { + [666.6.1042075]:[101180.0.423432963]:[101180.0.423434508]:[666.6.33523821]:[101180.0.674802547]:[100664.0.672641496] STR 'true' + [666.6.1042075]:[101180.0.423432963]:[101180.0.423439415]:[666.6.33523821]:[101180.0.674802547]:[100664.0.672641496] STR 'true' + } + } + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [101180.0.423434508] + OBJECTTYPE GUIComponent // dpGUIListFiltering + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634694330] + OBJECTTYPE SplitterWnd // SplitterWnd + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634694331] + OBJECTTYPE SplitterPane // SplitterPaneStoredFilters + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.681599437] + OBJECTTYPE List // ListStoredFilters + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.681599439] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2 + CONTENTS + { + Columns + { + Definition := [121918.0.881777301] + { + [121918.0.881787967] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [121918.0.881787967] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.5343]' + } + } + } + } + DataMemberSort 'SortIndex [1.2.7432]' true true + } + } + } + } + } + } + INFOOBJECT + { + KEY [100664.0.634694332] + OBJECTTYPE SplitterPane // SplitterPane1 + CONTENTS + { + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737763] + OBJECTTYPE SplitterWnd // SplitterWndI + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737764] + OBJECTTYPE SplitterPane // SplitPaneColumnBasedFilters + CONTENTS + { + Size 99.921052631579 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737766] + OBJECTTYPE Selection // selFilterColumn + CONTENTS + { + BoundValue 'Quantity' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737768] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel1 + CONTENTS + { + Columns + { + Definition := [666.6.33522193] + { + [666.6.36059183] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [666.6.36059183] + { + Header := 'Name' + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.3778]' + } + } + } + } + ColumnSort [666.6.36059183] true false + } + } + } + } + INFOOBJECT + { + KEY [101180.0.650773001] + OBJECTTYPE Selection // selRelationalValues + CONTENTS + { + BoundValue '=' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [101180.0.650773003] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel + CONTENTS + { + Columns + { + Definition := [666.6.37024730] + { + [101180.0.649255714] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [101180.0.649255714] + { + Header := 'x' + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Operation [1.2.3779]' + } + } + } + } + DataMemberSort 'Position [1.2.3780]' true true + } + } + } + } + INFOOBJECT + { + KEY [666.6.40803406] + OBJECTTYPE Selection // SelectionValues + CONTENTS + { + BoundValue '12' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [666.6.40803422] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel + CONTENTS + { + Columns + { + Definition := [101180.0.647865904] + { + [101180.0.647981465] + } + SubTotals := true + Visible + { + Column internal[RHSValueDataSetColumn] [101180.0.647981465] + { + Header := 'x' + Width := 100 + Subtotals := false + Specific + { + DataPath := 'RHSValue [1.3.3305]|StringValue [1.2.5531]' + } + } + } + } + DataMemberSort 'Position [1.2.3781]' true true + } + } + } + } + INFOOBJECT + { + KEY [100664.0.634737776] + OBJECTTYPE List // ListGEBUIFilterColumnMatches + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737791] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel4 + CONTENTS + { + Columns + { + Definition := [101180.0.647784541] + { + [101180.0.647785023] + [101180.0.648130649] + [101180.0.667481201] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [101180.0.647785023] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'GEBUIFilterColumn [1.3.3296]|Name [1.2.3778]' + } + } + Column internal[DataSetDataColumn] [101180.0.648130649] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'OperationDisplay [1.2.3770]' + } + } + Column internal[RHSValueDataSetColumn] [101180.0.667481201] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'RHSValue [1.3.4449]|StringValue [1.2.5531]' + } + } + } + } + ColumnSort [101180.0.647785023] true false + DataMemberSort 'Position [1.2.3820]' true true + } + } + } + } + } + } + INFOOBJECT + { + KEY [100664.0.634737792] + OBJECTTYPE SplitterPane // PaneFreeFilter + CONTENTS + { + VISIBLE false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [112950.0.657398972] + OBJECTTYPE CheckBox // chkEnabled + CONTENTS + { + Checkstate 1 + } + } + } + } + } + } + } + } + } + } + } + } + INFOOBJECT + { + KEY [101180.0.423439415] + OBJECTTYPE GUIComponent // dpGEBListFiltering + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634694330] + OBJECTTYPE SplitterWnd // SplitterWnd + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634694331] + OBJECTTYPE SplitterPane // SplitterPaneStoredFilters + CONTENTS + { + VISIBLE false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.681599437] + OBJECTTYPE List // ListStoredFilters + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.681599439] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2 + CONTENTS + { + Columns + { + Definition := [121918.0.881777301] + { + [121918.0.881787967] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [121918.0.881787967] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.5343]' + } + } + } + } + DataMemberSort 'SortIndex [1.2.7432]' true true + } + } + } + } + } + } + INFOOBJECT + { + KEY [100664.0.634694332] + OBJECTTYPE SplitterPane // SplitterPane1 + CONTENTS + { + Size 99.8686947373494 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737763] + OBJECTTYPE SplitterWnd // SplitterWndI + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737764] + OBJECTTYPE SplitterPane // SplitPaneColumnBasedFilters + CONTENTS + { + Size 99.921052631579 + VISIBLE true + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737766] + OBJECTTYPE Selection // selFilterColumn + CONTENTS + { + BoundValue '' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737768] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel1 + CONTENTS + { + Columns + { + Definition := [666.6.33522193] + { + [666.6.36059183] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [666.6.36059183] + { + Header := 'Name' + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Name [1.2.3778]' + } + } + } + } + ColumnSort [666.6.36059183] true false + } + } + } + } + INFOOBJECT + { + KEY [101180.0.650773001] + OBJECTTYPE Selection // selRelationalValues + CONTENTS + { + BoundValue '' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [101180.0.650773003] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel + CONTENTS + { + Columns + { + Definition := [666.6.37024730] + { + [101180.0.649255714] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [101180.0.649255714] + { + Header := 'x' + Width := 100 + Subtotals := false + Specific + { + DataPath := 'Operation [1.2.3779]' + } + } + } + } + DataMemberSort 'Position [1.2.3780]' true true + } + } + } + } + INFOOBJECT + { + KEY [666.6.40803406] + OBJECTTYPE Selection // SelectionValues + CONTENTS + { + BoundValue '' + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [666.6.40803422] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel + CONTENTS + { + Columns + { + Definition := [101180.0.647865904] + { + [101180.0.647981465] + } + SubTotals := true + Visible + { + Column internal[RHSValueDataSetColumn] [101180.0.647981465] + { + Header := 'x' + Width := 100 + Subtotals := false + Specific + { + DataPath := 'RHSValue [1.3.3305]|StringValue [1.2.5531]' + } + } + } + } + DataMemberSort 'Position [1.2.3781]' true true + } + } + } + } + INFOOBJECT + { + KEY [100664.0.634737776] + OBJECTTYPE List // ListGEBUIFilterColumnMatches + CONTENTS + { + Quantorrow := false + } + INFOOBJECTS + { + INFOOBJECT + { + KEY [100664.0.634737791] + OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel4 + CONTENTS + { + Columns + { + Definition := [101180.0.647784541] + { + [101180.0.647785023] + [101180.0.648130649] + [101180.0.667481201] + } + SubTotals := true + Visible + { + Column internal[DataSetDataColumn] [101180.0.647785023] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'GEBUIFilterColumn [1.3.3296]|Name [1.2.3778]' + } + } + Column internal[DataSetDataColumn] [101180.0.648130649] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'OperationDisplay [1.2.3770]' + } + } + Column internal[RHSValueDataSetColumn] [101180.0.667481201] + { + Width := 100 + Subtotals := false + Specific + { + DataPath := 'RHSValue [1.3.4449]|StringValue [1.2.5531]' + } + } + } + } + ColumnSort [101180.0.647785023] true false + DataMemberSort 'Position [1.2.3820]' true true + } + } + } + } + } + } + INFOOBJECT + { + KEY [100664.0.634737792] + OBJECTTYPE SplitterPane // PaneFreeFilter + CONTENTS + { + VISIBLE false + } + INFOOBJECTS + { + } + } + } + } + } + } + } + } + } + } + } + } } } } -- Gitblit v1.9.3