Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GenerateData ( 
 | 
  InterfaceDataset interface, 
 | 
  MacroPlan macroplan, 
 | 
  RecycleBin recycle, 
 | 
  const Archive archive 
 | 
) 
 | 
{ 
 | 
  Description: '生成可以下发的客户需求(PPA+IDS)数据' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // 甄兰鸽 Aug-20-2024 (created) 
 | 
    //interface.CustomerDemandIDS( relflush ); 
 | 
    //interface.CustomerDemandIDSSearch( relflush ); 
 | 
    info( '-------------------------Start---------------------'); 
 | 
    allunit               := CustomerDemandIDS::GetDefaultAllUnit();//search                :=  
 | 
    interface.CustomerDemandIDSSearch( relnew, Product := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), Unit := allunit ); 
 | 
    name                  := '客户需求'; 
 | 
    idstable              := selectobject( interface, CustomerDemandIDS, idstable, idstable.ID() = name ); 
 | 
    if( isnull( idstable ) ){ 
 | 
      idstable            := interface.CustomerDemandIDS( relnew, ID := name, Name := name ); 
 | 
    } 
 | 
    //showtable             := selectobject( interface, CustomerDemandIDS, version, version.IsShow() ); 
 | 
    //if( isnull( showtable ) ){ 
 | 
    //  showtable           := interface.CustomerDemandIDS( relnew, ID := name + 'Show', Name := name, IsShow := true ); 
 | 
    //} 
 | 
    binaryValue           := TemplateManager::GetIDSFullTable( archive, Date::ActualDate().Year() ); 
 | 
    source                := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" ); 
 | 
    source.ReadStructure(); 
 | 
    Transaction::Transaction().Propagate( attribute( GeneralExcelImportAndExportDataColumn, ColumnIndex ) ); 
 | 
    cnv2 := StringToDate::StandardConverter(); 
 | 
    cnv2.SetCustomConversion(); 
 | 
    cnv2.CustomFormatString( "yyyy/MM/dd" ); 
 | 
    idsdates              := selectuniquevalues( source, GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataColumn, column, column.ColumnIndex() > 2, cnv2.Convert( column.Name() ) ); 
 | 
    ppadates              := selectuniquevalues( macroplan, SalesDemand.astype( Forecast ), forecast, forecast.Origin() = 'PPA', forecast.StartDate() ); 
 | 
    periods               := idsdates.Union( ppadates ); 
 | 
    periods               := selectuniquevalues( periods, Elements, e, not exists( idstable, Column, column, column.StartDate() = e ), e ); 
 | 
    if( periods.Size() > 0 ){ 
 | 
      idstable.GenerateColumn( periods.Sort(), false ); 
 | 
    } 
 | 
    traverse( recycle, GeneralExcelImportAndExportDataSource.GeneralExcelImportAndExportDataTable, table ){ 
 | 
      traverse( table, GeneralExcelImportAndExportDataRow, row ){ 
 | 
        productcell       := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 ); 
 | 
        factorycell       := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 ); 
 | 
        unitname          := ifexpr( factorycell.Value().StartsWith( '长春' ), FinancialProductionReport::GetDefaultCCUnit(), FinancialProductionReport::GetDefaultDLUnit() ); 
 | 
        idsrow            := idstable.GetRowByUnit( productcell.Value(), unitname ); 
 | 
        traverse( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 2 ){ 
 | 
          period          := cnv2.Convert( cell.GeneralExcelImportAndExportDataColumn().Name() ); 
 | 
          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() );  
 | 
        } 
 | 
      } 
 | 
    } 
 | 
    traverse ( macroplan, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.Product_MP() ) and forecast.Origin() = 'PPA' ){ 
 | 
       
 | 
      unitname              := ifexpr( forecast.StockingPointID().StartsWith( '长春' ) , FinancialProductionReport::GetDefaultCCUnit(), FinancialProductionReport::GetDefaultDLUnit() );/*ifexpr( forecast.SalesSegment_MP().Name().StartsWith( 'Changchun' )  
 | 
                                       or exists( forecast.SalesSegment_MP().GetAllParent(), Elements, psalessegment, psalessegment.Name().StartsWith( 'Changchun' ) ) 
 | 
                                       , FinancialProductionReport::GetDefaultCCUnit() 
 | 
                                       , FinancialProductionReport::GetDefaultDLUnit() );*/ 
 | 
      traverse( forecast, PlanningSalesDemandInPeriod, sdip ){ 
 | 
        idsrow              := idstable.GetRowByUnit( forecast.ProductID(), unitname ); 
 | 
        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---------------------'); 
 | 
    //productids             := selectuniquevalues( idstable, Row, row, row.Name() ); 
 | 
    //showtable.Generate( search, productids ); 
 | 
  *] 
 | 
} 
 |