From ca130e0c9b97df46d4961660957439fabab8bffc Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期五, 18 十月 2024 18:09:02 +0800
Subject: [PATCH] 生产计划变更添加周月汇总
---
_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl | 51 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl b/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
index 3720c16..a4f878d 100644
--- a/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
+++ b/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
@@ -17,7 +17,7 @@
localColumnHandle := localColumnIndexTree.GetHandle( column.StartDate().AsQUILL() );
localColumnIndex := guard( localColumnIndexTree.Root().Child( localColumnHandle ),null( NamedValue ));
if( isnull( localColumnIndex )){
- localColumn := table.LocalColumn( relnew,CustomDate := column.StartDate());
+ localColumn := table.LocalColumn( relnew,CustomDate := column.StartDate(),TimeUnit := "Day");
localColumns.Add( localColumn );
localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
}
@@ -26,7 +26,7 @@
localColumnHandle := localColumnIndexTree.GetHandle( column.StartDate().AsQUILL() );
localColumnIndex := guard( localColumnIndexTree.Root().Child( localColumnHandle ),null( NamedValue ));
if( isnull( localColumnIndex )){
- localColumn := table.LocalColumn( relnew,CustomDate := column.StartDate());
+ localColumn := table.LocalColumn( relnew,CustomDate := column.StartDate(),TimeUnit := "Day");
localColumns.Add( localColumn );
localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
}
@@ -96,6 +96,53 @@
CompareVersion := ifexpr( isnull( compareOfflinePlanCell),0.0,compareOfflinePlanCell.Quantity()));
}
}
+
+ startDate := minselect( table,LocalColumn,localColumn,localColumn.CustomDate() ).CustomDate();
+ endDate := maxselect( table,LocalColumn,localColumn,localColumn.CustomDate() ).CustomDate();
+ for( i := startDate.StartOfWeek(); i <= endDate.StartOfNextWeek(); i := i.StartOfNextWeek() ){
+ timeUnit := "Week";
+ localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() + timeUnit);
+ localColumn := table.LocalColumn( relnew,CustomDate := i,TimeUnit := timeUnit );
+ localColumns.Add( localColumn );
+ localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
+ }
+ for( i := startDate.StartOfMonth(); i <= endDate.StartOfNextMonth(); i := i.StartOfNextMonth() ){
+ timeUnit := "Month";
+ localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() + timeUnit);
+ localColumn := table.LocalColumn( relnew,CustomDate := i,TimeUnit := timeUnit );
+ localColumns.Add( localColumn );
+ localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
+ }
+
+ traverse( table,LocalRow,row ){
+ traverse( table,LocalColumn,column,column.TimeUnit() = "Week"){
+ baseVersionValue := sum( table,LocalRow.LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.BaseVersionValue());
+ compareVersionValue := sum( table,LocalRow.LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.CompareVersionValue());
+
+ row.LocalCell(relnew,LocalCell_OfflinePlanComparison,LocalColumn := column,BaseVersionValue := baseVersionValue,CompareVersionValue := compareVersionValue );
+ }
+ }
+ traverse( table,LocalRow,row ){
+ traverse( table,LocalColumn,column,column.TimeUnit() = "Month "){
+ baseVersionValue := sum( table,LocalRow.LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.BaseVersionValue());
+ compareVersionValue := sum( table,LocalRow.LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.CompareVersionValue());
+
+ row.LocalCell(relnew,LocalCell_OfflinePlanComparison,LocalColumn := column,BaseVersionValue := baseVersionValue,CompareVersionValue := compareVersionValue );
+ }
+ }
+
traverse( table,LocalColumn,column ){
if( column.LocalCell( relsize ) = 0 ){
column.Delete();
--
Gitblit v1.9.3