From bcd7eb876bff759f6aef96f1014b0bca7a3322ff Mon Sep 17 00:00:00 2001 From: rislai <risheng.lai@capgemini.com> Date: 星期五, 16 八月 2024 15:53:14 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev --- _Main/BL/Type_EnginePipelineReport/Method_Generate.qbl | 44 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 34 insertions(+), 10 deletions(-) diff --git a/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl b/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl index 846f44a..cd19c53 100644 --- a/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl +++ b/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl @@ -9,7 +9,6 @@ [* // 鐢勫叞楦� Jun-25-2024 (created) table := selectobject( this, Source.Report, report, not report.IsShow() ); - //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹� this.Clear( search.TimeUnit(), search.StartDate(), search.EndDate() ); Transaction::Transaction().Propagate( attribute( EnginePipelineColumn, Index ) ); @@ -44,9 +43,22 @@ showrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '闀挎槬浜ч噺', rownr + 2, false ); showrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '闇�姹�', rownr + 3, false ); rownr := rownr + 4; - traverse( models, Elements, model ){ - EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), model, rownr, false ); - rownr := rownr + 1; + modelsnr := rownr + 3; + models := construct( Strings ); + uniquemodels := selectuniquevalues( row, Cell.Demand, demand, true, demand.Model() ); + + traverse( uniquemodels, Elements, e ){ + + if( rownr < modelsnr ){ + EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), e, rownr, false ); + models.Add( e ); + rownr := rownr + 1; + } + } + + for( rownr := rownr; rownr < modelsnr; rownr ++ ){ + + EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '', rownr, false ); } showrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '搴撳瓨', rownr, false ); @@ -60,6 +72,7 @@ production := column.CellValue( relnew, Value := [String]cell.ProductionQuantity() ); showrowproduction.CellValue( relinsert, production ); sumproduction := selectobject( column, CellValue, c, c.Row() = sumrowproduction ); + if( isnull( sumproduction ) ){ sumproduction := column.CellValue( relnew, Value := [String]0 ); sumrowproduction.CellValue( relinsert, sumproduction ); @@ -71,6 +84,7 @@ dlproduction := column.CellValue( relnew, Value := [String]dlproductionquantity ); showrowdlproduction.CellValue( relinsert, dlproduction ); sumdlproduction := selectobject( column, CellValue, c, c.Row() = sumrowdlproduction ); + if( isnull( sumdlproduction ) ){ sumdlproduction := column.CellValue( relnew, Value := [String]0 ); sumrowdlproduction.CellValue( relinsert, sumdlproduction ); @@ -82,6 +96,7 @@ ccproduction := column.CellValue( relnew, Value := [String]ccproductionquantity ); showrowccproduction.CellValue( relinsert, ccproduction ); sumccproduction := selectobject( column, CellValue, c, c.Row() = sumrowccproduction ); + if( isnull( sumccproduction ) ){ sumccproduction := column.CellValue( relnew, Value := [String]0 ); sumrowccproduction.CellValue( relinsert, sumccproduction ); @@ -98,25 +113,26 @@ } sumdemand.Value( [String]( [Real]sumdemand.Value() + cell.DemandQuantity() ) ); - traverse( cell, Demand, demand ){ - demandrow := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Value() = demand.Model() ) ); - sumdemandrow := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Value() = demand.Model() ) ); + traverse( cell, Demand, demand, exists( models, Elements, model, model = demand.Model() ) ){ + demandrow := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model() ) ); + sumdemandrow := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model() ) ); if( not isnull( demandrow ) ){ demandcell := column.CellValue( relnew, Value := [String]demand.Quantity() ); demandrow.CellValue( relinsert, demandcell ); } - + if( not isnull( sumdemandrow ) ){ sumdemandcell := selectobject( column, CellValue, c, c.Row() = sumdemandrow ); if( isnull( sumdemandcell ) ){ sumdemandcell := column.CellValue( relnew, Value := [String]0 ); sumdemandrow.CellValue( relinsert, sumdemandcell ); } sumdemandcell.Value( [String]( [Real]sumdemandcell.Value() + demand.Quantity() ) ); + } } for( demandr := showrowdemand.RowNr() + 1; demandr < showrowinventory.RowNr(); demandr := demandr + 1 ){ - demandrow := selectobject( this, Row, r, r.RowNr() = demandr ); + demandrow := selectobject( this, Row, r, r.RowNr() = demandr and r.Name() = row.Name() ); if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){ demandcell := column.CellValue( relnew, Value := '' ); demandrow.CellValue( relinsert, demandcell ); @@ -139,12 +155,20 @@ } traverse( this, Column, column ){ for( demandr := sumrowdemand.RowNr() + 1; demandr < sumrowinventory.RowNr(); demandr := demandr + 1 ){ - demandrow := selectobject( this, Row, r, r.RowNr() = demandr ); + demandrow := selectobject( this, Row, r, r.RowNr() = demandr and r.Name() = 'SUM' ); + // info( '------------------14----------------' ); if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){ demandcell := column.CellValue( relnew, Value := '' ); demandrow.CellValue( relinsert, demandcell ); } } } + + rows := selectsortedset( this, Row, row, row.Name(), row.RowNr() ); + i := 0; + traverse( rows, Elements, e ){ + e.RowNr( i ); + i := i + 1; + } *] } -- Gitblit v1.9.3