| | |
| | | #parent: #root |
| | | Method Generate ( |
| | | FinancialSalesSearch search, |
| | | Product_MPs products |
| | | Factorys factorys, |
| | | Strings productids |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // 甄兰鸽 Jun-25-2024 (created) |
| | | table := selectobject( this, FinancialSalesSource.FinancialSalesReport, report, not report.IsShow() ); |
| | | allunit := '<All>'; |
| | | //清空之前存储的显示数据 |
| | | this.Clear(); |
| | | //年汇总 |
| | | yearcolumn := this.FinancialSalesColumn( relnew, Name := '汇总', Period := search.MacroPlan().StartOfPlanning().StartOfNextYear().Date() ); |
| | | //过滤后的产品id |
| | | productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() ) |
| | | and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() ) |
| | | and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() ); |
| | | sumrow := this.FinancialSalesRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.FinancialSalesRow( relsize ) ); |
| | | sumyearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' ); |
| | | sumrow.FinancialSalesCell( relinsert, sumyearcell ); |
| | | traverse( table, FinancialSalesRow, row, row.Unit() = search.Unit() ){ |
| | | productid := construct( Strings ); |
| | | productid.Add( row.Name() ); |
| | | |
| | | if( productids.ContainsAll( productid ) ){ |
| | | showrow := this.FinancialSalesRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() ); |
| | | yearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' ); |
| | | showrow.FinancialSalesCell( relinsert, yearcell ); |
| | | |
| | | traverse( row, FinancialSalesCell, cell, not cell.FinancialSalesColumn().IsDay() ){ |
| | | column := selectobject( this, FinancialSalesColumn, column, column.Name() = cell.FinancialSalesColumn().Name() and not column.IsDay()); |
| | | |
| | | sumcell := selectobject( column, FinancialSalesCell, c, c.FinancialSalesRow() = sumrow ); |
| | | if( isnull( sumcell ) ){ |
| | | sumcell := column.FinancialSalesCell( relnew, Value := '0' ); |
| | | sumrow.FinancialSalesCell( relinsert, sumcell ); |
| | | } |
| | | |
| | | showcell := column.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | showrow.FinancialSalesCell( relinsert, showcell ); |
| | | yearcell.Value( [String]( [Real]yearcell.Value() + [Real]cell.Value() ) ); |
| | | sumyearcell.Value( [String]( [Real]sumyearcell.Value() + [Real]cell.Value() ) ); |
| | | value := [Real]cell.Value() + [Real]sumcell.Value(); |
| | | sumcell.Value( [String]value ); |
| | | } |
| | | } |
| | | traverse( factorys, Elements, factory ){ |
| | | this.GenerateShow( table, productids, factory.ID() ); |
| | | } |
| | | rows := selectsortedset( this, FinancialSalesRow, row, row.Name() ); |
| | | i := 0; |
| | | traverse( rows, Elements, e ){ |
| | | e.RowNr( i ); |
| | | i := i + 1; |
| | | } |
| | | *] |
| | | } |