From dfa7a011f47399b1a083d020d9460f6801c9c98c Mon Sep 17 00:00:00 2001 From: hongji.li <hongji.a.li@capgemini.com> Date: 星期三, 01 十一月 2023 15:25:05 +0800 Subject: [PATCH] pegging结果分析优化 --- _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def | 15 + _Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl | 1 _Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl | 18 + _Main/BL/Type_PeggingResultGroup/_ROOT_Type_PeggingResultGroup.qbl | 9 _Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl | 5 _Main/BL/Type_PeggingResult/Attribute_ActualFulfillmentQuantity.qbl | 8 _Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl | 5 _Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick.def | 17 + _Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl | 6 _Main/BL/Type_PeggingResult/StaticMethod_CreateAllGroupChildRelation.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def | 2 _Main/BL/Type_PeggingResult/StaticMethod_Create.qbl | 18 _var/_Main/ProjSettings/MacroPlanner/Views/X_分析视图_[414702.1.50321581].vw | 306 ++++++++++++++------------- _Main/UI/MacroPlannerWebApp/Views/Pegging分析.vw | 153 +++++++++++-- _Main/BL/Type_PeggingResult/StaticMethod_CreateAllChildRelation.qbl | 17 + _Main/BL/Relations/Relation_PeggingResult_AllGroupChild_PeggingResult_AllGroupParent.qbl | 23 ++ _Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl | 26 +- _Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def | 18 + 19 files changed, 454 insertions(+), 202 deletions(-) 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/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 index 0d3c804..36ca7a2 100644 --- a/_Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl +++ b/_Main/BL/Type_PeggingResult/Attribute_FulfillmentQuantity.qbl @@ -3,5 +3,6 @@ Attribute FulfillmentQuantity { #keys: '3[414702.1.294201083][414702.1.294201082][414702.1.294201084]' + Description: '璁㈠崟鎵�闇�瑕佺殑鏁伴噺' ValueType: Real } diff --git a/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl b/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl index 2225ae7..35370aa 100644 --- a/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl +++ b/_Main/BL/Type_PeggingResult/StaticMethod_Create.qbl @@ -6,6 +6,7 @@ String stockingPointID, Date startDate, Real supplyQuantity, + Real actualFulfillmentQuantity, Real fulfillmentQuantity, String supplyType, Number numberOfPlies, @@ -15,14 +16,15 @@ TextBody: [* peggingResult := peggingProductInSalesDemandBase.PeggingResult( relnew, - ProductID := productID, - StockingPointID := stockingPointID, - StartDate := startDate, - SupplyQuantity := supplyQuantity, - FulfillmentQuantity := fulfillmentQuantity, - SupplyType := supplyType, - NumberOfPlies := numberOfPlies, - UnitOfMeasurementName := unitOfMeasurementName + 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 index 88e5695..b121c0d 100644 --- a/_Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl +++ b/_Main/BL/Type_PeggingResult/StaticMethod_CreateData.qbl @@ -17,10 +17,12 @@ 0, smp, fulfillmentQuantity, + fulfillmentQuantity, null( PeggingResult ) ); - - PeggingResult::SetAllChildRelation( ppisdb, null( PeggingResult ), 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 index cd9495b..6d10ac1 100644 --- a/_Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl +++ b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateInventorySupply.qbl @@ -4,8 +4,9 @@ PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, Number numberOfPlies, const InventorySupply is, + Real actualFulfillmentQuantity, Real fulfillmentQuantity, - PeggingResult peggingResult + PeggingResult parentPeggingResult ) { TextBody: @@ -13,15 +14,18 @@ //info( "渚涘簲绫诲瀷锛圛nventorySupply锛� ", "渚涘簲鏃堕棿锛�", is.Date().Format( "Y-M2-D2" ), " 渚涘簲閲忥細", is.Quantity(), // " 瀹為檯鐢ㄩ噺锛�", fulfillmentQuantity, " ", is.ProductInStockingPoint_MP().Name() ); pisp := is.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(); - PeggingResult::Create( peggingProductInSalesDemandBase, - pisp.ProductID(), - pisp.StockingPointID(), - is.Date(), - is.Quantity(), - fulfillmentQuantity, - "搴撳瓨渚涘簲", - numberOfPlies, - pisp.UnitOfMeasureName() - ); + 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 index 9ead81a..cc10732 100644 --- a/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl +++ b/_Main/BL/Type_PeggingResult/StaticMethod_GenerateNewSupply.qbl @@ -4,6 +4,7 @@ PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, Number numberOfPlies, const NewSupply ns, + Real actualFulfillmentQuantity, Real fulfillmentQuantity, PeggingResult parentPeggingResult ) @@ -14,7 +15,16 @@ pisp := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(); - childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, pisp.ProductID(), pisp.StockingPointID(), ns.Start().Date(), ns.Quantity(), fulfillmentQuantity, "", numberOfPlies, pisp.UnitOfMeasureName() ); + 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() ) { @@ -24,11 +34,12 @@ // 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, fulfillmentQuantity, childPeggingResult ); + PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult ); numberOfPlies--; } } @@ -42,10 +53,11 @@ // 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, fulfillmentQuantity, childPeggingResult ); + 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 index 562aa9d..3e6f64e 100644 --- a/_Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl +++ b/_Main/BL/Type_PeggingResult/StaticMethod_GeneratePeggingResult.qbl @@ -4,6 +4,7 @@ PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, Number numberOfPlies, const Supply_MP smp, + Real actualFulfillmentQuantity, Real fulfillmentQuantity, PeggingResult parentPeggingResult ) @@ -13,11 +14,11 @@ //info( "灞傛暟锛�", numberOfPlies ); ontype ( smp ) { NewSupply as ns : { - PeggingResult::GenerateNewSupply( peggingProductInSalesDemandBase, numberOfPlies, ns, fulfillmentQuantity, parentPeggingResult ); + PeggingResult::GenerateNewSupply( peggingProductInSalesDemandBase, numberOfPlies, ns, actualFulfillmentQuantity, fulfillmentQuantity, parentPeggingResult ); } InventorySupply as is : { - PeggingResult::GenerateInventorySupply( peggingProductInSalesDemandBase, numberOfPlies, is, fulfillmentQuantity, parentPeggingResult ); + 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 index 95fa4b3..caee0aa 100644 --- a/_Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl +++ b/_Main/BL/Type_PeggingResult/StaticMethod_SetAllChildRelation.qbl @@ -8,9 +8,8 @@ { TextBody: [* - if ( isnull( parentPeggingResult ) and isnull( childPeggingResult ) ) { - parentPeggingResult := select( peggingProductInSalesDemandBase, PeggingResult, tempPR, tempPR.NumberOfPlies() = 0 ); - childPeggingResult := select( peggingProductInSalesDemandBase, PeggingResult, tempPR, tempPR.NumberOfPlies() = 0 ); + if ( childPeggingResult.Child( relsize ) = 0 ) { + childPeggingResult.AllParent( relset, parentPeggingResult ); } traverse ( childPeggingResult, Child, pr ) { 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/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def index 8711654..f6acc5b 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingAllResult/Component_ListPeggingAllResult.def @@ -29,7 +29,7 @@ ] 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"}},{"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"}}]' + 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 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def index 183cc9b..6cd63a5 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_ListPeggingProduct_MP.def @@ -38,4 +38,22 @@ [ 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_listContextMenuPeggingProduct_MP.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def index d7a7d88..2a8c05a 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingProduct_MP/Component_listContextMenuPeggingProduct_MP.def @@ -3,6 +3,21 @@ { #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/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_FormPeggingResult/Component_ListPeggingResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def index 368e708..ea8def8 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPeggingResult/Component_ListPeggingResult.def @@ -30,7 +30,7 @@ ] 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"}},{"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"}}]' + 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' 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" index 3866fc3..cf84f9c 100644 --- "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" @@ -15,7 +15,7 @@ rowPosition: 1 rowSpan: 7 columnPosition: 1 - columnSpan: 4 + columnSpan: 3 } components { @@ -52,7 +52,7 @@ rowPosition: 8 rowSpan: 6 columnPosition: 1 - columnSpan: 4 + columnSpan: 3 } components { @@ -69,7 +69,7 @@ dataPath: 'SalesDemandBaseID' dataType: 'string' index: 0 - subtotals: '' + subtotals: 'count' width: 61 } column_StockingPointID @@ -79,7 +79,7 @@ dataType: 'string' index: 1 subtotals: '' - width: 122 + width: 95 } column_Quantity { @@ -88,7 +88,7 @@ dataType: 'real' index: 2 subtotals: '' - width: 59 + width: 51 } column_StartDate { @@ -97,7 +97,7 @@ dataType: 'date' index: 3 subtotals: '' - width: 94 + width: 76 } } } @@ -112,8 +112,8 @@ mode: 'open' rowPosition: 1 rowSpan: 13 - columnPosition: 5 - columnSpan: 8 + columnPosition: 4 + columnSpan: 9 } components { @@ -123,40 +123,58 @@ FormPeggingResult_DataSetLevelPeggingResult { groupDepth: -1 - sort: 'DESC:UnitOfMeasurementName' + 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: 0 + index: 1 subtotals: '' - width: 210 + width: 164 } column_StockingPointID { columnId: 'StockingPointID' dataPath: 'StockingPointID' dataType: 'string' - index: 1 + index: 2 subtotals: '' - width: 152 + width: 92 } column_StartDate { columnId: 'StartDate' dataPath: 'StartDate' dataType: 'date' - index: 2 + index: 3 subtotals: '' - width: 86 + width: 82 } column_SupplyQuantity { columnId: 'SupplyQuantity' dataPath: 'SupplyQuantity' dataType: 'real' - index: 3 + index: 4 + subtotals: '' + width: 86 + } + column_ActualFulfillmentQuantity + { + columnId: 'ActualFulfillmentQuantity' + dataPath: 'ActualFulfillmentQuantity' + dataType: 'real' + index: 5 subtotals: '' width: 97 } @@ -165,16 +183,16 @@ columnId: 'FulfillmentQuantity' dataPath: 'FulfillmentQuantity' dataType: 'real' - index: 4 + index: 6 subtotals: '' - width: 102 + width: 108 } column_SupplyType { columnId: 'SupplyType' dataPath: 'SupplyType' dataType: 'string' - index: 5 + index: 7 subtotals: '' width: 78 } @@ -183,9 +201,18 @@ columnId: 'UnitOfMeasurementName' dataPath: 'UnitOfMeasurementName' dataType: 'string' - index: 6 + index: 8 subtotals: '' - width: 150 + width: 50 + } + column_NumberOfPlies + { + columnId: 'NumberOfPlies' + dataPath: 'NumberOfPlies' + dataType: 'number' + index: 9 + subtotals: '' + width: 56 } } } @@ -203,7 +230,89 @@ columnPosition: 1 columnSpan: 12 } - components: null + 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 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 b087749..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-31T18:01:35' + UPDATEDATETIME '2023-11-01T11:42:14' UPDATEUSER 'quintiq/hongjli' - LASTACCESSDATE '2023-10-31' + LASTACCESSDATE '2023-11-01' VIEWSCOPE 0 } AUTHORIZATIONS @@ -53,24 +53,24 @@ { SETTINGS_MDS_WITH_FOLDER { - [414702.1.302283770]:LibInt_IntegratorProxy:/root:LibInt_IntegratorProxy - [414702.1.304531394]:SWF_CommunicationDataset:/root:SWF_CommunicationDataset - [414702.1.304526781]:SWF_WorkflowDataset:/root:SWF_WorkflowDataset - [414702.1.302279182]:LibDEF_DataBroker:/root:LibDEF_DataBroker - [414702.1.302274597]:LibDEF_DataRepository:/root:LibDEF_DataRepository - [414702.1.302264688]:DMF_ConvertorDataset:/root:DMF_ConvertorDataset - [414702.1.304540574]:LibMon_Monitor:/root:LibMon_Monitor - [414702.1.304535987]:LibUTF:/root:UTF - [414702.1.304550001]:Lib3DS_RootDataset:/root:Lib3DS_RootDataset - [414702.1.304560001]:KpiTracker:/root:KpiTracker - [414702.1.304612079]:MacroPlan:/root:MacroPlan - [414702.1.302270012]:MPDomainHandler:/root:MPDomainHandler - [414702.1.304570001]:MPSync:/root:MPSync - [414702.1.302288355]:ScenarioManager:/root:ScenarioManager - [414702.1.302269274]:LibSCIIntegrationInterface:/root:LibSCIIntegrationInterface - [414702.1.304508431]:GlobalOTDTable:/root:GlobalOTDTable - [414702.1.304517601]:GlobalOTDLog:/root:GlobalOTDLog - [414702.1.304513016]:GlobalOTDSOP:/root:GlobalOTDSOP + [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 } } } @@ -104,7 +104,7 @@ OBJECTTYPE ValueHolder // ValueHolderActiveMacroPlan CONTENTS { - Value '[414702.1.304617225]' + Value '[414702.1.314120528]' } } INFOOBJECT @@ -158,7 +158,7 @@ OBJECTTYPE ValueHolder // ValueHolderUserGroup CONTENTS { - Value ';Implementors;AppConfigurators;Administrator;Developer;AggregatedPlanning;Blending;CampaignPlanning;CapacitySmoothing;DatabaseIntegration;Development;Feedback;Groups;InventoryMixBalancing;InventorySpecifications;InventorySupplies;LotSizes;OptimizerBenchmarking;Pegging;ProductPlanningGanttChart;SafetyStockCalculation;SalesDemandPostponement;ShelfLife;SupplyChainMap;SupplySpecifications;TransportationPlanning;Workflow;Functionalities;Software;SOP;Cloud;OnPremise;SupplyChainDirector;SupplyPlanner;DemandPlanner;CollaborativeForecasting;SOAPServerUserGroup;Web_SupplyPlanning;Web_SupplyChainData;Web_CampaignPlanning;Web_Sales;Web_Development;Web;Web_ScenariosAndSettings;Web_Blending;Web_DemandPostponement;Web_Allocation;Web_Financials;Web_Feedbacks;Web_InventoryMixBalancing;Web_SafetyStockCalculation;Web_WorkFlowConfiguration;Web_MyActivities;Web_Integration;Web_OptimizerBenchmarking;Web_SupplyDashboard;Web_Optimizer;Web_LotSizes;Web_ShelfLife;Web_CapacitySmoothing;Web_Inventory;Web_SafetyStock;KpiTrackerAdmin;Web_ProductionPlan;Web_PurchasingPlan;Web_TripPlan;Web_Plan;Web_BlendingPlan;BusinessUnitOM;ProductionPlan;MRPPlanning' + 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 @@ -396,7 +396,7 @@ OBJECTTYPE ValueHolder // ValueHolderLastSyncDateTime CONTENTS { - Value '31-10-2023, 16:46:59' + Value '01-11-2023, 10:05:04' } } } @@ -409,7 +409,7 @@ OBJECTTYPE Toolbar // ToolbarSupplyChainPanel CONTENTS { - 'horizontal' '50' '336' + 'horizontal' '50' '320' } INFOOBJECTS { @@ -428,7 +428,7 @@ OBJECTTYPE ValueHolder // ValueHolderNavigationPanelSize CONTENTS { - Value '336' + Value '320' } } INFOOBJECT @@ -473,7 +473,7 @@ OBJECTTYPE ValueHolder // ValueHolderListSelections CONTENTS { - Value 'Products' + Value 'Stocking points and units' } } INFOOBJECT @@ -519,7 +519,7 @@ OBJECTTYPE SplitterPane // SplitterPaneEntities CONTENTS { - Size 0 + Size 100 VISIBLE true } INFOOBJECTS @@ -578,7 +578,7 @@ OBJECTTYPE SplitterPane // SplitterPaneProducts CONTENTS { - Size 100 + Size 0 VISIBLE true } INFOOBJECTS @@ -903,7 +903,7 @@ { State := normal (1344,0,192,928) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[0]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[0]Selection[NONE] } BASEINFOOBJECTS { @@ -1064,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 } } @@ -1326,97 +1326,6 @@ } 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[0]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 [108486.1.1170974339] SINGLEINSTANCE false ID 'Pegging' @@ -1427,7 +1336,7 @@ { State := normal (354,421,990,664) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[1]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[0]Selection[NONE] } BASEINFOOBJECTS { @@ -1616,8 +1525,8 @@ } } } - 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="@ImgHasValidPeggedQuantity1" ElementType="Demand_MP Q11660_0_96892572" ValueType="String">\n <ColumnID>[108486.2.847961073]</ColumnID>\n <BaseName>ImgHasValidPeggedQuantity</BaseName>\n <Name>ImgHasValidPeggedQuantity</Name>\n <Title>ImgHasValidPeggedQuantity</Title>\n <IsTarget>false</IsTarget>\n <NameHasBeenSet>false</NameHasBeenSet>\n <ColumnFinal>Fail</ColumnFinal>\n <AttributePathText>ImgHasValidPeggedQuantity</AttributePathText>\n <AttributePathIdentifier>\n </AttributePathIdentifier>\n </GEBSelectColumn>\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="@FulfilledQuantity1" ElementType="Demand_MP Q11660_0_96892572" ValueType="Real">\n <ColumnID>[108486.2.847961228]</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 <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="@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.GetDate()</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="@FulfilledQuantity1">\n <ColumnID>[108486.2.847961228]</ColumnID>\n </GEBFilterColumn>\n <GEBFreeFilterBody Key="@11">\n <ExpressionText></ExpressionText>\n <Converter>\n <ZeroConverter Key="@12">\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 [108486.1.2112140291] true false + 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 } } } @@ -1733,7 +1642,7 @@ } } } - 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' + 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 } @@ -2035,6 +1944,97 @@ } 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 '鍔犲伐璺緞' @@ -2045,7 +2045,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[2]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[1]Selection[NONE] } BASEINFOOBJECTS { @@ -2380,7 +2380,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[3]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[2]Selection[NONE] } BASEINFOOBJECTS { @@ -2398,7 +2398,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[4]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[3]Selection[FRONT] } BASEINFOOBJECTS { @@ -2462,7 +2462,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[1]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[2]Selection[NONE] } BASEINFOOBJECTS { @@ -2770,6 +2770,8 @@ CONTENTS { NEWFORMAT + COLUMN 91 50 + COLUMN 92 50 COLUMN 93 50 COLUMN 94 50 COLUMN 95 50 @@ -3274,7 +3276,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[3]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[4]Selection[FOCUS] } BASEINFOOBJECTS { @@ -3302,22 +3304,24 @@ SubTotals := true Visible { - Column internal[DataSetDataColumn] [414702.1.299300692] - { - Width := 100 - Subtotals := false - Specific - { - DataPath := 'Quantity [414702.1.294748143]' - } - } Column internal[DataSetDataColumn] [414702.1.299300693] { - Width := 100 + 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] @@ -3341,8 +3345,8 @@ } } } - 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="@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="@SalesDemandBaseID1" ElementType="PeggingProductInSalesDemandBase Q414702_1_290710053" ValueType="String">\n <ColumnID>[414702.1.305339221]</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="@StartDate1" ElementType="PeggingProductInSalesDemandBase Q414702_1_290710053" ValueType="Date">\n <ColumnID>[414702.1.305339222]</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.305339223]</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.299300694] true false + 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 } } } @@ -3361,7 +3365,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[5]Selection[FRONT] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[4]Selection[NONE] } BASEINFOOBJECTS { @@ -3637,7 +3641,7 @@ } } } - ColumnSort [414702.1.301867880] true false + ColumnSort [414702.1.301867885] false false } } CURRENT 'Analysis2' @@ -3719,6 +3723,8 @@ CONTENTS { NEWFORMAT + COLUMN 95 50 + COLUMN 96 50 COLUMN 97 50 COLUMN 98 50 COLUMN 99 50 @@ -4097,7 +4103,7 @@ } } } - ColumnSort [414702.1.301867880] true false + ColumnSort [414702.1.301867885] false false } } } @@ -4124,7 +4130,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[2]Selection[FOCUS] + DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4484;]TabIdx[3]Selection[NONE] } BASEINFOOBJECTS { @@ -4268,6 +4274,7 @@ } } } + 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 @@ -4476,6 +4483,7 @@ } } } + 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 } @@ -4508,7 +4516,7 @@ { State := normal (0,0,0,0) - DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[6]Selection[NONE] + DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5516;]TabIdx[5]Selection[NONE] } BASEINFOOBJECTS { @@ -4623,7 +4631,7 @@ OBJECTTYPE Selection // selFilterColumn CONTENTS { - BoundValue 'Key' + BoundValue 'Quantity' } INFOOBJECTS { @@ -4707,7 +4715,7 @@ OBJECTTYPE Selection // SelectionValues CONTENTS { - BoundValue '[414702.1.304548259]' + BoundValue '12' } INFOOBJECTS { -- Gitblit v1.9.3