From 4bb71bc32df6a2ce847b5dc1853dea732e2d0253 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 23 十月 2024 17:53:19 +0800
Subject: [PATCH] 财务产量报表/销量报表导入bug
---
_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl | 50 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 36 insertions(+), 14 deletions(-)
diff --git a/_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl b/_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl
index f37bed3..e56d045 100644
--- a/_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl
+++ b/_Main/BL/Type_FinancialSalesReport/Method_GenerateShow.qbl
@@ -2,6 +2,7 @@
#parent: #root
Method GenerateShow (
FinancialSalesReport table,
+ FinancialSalesColumn yearcolumn,
Strings productids,
String factory
)
@@ -9,41 +10,62 @@
TextBody:
[*
// 鐢勫叞楦� Oct-12-2024 (created)
- //骞存眹鎬�
- yearcolumn := this.FinancialSalesColumn( relnew, Name := '姹囨��', Period := this.FinancialSalesSource().MacroPlan().StartOfPlanning().StartOfNextYear().Date() );
- sumrow := this.FinancialSalesRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( 'SUM' ), Factory := factory );
- sumyearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
+ allunit := FinancialProductionReport::GetDefaultAllUnit();
+
+ sumrow := this.FinancialSalesRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( 'SUM' ), Factory := factory );
+ sumyearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
sumrow.FinancialSalesCell( relinsert, sumyearcell );
- traverse( table, FinancialSalesRow, row, row.Unit() = factory ){
- productid := construct( Strings );
+ //error( '-----------------', productids.Size(), selectset( table, FinancialSalesRow, row, factory = allunit or row.Unit() = factory ).Size() );
+ traverse( table, FinancialSalesRow, row, factory = allunit or row.Unit() = factory ){
+ productid := construct( Strings );
productid.Add( row.Name() );
if( productids.ContainsAll( productid ) ){
- showrow := this.FinancialSalesRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( row.Name() ), Unit := row.Unit(), Factory := factory );
- row.Product_MP().FinancialSalesRow( relinsert, showrow );
- yearcell := yearcolumn.FinancialSalesCell( relnew, Value := '0' );
- showrow.FinancialSalesCell( relinsert, yearcell );
+ isupdate := false;
+ showrow := selectobject( this, FinancialSalesRow, fprow, fprow.Name() = factory.Format( 'S(Len(10))' ).Concat( row.Name() ) and fprow.Unit() = factory and factory = factory );
+ if( isnull( showrow ) ){
+ showrow := this.FinancialSalesRow( relnew, Name := factory.Format( 'S(Len(10))' ).Concat( row.Name() ), Unit := factory, Factory := factory );
+ row.Product_MP().FinancialSalesRow( relinsert, showrow );
+ }
+ yearcell := selectobject( yearcolumn, FinancialSalesCell, fpcell, fpcell.FinancialSalesRow() = showrow );
+ if( isnull( yearcell ) ){
+ 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());
-
+ if( isnull( column ) ){
+ column := this.FinancialSalesColumn( relnew, Name := cell.FinancialSalesColumn().Name(), Period := cell.FinancialSalesColumn().Period() );
+ }
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(), IsUpdate := cell.IsUpdate() );
- showrow.FinancialSalesCell( relinsert, showcell );
+ showcell := selectobject( showrow, FinancialSalesCell, fpcell, fpcell.FinancialSalesColumn() = column );
+ if( isnull( showcell ) ){
+ showcell := column.FinancialSalesCell( relnew, Value := '0', IsUpdate := cell.IsUpdate() );
+ showrow.FinancialSalesCell( relinsert, showcell );
+ }
+ if( cell.IsUpdate() ){
+ isupdate := true;
+ showcell.IsUpdate( cell.IsUpdate() );
+ }
+ showcell.Value( [String]( [Real]showcell.Value() + [Real]cell.Value() ) );
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 );
}
+ if( isupdate ){
+ yearcell.IsUpdate( isupdate );
+ }
}
}
traverse( this, FinancialSalesColumn, column ){
- if( exists( column, FinancialSalesCell, cell, cell.IsUpdate() ) ){
+ if( exists( column, FinancialSalesCell, cell, cell.IsUpdate() and cell.FinancialSalesRow().Factory() = factory ) ){
sumcell := selectobject( sumrow, FinancialSalesCell, sumcell, sumcell.FinancialSalesColumn() = column );
sumcell.IsUpdate( true );
}
--
Gitblit v1.9.3