| | |
| | | TextBody: |
| | | [* |
| | | // 甄兰鸽 Jun-24-2024 (created) |
| | | allunit := FinancialProductionReport::GetDefaultAllUnit(); |
| | | table := selectobject( this.MacroPlan(), FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and not table.IsShow() ); |
| | | //info( '--------------------------', table.Name() ); |
| | | 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" ); |
| | | traverse( this, FinancialSalesReport, report ){ |
| | | productcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Product' ); |
| | | unitcolumn := selectobject( report, FinancialSalesColumn, column, column.Name() = 'Unit' ); |
| | | // info( '----------------------1-----------------', productcolumn.Name(), unitcolumn.Name() ); |
| | | 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 ); |
| | | // info( '----------------------2-----------------', product.Value(), unit.Value() ); |
| | | 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() ); |
| | | 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() ); |
| | | } |
| | | allrow := selectobject( table, FinancialSalesRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit ); |
| | | // info( '----------------------3-----------------', unitrow.Name(), unitrow.Unit() ); |
| | | // and product.Value() = '120 kW Rotor' and unit.Value() = 'Assembly Plant (Spain)' |
| | | if( isnull( unitrow ) ){ |
| | | allrow := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit ); |
| | | } |
| | | |
| | | traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn ){ |
| | | column := cell.FinancialSalesColumn(); |
| | | unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn().Name() = column.Name() ); |
| | | allcell := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn().Name() = column.Name() ); |
| | | // info( isnull( unitcell ), isnull( allcell ), cell.Value(), unitcell.Value(), allcell.Value() ); |
| | | if( not isnull( unitcell ) ){ |
| | | unitcell.Value( cell.Value() ); |
| | | column := cell.FinancialSalesColumn(); |
| | | period := cnv2.Convert( column.Name() ) |
| | | |
| | | tablecolumn := construct( FinancialSalesColumn ); |
| | | if( period = beforeyearday ){ |
| | | periodname := yearday.Format( "M2/D2/Y" ); |
| | | //获取被导入报表的日期列 |
| | | tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() ); |
| | | } |
| | | }else{ |
| | | tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = column.Name() ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialSalesColumn( relnew, Name := column.Name(), Period := cnv2.Convert( column.Name() ) ); |
| | | } |
| | | } |
| | | if( not isnull( allcell ) ){ |
| | | value := [Real]cell.Value() + [Real]allcell.Value(); |
| | | allcell.Value( [String]value ); |
| | | unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn().Name() = column.Name() ); |
| | | if( isnull( unitcell ) ){ |
| | | unitcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | unitrow.FinancialSalesCell( relinsert, unitcell ); |
| | | }else{ |
| | | if( unitcell.Value() <> cell.Value() ){ |
| | | unitcell.Value( cell.Value() ); |
| | | unitcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | allcell := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn().Name() = column.Name() ); |
| | | if( isnull( unitcell ) ){ |
| | | allcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | allrow.FinancialSalesCell( relinsert, allcell ); |
| | | }else{ |
| | | if( allcell.Value() <> cell.Value() ){ |
| | | allcell.Value( cell.Value() ); |
| | | allcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | } |
| | | } |