From 8fe535effe8ad184a82e565c3c066a94a8525606 Mon Sep 17 00:00:00 2001 From: hongji.li <hongji.a.li@capgemini.com> Date: 星期三, 01 十一月 2023 17:44:53 +0800 Subject: [PATCH] 产能分配Bug fix --- _Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl | 10 _var/_Main/Data/.keep | 0 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl | 30 ++++ _Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl | 2 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl | 28 ++++ _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl | 28 ++++ _Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def | 6 _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl | 25 +++ _Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl | 30 ++++ _Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl | 243 +++++----------------------------- 11 files changed, 194 insertions(+), 212 deletions(-) diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl index 571fce9..f201682 100644 --- a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl @@ -2,7 +2,7 @@ #parent: #root EDIBroker GlobalOTDTable_CAR_Export { - MDSDefinition: GlobalOTDTable + MDSDefinition: GlobalOTDSOP TimeZone: 'ACT' UseOSTimeZone: false EDIModelLink.Source Source13 diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl index 14045dd..1b8028f 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl @@ -1,12 +1,12 @@ Quintiq file version 2.0 #parent: #root StaticMethod Export ( - GlobalOTDTable globalOTDTable + GlobalOTDSOP globalOTDSOP ) as BinaryValue { TextBody: [* - binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); + binaryData := globalOTDSOP.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); return binaryData.AsBinaryValue(); *] diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl new file mode 100644 index 0000000..51e9eb4 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl @@ -0,0 +1,25 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateData ( + const GlobalOTDTable globalOTDTable, + GlobalOTDSOP this +) +{ + TextBody: + [* + traverse ( globalOTDTable, Global_MappingAnnualBudgetData, gmabd ) { + productCode := gmabd.ProductID(); + row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() ); + CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode ); + } + + columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" ); + columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" ); + traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { + cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl new file mode 100644 index 0000000..da29213 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreatePanelAllocationBudget ( + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year, + const GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { + total := 0.0; + traverse ( months, Elements, m ) { + columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻"; + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); + cellReal := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), globalOTDTable, DateTime::Now().Year(), m.MonthNo() ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); + total := total + cellReal; + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); + columnYear.TotalIdentification( year.YearNo() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl new file mode 100644 index 0000000..4cf1bf3 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreatePanelAllocationByScenario ( + MacroPlans macroPlans, + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year +) +{ + TextBody: + [* + traverse ( macroPlans, Elements, mp ) { + traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { + total := 0.0; + traverse ( months, Elements, m ) { + columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName(); + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); + cellReal := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); + total := total + cellReal; + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); + columnYear.TotalIdentification( year.YearNo() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl new file mode 100644 index 0000000..6741062 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateSalesVolume ( + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year, + const GlobalOTDTable globalOTDTable +) +{ + TextBody: + [* + traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { + total := 0.0; + traverse ( months, Elements, m ) { + columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻"; + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); + cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), globalOTDTable, year.YearNo(), m.MonthNo() ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); + total := total + cellReal; + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); + columnYear.TotalIdentification( year.YearNo() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl new file mode 100644 index 0000000..4335178 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateSalesVolumeByScenario ( + MacroPlans macroPlans, + GlobalOTDSOP this, + CapacityAndSaleBudgeFilterMonths months, + CapacityAndSaleBudgeFilterYear year +) +{ + TextBody: + [* + traverse ( macroPlans, Elements, mp ) { + traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { + total := 0.0; + traverse ( months, Elements, m ) { + columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName(); + columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); + cellReal := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); + cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); + total := total + cellReal; + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() ); + cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); + columnYear.TotalIdentification( year.YearNo() ); + cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); + } + } + *] +} diff --git a/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl b/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl index 2d3b108..ac48151 100644 --- a/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl +++ b/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl @@ -12,11 +12,11 @@ // yypsybs Sep-18-2023 (created) result := sum( macroPlan, Product_MP.SalesDemand, - item, - item.istype( Forecast ) and productNo.Find( item.ProductID() ) > -1 - and item.StartDate().Year() = yearNo - and item.StartDate().Month() = monthNo, - item.FulfilledQuantity() * item.Price() ); + tempSD, + productNo.Find( tempSD.ProductID() ) > -1 + and tempSD.StartDate().Year() = yearNo + and tempSD.StartDate().Month() = monthNo, + tempSD.FulfilledQuantity() * tempSD.Price() ); return result; *] } diff --git a/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl index 0ba67ec..8b53f33 100644 --- a/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl +++ b/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl @@ -5,13 +5,12 @@ CapacityAndSaleBudgeFilterItems items, CapacityAndSaleBudgeFilterYears years, CapacityAndSaleBudgeFilterMonths months, - const GlobalOTDTable otdTable + const GlobalOTDTable globalOTDTable ) { Description: 'todo : mappingParent鏀逛负mpSync, random鍒犱簡' TextBody: [* - // ====涓嶉�夋椂榛樿鍏ㄩ��==== if ( years.Size() = 0 ) { years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() ); } @@ -22,219 +21,57 @@ this.CapacityAndSaleBudgeCompareItemRow( relflush ); this.CapacityAndSaleBudgeCompareItemColumn( relflush ); - // ====姹囨�绘墍鏈夊嚭鐜扮殑浜у搧==== - targetglobal_MappingAnnualBudgetData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true ); + CapacityAndSaleBudgeCompareItemCell::CreateData( globalOTDTable, this ); - traverse ( targetglobal_MappingAnnualBudgetData, Elements, gmabd ) { - productCode := gmabd.ProductID(); - // Global_MappingOperationBOM::CreateTestData( otdTable, "浜嬩笟閮�" + [String](productCode.Length() mod 3), "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4), productCode ); - // boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode ); - // if( boms.Size() > 0 ) { - // bom := boms.First(); - // businessType := bom.BusinessType(); - // placeOfProductionOfArray := bom.OrganCode(); - // 鐩稿悓闈㈡澘鍩哄湴鍜屼簨涓氶儴鐨勬斁涓�琛� - row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() ); - // 璁板綍姣忚鍖呭惈鍝簺product - CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode ); - // } else { - // debuginfo( "no boms for product : " + productCode ); - // } - } - - // ====浠庡乏鍚戝彸鐢熸垚鍒楀ご涓庡唴瀹�==== - // 浜嬩笟閮紝闈㈡澘鍩哄湴 - columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" ); - columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" ); - traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - - // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 (sheets) - // 鏍煎紡锛� 闈㈡澘鍒嗛厤閲� - 骞� - 鏈堬紙1-12 & total锛� - 骞村害棰勭畻/scenarioName if ( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) { traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - // traverse ( months, Elements, month ) { - // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" ); - // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() ); - // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - // } - // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" ); - // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), otdTable, year.YearNo() ); - // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - - traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { - total := 0.0; - traverse ( months, Elements, m ) { - columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻"; - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); - cellReal := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), otdTable, DateTime::Now().Year(), m.MonthNo() ); - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - total := total + cellReal; - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" ); - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); - columnYear.TotalIdentification( year.YearNo() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - - // S&OP鏁版嵁 - // traverse ( macroPlans, Elements, macroPlan ) { - // traverse ( months, Elements, month ) { - // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, - // "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() ); - // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() ); - // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - // } - // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, - // "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() ); - // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() ); - // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - // } - traverse ( macroPlans, Elements, mp ) { - traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { - total := 0.0; - traverse ( months, Elements, m ) { - columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName(); - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); - cellReal := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - total := total + cellReal; - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() ); - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); - columnYear.TotalIdentification( year.YearNo() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - } + CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationBudget( this, months, year, globalOTDTable ); + CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationByScenario( macroPlans, this, months, year ); } } - // 骞村害閿�鍞 if ( CapacityAndSaleBudgeFilterItem::Contains( items, "閿�鍞" ) ) { traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - // traverse ( months, Elements, month ) { - // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" ); - // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), otdTable, year.YearNo(), month.MonthNo() ); - // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - // } - // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); - // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), otdTable, year.YearNo() ); - // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { - total := 0.0; - traverse ( months, Elements, m ) { - columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻"; - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); - cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), otdTable, year.YearNo(), m.MonthNo() ); - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - total := total + cellReal; - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" ); - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); - columnYear.TotalIdentification( year.YearNo() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - - // S&OP鏁版嵁 - // traverse ( macroPlans, Elements, macroPlan ) { - // traverse ( months, Elements, month ) { - // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() ); - // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // cellReal := Forecast::GetFulfilledBalanceByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() ); - // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - // } - // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() ); - // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // // QID 23 - // cellReal := Forecast::GetFulfilledBalanceByYear( row.GetProductCodes(), macroPlan, year.YearNo() ); - // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - // } - // } - traverse ( macroPlans, Elements, mp ) { - traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { - total := 0.0; - traverse ( months, Elements, m ) { - columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName(); - columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); - cellReal := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); - cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); - total := total + cellReal; - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() ); - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); - columnYear.TotalIdentification( year.YearNo() ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); - } - } + CapacityAndSaleBudgeCompareItemCell::CreateSalesVolume( this, months, year, globalOTDTable ); + CapacityAndSaleBudgeCompareItemCell::CreateSalesVolumeByScenario( macroPlans, this, months, year ); } } // 澶у紶鐩堝埄棰� - traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); - traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - // S&OP鏁版嵁 - traverse( macroPlans, Elements, macroPlan ) { - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); - traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - } - } - // 浜у搧鐩堝埄棰� - traverse ( years, Elements, year ) { - // 鍘嗗彶鏁版嵁 - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); - traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - // S&OP鏁版嵁 - traverse ( macroPlans, Elements, macroPlan ) { - columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); - traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { - // todo - cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); - cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); - } - } - } + //traverse ( years, Elements, year ) { + // // 鍘嗗彶鏁版嵁 + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); + // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // // S&OP鏁版嵁 + // traverse( macroPlans, Elements, macroPlan ) { + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); + // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // } + //} + //// 浜у搧鐩堝埄棰� + //traverse ( years, Elements, year ) { + // // 鍘嗗彶鏁版嵁 + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" ); + // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // // S&OP鏁版嵁 + // traverse ( macroPlans, Elements, macroPlan ) { + // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() ); + // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { + // // todo + // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); + // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); + // } + // } + //} // 璁剧疆rowNo鍜宑olumnNo rowNo := 1; diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def index 4428575..fd5f58b 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def @@ -5,11 +5,15 @@ #keys: '[414702.0.391791234]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( GlobalOTDSOP ); + *] QuillAction { Body: [* - Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() ); + Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDSOP ).AsBinaryData() ); *] GroupServerCalls: false } diff --git a/_var/_Main/Data/.keep b/_var/_Main/Data/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/_var/_Main/Data/.keep -- Gitblit v1.9.3