Quintiq file version 2.0
|
#parent: #root
|
Method CapacityAndSaleBudgeCompare (
|
MacroPlans macroPlans,
|
CapacityAndSaleBudgeFilterItems items,
|
CapacityAndSaleBudgeFilterYears years,
|
CapacityAndSaleBudgeFilterMonths months,
|
const GlobalOTDTable otdTable
|
)
|
{
|
Description: 'todo : mappingParent改为mpSync, random删了'
|
TextBody:
|
[*
|
// ====不选时默认全选====
|
if ( years.Size() = 0 ) {
|
years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() );
|
}
|
if ( months.Size() = 0 ) {
|
months := selectsortedset( this, CapacityAndSaleBudgeFilterMonth, item, item.MonthNo() );
|
}
|
|
this.CapacityAndSaleBudgeCompareItemRow( relflush );
|
this.CapacityAndSaleBudgeCompareItemColumn( relflush );
|
|
// ====汇总所有出现的产品====
|
targetglobal_MappingAnnualBudgetData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true );
|
|
traverse ( targetglobal_MappingAnnualBudgetData, Elements, gmabd ) {
|
productCode := gmabd.ProductID();
|
// Global_MappingOperationBOM::CreateTestData( otdTable, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
|
// boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
|
// if( boms.Size() > 0 ) {
|
// 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 );
|
}
|
}
|
}
|
}
|
|
// 年度销售额
|
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 );
|
}
|
}
|
}
|
}
|
|
// 大张盈利额
|
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和columnNo
|
rowNo := 1;
|
rowSorted := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, item, item.PlaceOfProductionOfArray() + "_" + item.BusinessType() );
|
traverse( rowSorted, Elements, item ) {
|
item.RowNo( rowNo );
|
rowNo := rowNo + 1;
|
}
|
columnNo := 1;
|
traverse( this, CapacityAndSaleBudgeCompareItemColumn, item ) {
|
item.ColumnNo( columnNo );
|
columnNo := columnNo + 1;
|
}
|
*]
|
}
|