| 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 ); | 
|             } | 
|           } | 
|         } | 
|       } | 
|     } | 
|   *] | 
| } |