From acf70acb5438a3358d07978afdc0eb28950f40d5 Mon Sep 17 00:00:00 2001 From: lihongji <3117313295@qq.com> Date: 星期一, 12 八月 2024 16:28:01 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev --- _Main/BL/Type_EnginePipelineReport/Method_Generate.qbl | 39 ++++++++++++++++++++++++++++++++------- 1 files changed, 32 insertions(+), 7 deletions(-) diff --git a/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl b/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl index 846f44a..3c3e269 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,8 +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 ); + 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 ); rownr := rownr + 1; } showrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '搴撳瓨', rownr, false ); @@ -60,6 +73,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 +85,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 +97,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,21 +114,22 @@ } 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 ){ @@ -140,11 +157,19 @@ traverse( this, Column, column ){ for( demandr := sumrowdemand.RowNr() + 1; demandr < sumrowinventory.RowNr(); demandr := demandr + 1 ){ demandrow := selectobject( this, Row, r, r.RowNr() = demandr ); + // 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