| | |
| | | TextBody: |
| | | [* |
| | | // 甄兰鸽 Jun-24-2024 (created) |
| | | allunit := FinancialProductionReport::GetDefaultAllUnit(); |
| | | //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(); |
| | |
| | | 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 ); |
| | | if( isnull( unitrow ) ){ |
| | | allrow := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit ); |
| | | } |
| | | // allrow := selectobject( table, FinancialSalesRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit ); |
| | | // if( isnull( unitrow ) ){ |
| | | // allrow := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit ); |
| | | // } |
| | | |
| | | traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn and cnv2.Convert( cell.FinancialSalesColumn().Name() ) <> beforeyearday ){ |
| | | 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" ) |
| | | |
| | | periodname := period.Format( "M2/D2/Y" ); |
| | | quantity := [Real]cell.Value() |
| | | previouscolumn := cell.FinancialSalesColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) 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, not fscolumn.IsDay() and fscolumn.Name() = periodname ); |
| | | tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() ); |
| | | 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{ |
| | | previouscolumn := cell.FinancialSalesColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){ |
| | | previouscell := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn ); |
| | | quantity := [Real]cell.Value() + [Real]previouscell.Value(); |
| | | if( [Real]unitcell.Value() <> quantity ){ |
| | | unitcell.Value( [String]( [Number]quantity ) ); |
| | | unitcell.IsUpdate( true ); |
| | | } |
| | | if( [Real]unitcell.Value() <> quantity ){ |
| | | unitcell.Value( [String]( [Number]quantity ) ); |
| | | unitcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | allcell := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn() = tablecolumn ); |
| | | if( isnull( unitcell ) ){ |
| | | allcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | allrow.FinancialSalesCell( relinsert, allcell ); |
| | | }else{ |
| | | previouscolumn := cell.FinancialSalesColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){ |
| | | previouscell := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn ); |
| | | quantity := [Real]cell.Value() + [Real]previouscell.Value(); |
| | | if( [Real]allcell.Value() <> quantity ){ |
| | | allcell.Value( [String]( [Number]quantity ) ); |
| | | allcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | } |
| | | // allcell := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn() = tablecolumn ); |
| | | // if( isnull( allcell ) ){ |
| | | // allcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | // allrow.FinancialSalesCell( relinsert, allcell ); |
| | | // }else{ |
| | | // if( [Real]allcell.Value() <> quantity ){ |
| | | // allcell.Value( [String]( [Number]quantity ) ); |
| | | // allcell.IsUpdate( true ); |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | } |