Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GenerateData ( 
 | 
  InterfaceDataset interface, 
 | 
  MacroPlan macroplan, 
 | 
  RecycleBin recycle, 
 | 
  const Archive archive 
 | 
) 
 | 
{ 
 | 
  Description: '生成客户需求存档数据' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // 甄兰鸽 Nov-22-2024 (created) 
 | 
    info( '-------------------------Start---------------------'); 
 | 
    //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" ); 
 | 
    // 
 | 
    //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() ); 
 | 
    //      archivedata     := selectobject( interface, CustomerDemandArchive, archivedata, archivedata.Factory() = factorycell.Value() 
 | 
    //                                       and archivedata.Product() = productcell.Value() 
 | 
    //                                       and archivedata.StartDate() = period 
 | 
    //                                       and archivedata.Origin() = 'IDS' ); 
 | 
    //      if( isnull( archivedata ) ){ 
 | 
    //        archivedata   := interface.CustomerDemandArchive( relnew, Factory := factorycell.Value(), Product := productcell.Value(), StartDate := period, Origin := 'IDS', FactoryName := unitname ); 
 | 
    //      } 
 | 
    //      archivedata.Quantity( [Real]cell.Value() ); 
 | 
    //    } 
 | 
    //  } 
 | 
    //} 
 | 
    traverse ( macroplan, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.Product_MP() ) and ( forecast.Origin() = 'PPA' or forecast.Origin() = 'IDS' ) ){ 
 | 
       
 | 
      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 ){ 
 | 
        archivedata         := selectobject( interface, CustomerDemandArchive, archivedata, archivedata.SalesSegment() = forecast.SalesSegmentName() 
 | 
                                               and archivedata.StockingPointID() =forecast.StockingPointID() 
 | 
                                               and archivedata.Product() = forecast.ProductID() 
 | 
                                               and archivedata.StartDate() = forecast.StartDate()  
 | 
                                               and archivedata.Origin() = forecast.Origin() ); 
 | 
        if( isnull( archivedata ) ){ 
 | 
          archivedata       := interface.CustomerDemandArchive( relnew, SalesSegment             := forecast.SalesSegmentName() 
 | 
                                                                , Product                        := forecast.ProductID() 
 | 
                                                                , StockingPointID                := forecast.StockingPointID() 
 | 
                                                                , StartDate                      := forecast.StartDate()  
 | 
                                                                , Origin                         := forecast.Origin() 
 | 
                                                                , FactoryName                    := unitname ); 
 | 
        } 
 | 
        archivedata.Quantity( sdip.Quantity() ); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    //source.Delete(); 
 | 
    info( '-------------------------End---------------------'); 
 | 
  *] 
 | 
} 
 |