From e1959c8fe7f87d039c227455ec9f614ae3a599f5 Mon Sep 17 00:00:00 2001
From: rislai <risheng.lai@capgemini.com>
Date: 星期一, 05 八月 2024 17:26:46 +0800
Subject: [PATCH] 添加下线计划对比报表

---
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixEditorActionBarPageDemandComparison.def                |   10 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def |   21 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/_ROOT_Component_FormOfflinePlanComparison701.def                       |   18 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixeditorContextMenuDemandComparison.def                  |   10 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def                               |   22 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelFilter.def                                              |   96 ++++++
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsEndDate_OnChanged.def                           |   16 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslGeneration_OnCreated.def                      |   20 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def                                    |   84 ++++++
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def                    |   19 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon322.def                                           |   89 ++++++
 _Main/BL/Type_Test/StaticMethod_Test.qbl                                                                             |    8 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def      |   20 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslMQBMLB_OnCreated.def                          |   20 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon#799.def                                          |   17 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504#801.def                                       |   79 +++++
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def            |   16 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def                          |   26 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslPower_OnCreated.def                           |   20 +
 _Main/BL/Type_LocalTool/StaticMethod_GetMacroPlans.qbl                                                               |   23 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_ButtonRibbon_OnClick.def                       |   17 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhEndDate_OnCreated.def                           |   16 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_dhMacroPlans_OnCreated.def                     |   12 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def                                             |  102 +++++++
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhComparisonData_OnDataChanged.def      |   16 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsStartDate_OnChanged.def                         |   16 +
 _Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp                                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhStartDate_OnCreated.def                         |   16 +
 28 files changed, 827 insertions(+), 4 deletions(-)

diff --git a/_Main/BL/Type_LocalTool/StaticMethod_GetMacroPlans.qbl b/_Main/BL/Type_LocalTool/StaticMethod_GetMacroPlans.qbl
new file mode 100644
index 0000000..0688efa
--- /dev/null
+++ b/_Main/BL/Type_LocalTool/StaticMethod_GetMacroPlans.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetMacroPlans
+{
+  TextBody:
+  [*
+    // rislai Jul-31-2024 (created)
+    //options := DatasetFindOptions::Construct( 'MacroPlan' ).IncludeOffline( true ); //to load we must search offline datasets.
+    //mdskey := DatasetController::FindUnique( options );
+    // 
+    //MDSMacroPlan::Root( mdskey ) -> {}
+    
+    
+    
+    //    componentmds    := ApplicationScope.ComponentMDS();
+    // 
+    //    mdsinstance     := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = MacroPlan.DemandMPID() );
+    //  
+    //    handle          := mdsinstance.GetMDSHandle()
+    //  
+    //    demandMacroPlan := handle.AsMacroPlan();
+  *]
+}
diff --git a/_Main/BL/Type_Test/StaticMethod_Test.qbl b/_Main/BL/Type_Test/StaticMethod_Test.qbl
index cc86dfc..f3f8a11 100644
--- a/_Main/BL/Type_Test/StaticMethod_Test.qbl
+++ b/_Main/BL/Type_Test/StaticMethod_Test.qbl
@@ -9,8 +9,10 @@
 {
   TextBody:
   [*
-    name := "2020/04/01";
-    names := name.Tokenize( "/" );
-      info( guard( Date::Construct( [Number]names.Element( 0 ),[Number]names.Element( 1 ),[Number]names.Element( 2 )),Date::MinDate() ));
+    //name := "2020/04/01";
+    //names := name.Tokenize( "/" );
+    //  info( guard( Date::Construct( [Number]names.Element( 0 ),[Number]names.Element( 1 ),[Number]names.Element( 2 )),Date::MinDate() ));
+    
+    info( macroPlan.DisplayNameForSelection() );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def
new file mode 100644
index 0000000..bc17ce4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetMacroPlans () as structured[MacroPlan] id:Method_ApplicationMacroPlanner_GetMacroPlans
+{
+  #keys: '[412672.1.82702269]'
+  Body:
+  [*
+    componentmds := ApplicationScope.ComponentMDS();
+    
+    macroPlans := construct( MacroPlans );
+    scemps := selectset( ScenarioManager,ScenarioMP,mp,mp.IsLoaded());
+    traverse( scemps,Elements,scemp ){
+      mdsinstance     := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = scemp.DatasetMDSID() );
+      handle          := mdsinstance.GetMDSHandle();
+      demandMacroPlan := handle.AsMacroPlan();
+      macroPlans.Add( demandMacroPlan );
+    }
+    
+    return &macroPlans
+  *]
+  ReturnsOwning: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def
new file mode 100644
index 0000000..20b8c8e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def
@@ -0,0 +1,102 @@
+Quintiq file version 2.0
+Component MatrixEditor
+{
+  #keys: '[412672.1.78210532]'
+  BaseType: 'WebMatrixEditor'
+  Children:
+  [
+    Component MatrixEditorCell
+    {
+      #keys: '[412672.1.78210533]'
+      BaseType: 'WebMatrixEditorCell'
+      Children:
+      [
+        Component DataExtractorCells
+        {
+          #keys: '[412672.1.78210534]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'LocalTable'
+            Source: 'dhComparisonData'
+            Taborder: 0
+            Transformation: 'LocalRow.LocalCell.astype(LocalCell_OfflinePlanComparison)'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Attributes: 'BaseVersion;CompareVersion;Gap'
+        Column: 'LocalColumn'
+        Row: 'LocalRow'
+        Taborder: 0
+      ]
+    }
+    Component MatrixEditorRows
+    {
+      #keys: '[412672.1.78210535]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractorRows
+        {
+          #keys: '[412672.1.78210536]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'LocalTable'
+            FilterArguments: 'checkedProduct:QMacroPlanner::FormOfflinePlanComparison701.dhFinelProduct'
+            FixedFilter: 'exists( checkedProduct,Elements,product,product.ID() = object.Name() )'
+            Source: 'dhComparisonData'
+            Taborder: 0
+            Transformation: 'LocalRow'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'Name'
+        SortCriteria: 'Index'
+        Taborder: 1
+      ]
+    }
+    Component MatrixEditorColumns
+    {
+      #keys: '[412672.1.78210537]'
+      BaseType: 'WebMatrixEditorHeaderLevel'
+      Children:
+      [
+        Component DataExtractorColumns
+        {
+          #keys: '[412672.1.78210538]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'LocalTable'
+            FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanComparison701.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanComparison701.dhEndDate'
+            FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() '
+            Source: 'dhComparisonData'
+            Taborder: 0
+            Transformation: 'LocalColumn'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Legend: 'Date'
+        SortCriteria: 'Index'
+        Taborder: 2
+      ]
+    }
+    #child: matrixEditorActionBarPageDemandComparison
+    #child: matrixeditorContextMenuDemandComparison
+  ]
+  Properties:
+  [
+    AllowMultipleAttributes: true
+    Columns: 'MatrixEditorColumns'
+    ContextMenu: 'matrixeditorContextMenuDemandComparison'
+    Rows: 'MatrixEditorRows'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def
new file mode 100644
index 0000000..d41af93
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelDemandComparison.def
@@ -0,0 +1,84 @@
+Quintiq file version 2.0
+Component PanelDemandComparison
+{
+  #keys: '[412672.1.78210531]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component dhComparisonData
+    {
+      #keys: '[412672.1.78210541]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'LocalTable'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+    Component dhCheckedProduct
+    {
+      #keys: '[412672.1.78210542]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[Product_MP]*'
+      Children:
+      [
+        Component deCheckedProduct
+        {
+          #keys: '[412672.1.78210543]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[Product_MP]'
+            Source: 'ApplicationMacroPlanner.DataHolderCheckedProduct'
+            Taborder: 0
+            Transformation: 'Elements'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+    Component dhFinelProduct
+    {
+      #keys: '[412672.1.78210544]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[Product_MP]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+    Component dhCheckedSalesSegment
+    {
+      #keys: '[412672.1.78210545]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[SalesSegment_MP]*'
+      Children:
+      [
+        Component deCheckedSalesSegment
+        {
+          #keys: '[412672.1.78210546]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[SalesSegment_MP]'
+            Source: 'ApplicationMacroPlanner.DataHolderCheckedSalesSegment'
+            Taborder: 0
+            Transformation: 'Elements'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
+    #child: MatrixEditor
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelFilter.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelFilter.def
new file mode 100644
index 0000000..3b2424b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelFilter.def
@@ -0,0 +1,96 @@
+Quintiq file version 2.0
+Component PanelFilter
+{
+  #keys: '[412672.1.78210464]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddslGeneration
+    {
+      #keys: '[412672.1.78210465]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: 'Generation'
+        Taborder: 0
+      ]
+    }
+    Component ddslMQBMLB
+    {
+      #keys: '[412672.1.78210466]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: 'MQB/MLB'
+        Taborder: 1
+      ]
+    }
+    Component ddslPower
+    {
+      #keys: '[412672.1.78210467]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: '鍔熺巼'
+        Taborder: 2
+      ]
+    }
+    Component dsStartDate
+    {
+      #keys: '[412672.1.78210468]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: 'Start Date'
+        Taborder: 3
+      ]
+    }
+    Component dsEndDate
+    {
+      #keys: '[412672.1.78210469]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Date: 9999-12-31
+        Label: 'End Date'
+        Taborder: 5
+      ]
+    }
+    Component ButtonFilter
+    {
+      #keys: '[412672.1.78210470]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: '杩囨护'
+        Taborder: 7
+      ]
+    }
+    Component dhStartDate
+    {
+      #keys: '[412672.1.78210471]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Date*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
+    Component dhEndDate
+    {
+      #keys: '[412672.1.78210472]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Date*'
+      Properties:
+      [
+        Taborder: 6
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 2
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon\043799.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon\043799.def"
new file mode 100644
index 0000000..3d20b4f
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon\043799.def"
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+Component PanelRibbon id:PanelRibbon_799
+{
+  #keys: '[412672.1.78210463]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelFilter
+    #child: PanelRibbon504_801
+    #child: PanelRibbon322
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon322.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon322.def
new file mode 100644
index 0000000..74422d6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon322.def
@@ -0,0 +1,89 @@
+Quintiq file version 2.0
+Component PanelRibbon322
+{
+  #keys: '[412672.1.82701845]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddlBaseMacroPlan
+    {
+      #keys: '[412672.1.82701846]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'MacroPlan'
+      Children:
+      [
+        Component deBaseMacroPlan
+        {
+          #keys: '[412672.1.82702010]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[MacroPlan]'
+            Source: 'dhMacroPlans'
+            Taborder: 0
+            Transformation: 'Elements'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'DisplayNameForSelection'
+        Label: '鍩哄噯鐗堟湰:'
+        Taborder: 0
+      ]
+    }
+    Component ddlCompareMacroPlan
+    {
+      #keys: '[412672.1.82701851]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'MacroPlan'
+      Children:
+      [
+        Component deCompareMacroPlan
+        {
+          #keys: '[412672.1.82702025]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[MacroPlan]'
+            Source: 'dhMacroPlans'
+            Taborder: 0
+            Transformation: 'Elements'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'DisplayNameForSelection'
+        Label: '瀵规瘮鐗堟湰:'
+        Taborder: 1
+      ]
+    }
+    Component dhMacroPlans
+    {
+      #keys: '[412672.1.82701972]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[MacroPlan]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+    Component ButtonRibbon
+    {
+      #keys: '[412672.1.85851524]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Tesyt'
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def"
new file mode 100644
index 0000000..e90ef60
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def"
@@ -0,0 +1,79 @@
+Quintiq file version 2.0
+Component PanelRibbon504 id:PanelRibbon504_801
+{
+  #keys: '[412672.1.78210473]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddlBaseOfflinePlanTable
+    {
+      #keys: '[412672.1.78210474]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'OfflinePlanTable'
+      Children:
+      [
+        Component DataExtractorRibbon
+        {
+          #keys: '[412672.1.78210475]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'OfflinePlanTable'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'SaveDateTime'
+        Label: '鍩哄噯涓嬬嚎璁″垝:'
+        Taborder: 0
+      ]
+    }
+    Component bComparison
+    {
+      #keys: '[412672.1.78210476]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: '寮�濮嬪姣�'
+        Taborder: 2
+      ]
+    }
+    Component ddlCompareOfflinePlanTable
+    {
+      #keys: '[412672.1.78210579]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'OfflinePlanTable'
+      Children:
+      [
+        Component DataExtractorRibbon300
+        {
+          #keys: '[412672.1.78210580]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'OfflinePlanTable'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'SaveDateTime'
+        Label: '瀵规瘮涓嬬嚎璁″垝:'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixEditorActionBarPageDemandComparison.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixEditorActionBarPageDemandComparison.def
new file mode 100644
index 0000000..8c6fa9a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixEditorActionBarPageDemandComparison.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageDemandComparison
+{
+  #keys: '[412672.1.78210539]'
+  BaseType: 'matrixEditorActionBarPage'
+  Properties:
+  [
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixeditorContextMenuDemandComparison.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixeditorContextMenuDemandComparison.def
new file mode 100644
index 0000000..15450bc
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_matrixeditorContextMenuDemandComparison.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuDemandComparison
+{
+  #keys: '[412672.1.78210540]'
+  BaseType: 'matrixeditorContextMenu'
+  Properties:
+  [
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def
new file mode 100644
index 0000000..cc755ec
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelDemandComparison/dhCheckedProduct
+Response OnDataChanged () id:Response_PanelDemandComparison_dhCheckedProduct_OnDataChanged
+{
+  #keys: '[412672.1.78210527]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      if( this.Data().Size() <> 0 ){
+        dhFinelProduct.Data( this.Data().Copy() ); 
+      }else{
+        dhFinelProduct.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
new file mode 100644
index 0000000..482b2c8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelDemandComparison/dhCheckedSalesSegment
+Response OnDataChanged () id:Response_PanelDemandComparison_dhCheckedSalesSegment_OnDataChanged
+{
+  #keys: '[412672.1.78210525]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    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 );
+      }else{
+        dhFinelProduct.Data( DataHolderProduct.Data().Copy() );
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhComparisonData_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhComparisonData_OnDataChanged.def
new file mode 100644
index 0000000..b236fb4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhComparisonData_OnDataChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelDemandComparison/dhComparisonData
+Response OnDataChanged () id:Response_PanelDemandComparison_dhComparisonData_OnDataChanged
+{
+  #keys: '[412672.1.78210528]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      PanelDemandComparison.Title( this.Data().Name() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def
new file mode 100644
index 0000000..4aac3b4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelDemandComparison_dhFinelProduct_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelDemandComparison/dhFinelProduct
+Response OnCreated () id:Response_PanelDemandComparison_dhFinelProduct_OnCreated
+{
+  #keys: '[412672.1.78210526]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Data( DataHolderProduct.Data().Copy() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def
new file mode 100644
index 0000000..0e04f16
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ButtonFilter_OnClick.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: PanelFilter/ButtonFilter
+Response OnClick () id:Response_PanelFilter_ButtonFilter_OnClick
+{
+  #keys: '[412672.1.78210457]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      products := dhCheckedProduct.Data().Copy();
+      if( ddslGeneration.Text() <> "<All>" ){
+        products := selectset( products,Elements,element,element.Generation() <> ddslGeneration.Text());
+      }
+      if( ddslMQBMLB.Text() <> "<All>" ){
+        products := selectset( products,Elements,element,element.MQBMLB() <> ddslMQBMLB.Text());
+      }
+      if( ddslPower.Text() <> "<All>" ){
+        products := selectset( products,Elements,element,element.Power() <> ddslPower.Text());
+      }
+      dhFinelProduct.Data( &products );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslGeneration_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslGeneration_OnCreated.def
new file mode 100644
index 0000000..479534f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslGeneration_OnCreated.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelFilter/ddslGeneration
+Response OnCreated () id:Response_PanelFilter_ddslGeneration_OnCreated
+{
+  #keys: '[412672.1.78210462]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      strings := selectuniquevalues( MacroPlan,Product_MP,product,not product.IsSystem(),product.Generation() );
+      
+      res := strings.Concatenate( ";" );
+      
+      this.Strings( "<All>;" + res );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslMQBMLB_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslMQBMLB_OnCreated.def
new file mode 100644
index 0000000..9d78957
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslMQBMLB_OnCreated.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelFilter/ddslMQBMLB
+Response OnCreated () id:Response_PanelFilter_ddslMQBMLB_OnCreated
+{
+  #keys: '[412672.1.78210461]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      strings := selectuniquevalues( MacroPlan,Product_MP,product,not product.IsSystem(),product.MQBMLB() );
+      
+      res := strings.Concatenate( ";" );
+      
+      this.Strings( "<All>;" + res );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslPower_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslPower_OnCreated.def
new file mode 100644
index 0000000..a610d7d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_ddslPower_OnCreated.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelFilter/ddslPower
+Response OnCreated () id:Response_PanelFilter_ddslPower_OnCreated
+{
+  #keys: '[412672.1.78210460]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      strings := selectuniquevalues( MacroPlan,Product_MP,product,not product.IsSystem(),product.Power() );
+      
+      res := strings.Concatenate( ";" );
+      
+      this.Strings( "<All>;" + res );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhEndDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhEndDate_OnCreated.def
new file mode 100644
index 0000000..ab03d32
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhEndDate_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelFilter/dhEndDate
+Response OnCreated () id:Response_PanelFilter_dhEndDate_OnCreated
+{
+  #keys: '[412672.1.78210455]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Data( Date::MaxDate() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhStartDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhStartDate_OnCreated.def
new file mode 100644
index 0000000..995c89d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dhStartDate_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelFilter/dhStartDate
+Response OnCreated () id:Response_PanelFilter_dhStartDate_OnCreated
+{
+  #keys: '[412672.1.78210456]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Data( Date::MinDate() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsEndDate_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsEndDate_OnChanged.def
new file mode 100644
index 0000000..dd8a509
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsEndDate_OnChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelFilter/dsEndDate
+Response OnChanged () id:Response_PanelFilter_dsEndDate_OnChanged
+{
+  #keys: '[412672.1.78210458]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      dhEndDate.Data( this.Date() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsStartDate_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsStartDate_OnChanged.def
new file mode 100644
index 0000000..fefafb6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelFilter_dsStartDate_OnChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelFilter/dsStartDate
+Response OnChanged () id:Response_PanelFilter_dsStartDate_OnChanged
+{
+  #keys: '[412672.1.78210459]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      dhStartDate.Data( this.Date() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_ButtonRibbon_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_ButtonRibbon_OnClick.def
new file mode 100644
index 0000000..db31260
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_ButtonRibbon_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322/ButtonRibbon
+Response OnClick () id:Response_PanelRibbon322_ButtonRibbon_OnClick
+{
+  #keys: '[412672.1.85851565]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
+      dhMacroPlans.Data( &macroPlans );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_dhMacroPlans_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_dhMacroPlans_OnCreated.def
new file mode 100644
index 0000000..e8423d1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon322_dhMacroPlans_OnCreated.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322/dhMacroPlans
+Response OnCreated () id:Response_PanelRibbon322_dhMacroPlans_OnCreated
+{
+  #keys: '[412672.1.82702179]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def
new file mode 100644
index 0000000..d361d10
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504_801/bComparison
+Response OnClick () id:Response_PanelRibbon504_801_bComparison_OnClick
+{
+  #keys: '[412672.1.78210454]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      baseVersion := ddlBaseOfflinePlanTable.Data();
+      compareVersion := ddlCompareOfflinePlanTable.Data();
+      
+      dhComparisonData.Data( LocalCell_OfflinePlanComparison::Compared( RecycleBin,baseVersion,compareVersion ));
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/_ROOT_Component_FormOfflinePlanComparison701.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/_ROOT_Component_FormOfflinePlanComparison701.def
new file mode 100644
index 0000000..090f164
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/_ROOT_Component_FormOfflinePlanComparison701.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormOfflinePlanComparison701
+{
+  #keys: '[412672.1.78201744]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelRibbon_799
+    #child: PanelDemandComparison
+  ]
+  Properties:
+  [
+    Image: 'DOCUMENT_INFO'
+    Title: '涓嬬嚎璁″垝瀵规瘮鎶ヨ〃'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
index ddf6844..323d5c8 100644
--- a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
+++ b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
   ProjectProperties
   {
     ApplicationComponentName: 'ApplicationMacroPlanner'
-    BuildVersion: '2022.3.0.29'
+    BuildVersion: '2022.3.0.48'
     Description: 'Quintiq Macro Planner'
     ProjectKind: 'WebClient'
   }

--
Gitblit v1.9.3