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 ++++++++++++++++++++++++- _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504#801.def | 24 +++++++++++ _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_rbgTimeUnit_OnUserChanged#273.def | 16 ++++++++ _Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def | 4 +- _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhTimeUnit_OnCreated#478.def | 16 ++++++++ 5 files changed, 106 insertions(+), 5 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(); diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def index 7bbfc28..130cb7e 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def @@ -73,8 +73,8 @@ Properties: [ DataType: 'LocalTable' - FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanChanges.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanChanges.dhEndDate' - FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() ' + FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanChanges.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanChanges.dhEndDate;timeUnit:QMacroPlanner::FormOfflinePlanChanges.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_Form701/Component_PanelRibbon504\043801.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" index f18276f..3f5a6da 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" @@ -76,7 +76,7 @@ Properties: [ Image: 'EXPORT1' - Taborder: 3 + Taborder: 5 ] } Component dhXMLDataListener @@ -102,6 +102,28 @@ ] Properties: [ + Taborder: 6 + ] + } + Component rbgTimeUnit id:rbgTimeUnit_963 + { + #keys: '[414996.1.146310444]' + BaseType: 'WebRadioButtonGroup' + Properties: + [ + BoundValue: 'Day' + ButtonLabels: 'Day;Week;Month' + ButtonValues: 'Day;Week;Month' + Taborder: 3 + ] + } + Component dhTimeUnit id:dhTimeUnit_384 + { + #keys: '[414996.1.146310475]' + BaseType: 'WebDataHolder' + Databinding: 'String*' + Properties: + [ Taborder: 4 ] } diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhTimeUnit_OnCreated\043478.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhTimeUnit_OnCreated\043478.def" new file mode 100644 index 0000000..45a6482 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhTimeUnit_OnCreated\043478.def" @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon504_801/dhTimeUnit_384 +Response OnCreated () id:Response_PanelRibbon322_dhTimeUnit_OnCreated_478 +{ + #keys: '[414996.1.146310473]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( "Day" ); + *] + } +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_rbgTimeUnit_OnUserChanged\043273.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_rbgTimeUnit_OnUserChanged\043273.def" new file mode 100644 index 0000000..f0f31fd --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_rbgTimeUnit_OnUserChanged\043273.def" @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon504_801/rbgTimeUnit_963 +Response OnUserChanged () id:Response_PanelRibbon322_rbgTimeUnit_OnUserChanged_273 +{ + #keys: '[414996.1.146310443]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebRadioButtonGroup_OnUserChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + dhTimeUnit.Data( this.BoundValue() ); + *] + } +} -- Gitblit v1.9.3