Quintiq file version 2.0
|
#parent: #root
|
Method AfterImport
|
{
|
TextBody:
|
[*
|
// 甄兰鸽 Jun-24-2024 (created)
|
//allunit := FinancialProductionReport::GetDefaultAllUnit();
|
table := selectobject( this.MacroPlan(), FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and not table.IsShow() );
|
yearday := this.MacroPlan().StartOfPlanning().StartOfYear();
|
beforeyearday := ( yearday - Duration::Days( 1 ) ).Date();
|
cnv2 := StringToDate::StandardConverter();
|
cnv2.SetCustomConversion();
|
//cnv2.CustomFormatString( "M2/D2/Y" );
|
cnv2.CustomFormatString( "MM/dd/yyyy" );
|
traverse( this, FinancialSalesReport, report ){
|
productcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Product' );
|
unitcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Unit' );
|
|
traverse( report, FinancialSalesRow, row ){
|
product := selectobject( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() = productcolumn );
|
unit := selectobject( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() = unitcolumn );
|
|
unitrow := selectobject( table, FinancialSalesRow, unitrow, unitrow.Name() = product.Value() and unitrow.Unit() = unit.Value() );
|
if( isnull( unitrow ) ){
|
unitrow := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := unit.Value() );
|
}
|
|
traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn and cnv2.Convert( cell.FinancialSalesColumn().Name() ) <> beforeyearday ){
|
column := cell.FinancialSalesColumn();
|
period := cnv2.Convert( column.Name() )
|
periodname := period.Format( "M2/D2/Y" );
|
quantity := [Real]cell.Value()
|
previouscolumn := cell.FinancialSalesColumn().PreviousColumn();
|
if( period = yearday.Date() and not isnull( previouscolumn ) and cnv2.CanConvert( previouscolumn.Name() ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){
|
previouscell := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn );
|
quantity := [Real]cell.Value() + [Real]previouscell.Value();
|
}
|
tablecolumn := construct( FinancialSalesColumn );
|
//获取被导入报表的日期列
|
tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, fscolumn.Name() = periodname );
|
if( isnull( tablecolumn ) ){
|
tablecolumn := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
|
}
|
unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn() = tablecolumn );
|
if( isnull( unitcell ) ){
|
unitcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
|
unitrow.FinancialSalesCell( relinsert, unitcell );
|
}else{
|
if( [Real]unitcell.Value() <> quantity ){
|
unitcell.Value( [String]( [Number]quantity ) );
|
unitcell.IsUpdate( true );
|
}
|
}
|
}
|
}
|
}
|
*]
|
}
|