From b99e22c06c023b82d5062fee06e2f8a29ce04977 Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期四, 24 十月 2024 17:22:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 _Main/UI/MacroPlannerWebApp/Component_FormDispatchShiftSchedulingInformation/Response_PanelDispatchShiftSchedulingInformation_ButtonDispatch_OnClick#844.def |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def                                         |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProducts_OnCreated.def                             |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def                                                                 |   16 --
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckUnits_OnDataChanged#832.def                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinalUnits_OnCreated#540.def                            |   16 ++
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def                                                                            |   18 ++
 _Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_MatrixEditorArchivePackagingPlan.def                                                |   99 ++++++++++++++
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonClearFilter_OnClick.def                                       |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckUnits_OnDataChanged.def                                                  |    7 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinalUnits_OnCreated.def                                                      |   16 ++
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon763.def                                                                 |   13 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProducts_OnCreated.def                                                   |    4 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def                                              |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixEditorActionBarPageArchivePackagingPlan.def                                   |   10 +
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison#634.def                                                      |   18 ++
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_rbgTimeUnit_OnUserChanged.def                                        |    6 
 _Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl                                                                                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bExport_OnClick.def                                                                |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixeditorContextMenuArchivePackagingPlan.def                                     |   10 +
 _Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl                                                                                   |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_bExport_OnClick.def                                                  |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504#801.def                                                                               |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged.def                   |    6 
 _Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl                                                                                   |   10 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def                                                                  |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged.def                        |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/_ROOT_Component_FormArchivePackagingPlan.def                                                  |   13 +
 /dev/null                                                                                                                                                    |   28 ----
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonFilter_OnClick.def                                            |    4 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def                                                                                     |    4 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonClearFilter_OnClick#466.def                                                         |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan.def                                                       |   12 +
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor#988.def                                                               |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan922.def                                                    |   14 ++
 35 files changed, 285 insertions(+), 99 deletions(-)

diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl
index 2f98a27..b61bf36 100644
--- a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl
@@ -3,7 +3,7 @@
 StaticMethod Dispatch (
   Date startDate,
   Date endDate,
-  const OfflinePlanTable offlinePlan,
+  const NewOfflinePlanTable offlinePlan,
   RecycleBin owner
 )
 {
@@ -30,7 +30,7 @@
       unitIndexTree.Root().AddChild( unitHandle,i );
     }
     
-    traverse( offlinePlan,OfflinePlanRow,row ){
+    traverse( offlinePlan,NewOfflinePlanRow,row ){
       productID := row.ProductID();
       productLine := row.ProductionLine();
       factory := constnull( Unit );
@@ -48,9 +48,9 @@
           factory := temp2;
         }
       }
-      traverse( row,OfflinePlanCell,cell ,startDate <= cell.OfflinePlanColumn().ColumnDate() and endDate > cell.OfflinePlanColumn().ColumnDate()){
-        shiftDate := cell.OfflinePlanColumn().ColumnDate();
-        shiftName := cell.Shift();
+      traverse( row,NewOfflinePlanCell,cell ,startDate <= cell.NewOfflinePlanColumn().StartDate() and endDate >= cell.NewOfflinePlanColumn().EndDate()){
+        shiftDate := cell.NewOfflinePlanColumn().StartDate();
+        shiftName := cell.ShiftPatternName();
         shiftVolume := cell.Quantity();
         shiftDayTime := constnull( ShiftDayTime );
         {
diff --git a/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl b/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
index 577d26c..0851470 100644
--- a/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
+++ b/_Main/BL/Type_LocalCell_OfflinePlanComparison/StaticMethod_ComparedNew.qbl
@@ -45,7 +45,7 @@
       localRowHandle := localRowIndexTree.GetHandle( rowKey );
       localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
       if( isnull( localRowIndex )){
-        localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),ProductID := row.ProductID(),CustomName := row.ProductID() + " > " + row.ProductionLine(),Remark := rowKey );
+        localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),ProductID := row.ProductID(),ProductionLine := row.ProductionLine(),CustomName := row.ProductID() + " > " + row.ProductionLine(),Remark := rowKey );
         localRows.Add( localRow );
         localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
       }
@@ -62,7 +62,7 @@
       localRowHandle := localRowIndexTree.GetHandle( rowKey );
       localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
       if( isnull( localRowIndex )){
-        localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),ProductID := row.ProductID(),CustomName := row.ProductID() + " > " + row.ProductionLine(),Remark := rowKey );
+        localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),ProductID := row.ProductID(),ProductionLine := row.ProductionLine(),CustomName := row.ProductID() + " > " + row.ProductionLine(),Remark := rowKey );
         localRows.Add( localRow );
         localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
       }
@@ -75,6 +75,8 @@
     }
     
     traverse( localRows,Elements,localRow ){
+      info( localRow.ProductionLine() );
+      
       rowKey := localRow.Remark();
       traverse( localColumns,Elements,localColumn ){
         columnKey := localColumn.CustomDate().AsQUILL();
diff --git a/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl b/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl
index d4ba83e..fda0be5 100644
--- a/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl
+++ b/_Main/BL/Type_NewOfflinePlanTable/Method_Comparison.qbl
@@ -32,7 +32,7 @@
     traverse( this,NewOfflinePlanRow,row,row.Type() = "1" ){
       productID := row.ProductID();
       productLine := row.ProductionLine();
-      localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),CustomName := productID + " > " + productLine,ProductID := productID );
+      localRow := table.LocalRow( relnew,Index := table.GetRowIndexCache(),CustomName := productID + " > " + productLine,ProductID := productID,ProductionLine := productLine );
       traverse( row,NewOfflinePlanCell,cell,cell.NewOfflinePlanColumn().StartDate() >= macroPlan.StartOfPlanning().Date() ){
         localColumnHandle := localColumnIndexTree.GetHandle( cell.NewOfflinePlanColumn().StartDate().AsQUILL() );
         localColumnIndex := guard( localColumnIndexTree.Root().Child( localColumnHandle ),null( NamedValue ));
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def
index 130cb7e..c93ea2a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def
@@ -45,8 +45,8 @@
           Properties:
           [
             DataType: 'LocalTable'
-            FilterArguments: 'checkedProduct:QMacroPlanner::FormOfflinePlanChanges.dhFinelProduct'
-            FixedFilter: 'exists( checkedProduct,Elements,product,product.ID() = object.ProductID())'
+            FilterArguments: 'checkedProducts:QMacroPlanner::FormOfflinePlanChanges.dhFinelProducts;checkedUnits:QMacroPlanner::FormOfflinePlanChanges.dhFinalUnits'
+            FixedFilter: 'exists( checkedProducts,Elements,product,product.ID() = object.ProductID()) and exists( checkedUnits,Elements,unit,unit.DisplayName() = object.ProductionLine())'
             Source: 'dhTable'
             Taborder: 0
             Transformation: 'LocalRow'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def
index 1b8208d..1f3756d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def
@@ -37,10 +37,10 @@
       ]
       Properties:
       [
-        Taborder: 3
+        Taborder: 4
       ]
     }
-    Component dhFinelProduct
+    Component dhFinelProducts
     {
       #keys: '[412672.1.78210544]'
       BaseType: 'WebDataHolder'
@@ -72,7 +72,7 @@
       ]
       Properties:
       [
-        Taborder: 4
+        Taborder: 5
       ]
     }
     #child: MatrixEditor
@@ -98,7 +98,17 @@
       ]
       Properties:
       [
-        Taborder: 5
+        Taborder: 6
+      ]
+    }
+    Component dhFinalUnits
+    {
+      #keys: '[414996.1.156002469]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[Entity]*'
+      Properties:
+      [
+        Taborder: 3
       ]
     }
   ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def"
index 3f5a6da..d5ad5a9 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def"
@@ -29,6 +29,7 @@
       [
         DisplayField: 'TableName'
         Label: '鍩哄噯涓嬬嚎璁″垝:'
+        NumberOfColumns: 50
         Taborder: 0
       ]
     }
@@ -66,6 +67,7 @@
       [
         DisplayField: 'TableName'
         Label: '瀵规瘮涓嬬嚎璁″垝:'
+        NumberOfColumns: 50
         Taborder: 1
       ]
     }
@@ -76,7 +78,7 @@
       Properties:
       [
         Image: 'EXPORT1'
-        Taborder: 5
+        Taborder: 3
       ]
     }
     Component dhXMLDataListener
@@ -114,7 +116,8 @@
         BoundValue: 'Day'
         ButtonLabels: 'Day;Week;Month'
         ButtonValues: 'Day;Week;Month'
-        Taborder: 3
+        Orientation: 'horizontal'
+        Taborder: 4
       ]
     }
     Component dhTimeUnit id:dhTimeUnit_384
@@ -124,7 +127,7 @@
       Databinding: 'String*'
       Properties:
       [
-        Taborder: 4
+        Taborder: 5
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckUnits_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckUnits_OnDataChanged.def
index db029c9..ccb29d2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckUnits_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckUnits_OnDataChanged.def
@@ -11,11 +11,10 @@
     Body:
     [*
       if( this.Data().Size() <> 0 ){
-        prods := selectset( dhFinelProduct.Data(),Elements,element,exists( this.Data(),Elements.astype( Unit ).StockingPoint_MP.ProductInStockingPoint_MP.Product_MP,prod,prod = element ));
-        // prods := selectset( productInLanes,Elements.Product_MP,prod,true );
-        dhFinelProduct.Data( &prods );
+        units := selectset( dhFinalUnits.Data(),Elements,element,exists( this.Data(),Elements,entity,entity = element ));
+        dhFinalUnits.Data( &units );
       }else{
-        dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+        dhFinalUnits.Data( DataHolderEntities.Data().Copy() );
       }
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def
index cc755ec..f1d9f33 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def
@@ -11,9 +11,9 @@
     Body:
     [*
       if( this.Data().Size() <> 0 ){
-        dhFinelProduct.Data( this.Data().Copy() ); 
+        dhFinelProducts.Data( this.Data().Copy() ); 
       }else{
-        dhFinelProduct.Data( DataHolderProduct.Data().Copy() ); 
+        dhFinelProducts.Data( DataHolderProduct.Data().Copy() ); 
       }
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def
index 482b2c8..08f0210 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def
@@ -11,10 +11,10 @@
     Body:
     [*
       if( this.Data().Size() <> 0 ){
-        prods := selectset( dhFinelProduct.Data(),Elements,element,exists( this.Data(),Elements.SalesDemand.Product_MP,prod,element = prod ));
-        dhFinelProduct.Data( &prods );
+        prods := selectset( dhFinelProducts.Data(),Elements,element,exists( this.Data(),Elements.SalesDemand.Product_MP,prod,element = prod ));
+        dhFinelProducts.Data( &prods );
       }else{
-        dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+        dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
       }
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinalUnits_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinalUnits_OnCreated.def
new file mode 100644
index 0000000..7775cdb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinalUnits_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelDemandComparison/dhFinalUnits
+Response OnCreated () id:Response_PanelDemandComparison_dhFinalUnits_OnCreated
+{
+  #keys: '[414996.1.156002689]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      dhFinalUnits.Data( DataHolderEntities.Data().Copy() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProducts_OnCreated.def
similarity index 83%
rename from _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def
rename to _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProducts_OnCreated.def
index 4aac3b4..2b1df8e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProducts_OnCreated.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
-#parent: PanelDemandComparison/dhFinelProduct
-Response OnCreated () id:Response_PanelDemandComparison_dhFinelProduct_OnCreated
+#parent: PanelDemandComparison/dhFinelProducts
+Response OnCreated () id:Response_PanelDemandComparison_dhFinelProducts_OnCreated
 {
   #keys: '[412672.1.78210526]'
   CanBindMultiple: false
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonClearFilter_OnClick\043466.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonClearFilter_OnClick\043466.def"
index 67e41e3..11eae19 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonClearFilter_OnClick\043466.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonClearFilter_OnClick\043466.def"
@@ -12,7 +12,7 @@
       ddslGeneration.Text( "<All>" );
       ddslMQBMLB.Text( "<All>" );
       ddslPower.Text( "<All>" )
-      dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+      dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def
index 9836c38..42874bf 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      products := dhFinelProduct.Data().Copy();
+      products := dhFinelProducts.Data().Copy();
       if( ddslGeneration.Text() <> "<All>" ){
         products := selectset( products,Elements,element,element.Generation() = ddslGeneration.Text());
       }
@@ -20,7 +20,7 @@
       if( ddslPower.Text() <> "<All>" ){
         products := selectset( products,Elements,element,element.Power() = ddslPower.Text());
       }
-      dhFinelProduct.Data( &products );
+      dhFinelProducts.Data( &products );
     *]
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bExport_OnClick.def
index 9aa1ca2..7749bd6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bExport_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bExport_OnClick.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      rows := selectset( dhTable.Data(),LocalRow,row,exists( dhFinelProduct.Data(),Elements,product,product.ID() = row.ProductID()));
+      rows := selectset( dhTable.Data(),LocalRow,row,exists( dhFinelProducts.Data(),Elements,product,product.ID() = row.ProductID()));
       columns := selectset( dhTable.Data( ),LocalColumn,column,true );
       LocalCell_OfflinePlanComparison::AsyncExport( RecycleBin, rows, columns, MacroPlan );
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_MatrixEditorArchivePackagingPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_MatrixEditorArchivePackagingPlan.def
new file mode 100644
index 0000000..d06318b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_MatrixEditorArchivePackagingPlan.def
@@ -0,0 +1,99 @@
+Quintiq file version 2.0
+Component MatrixEditorArchivePackagingPlan
+{
+  #keys: '[414996.1.156002045]'
+  BaseType: 'WebMatrixEditor'
+  Children:
+  [
+    Component MatrixEditorCellArchivePackagingPlan
+    {
+      #keys: '[414996.1.156002046]'
+      BaseType: 'WebMatrixEditorCell'
+      Children:
+      [
+        Component DataExtractorArchivePackagingPlan
+        {
+          #keys: '[414996.1.156002047]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'Archive'
+            Source: 'Archive'
+            Taborder: 0
+            Transformation: 'ArchivePackagingPlanRow.ArchivePackagingPlanCell'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Attributes: 'CC_PackagingInventory;CC_UnpackagedInventory;EndingInventory;InitialPackagingInventory;NetDemand;NewSupply;Out;Package;PackagingInventory;TransferIn;UnpackagedInventory;Unpacking'
+        Column: 'ArchivePackagingPlanColumn'
+        Row: 'ArchivePackagingPlanRow'
+        Taborder: 0
+      ]
+    }
+    Component MatrixEditorRowsArchivePackagingPlan
+    {
+      #keys: '[414996.1.156002050]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractor871
+        {
+          #keys: '[414996.1.156002051]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'Archive'
+            Source: 'Archive'
+            Taborder: 0
+            Transformation: 'ArchivePackagingPlanRow'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'Name'
+        SortCriteria: 'ProductID'
+        Taborder: 1
+      ]
+    }
+    Component MatrixEditorColumnsArchivePackagingPlan
+    {
+      #keys: '[414996.1.156002054]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractor489
+        {
+          #keys: '[414996.1.156002055]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'Archive'
+            Source: 'Archive'
+            Taborder: 0
+            Transformation: 'ArchivePackagingPlanColumn'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'StartDate'
+        SortCriteria: 'StartDate'
+        Taborder: 2
+      ]
+    }
+    #child: matrixEditorActionBarPageArchivePackagingPlan
+    #child: matrixeditorContextMenuArchivePackagingPlan
+  ]
+  Properties:
+  [
+    AllowAttributeConfiguration: true
+    AllowMultipleAttributes: true
+    Columns: 'MatrixEditorColumnsArchivePackagingPlan'
+    ContextMenu: 'matrixeditorContextMenuArchivePackagingPlan'
+    Rows: 'MatrixEditorRowsArchivePackagingPlan'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan.def
new file mode 100644
index 0000000..dc8ee24
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+Component PanelArchivePackagingPlan
+{
+  #keys: '[414996.1.156002000]'
+  BaseType: 'WebPanel'
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan922.def b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan922.def
new file mode 100644
index 0000000..fddd1aa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_PanelArchivePackagingPlan922.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelArchivePackagingPlan922
+{
+  #keys: '[414996.1.156002011]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: MatrixEditorArchivePackagingPlan
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixEditorActionBarPageArchivePackagingPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixEditorActionBarPageArchivePackagingPlan.def
new file mode 100644
index 0000000..ad9791c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixEditorActionBarPageArchivePackagingPlan.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageArchivePackagingPlan
+{
+  #keys: '[414996.1.156002058]'
+  BaseType: 'matrixEditorActionBarPage'
+  Properties:
+  [
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixeditorContextMenuArchivePackagingPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixeditorContextMenuArchivePackagingPlan.def
new file mode 100644
index 0000000..f37e4b0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/Component_matrixeditorContextMenuArchivePackagingPlan.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuArchivePackagingPlan
+{
+  #keys: '[414996.1.156002061]'
+  BaseType: 'matrixeditorContextMenu'
+  Properties:
+  [
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/_ROOT_Component_FormArchivePackagingPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/_ROOT_Component_FormArchivePackagingPlan.def
new file mode 100644
index 0000000..6dcd1e7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormArchivePackagingPlan/_ROOT_Component_FormArchivePackagingPlan.def
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormArchivePackagingPlan
+{
+  #keys: '[414996.1.156001954]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelArchivePackagingPlan
+    #child: PanelArchivePackagingPlan922
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormDispatchShiftSchedulingInformation/Response_PanelDispatchShiftSchedulingInformation_ButtonDispatch_OnClick\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormDispatchShiftSchedulingInformation/Response_PanelDispatchShiftSchedulingInformation_ButtonDispatch_OnClick\043844.def"
index e75c7be..93cca0b 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormDispatchShiftSchedulingInformation/Response_PanelDispatchShiftSchedulingInformation_ButtonDispatch_OnClick\043844.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormDispatchShiftSchedulingInformation/Response_PanelDispatchShiftSchedulingInformation_ButtonDispatch_OnClick\043844.def"
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      offlineTable := select( MacroPlan,OfflinePlanTable,table,true );
+      offlineTable := select( MacroPlan,NewOfflinePlanTable,table,true );
       
       DispatchShiftSchedulingInformation::Dispatch( dsStartDate.Date(),dsEndDate.Date(),offlineTable,RecycleBin );
     *]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def"
index 229f91f..44ce451 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_MatrixEditor\043988.def"
@@ -45,8 +45,8 @@
           Properties:
           [
             DataType: 'LocalTable'
-            FilterArguments: 'checkedProduct:QMacroPlanner::FormOfflinePlanComparison.dhFinelProduct'
-            FixedFilter: 'exists( checkedProduct,Elements,product,product.ID() = object.ProductID())'
+            FilterArguments: 'checkedProducts:QMacroPlanner::FormOfflinePlanComparison.dhFinelProducts;checkedUnits:QMacroPlanner::FormOfflinePlanComparison.dhFinalUnits'
+            FixedFilter: 'exists( checkedProducts,Elements,product,product.ID() = object.ProductID()) and exists( checkedUnits,Elements,unit,unit.DisplayName() = object.ProductionLine())'
             Source: 'dhTable'
             Taborder: 0
             Transformation: 'LocalRow'
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison\043634.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison\043634.def"
index 6793023..55668a9 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison\043634.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelDemandComparison\043634.def"
@@ -38,10 +38,10 @@
       ]
       Properties:
       [
-        Taborder: 3
+        Taborder: 4
       ]
     }
-    Component dhFinelProduct
+    Component dhFinelProducts
     {
       #keys: '[412672.1.61940686]'
       BaseType: 'WebDataHolder'
@@ -73,7 +73,7 @@
       ]
       Properties:
       [
-        Taborder: 4
+        Taborder: 5
       ]
     }
     Component dhCheckUnits id:dhCheckUnits_21
@@ -98,7 +98,17 @@
       ]
       Properties:
       [
-        Taborder: 5
+        Taborder: 6
+      ]
+    }
+    Component dhFinalUnits id:dhFinalUnits_90
+    {
+      #keys: '[414996.1.156002816]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[Entity]*'
+      Properties:
+      [
+        Taborder: 3
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def
index 9b59356..39c2223 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon504.def
@@ -5,17 +5,6 @@
   BaseType: 'WebPanel'
   Children:
   [
-    Component LabelRibbon
-    {
-      #keys: '[412672.1.66018113]'
-      BaseType: 'WebLabel'
-      Properties:
-      [
-        DataBinding: 'ddlOfflinePlanTable.Data.TableName'
-        NumberOfColumns: 50
-        Taborder: 4
-      ]
-    }
     Component dhXMLDataListener id:dhXMLDataListener_273
     {
       #keys: '[414996.1.108480431]'
@@ -39,7 +28,7 @@
       ]
       Properties:
       [
-        Taborder: 3
+        Taborder: 2
       ]
     }
     Component dhTimeUnit
@@ -49,10 +38,9 @@
       Databinding: 'String*'
       Properties:
       [
-        Taborder: 2
+        Taborder: 1
       ]
     }
-    #child: PanelRibbon510
     #child: PanelRibbon763
   ]
   Properties:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon510.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon510.def
deleted file mode 100644
index 942eb3a..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon510.def
+++ /dev/null
@@ -1,28 +0,0 @@
-Quintiq file version 2.0
-Component PanelRibbon510
-{
-  #keys: '[414996.1.148040419]'
-  BaseType: 'WebPanel'
-  Children:
-  [
-    Component rbgTimeUnit id:rbgTimeUnit_19
-    {
-      #keys: '[414996.1.148040622]'
-      BaseType: 'WebRadioButtonGroup'
-      Properties:
-      [
-        BoundValue: 'Day'
-        ButtonLabels: 'Day;Week;Month'
-        ButtonValues: 'Day;Week;Month'
-        Orientation: 'horizontal'
-        Taborder: 0
-      ]
-    }
-  ]
-  Properties:
-  [
-    FixedSize: true
-    Orientation: 'horizontal'
-    Taborder: 1
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon763.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon763.def
index 1c87d6e..4e60ae5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon763.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Component_PanelRibbon763.def
@@ -53,6 +53,19 @@
         Taborder: 2
       ]
     }
+    Component rbgTimeUnit
+    {
+      #keys: '[414996.1.158400570]'
+      BaseType: 'WebRadioButtonGroup'
+      Properties:
+      [
+        BoundValue: 'Day'
+        ButtonLabels: 'Day;Week;Month'
+        ButtonValues: 'Day;Week;Month'
+        Orientation: 'horizontal'
+        Taborder: 3
+      ]
+    }
   ]
   Properties:
   [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckUnits_OnDataChanged\043832.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckUnits_OnDataChanged\043832.def"
index b3f24f2..0617ec7 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckUnits_OnDataChanged\043832.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckUnits_OnDataChanged\043832.def"
@@ -11,11 +11,10 @@
     Body:
     [*
       if( this.Data().Size() <> 0 ){
-        prods := selectset( dhFinelProduct.Data(),Elements,element,exists( this.Data(),Elements.astype( Unit ).StockingPoint_MP.ProductInStockingPoint_MP.Product_MP,prod,prod = element ));
-        // prods := selectset( productInLanes,Elements.Product_MP,prod,true );
-        dhFinelProduct.Data( &prods );
+        units := selectset( dhFinalUnits.Data(),Elements,element,exists( this.Data(),Elements,entity,entity = element ));
+        dhFinalUnits.Data( &units );
       }else{
-        dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+        dhFinalUnits.Data( DataHolderEntities.Data().Copy() );
       }
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged.def
index 15c2b22..8e52c4c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedProduct_OnDataChanged.def
@@ -11,9 +11,9 @@
     Body:
     [*
       if( this.Data().Size() <> 0 ){
-        dhFinelProduct.Data( this.Data().Copy() ); 
+        dhFinelProducts.Data( this.Data().Copy() ); 
       }else{
-        dhFinelProduct.Data( DataHolderProduct.Data().Copy() ); 
+        dhFinelProducts.Data( DataHolderProduct.Data().Copy() ); 
       }
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged.def
index 48ec71e..f371e11 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhCheckedSalesSegment_OnDataChanged.def
@@ -11,10 +11,10 @@
     Body:
     [*
       if( this.Data().Size() <> 0 ){
-        prods := selectset( dhFinelProduct.Data(),Elements,element,exists( this.Data(),Elements.SalesDemand.Product_MP,prod,element = prod ));
-        dhFinelProduct.Data( &prods );
+        prods := selectset( dhFinelProducts.Data(),Elements,element,exists( this.Data(),Elements.SalesDemand.Product_MP,prod,element = prod ));
+        dhFinelProducts.Data( &prods );
       }else{
-        dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+        dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
       }
     *]
   }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinalUnits_OnCreated\043540.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinalUnits_OnCreated\043540.def"
new file mode 100644
index 0000000..78acb84
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinalUnits_OnCreated\043540.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelDemandComparison_634/dhFinalUnits_90
+Response OnCreated () id:Response_PanelDemandComparison_dhFinalUnits_OnCreated_540
+{
+  #keys: '[414996.1.156002814]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      dhFinalUnits.Data( DataHolderEntities.Data().Copy() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProduct_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProducts_OnCreated.def
similarity index 81%
rename from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProduct_OnCreated.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProducts_OnCreated.def
index c3eacc2..8c962e7 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProduct_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelDemandComparison_634_dhFinelProducts_OnCreated.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
-#parent: PanelDemandComparison_634/dhFinelProduct
-Response OnCreated () id:Response_PanelDemandComparison_634_dhFinelProduct_OnCreated
+#parent: PanelDemandComparison_634/dhFinelProducts
+Response OnCreated () id:Response_PanelDemandComparison_634_dhFinelProducts_OnCreated
 {
   #keys: '[412672.1.61940668]'
   CanBindMultiple: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonClearFilter_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonClearFilter_OnClick.def
index f191a15..a93ecd4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonClearFilter_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonClearFilter_OnClick.def
@@ -12,7 +12,7 @@
       ddslGeneration.Text( "<All>" );
       ddslMQBMLB.Text( "<All>" );
       ddslPower.Text( "<All>" )
-      dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+      dhFinelProducts.Data( DataHolderProduct.Data().Copy() );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonFilter_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonFilter_OnClick.def
index c25608e..01398db 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonFilter_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelFilter_119_ButtonFilter_OnClick.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      products := dhFinelProduct.Data().Copy();
+      products := dhFinelProducts.Data().Copy();
       if( ddslGeneration.Text() <> "<All>" ){
         products := selectset( products,Elements,element,element.Generation() = ddslGeneration.Text());
       }
@@ -20,7 +20,7 @@
       if( ddslPower.Text() <> "<All>" ){
         products := selectset( products,Elements,element,element.Power() = ddslPower.Text());
       }
-      dhFinelProduct.Data( &products );
+      dhFinelProducts.Data( &products );
     *]
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_bExport_OnClick.def
index 0a82310..44fb526 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_bExport_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_bExport_OnClick.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      rows := selectset( dhTable.Data(),LocalRow,row,exists( dhFinelProduct.Data(),Elements,product,product.ID() = row.ProductID()));
+      rows := selectset( dhTable.Data(),LocalRow,row,exists( dhFinelProducts.Data(),Elements,product,product.ID() = row.ProductID()));
       columns := selectset( dhTable.Data( ),LocalColumn,column,not column.IsAttrbuteColumn() and dhStartDate.Data() <= column.Date() and dhEndDate.Data() > column.Date() );
       LocalCell_ProductionComparison::AsyncExport( RecycleBin, rows, columns, MacroPlan );
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon510_rbgTimeUnit_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_rbgTimeUnit_OnUserChanged.def
similarity index 64%
rename from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon510_rbgTimeUnit_OnUserChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_rbgTimeUnit_OnUserChanged.def
index bf2b6d7..2ce7f7e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon510_rbgTimeUnit_OnUserChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon763_rbgTimeUnit_OnUserChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelRibbon510/rbgTimeUnit_19
-Response OnUserChanged () id:Response_PanelRibbon504_rbgTimeUnit_OnUserChanged
+#parent: PanelRibbon763/rbgTimeUnit
+Response OnUserChanged () id:Response_PanelRibbon510_rbgTimeUnit_OnUserChanged
 {
-  #keys: '[414996.1.148040621]'
+  #keys: '[414996.1.158400569]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebRadioButtonGroup_OnUserChanged'
   GroupServerCalls: true

--
Gitblit v1.9.3