From bc27afe76dc7bfbb63c8d078d546b97746ebddde Mon Sep 17 00:00:00 2001 From: yypsybs <yypsybs@foxmail.com> Date: 星期二, 19 九月 2023 11:49:22 +0800 Subject: [PATCH] 年度预算产销复盘填数据 --- _Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl | 5 _Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInYear.qbl | 15 + _Main/BL/Type_CapacityAndSaleBudge/Method_GetSaleAmountInYear.qbl | 15 + _Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/Attribute_ColumnNo.qbl | 7 _Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByYear.qbl | 20 ++ _Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByMonth.qbl | 22 ++ _Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByYear.qbl | 20 ++ _Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl | 75 ++++++--- _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def | 1 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def | 1 _Main/BL/Type_PRData/StaticMethod_TestData.qbl | 2 _Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByYear.qbl | 20 ++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixeditorContextMenuCapacityAndSaleBudgeCompare.def | 10 + _Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl | 20 ++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def | 98 ++++++++++++ /dev/null | 7 _Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Method_GetProductCodes.qbl | 10 + _Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByMonth.qbl | 22 ++ _Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl | 21 ++ _Main/BL/Type_PRData/Method_DoCall.qbl | 4 _Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowNo.qbl | 7 _Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByMonth.qbl | 22 ++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixEditorActionBarPageCapacityAndSaleBudgeCompare.def | 10 + 23 files changed, 399 insertions(+), 35 deletions(-) diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl index a2327e4..07afbdf 100644 --- a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl +++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManag.qbl @@ -3,8 +3,11 @@ Relation CapacityAndSaleBudgeCompareItemColumn_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeCompareItemColumn { #keys: '1[414384.0.816631032]' - DefaultRelationStrategy + ProceduralSequenceRelationStrategy { + #keys: '13[0.0.0][414384.0.827659683][414384.0.827659677][414384.0.827659684][414384.0.827659678][414384.0.827659685][414384.0.827659679][414384.0.827659686][414384.0.827659680][414384.0.827659687][414384.0.827659681][414384.0.827659688][414384.0.827659682]' + SequenceElementSuffix: 'ColumnInManager' + SequenceSuffix: 'ColumnInManager' } RelationSide.LeftSide ScenarioManager { diff --git a/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInYear.qbl b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInYear.qbl new file mode 100644 index 0000000..561b9d9 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInYear.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +Method GetCapacityInSheetInYear () as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := 0.0; + for( i := 1; i <= 12; i := i + 1 ) { + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]i ); + result := result + field.GetReal( this ); + } + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/Method_GetSaleAmountInYear.qbl b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetSaleAmountInYear.qbl new file mode 100644 index 0000000..04efa9c --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetSaleAmountInYear.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +Method GetSaleAmountInYear () as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := 0.0; + for( i := 1; i <= 12; i := i + 1 ) { + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "SaleAmountInMonth" + [String]i ); + result := result + field.GetReal( this ); + } + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByMonth.qbl b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByMonth.qbl new file mode 100644 index 0000000..be9cd98 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByMonth.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSaleByMonth ( + Strings productNo, + GlobalOTDTable parent, + Number yearNo, + Number monthNo +) as Real +{ + Description: '閿�鍞锛圵锛�' + TextBody: + [* + // yypsybs Sep-18-2023 (created) + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "SaleAmountInMonth" + [String]monthNo ); + value := sum( parent, + CapacityAndSaleBudge, + item, + productNo.Find( item.ProductCode() ) > -1, + field.GetReal( item ) ); + return value; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByYear.qbl b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByYear.qbl new file mode 100644 index 0000000..ef150ed --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByYear.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSaleByYear ( + Strings productNo, + GlobalOTDTable parent, + Number yearNo +) as Real +{ + Description: '閿�鍞锛圵锛�' + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := sum( parent, + CapacityAndSaleBudge, + item, + productNo.Find( item.ProductCode() ) > -1, + item.GetSaleAmountInYear() ); + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByMonth.qbl b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByMonth.qbl new file mode 100644 index 0000000..35ab669 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByMonth.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSheetByMonth ( + Strings productNo, + GlobalOTDTable parent, + Number yearNo, + Number monthNo +) as Real +{ + Description: '浜ц兘-瀹炴暟澶у紶' + TextBody: + [* + // yypsybs Sep-18-2023 (created) + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]monthNo ); + value := sum( parent, + CapacityAndSaleBudge, + item, + productNo.Find( item.ProductCode() ) > -1, + field.GetReal( item ) ); + return value; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByYear.qbl b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByYear.qbl new file mode 100644 index 0000000..997d801 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByYear.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSheetByYear ( + Strings productNo, + GlobalOTDTable parent, + Number yearNo +) as Real +{ + Description: '浜ц兘 - 瀹炴暟澶у紶' + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := sum( parent, + CapacityAndSaleBudge, + item, + productNo.Find( item.ProductCode() ) > -1, + item.GetCapacityInSheetInYear() ); + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/Attribute_ColumnNo.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/Attribute_ColumnNo.qbl new file mode 100644 index 0000000..5e047a1 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/Attribute_ColumnNo.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ColumnNo +{ + #keys: '3[414384.0.829650697][414384.0.829650696][414384.0.829650698]' + ValueType: Number +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowName.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowName.qbl deleted file mode 100644 index 296ffa6..0000000 --- a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowName.qbl +++ /dev/null @@ -1,7 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -Attribute RowName -{ - #keys: '3[414384.0.816630960][414384.0.816630959][414384.0.816630961]' - ValueType: String -} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowNo.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowNo.qbl new file mode 100644 index 0000000..28babc0 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Attribute_RowNo.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute RowNo +{ + #keys: '3[414384.0.829650684][414384.0.829650683][414384.0.829650685]' + ValueType: Number +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Method_GetProductCodes.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Method_GetProductCodes.qbl new file mode 100644 index 0000000..a756994 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/Method_GetProductCodes.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#parent: #root +Method GetProductCodes () as owning Strings +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + return selectuniquevalues( this, CapacityAndSaleBudgeCompareItemRowProduct, item, item.ProductCode() ); + *] +} diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl new file mode 100644 index 0000000..f289073 --- /dev/null +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetByMonth ( + Strings productCodes, + MacroPlan parent, + Number monthNo, + Number yearNo +) as Real +{ + Description: 'todo changeParent' + TextBody: + [* + // yypsybs Sep-19-2023 (created) + value := sum( parent, + MappingForecast, + item, + productCodes.Find( item.ProductID() ) > -1 and yearNo = item.StartDate().Year() and monthNo = item.StartDate().Month(), + item.Price() * item.Quantity() ); + return value; + *] +} diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl new file mode 100644 index 0000000..ddf0484 --- /dev/null +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetByYear ( + Strings productCodes, + MacroPlan parent, + Number yearNo +) as Real +{ + Description: 'todo changeParent' + TextBody: + [* + // yypsybs Sep-19-2023 (created) + value := sum( parent, + MappingForecast, + item, + productCodes.Find( item.ProductID() ) > -1 and yearNo = item.StartDate().Year(), + item.Price() * item.Quantity() ); + return value; + *] +} diff --git a/_Main/BL/Type_PRData/Method_DoCall.qbl b/_Main/BL/Type_PRData/Method_DoCall.qbl index 9866803..9c99344 100644 --- a/_Main/BL/Type_PRData/Method_DoCall.qbl +++ b/_Main/BL/Type_PRData/Method_DoCall.qbl @@ -49,10 +49,10 @@ result.ReceiveTime( DateTime::Now() ); // 涓昏褰曚慨鏀� - result.SendStatus( "T" ); + result.SendStatus( "宸插彂閫�" ); result.ReleaseBy( callBy ); result.SendTime( DateTime::Now() ); - this.SendStatus( "T" ); + this.SendStatus( "宸插彂閫�" ); this.SendTIme( DateTime::Now() ); this.SendBy( callBy ); diff --git a/_Main/BL/Type_PRData/StaticMethod_TestData.qbl b/_Main/BL/Type_PRData/StaticMethod_TestData.qbl index c70fa0d..0cbffa7 100644 --- a/_Main/BL/Type_PRData/StaticMethod_TestData.qbl +++ b/_Main/BL/Type_PRData/StaticMethod_TestData.qbl @@ -21,7 +21,7 @@ Number::Random( 9, 12 ), Number::Random( 13, 28 ) ), DataID := [String]Number::Random( 1, Number::MaxNumber() ), - SendStatus := ifexpr( Number::Random( 1, 5 ) = 1, "T", "" ) ); + SendStatus := ifexpr( Number::Random( 1, 5 ) = 1, "宸插彂閫�", "" ) ); } } *] diff --git a/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByMonth.qbl b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByMonth.qbl new file mode 100644 index 0000000..1f3fc6a --- /dev/null +++ b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByMonth.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetNewSupplyByMonth ( + Strings productNo, + MacroPlan macroPlan, + Number yearNo, + Number monthNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := sum( macroPlan, + Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, + item, + productNo.Find( item.ProductInStockingPoint_MP().Product_MP().ID() ) > -1 + and item.Period_MP().StartDate().Year() = yearNo + and item.Period_MP().StartDate().Month() = monthNo, + item.NewSupplyQuantity() ); + return result; + *] +} diff --git a/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByYear.qbl b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByYear.qbl new file mode 100644 index 0000000..4759b98 --- /dev/null +++ b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByYear.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetNewSupplyByYear ( + Strings productNo, + MacroPlan macroPlan, + Number yearNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := sum( macroPlan, + Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, + item, + productNo.Find( item.ProductInStockingPoint_MP().Product_MP().ID() ) > -1 + and item.Period_MP().StartDate().Year() = yearNo, + item.NewSupplyQuantity() ); + return result; + *] +} diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl index 1c3a3e5..7451626 100644 --- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl +++ b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl @@ -6,10 +6,11 @@ CapacityAndSaleBudgeFilterYears years, CapacityAndSaleBudgeFilterMonths months, MPSync mpSync, + GlobalOTDTable otdTable, MacroPlan mappingParent ) { - Description: 'todo : mappingParent鏀逛负mpSync' + Description: 'todo : mappingParent鏀逛负mpSync, random鍒犱簡' TextBody: [* // yypsybs Sep-18-2023 (created) @@ -77,15 +78,19 @@ if( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) { // 鍘嗗彶鏁版嵁 traverse( months, Elements, month ) { - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + "-" + [String]month.MonthNo() + "-骞村害棰勭畻" ); + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + "-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := CapacityAndSaleBudge::GetSheetByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() ); + cellReal := Real::Random( 1.0, 999.0 ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + "-total-骞村害棰勭畻" ); + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-total-骞村害棰勭畻" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := CapacityAndSaleBudge::GetSheetByYear( row.GetProductCodes(), otdTable, DateTime::Now().Year() ); + cellReal := Real::Random( 1.0, 999.0 ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } // S&OP鏁版嵁 @@ -93,16 +98,20 @@ traverse( macroPlans, Elements, macroPlan ) { traverse( months, Elements, month ) { columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, - "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "-" + [String]month.MonthNo() + "-" + macroPlan.ScenarioName() ); + "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() ); + cellReal := Real::Random( 1.0, 999.0 ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, - "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "-total-" + macroPlan.ScenarioName() ); + "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() ); + cellReal := Real::Random( 1.0, 999.0 ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } @@ -113,30 +122,36 @@ if( CapacityAndSaleBudgeFilterItem::Contains( items, "閿�鍞" ) ) { // 鍘嗗彶鏁版嵁 traverse( months, Elements, month ) { - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + "-" + [String]month.MonthNo() + "-骞村害棰勭畻" ); + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + "-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := CapacityAndSaleBudge::GetSaleByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() ); + cellReal := Real::Random( 1.0, 999.0 ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + "-total-骞村害棰勭畻" ); + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-total-骞村害棰勭畻" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := CapacityAndSaleBudge::GetSaleByYear( row.GetProductCodes(), otdTable, DateTime::Now().Year() ); + cellReal := Real::Random( 1.0, 999.0 ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } // S&OP鏁版嵁 traverse( years, Elements, year ) { traverse( macroPlans, Elements, macroPlan ) { traverse( months, Elements, month ) { - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "-" + [String]month.MonthNo() + "-" + macroPlan.ScenarioName() ); + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := MappingForecast::GetByMonth( row.GetProductCodes(), mappingParent, 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() ); + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cellReal := MappingForecast::GetByYear( row.GetProductCodes(), mappingParent, year.YearNo() ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } @@ -148,14 +163,14 @@ // 鍘嗗彶鏁版嵁 columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-骞村害棰勭畻" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + 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() ); + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } @@ -166,20 +181,32 @@ // 鍘嗗彶鏁版嵁 columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-骞村害棰勭畻" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + 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() ); + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�" ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 100 ) ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } } - + // 璁剧疆rowNo鍜宑olumnNo + info( "set rowNo and columnNo" ); + rowNo := 1; + rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.BusinessType() + "_" + item.OrgCode() ); + traverse( rowSorted, Elements, item ) { + item.RowNo( rowNo ); + rowNo := rowNo + 1; + } + columnNo := 1; + traverse( this, CapacityAndSaleBudgeCompareItemColumn, item ) { + item.ColumnNo( columnNo ); + columnNo := columnNo + 1; + } info( "done" ); *] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def new file mode 100644 index 0000000..db394b0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def @@ -0,0 +1,98 @@ +Quintiq file version 2.0 +Component MatrixEditorCapacityAndSaleBudgeCompare +{ + #keys: '[414384.0.828942477]' + BaseType: 'WebMatrixEditor' + Children: + [ + Component MatrixEditorCellCapacityAndSaleBudgeCompare + { + #keys: '[414384.0.828942478]' + BaseType: 'WebMatrixEditorCell' + Children: + [ + Component DataExtractorCapacityAndSaleBudgeCompare + { + #keys: '[414384.0.828942479]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'ScenarioManager' + Source: 'ScenarioManager' + Taborder: 0 + Transformation: 'CapacityAndSaleBudgeCompareItemColumn.CapacityAndSaleBudgeCompareItemCell' + ] + } + ] + Properties: + [ + Attributes: 'CellContent' + Column: 'CapacityAndSaleBudgeCompareItemColumn' + Row: 'CapacityAndSaleBudgeCompareItemRow' + Taborder: 0 + ] + } + Component MatrixEditorRowsCapacityAndSaleBudgeCompare + { + #keys: '[414384.0.828942482]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractor385 + { + #keys: '[414384.0.828942483]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'ScenarioManager' + Source: 'ScenarioManager' + Taborder: 0 + Transformation: 'CapacityAndSaleBudgeCompareItemRow' + ] + } + ] + Properties: + [ + Legend: 'RowNo' + SortCriteria: 'RowNo' + Taborder: 1 + ] + } + Component MatrixEditorColumnsCapacityAndSaleBudgeCompare + { + #keys: '[414384.0.828942486]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractor224 + { + #keys: '[414384.0.828942487]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'ScenarioManager' + Source: 'ScenarioManager' + Taborder: 0 + Transformation: 'CapacityAndSaleBudgeCompareItemColumn' + ] + } + ] + Properties: + [ + Legend: 'ColumnName' + SortCriteria: 'ColumnNo' + Taborder: 2 + ] + } + #child: matrixEditorActionBarPageCapacityAndSaleBudgeCompare + #child: matrixeditorContextMenuCapacityAndSaleBudgeCompare + ] + Properties: + [ + Columns: 'MatrixEditorColumnsCapacityAndSaleBudgeCompare' + ContextMenu: 'matrixeditorContextMenuCapacityAndSaleBudgeCompare' + Editable: false + Rows: 'MatrixEditorRowsCapacityAndSaleBudgeCompare' + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixEditorActionBarPageCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixEditorActionBarPageCapacityAndSaleBudgeCompare.def new file mode 100644 index 0000000..4311894 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixEditorActionBarPageCapacityAndSaleBudgeCompare.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixEditorActionBarPageCapacityAndSaleBudgeCompare +{ + #keys: '[414384.0.828942490]' + BaseType: 'matrixEditorActionBarPage' + Properties: + [ + Taborder: 3 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixeditorContextMenuCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixeditorContextMenuCapacityAndSaleBudgeCompare.def new file mode 100644 index 0000000..24036f0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_matrixeditorContextMenuCapacityAndSaleBudgeCompare.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixeditorContextMenuCapacityAndSaleBudgeCompare +{ + #keys: '[414384.0.828942493]' + BaseType: 'matrixeditorContextMenu' + Properties: + [ + Taborder: 4 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def index 1309dca..33f805e 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def @@ -15,6 +15,7 @@ DataHolderCapacityAndSaleBudgeFilterYear.Data(), DataHolderCapacityAndSaleBudgeFilterMonth.Data(), MPSync, + GlobalOTDTable, MacroPlan ); *] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def index 499f57c..ec18fe9 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def @@ -17,6 +17,7 @@ Taborder: 0 ] } + #child: MatrixEditorCapacityAndSaleBudgeCompare ] Properties: [ -- Gitblit v1.9.3