From e838620cad384a27f8639797858a8b2c4313b6c7 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期一, 21 十月 2024 15:32:11 +0800
Subject: [PATCH] 添加产量对比报表周月汇总功能
---
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_dhTimeUnit_OnCreated.def | 16 +++++
_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl | 22 +++---
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def | 26 ++++++++
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor#988.def | 4
_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl | 47 +++++++++++++++
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_rbgTimeUnit_OnUserChanged.def | 16 +++++
6 files changed, 115 insertions(+), 16 deletions(-)
diff --git a/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl b/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
index a4f878d..577d26c 100644
--- a/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
+++ b/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
@@ -116,30 +116,30 @@
traverse( table,LocalRow,row ){
traverse( table,LocalColumn,column,column.TimeUnit() = "Week"){
- baseVersionValue := sum( table,LocalRow.LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
+ baseVersionValue := sum( row,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().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.BaseVersion());
+ compareVersionValue := sum( row,LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
cell.LocalColumn().TimeUnit() = "Day" and
cell.LocalColumn().CustomDate() >= column.CustomDate() and
- cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.CompareVersionValue());
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.CompareVersion());
- row.LocalCell(relnew,LocalCell_OfflinePlanComparison,LocalColumn := column,BaseVersionValue := baseVersionValue,CompareVersionValue := compareVersionValue );
+ row.LocalCell( relnew,LocalCell_OfflinePlanComparison,LocalColumn := column,BaseVersion := baseVersionValue,CompareVersion := compareVersionValue );
}
}
traverse( table,LocalRow,row ){
- traverse( table,LocalColumn,column,column.TimeUnit() = "Month "){
- baseVersionValue := sum( table,LocalRow.LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
+ traverse( table,LocalColumn,column,column.TimeUnit() = "Month"){
+ baseVersionValue := sum( row,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().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.BaseVersion());
+ compareVersionValue := sum( row,LocalCell.astype( LocalCell_OfflinePlanComparison ),cell,
cell.LocalColumn().TimeUnit() = "Day" and
cell.LocalColumn().CustomDate() >= column.CustomDate() and
- cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.CompareVersionValue());
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.CompareVersion());
- row.LocalCell(relnew,LocalCell_OfflinePlanComparison,LocalColumn := column,BaseVersionValue := baseVersionValue,CompareVersionValue := compareVersionValue );
+ row.LocalCell( relnew,LocalCell_OfflinePlanComparison,LocalColumn := column,BaseVersion := baseVersionValue,CompareVersion := compareVersionValue );
}
}
diff --git a/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl b/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl
index a3dce7f..d4ba83e 100644
--- a/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl
+++ b/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl
@@ -23,7 +23,7 @@
localColumns := construct( LocalColumns );
localColumnIndexTree := NamedValueTree::Create();
traverse( this,NewOfflinePlanColumn,column,column.StartDate() >= macroPlan.StartOfPlanning().Date()){
- localColumn := table.LocalColumn( relnew,CustomDate := column.StartDate());
+ localColumn := table.LocalColumn( relnew,CustomDate := column.StartDate(),TimeUnit := "Day");
localColumnHandle := localColumnIndexTree.GetHandle( column.StartDate().AsQUILL() );
localColumns.Add( localColumn );
localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
@@ -95,6 +95,51 @@
}
}
+ 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"){
+ actual := sum( row,LocalCell.astype( LocalCell_ProductionComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.Actual());
+ plan := sum( row,LocalCell.astype( LocalCell_ProductionComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(), cell.Plan());
+
+ row.LocalCell( relnew,LocalCell_ProductionComparison,LocalColumn := column,Actual := actual,Plan := plan );
+ }
+ }
+ traverse( table,LocalRow,row ){
+ traverse( table,LocalColumn,column,column.TimeUnit() = "Month"){
+ actual := sum( row,LocalCell.astype( LocalCell_ProductionComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.Actual());
+ plan := sum( row,LocalCell.astype( LocalCell_ProductionComparison ),cell,
+ cell.LocalColumn().TimeUnit() = "Day" and
+ cell.LocalColumn().CustomDate() >= column.CustomDate() and
+ cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(), cell.Plan());
+
+ row.LocalCell( relnew,LocalCell_ProductionComparison,LocalColumn := column,Actual := actual,Plan := plan );
+ }
+ }
+
return table;
*]
}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def"
index 059b443..229f91f 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def"
@@ -73,8 +73,8 @@
Properties:
[
DataType: 'LocalTable'
- FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanComparison.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanComparison.dhEndDate'
- FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date()'
+ FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanComparison.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanComparison.dhEndDate;timeUnit:QMacroPlanner::FormOfflinePlanComparison.dhTimeUnit'
+ FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() and object.TimeUnit() = timeUnit'
Source: 'dhTable'
Taborder: 0
Transformation: 'LocalColumn'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def
index c9c87a0..5b49ff3 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def
@@ -51,7 +51,7 @@
[
DataBinding: 'ddlOfflinePlanTable.Data.TableName'
NumberOfColumns: 50
- Taborder: 4
+ Taborder: 6
]
}
Component bExport id:bExport_298
@@ -61,7 +61,7 @@
Properties:
[
Image: 'EXPORT1'
- Taborder: 2
+ Taborder: 4
]
}
Component dhXMLDataListener id:dhXMLDataListener_273
@@ -87,6 +87,28 @@
]
Properties:
[
+ Taborder: 5
+ ]
+ }
+ Component rbgTimeUnit
+ {
+ #keys: '[414996.1.147730565]'
+ BaseType: 'WebRadioButtonGroup'
+ Properties:
+ [
+ BoundValue: 'Day'
+ ButtonLabels: 'Day;Week;Month'
+ ButtonValues: 'Day;Week;Month'
+ Taborder: 2
+ ]
+ }
+ Component dhTimeUnit
+ {
+ #keys: '[414996.1.147730603]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'String*'
+ Properties:
+ [
Taborder: 3
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_dhTimeUnit_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_dhTimeUnit_OnCreated.def
new file mode 100644
index 0000000..8407403
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_dhTimeUnit_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/dhTimeUnit
+Response OnCreated () id:Response_PanelRibbon504_801_dhTimeUnit_OnCreated
+{
+ #keys: '[414996.1.147730601]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ this.Data( "Day" );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_rbgTimeUnit_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_rbgTimeUnit_OnUserChanged.def
new file mode 100644
index 0000000..12ede48
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_rbgTimeUnit_OnUserChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/rbgTimeUnit
+Response OnUserChanged () id:Response_PanelRibbon504_801_rbgTimeUnit_OnUserChanged
+{
+ #keys: '[414996.1.147730564]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebRadioButtonGroup_OnUserChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ dhTimeUnit.Data( this.BoundValue() );
+ *]
+ }
+}
--
Gitblit v1.9.3