| | |
| | | #parent: #root |
| | | StaticMethod GenerateData ( |
| | | InterfaceDataset interface, |
| | | const MacroPlan macroplan, |
| | | RecycleBin recycle, |
| | | const Archive archive |
| | | ) |
| | |
| | | [* |
| | | // 甄兰鸽 Aug-20-2024 (created) |
| | | interface.CustomerDemandIDS( relflush ); |
| | | interface.CustomerDemandIDSSearch( relflush ); |
| | | //interface.CustomerDemandIDSSearch( relflush ); |
| | | info( '-------------------------Start---------------------'); |
| | | allunit := CustomerDemandIDS::GetDefaultAllUnit(); |
| | | interface.CustomerDemandIDSSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit ); |
| | | idstable := interface.CustomerDemandIDS( relnew, ID := '客户需求', Name := '客户需求' ); |
| | | if( isnull( interface.CustomerDemandIDSSearch() ) ){ |
| | | interface.CustomerDemandIDSSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit ); |
| | | } |
| | | idstable := selectobject( interface, CustomerDemandIDS, idstable, idstable.ID() = '客户需求' ); |
| | | if( isnull( idstable ) ){ |
| | | idstable := interface.CustomerDemandIDS( relnew, ID := '客户需求', Name := '客户需求' ); |
| | | } |
| | | binaryValue := TemplateManager::GetIDSFullTable( archive, Date::ActualDate().Year() ); |
| | | source := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" ); |
| | | source.ReadStructure(); |
| | |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "yyyy/MM/dd" ); |
| | | idsdates := selectuniquevalues( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() > 2, cnv2.Convert( column.Name() ) ); |
| | | ppadates := selectuniquevalues( interface, InterfaceForecast, forecast, forecast.Origin() = 'PPA', forecast.Date() ); |
| | | //ppadates := construct( Dates ); |
| | | //traverse( macroplan, SalesDemand.astype( Forecast ), forecast, forecast.Origin() = 'PPA' ){ |
| | | // ppadates := ppadates.Union( selectuniquevalues( forecast, PlanningSalesDemandInPeriod, salesdemand, salesdemand.StartDate() ) ); |
| | | //} |
| | | ppadates := selectuniquevalues( macroplan, SalesDemand.astype( Forecast ), forecast, forecast.Origin() = 'PPA', forecast.StartDate() ); |
| | | periods := idsdates.Union( ppadates ); |
| | | periods := selectuniquevalues( periods, Elements, e, e ); |
| | | idstable.GenerateColumn( periods.Sort() ); |
| | | periods := selectuniquevalues( periods, Elements, e, not exists( idstable, Column, column, column.StartDate() = e ), e ); |
| | | if( periods.Size() > 0 ){ |
| | | idstable.GenerateColumn( periods.Sort() ); |
| | | } |
| | | traverse( recycle, GeneralExcelImportAndExportDataSource.GeneralExcelImportAndExportDataTable, table ){ |
| | | traverse( table, GeneralExcelImportAndExportDataRow, row ){ |
| | | productcell := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 ); |
| | |
| | | daycolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), period ); |
| | | weekcolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), period ); |
| | | monthcolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), period ); |
| | | |
| | | idsrow.SetCellValue( daycolumn, [Number]cell.Value() ); |
| | | idsrow.SetCellValue( weekcolumn, [Number]cell.Value() ); |
| | | idsrow.SetCellValue( monthcolumn, [Number]cell.Value() ); |
| | | idsrow.SetCellValue( weekcolumn, [Number]cell.Value() ); |
| | | idsrow.SetCellValue( monthcolumn, [Number]cell.Value() ); |
| | | } |
| | | } |
| | | } |
| | | traverse( interface, InterfaceForecast, forecast, forecast.Origin() = 'PPA' ){ |
| | | idsrow := idstable.GetRowByUnit( forecast.PartNumber(), forecast.Factory() ); |
| | | daycolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), forecast.Date() ); |
| | | weekcolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), forecast.Date() ); |
| | | monthcolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), forecast.Date() ); |
| | | idsrow.SetCellValue( daycolumn, [Number]forecast.Quantity() ); |
| | | idsrow.SetCellValue( weekcolumn, [Number]forecast.Quantity() ); |
| | | idsrow.SetCellValue( monthcolumn, [Number]forecast.Quantity() ); |
| | | traverse ( macroplan, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.Product_MP() ) and forecast.Origin() = 'PPA' ){ |
| | | traverse( forecast, PlanningSalesDemandInPeriod, sdip ){ |
| | | idsrow := idstable.GetRowByUnit( forecast.ProductID(), forecast.SalesSegmentName() ); |
| | | daycolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), sdip.StartDate() ); |
| | | weekcolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), sdip.StartDate() ); |
| | | monthcolumn := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), sdip.StartDate() ); |
| | | info( '-----------------', isnull( idsrow ), isnull( daycolumn ), isnull( weekcolumn ), isnull( monthcolumn ), sdip.StartDate() ); |
| | | idsrow.SetCellValue( daycolumn, [Number]sdip.Quantity() ); |
| | | idsrow.SetCellValue( weekcolumn, [Number]sdip.Quantity() ); |
| | | idsrow.SetCellValue( monthcolumn, [Number]sdip.Quantity() ); |
| | | } |
| | | } |
| | | |
| | | source.Delete(); |
| | | info( '-------------------------End---------------------'); |
| | | *] |
| | | } |