From 642ffe272e766efc3fc23f02b324817a94ed6d92 Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期一, 11 十一月 2024 17:46:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl                                                              |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPR.def                                                |    2 
 _Main/BL/Type_AsyncFlag/Attribute_State#569.qbl                                                                                      |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsEndDate_OnChanged.def                       |    6 
 _Main/BL/Type_AsyncFlag/StaticMethod_Running.qbl                                                                                     |   20 +
 _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionCurve.def                                             |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsStartDate_OnChanged.def                     |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhStartDate_OnCreated.def                     |   16 +
 _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPP.def                                                |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon820_OnClick#71.def            |    2 
 _Main/BL/Type_LocalTool/StaticMethod_LoadMacroPlan.qbl                                                                               |   12 +
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_dhXMLDataListener_OnDataChanged.def                  |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanMDSIDsByName.def                                    |   17 +
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_bExport_OnClick.def                                  |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhEndDate_OnCreated.def                       |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def                                             |   16 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def                                             |   16 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def                                   |   23 +
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon_OnClick.def                      |   18 +
 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def                                                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def                                                |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport#437.def                                                 |   16 
 _Main/BL/Type_AsyncFlag/Attribute_Name.qbl                                                                                           |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionIDS.def                                               |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def |   18 +
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon206_478_bImportOutput_OnClick.def                |    2 
 _Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl                                                                                 |    4 
 _Main/BL/Type_AsyncFlag/_ROOT_Type_AsyncFlag.qbl                                                                                     |    9 
 _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateTables.qbl                                                                 |   18 +
 _Main/BL/Relations/Relation_AsyncFlag_RecycleBin_RecycleBin_AsyncFlag.qbl                                                            |   23 +
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon682_OnClick.def                   |   20 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlActions.def                                                |    6 
 _Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl                                                                            |   19 
 _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPPA.def                                               |    2 
 _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl                                                         |   22 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def                                            |   22 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_rbgTimeUnit_OnUserChanged.def                 |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_cbAllStockingPoint_OnChanged.def                |   20 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def         |   18 +
 _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionBudget.def                                            |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent_dsLockDate_OnCreated.def                            |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_OnCreated.def                                               |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322#613.def                                          |  138 +++++++++++
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhTimeUnit_OnCreated.def                      |   16 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnCancel_OnClick.def                               |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhAsyncFlag_OnDataChanged.def                 |   12 +
 _Main/BL/Type_AsyncFlag/StaticMethod_Success.qbl                                                                                     |   20 +
 _Main/BL/Type_AsyncFlag/Attribute_Time.qbl                                                                                           |    7 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetLoadedMacroPlans.def                                         |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def                                  |    2 
 /dev/null                                                                                                                            |   16 -
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def        |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon_OnClick#88.def               |    2 
 _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl                                                            |   15 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/_ROOT_Component_DialogCreateLockPeriod.def                              |    2 
 55 files changed, 577 insertions(+), 101 deletions(-)

diff --git a/_Main/BL/Relations/Relation_AsyncFlag_RecycleBin_RecycleBin_AsyncFlag.qbl b/_Main/BL/Relations/Relation_AsyncFlag_RecycleBin_RecycleBin_AsyncFlag.qbl
new file mode 100644
index 0000000..df7e805
--- /dev/null
+++ b/_Main/BL/Relations/Relation_AsyncFlag_RecycleBin_RecycleBin_AsyncFlag.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation AsyncFlag_RecycleBin_RecycleBin_AsyncFlag
+{
+  #keys: '1[414996.1.207398228]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide RecycleBin
+  {
+    #keys: '3[414996.1.207398230][414996.1.207398229][414996.1.207398231]'
+    Cardinality: '0to1'
+    ObjectDefinition: AsyncFlag
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide AsyncFlag
+  {
+    #keys: '3[414996.1.207398233][414996.1.207398232][414996.1.207398234]'
+    Cardinality: '1toN'
+    ObjectDefinition: RecycleBin
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_AsyncFlag/Attribute_Name.qbl b/_Main/BL/Type_AsyncFlag/Attribute_Name.qbl
new file mode 100644
index 0000000..52061d7
--- /dev/null
+++ b/_Main/BL/Type_AsyncFlag/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414996.1.207398242][414996.1.207398241][414996.1.207398243]'
+  ValueType: String
+}
diff --git "a/_Main/BL/Type_AsyncFlag/Attribute_State\043569.qbl" "b/_Main/BL/Type_AsyncFlag/Attribute_State\043569.qbl"
new file mode 100644
index 0000000..ed95f52
--- /dev/null
+++ "b/_Main/BL/Type_AsyncFlag/Attribute_State\043569.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute State
+{
+  #keys: '3[414996.1.207398265][414996.1.207398264][414996.1.207398266]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AsyncFlag/Attribute_Time.qbl b/_Main/BL/Type_AsyncFlag/Attribute_Time.qbl
new file mode 100644
index 0000000..6e0e8df
--- /dev/null
+++ b/_Main/BL/Type_AsyncFlag/Attribute_Time.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Time
+{
+  #keys: '3[414996.1.207398252][414996.1.207398251][414996.1.207398253]'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_AsyncFlag/StaticMethod_Running.qbl b/_Main/BL/Type_AsyncFlag/StaticMethod_Running.qbl
new file mode 100644
index 0000000..e2efbcc
--- /dev/null
+++ b/_Main/BL/Type_AsyncFlag/StaticMethod_Running.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Running (
+  RecycleBin owner,
+  String name
+)
+{
+  TextBody:
+  [*
+    // Akari Nov-11-2024 (created)
+    now := DateTime::Now();
+    asyncFlag := select( owner,AsyncFlag,flag,flag.Name() = name );
+    if( not isnull( asyncFlag )){
+      asyncFlag.State( "Running" );
+      asyncFlag.Time( now );
+    }else{
+      owner.AsyncFlag( relnew,Name := name,State := "Running",Time := now )
+    }
+  *]
+}
diff --git a/_Main/BL/Type_AsyncFlag/StaticMethod_Success.qbl b/_Main/BL/Type_AsyncFlag/StaticMethod_Success.qbl
new file mode 100644
index 0000000..8724beb
--- /dev/null
+++ b/_Main/BL/Type_AsyncFlag/StaticMethod_Success.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Success (
+  RecycleBin owner,
+  String name
+)
+{
+  TextBody:
+  [*
+    // Akari Nov-11-2024 (created)
+    now := DateTime::Now();
+    asyncFlag := select( owner,AsyncFlag,flag,flag.Name() = name );
+    if( not isnull( asyncFlag )){
+      asyncFlag.State( "Success" );
+      asyncFlag.Time( now );
+    }else{
+      owner.AsyncFlag( relnew,Name := name,State := "Success",Time := now )
+    }
+  *]
+}
diff --git a/_Main/BL/Type_AsyncFlag/_ROOT_Type_AsyncFlag.qbl b/_Main/BL/Type_AsyncFlag/_ROOT_Type_AsyncFlag.qbl
new file mode 100644
index 0000000..3a5ca3e
--- /dev/null
+++ b/_Main/BL/Type_AsyncFlag/_ROOT_Type_AsyncFlag.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type AsyncFlag
+{
+  #keys: '5[414996.1.207398222][414996.1.207398220][0.0.0][414996.1.207398221][414996.1.207398223]'
+  BaseType: Object
+  StructuredName: 'AsyncFlags'
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl b/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl
index a20b0a3..5f1c80b 100644
--- a/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl
+++ b/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl
@@ -6,9 +6,9 @@
   [*
     // Akari Aug-21-2024 (created)
     value := "";
-    if( this.FactoryName() = "澶ц繛宸ュ巶" ){
+    if( this.FactoryName().LikeUserLocale( "澶ц繛" ) or  this.FactoryName().LikeUserLocale( "DL" ) ){
       value := "DL";
-    }else if( this.FactoryName() = "闀挎槬宸ュ巶"){
+    }else if( this.FactoryName().LikeUserLocale( "闀挎槬" ) or  this.FactoryName().LikeUserLocale( "CC" )){
       value := "CC";
     }
     
diff --git a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
index ec03621..0eaff48 100644
--- a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
+++ b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
@@ -52,18 +52,19 @@
          dispatchShiftPlan.VersionName( macroPlanName );
          dispatchShiftPlan.InterfaceTime( now );
        }else{
-         interfaceLoginfo.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
-                                             ProductLine := productLine,
-                                             FactoryName := factory.ID(),
-                                             ShiftQty := shiftPlan.Outcome(),
+         if( shiftPlan.Outcome() <> "" ){
+           interfaceLoginfo.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
+                                               ProductLine := productLine,
+                                               FactoryName := factory.ID(),
+                                               ShiftQty := shiftPlan.Outcome(),
                                   
-                                             ShiftDate := shiftDate,
-                                             Tips := shiftPlan.Remark(),
-                                             VersionName := macroPlanName,
-                                             InterfaceTime := now );
+                                               ShiftDate := shiftDate,
+                                               Tips := shiftPlan.Remark(),
+                                               VersionName := macroPlanName,
+                                               InterfaceTime := now );
+         }
        }
     }
     DispatchShiftPlan::Publish( interfaceLoginfo );
-    // owner.RB_DispatchShiftPlanBroker().AsyncExecute();
   *]
 }
diff --git a/_Main/BL/Type_LocalTool/StaticMethod_LoadMacroPlan.qbl b/_Main/BL/Type_LocalTool/StaticMethod_LoadMacroPlan.qbl
new file mode 100644
index 0000000..04ec5ce
--- /dev/null
+++ b/_Main/BL/Type_LocalTool/StaticMethod_LoadMacroPlan.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod LoadMacroPlan (
+  Key mdskey
+) const as stream[MacroPlan]
+{
+  TextBody:
+  [*
+    // Akari Nov-11-2024 (created)
+    return MDSMacroPlan::Root( mdskey );
+  *]
+}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl
new file mode 100644
index 0000000..d1949ea
--- /dev/null
+++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateFullTable.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod AsyncCreateFullTable (
+  const Keys macroPlanMDSIDs,
+  RecycleBin recycleBin,
+  const MacroPlan owner
+)
+{
+  TextBody:
+  [*
+    // Akari Nov-11-2024 (created)
+    AsyncFlag::Running( recycleBin,MP_Cell_AnnualPlanReport::GetTableName() );
+    
+    macroPlans := stream[MacroPlan]::Success();
+    traverse( macroPlanMDSIDs,Elements,mdsid ){
+      streamMacroPlan := LocalTool::LoadMacroPlan( mdsid );
+      macroPlans.Merge( streamMacroPlan );
+    }
+    
+    macroPlans -> GroupAll() -> MP_Cell_AnnualPlanReport::CreateFullTable( recycleBin,owner );
+  *]
+}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl
new file mode 100644
index 0000000..f354c87
--- /dev/null
+++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_AsyncCreateTables.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod AsyncCreateTables (
+  const Keys macroPlanMDSIDs
+)
+{
+  TextBody:
+  [*
+    // Akari Nov-11-2024 (created)
+    traverse( macroPlanMDSIDs,Elements,mdsid ){
+      streamMacroPlan := LocalTool::LoadMacroPlan( mdsid );
+      streamMacroPlan -> MP_Cell_AnnualPlanReport::Create( );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl
index 5ce0ad0..6618723 100644
--- a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl
+++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl
@@ -9,7 +9,7 @@
   TextBody:
   [*
     // rislai Aug-7-2024 (created)
-    tables := MP_Table::GetMP_Tables_AnnualPlanReport( owners );
+    tables := selectset( owners,Elements.MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName());
     
     localTable := recycleBin.LocalTable( relnew,Name := MP_Cell_AnnualPlanReport::GetTableName() );
     startDate := minselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
@@ -165,7 +165,7 @@
     //    }
     //  } 
     //}
-    
+    AsyncFlag::Success( recycleBin,MP_Cell_AnnualPlanReport::GetTableName() );
     return localTable;
   *]
 }
diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateTables.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateTables.qbl
new file mode 100644
index 0000000..952c6a2
--- /dev/null
+++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateTables.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateTables (
+  MacroPlans owners
+)
+{
+  TextBody:
+  [*
+    // Akari Nov-11-2024 (created)
+    traverse( owners,Elements,owner ){
+      table := select( owner,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() );
+      if( not isnull( table )){
+        table.Delete();
+      }
+      MP_Cell_AnnualPlanReport::Create( owner );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MP_Table/StaticMethod_CreateMP_Tables_AnnualPlanReport.qbl b/_Main/BL/Type_MP_Table/StaticMethod_CreateMP_Tables_AnnualPlanReport.qbl
deleted file mode 100644
index cab5230..0000000
--- a/_Main/BL/Type_MP_Table/StaticMethod_CreateMP_Tables_AnnualPlanReport.qbl
+++ /dev/null
@@ -1,21 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod CreateMP_Tables_AnnualPlanReport (
-  const MacroPlans owners
-) as owning MP_Tables
-{
-  TextBody:
-  [*
-    // Akari Aug-19-2024 (created)
-    tables := construct( MP_Tables );
-    traverse( owners,Elements,owner ,owner.MDSMacroPlan().Description().LikeUserLocale( "璁″垝姹囨��" )){
-      table := select( owner,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() );
-      if( not isnull( table )){
-        table.Delete();
-      }
-      table :=  MP_Cell_AnnualPlanReport::Create( owner );
-      tables.Add( table );
-    }
-    return &tables;
-  *]
-}
diff --git a/_Main/BL/Type_MP_Table/StaticMethod_GetMP_Tables_AnnualPlanReport.qbl b/_Main/BL/Type_MP_Table/StaticMethod_GetMP_Tables_AnnualPlanReport.qbl
deleted file mode 100644
index 47015ba..0000000
--- a/_Main/BL/Type_MP_Table/StaticMethod_GetMP_Tables_AnnualPlanReport.qbl
+++ /dev/null
@@ -1,26 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod GetMP_Tables_AnnualPlanReport (
-  const MacroPlans owners
-) as owning MP_Tables
-{
-  TextBody:
-  [*
-    // Akari Aug-19-2024 (created)
-    tables := construct( MP_Tables );
-    traverse( owners,Elements,owner ,owner.MDSMacroPlan().Description().LikeUserLocale( "璁″垝姹囨��" )){
-      table := select( owner,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() );
-      if( isnull( table )){
-        table :=  MP_Cell_AnnualPlanReport::Create( owner );
-      }else{
-        startDate := minselect( table,MP_Column,column,column.CustomDate() ).CustomDate();
-        planStartDate := owner.StartOfPlanning().Date();
-        if( startDate <> planStartDate ){
-          table :=  MP_Cell_AnnualPlanReport::Create( owner );
-        }
-      }
-      tables.Add( table );
-    }
-    return &tables;
-  *]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetLoadedMacroPlans.def
similarity index 85%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def
rename to _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetLoadedMacroPlans.def
index 695b69b..722af75 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetLoadedMacroPlans.def
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Method GetMacroPlans () as structured[MacroPlan] id:Method_ApplicationMacroPlanner_GetMacroPlans
+Method GetLoadedMacroPlans () as structured[MacroPlan] id:Method_ApplicationMacroPlanner_GetLoadedMacroPlans
 {
   #keys: '[412672.1.82702269]'
   Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanMDSIDsByName.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanMDSIDsByName.def
new file mode 100644
index 0000000..fda706a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanMDSIDsByName.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetMacroPlanMDSIDsByName (
+  String macroPlanName
+) as structured[Key] id:Method_ApplicationMacroPlanner_GetMacroPlanMDSIDsByName
+{
+  #keys: '[414996.1.207024144]'
+  Body:
+  [*
+    macroPlanMDSIDs := construct( Keys );
+    
+    macroPlanMDSIDs := selectuniquevalues( ScenarioManager,ScenarioMP,scemp,scemp.Name().LikeUserLocale( macroPlanName ) ,scemp.MDSID());
+    
+    return &macroPlanMDSIDs
+  *]
+  ReturnsOwning: true
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct\043519.def" b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def
similarity index 63%
rename from "_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct\043519.def"
rename to _Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def
index a93f402..fabf479 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pProduct\043519.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pStockingPoint.def
@@ -1,41 +1,41 @@
 Quintiq file version 2.0
-Component pProduct
+Component pStockingPoint
 {
-  #keys: '[414996.1.172931824]'
+  #keys: '[414996.1.206961942]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component ddlProduct
+    Component ddlStockingPoint
     {
-      #keys: '[414996.1.172931898]'
+      #keys: '[414996.1.206961943]'
       BaseType: 'WebDropDownList'
-      Databinding: 'Product_MP'
+      Databinding: 'StockingPoint_MP'
       Children:
       [
-        Component deContent id:deContent_245
+        Component deContent
         {
-          #keys: '[414996.1.172931899]'
+          #keys: '[414996.1.206961944]'
           BaseType: 'WebDataExtractor'
           Properties:
           [
             DataType: 'MacroPlan'
             Source: 'MacroPlan'
             Taborder: 0
-            Transformation: 'Product_MP'
+            Transformation: 'StockingPoint_MP'
           ]
         }
       ]
       Properties:
       [
         DisplayField: 'ID'
-        Label: '浜у搧'
+        Label: '搴撳瓨鐐�'
         NumberOfColumns: 50
         Taborder: 0
       ]
     }
-    Component cbAllProduct
+    Component cbAllStockingPoint
     {
-      #keys: '[414996.1.172931904]'
+      #keys: '[414996.1.206961945]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlActions.def
index e45d1f7..89a752f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlActions.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlActions.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
 Component pnlActions
 {
-  #keys: '[412672.0.1039310286]'
+  #keys: '[414996.1.206961981]'
   BaseType: 'WebPanel'
   Children:
   [
     Component btnOk
     {
-      #keys: '[412672.0.1039310290]'
+      #keys: '[414996.1.206961982]'
       BaseType: 'WebButton'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component btnCancel
     {
-      #keys: '[412672.0.1039310292]'
+      #keys: '[414996.1.206961983]'
       BaseType: 'WebButton'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def
index 91bbeb6..3eaa956 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent.def
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
 Component pnlContent
 {
-  #keys: '[412672.0.1039310284]'
+  #keys: '[414996.1.206961940]'
   BaseType: 'WebPanel'
   Children:
   [
     Component dsLockDate
     {
-      #keys: '[412672.0.1039341942]'
+      #keys: '[414996.1.206961941]'
       BaseType: 'WebDateSelector'
       Properties:
       [
@@ -15,13 +15,13 @@
         Taborder: 3
       ]
     }
-    #child: pProduct
+    #child: pStockingPoint
     #child: pnlContent661
-    Component dhSelectProduct id:dhSelectProduct_159
+    Component dhSelectStockingPoint
     {
-      #keys: '[414996.1.172932445]'
+      #keys: '[414996.1.206961950]'
       BaseType: 'WebDataHolder'
-      Databinding: 'Product_MP'
+      Databinding: 'StockingPoint_MP'
       Properties:
       [
         Taborder: 1
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def
index df2d059..cb83f7d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Component_pnlContent661.def
@@ -1,25 +1,25 @@
 Quintiq file version 2.0
 Component pnlContent661
 {
-  #keys: '[414996.1.172932399]'
+  #keys: '[414996.1.206961946]'
   BaseType: 'WebPanel'
   Children:
   [
     Component ddlProductInStockingPoint
     {
-      #keys: '[414996.1.172932647]'
+      #keys: '[414996.1.206961947]'
       BaseType: 'WebDropDownList'
       Databinding: 'ProductInStockingPoint_MP'
       Children:
       [
         Component deContent404
         {
-          #keys: '[414996.1.172932649]'
+          #keys: '[414996.1.206961948]'
           BaseType: 'WebDataExtractor'
           Properties:
           [
-            DataType: 'Product_MP'
-            Source: 'dhSelectProduct'
+            DataType: 'StockingPoint_MP'
+            Source: 'dhSelectStockingPoint'
             Taborder: 0
             Transformation: 'ProductInStockingPoint_MP'
           ]
@@ -27,15 +27,15 @@
       ]
       Properties:
       [
-        DisplayField: 'StockingPointID'
-        Label: '搴撳瓨鐐�'
+        DisplayField: 'ProductID'
+        Label: '浜у搧'
         NumberOfColumns: 50
         Taborder: 0
       ]
     }
     Component cbAllProductInStockingPoint
     {
-      #keys: '[414996.1.172932676]'
+      #keys: '[414996.1.206961949]'
       BaseType: 'WebCheckbox'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def
deleted file mode 100644
index d41683e..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_cbAllProduct_OnChanged.def
+++ /dev/null
@@ -1,22 +0,0 @@
-Quintiq file version 2.0
-#parent: pProduct/cbAllProduct
-Response OnChanged () id:Response_pProduct_cbAllProduct_OnChanged
-{
-  #keys: '[414996.1.172932859]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      if( this.Checked() ){
-        ddlProduct.Enabled( false,"" );
-        cbAllProductInStockingPoint.Checked( true );
-      }else{
-        ddlProduct.Enabled( true,"" );
-        cbAllProductInStockingPoint.Checked( false );
-      }
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def
deleted file mode 100644
index 4bd82df..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pProduct_ddlProduct_OnSelectionChanged.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: pProduct/ddlProduct
-Response OnSelectionChanged (
-  Product_MP selection
-) id:Response_pProduct_ddlProduct_OnSelectionChanged
-{
-  #keys: '[414996.1.172932024]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      dhSelectProduct.Data( selection );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_cbAllStockingPoint_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_cbAllStockingPoint_OnChanged.def
new file mode 100644
index 0000000..c7d89c1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_cbAllStockingPoint_OnChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: pStockingPoint/cbAllStockingPoint
+Response OnChanged () id:Response_pStockingPoint_cbAllStockingPoint_OnChanged
+{
+  #keys: '[414996.1.206961938]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      if( this.Checked() ){
+        ddlStockingPoint.Enabled( false,"" );
+      }else{
+        ddlStockingPoint.Enabled( true,"" );
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def
new file mode 100644
index 0000000..660d3f1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pStockingPoint/ddlStockingPoint
+Response OnSelectionChanged (
+  StockingPoint_MP selection
+) id:Response_pStockingPoint_ddlStockingPoint_OnSelectionChanged
+{
+  #keys: '[414996.1.206961939]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      dhSelectStockingPoint.Data( selection );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnCancel_OnClick.def
index 4d5cb33..73b809c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnCancel_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnCancel_OnClick.def
@@ -2,7 +2,7 @@
 #parent: pnlActions/btnCancel
 Response OnClick () id:Response_pnlActions_btnCancel_OnClick
 {
-  #keys: '[412672.0.1039310296]'
+  #keys: '[414996.1.206961979]'
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def
index f131cc6..7fd1b52 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlActions_btnOk_OnClick.def
@@ -2,26 +2,37 @@
 #parent: pnlActions/btnOk
 Response OnClick () id:Response_pnlActions_btnOk_OnClick
 {
-  #keys: '[412672.0.1039310295]'
+  #keys: '[414996.1.206961980]'
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
   QuillAction
   {
     Body:
     [*
-      if( cbAllProduct.Checked() ){
-        traverse( MacroPlan,Product_MP,product ){
-          traverse( product,ProductInStockingPoint_MP,productInStockingPoint ){
+      if( cbAllStockingPoint.Checked() ){
+        if( cbAllProductInStockingPoint.Checked() ){
+          // 閿佸畾鍏ㄩ儴浜у搧
+          traverse( MacroPlan,Product_MP,product ){
+            traverse( product,ProductInStockingPoint_MP,productInStockingPoint ){
+              LockPeriod::Create( productInStockingPoint,dsLockDate.Date() );
+            }
+          }
+        }else{
+          // 閿佸畾鎸囧畾浜у搧涓嬬殑鍏ㄩ儴搴撳瓨鐐�
+          product := ddlProductInStockingPoint.Data().Product_MP();
+          traverse( product,ProductInStockingPoint_MP,productInStockingPoint){
             LockPeriod::Create( productInStockingPoint,dsLockDate.Date() );
           }
         }
       }else{
         if( cbAllProductInStockingPoint.Checked() ){
-          product := ddlProduct.Data();
-          traverse( product,ProductInStockingPoint_MP,productInStockingPoint ){
+          // 閿佸畾鎸囧畾搴撳瓨鐐逛笅鐨勫叏閮ㄤ骇鍝�
+          stockingPoint := ddlStockingPoint.Data();
+          traverse( stockingPoint,ProductInStockingPoint_MP,productInStockingPoint ){
             LockPeriod::Create( productInStockingPoint,dsLockDate.Date() );
           }
         }else{
+          // 閿佸畾鎸囧畾搴撳瓨鐐圭殑鎸囧畾浜у搧
           LockPeriod::Create( ddlProductInStockingPoint.Data(),dsLockDate.Date() );
         } 
       }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def
index 3be14e0..b0901ff 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_cbAllProductInStockingPoint_OnChanged.def
@@ -2,7 +2,7 @@
 #parent: pnlContent661/cbAllProductInStockingPoint
 Response OnChanged () id:Response_pnlContent661_cbAllProductInStockingPoint_OnChanged
 {
-  #keys: '[414996.1.172932951]'
+  #keys: '[414996.1.206961937]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
   GroupServerCalls: true
@@ -14,7 +14,6 @@
         ddlProductInStockingPoint.Enabled( false,"" ); 
       }else{
         ddlProductInStockingPoint.Enabled( true,"" );
-        cbAllProduct.Checked( false );
       }
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def
new file mode 100644
index 0000000..2c3001e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlContent661/ddlProductInStockingPoint
+Response OnSelectionChanged (
+  ProductInStockingPoint_MP selection
+) id:Response_pnlContent661_ddlProductInStockingPoint_OnSelectionChanged
+{
+  #keys: '[414996.1.207063206]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Tooltip( selection.Name() )
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent_dsLockDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent_dsLockDate_OnCreated.def
index 4301412..5e229f5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent_dsLockDate_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/Response_pnlContent_dsLockDate_OnCreated.def
@@ -2,7 +2,7 @@
 #parent: pnlContent/dsLockDate
 Response OnCreated () id:Response_pnlContent_dsLockDate_OnCreated
 {
-  #keys: '[414996.1.172933211]'
+  #keys: '[414996.1.206961936]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebComponent_OnCreated'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/_ROOT_Component_DialogCreateLockPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/_ROOT_Component_DialogCreateLockPeriod.def
index 04859c6..ca1aad0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/_ROOT_Component_DialogCreateLockPeriod.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateLockPeriod/_ROOT_Component_DialogCreateLockPeriod.def
@@ -7,8 +7,8 @@
   BaseType: 'WebForm'
   Children:
   [
-    #child: pnlContent
     #child: pnlActions
+    #child: pnlContent
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def
index 5859930..93f374e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
+      macroPlans := ApplicationMacroPlanner.GetLoadedMacroPlans();
       OfflinePlanTableInfo::CreateNew( macroPlans,RecycleBin );
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def
index e58c679..4a3105d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def
@@ -45,6 +45,22 @@
       #keys: '[412672.1.106503705]'
       BaseType: 'WebDataHolder'
       Databinding: 'LocalTable'
+      Children:
+      [
+        Component deComparisonData
+        {
+          #keys: '[414996.1.207643367]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'RecycleBin'
+            FixedFilter: 'object.Name() = MP_Cell_AnnualPlanReport::GetTableName()'
+            Source: 'RecycleBin'
+            Taborder: 0
+            Transformation: 'LocalTable'
+          ]
+        }
+      ]
       Properties:
       [
         Taborder: 1
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon\043805.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon\043805.def"
deleted file mode 100644
index 5947dc5..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon\043805.def"
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-Component PanelRibbon id:PanelRibbon_805
-{
-  #keys: '[412672.1.106503600]'
-  BaseType: 'WebPanel'
-  Children:
-  [
-    #child: PanelRibbon322
-  ]
-  Properties:
-  [
-    FixedSize: true
-    Taborder: 1
-  ]
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322\043613.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322\043613.def"
new file mode 100644
index 0000000..af92e33
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322\043613.def"
@@ -0,0 +1,138 @@
+Quintiq file version 2.0
+Component PanelRibbon322 id:PanelRibbon322_613
+{
+  #keys: '[414996.1.207566016]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component dsStartDate
+    {
+      #keys: '[414996.1.207566017]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: 'Start Date'
+        Taborder: 4
+      ]
+    }
+    Component dhStartDate
+    {
+      #keys: '[414996.1.207566018]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Date*'
+      Properties:
+      [
+        Taborder: 5
+      ]
+    }
+    Component dsEndDate
+    {
+      #keys: '[414996.1.207566019]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Date: 9999-12-31
+        Label: 'End Date'
+        Taborder: 6
+      ]
+    }
+    Component dhEndDate
+    {
+      #keys: '[414996.1.207566020]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Date*'
+      Properties:
+      [
+        Taborder: 7
+      ]
+    }
+    Component ButtonRibbon
+    {
+      #keys: '[414996.1.207566021]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'C_CLAMP'
+        Label: 'Create base data'
+        Taborder: 0
+      ]
+    }
+    Component ButtonRibbon682
+    {
+      #keys: '[414996.1.207566022]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'C_CLAMP'
+        Label: 'Create full table'
+        Taborder: 1
+      ]
+    }
+    Component rbgTimeUnit
+    {
+      #keys: '[414996.1.207566023]'
+      BaseType: 'WebRadioButtonGroup'
+      Properties:
+      [
+        BoundValue: 'Day'
+        ButtonLabels: 'Day;Week;Month'
+        ButtonValues: 'Day;Week;Month'
+        Taborder: 2
+      ]
+    }
+    Component dhTimeUnit
+    {
+      #keys: '[414996.1.207566024]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+    #child: pExport_437
+    Component dhAsyncFlag
+    {
+      #keys: '[414996.1.207566029]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'AsyncFlag'
+      Children:
+      [
+        Component deAsyncFlag
+        {
+          #keys: '[414996.1.207566030]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'RecycleBin'
+            FixedFilter: 'object.Name() = MP_Cell_AnnualPlanReport::GetTableName()'
+            Source: 'RecycleBin'
+            Taborder: 0
+            Transformation: 'AsyncFlag'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Taborder: 9
+      ]
+    }
+    Component lAsyncFlag
+    {
+      #keys: '[414996.1.207566031]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'dhAsyncFlag.Data.State'
+        Taborder: 10
+        Text: '杩愯鐘舵��'
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def
deleted file mode 100644
index 1d79cf5..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def
+++ /dev/null
@@ -1,101 +0,0 @@
-Quintiq file version 2.0
-Component PanelRibbon322
-{
-  #keys: '[412672.1.106503607]'
-  BaseType: 'WebPanel'
-  Children:
-  [
-    Component dsStartDate
-    {
-      #keys: '[412672.1.106503612]'
-      BaseType: 'WebDateSelector'
-      Properties:
-      [
-        Label: 'Start Date'
-        Taborder: 4
-      ]
-    }
-    Component dhStartDate
-    {
-      #keys: '[412672.1.106503613]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'Date*'
-      Properties:
-      [
-        Taborder: 5
-      ]
-    }
-    Component dsEndDate
-    {
-      #keys: '[412672.1.106503614]'
-      BaseType: 'WebDateSelector'
-      Properties:
-      [
-        Date: 9999-12-31
-        Label: 'End Date'
-        Taborder: 6
-      ]
-    }
-    Component dhEndDate
-    {
-      #keys: '[412672.1.106503615]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'Date*'
-      Properties:
-      [
-        Taborder: 7
-      ]
-    }
-    Component ButtonRibbon
-    {
-      #keys: '[412672.1.106504238]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'C_CLAMP'
-        Label: 'Create base data'
-        Taborder: 0
-      ]
-    }
-    Component ButtonRibbon682
-    {
-      #keys: '[412672.1.108512062]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'C_CLAMP'
-        Label: 'Create full table'
-        Taborder: 1
-      ]
-    }
-    Component rbgTimeUnit
-    {
-      #keys: '[412672.1.108680900]'
-      BaseType: 'WebRadioButtonGroup'
-      Properties:
-      [
-        BoundValue: 'Day'
-        ButtonLabels: 'Day;Week;Month'
-        ButtonValues: 'Day;Week;Month'
-        Taborder: 2
-      ]
-    }
-    Component dhTimeUnit
-    {
-      #keys: '[412672.1.111067302]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'String*'
-      Properties:
-      [
-        Taborder: 3
-      ]
-    }
-    #child: pExport
-  ]
-  Properties:
-  [
-    FixedSize: true
-    Orientation: 'horizontal'
-    Taborder: 0
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\043437.def"
similarity index 69%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\043437.def"
index 40d7bc0..6d87796 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport\043437.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component pExport
+Component pExport id:pExport_437
 {
-  #keys: '[412672.1.111157999]'
+  #keys: '[414996.1.207566025]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component bExport id:bExport_474
+    Component bExport
     {
-      #keys: '[412672.1.111158037]'
+      #keys: '[414996.1.207566026]'
       BaseType: 'WebButton'
       Properties:
       [
@@ -15,16 +15,16 @@
         Taborder: 0
       ]
     }
-    Component dhXMLDataListener id:dhXMLDataListener_801
+    Component dhXMLDataListener
     {
-      #keys: '[412672.1.111158064]'
+      #keys: '[414996.1.207566027]'
       BaseType: 'WebDataHolder'
       Databinding: 'ExportXMLManager'
       Children:
       [
-        Component DataExtractorRibbon id:DataExtractorRibbon_462
+        Component DataExtractorRibbon
         {
-          #keys: '[412672.1.111158065]'
+          #keys: '[414996.1.207566028]'
           BaseType: 'WebDataExtractor'
           Properties:
           [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon682_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon682_OnClick.def
new file mode 100644
index 0000000..a07fc4f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon682_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_613/ButtonRibbon682
+Response OnClick () id:Response_PanelRibbon322_613_ButtonRibbon682_OnClick
+{
+  #keys: '[414996.1.207566008]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      macroPlanMDSIDs := ApplicationMacroPlanner.GetMacroPlanMDSIDsByName( "璁″垝姹囨��" );
+      
+      MP_Cell_AnnualPlanReport::AsyncCreateFullTable( macroPlanMDSIDs,RecycleBin,MacroPlan ); 
+      // dhComparisonData.Data( table );
+      // WebMessageBox::Success( "Success" );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon_OnClick.def
new file mode 100644
index 0000000..2c9819c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_ButtonRibbon_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_613/ButtonRibbon
+Response OnClick () id:Response_PanelRibbon322_613_ButtonRibbon_OnClick
+{
+  #keys: '[414996.1.207566009]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      macroPlanMDSIDs := ApplicationMacroPlanner.GetMacroPlanMDSIDsByName( "璁″垝姹囨��" );
+      
+      MP_Cell_AnnualPlanReport::AsyncCreateTables( macroPlanMDSIDs );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhAsyncFlag_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhAsyncFlag_OnDataChanged.def
new file mode 100644
index 0000000..baa3fde
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhAsyncFlag_OnDataChanged.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_613/dhAsyncFlag
+Response OnDataChanged () id:Response_PanelRibbon322_613_dhAsyncFlag_OnDataChanged
+{
+  #keys: '[414996.1.207566004]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhEndDate_OnCreated.def
similarity index 60%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhEndDate_OnCreated.def
index 9975661..fb4eb35 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhEndDate_OnCreated.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelRibbon322/dhEndDate
-Response OnCreated () id:Response_PanelRibbon322_dhEndDate_OnCreated
+#parent: PanelRibbon322_613/dhEndDate
+Response OnCreated () id:Response_PanelRibbon322_613_dhEndDate_OnCreated
 {
-  #keys: '[412672.1.106503587]'
+  #keys: '[414996.1.207566010]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebComponent_OnCreated'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhStartDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhStartDate_OnCreated.def
new file mode 100644
index 0000000..7f2ac44
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhStartDate_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_613/dhStartDate
+Response OnCreated () id:Response_PanelRibbon322_613_dhStartDate_OnCreated
+{
+  #keys: '[414996.1.207566012]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Data( Date::MinDate() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhTimeUnit_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhTimeUnit_OnCreated.def
new file mode 100644
index 0000000..e115a3e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dhTimeUnit_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_613/dhTimeUnit
+Response OnCreated () id:Response_PanelRibbon322_613_dhTimeUnit_OnCreated
+{
+  #keys: '[414996.1.207566006]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Data( "Day" );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsEndDate_OnChanged.def
similarity index 61%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsEndDate_OnChanged.def
index edb6111..8415eff 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsEndDate_OnChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelRibbon322/dsEndDate
-Response OnChanged () id:Response_PanelRibbon322_dsEndDate_OnChanged
+#parent: PanelRibbon322_613/dsEndDate
+Response OnChanged () id:Response_PanelRibbon322_613_dsEndDate_OnChanged
 {
-  #keys: '[412672.1.106503588]'
+  #keys: '[414996.1.207566011]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsStartDate_OnChanged.def
similarity index 60%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsStartDate_OnChanged.def
index d9d9e73..7e8b256 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_dsStartDate_OnChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelRibbon322/dsStartDate
-Response OnChanged () id:Response_PanelRibbon322_dsStartDate_OnChanged
+#parent: PanelRibbon322_613/dsStartDate
+Response OnChanged () id:Response_PanelRibbon322_613_dsStartDate_OnChanged
 {
-  #keys: '[412672.1.106503590]'
+  #keys: '[414996.1.207566013]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_rbgTimeUnit_OnUserChanged.def
similarity index 60%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_rbgTimeUnit_OnUserChanged.def
index f56289a..cbc720e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_613_rbgTimeUnit_OnUserChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelRibbon322/rbgTimeUnit
-Response OnUserChanged () id:Response_PanelRibbon322_rbgTimeUnit_OnUserChanged
+#parent: PanelRibbon322_613/rbgTimeUnit
+Response OnUserChanged () id:Response_PanelRibbon322_613_rbgTimeUnit_OnUserChanged
 {
-  #keys: '[412672.1.111001324]'
+  #keys: '[414996.1.207566007]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebRadioButtonGroup_OnUserChanged'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def
deleted file mode 100644
index 2d443f6..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def
+++ /dev/null
@@ -1,19 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelRibbon322/ButtonRibbon682
-Response OnClick () id:Response_PanelRibbon322_ButtonRibbon682_OnClick
-{
-  #keys: '[412672.1.108512122]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebButton_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      table := MP_Cell_AnnualPlanReport::CreateFullTable( ApplicationMacroPlanner.GetMacroPlans(),RecycleBin,MacroPlan );
-      dhComparisonData.Data( table );
-      
-      WebMessageBox::Success( "Success" );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def
deleted file mode 100644
index 5861d6b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelRibbon322/ButtonRibbon
-Response OnClick () id:Response_PanelRibbon322_ButtonRibbon_OnClick
-{
-  #keys: '[412672.1.106504261]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebButton_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      MP_Table::CreateMP_Tables_AnnualPlanReport( ApplicationMacroPlanner.GetMacroPlans() );
-      WebMessageBox::Success( "Success" );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def
deleted file mode 100644
index f2e53ed..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelRibbon322/dhStartDate
-Response OnCreated () id:Response_PanelRibbon322_dhStartDate_OnCreated
-{
-  #keys: '[412672.1.106503589]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      this.Data( Date::MinDate() );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def
deleted file mode 100644
index d90dcb3..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: PanelRibbon322/dhTimeUnit
-Response OnCreated () id:Response_PanelRibbon322_dhTimeUnit_OnCreated
-{
-  #keys: '[412672.1.111098277]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      this.Data( "Day" );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_bExport_OnClick.def
similarity index 85%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_bExport_OnClick.def
index 21ba77d..a9313e1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_bExport_OnClick.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: pExport/bExport_474
-Response OnClick () id:Response_pExport_bExport_OnClick
+#parent: pExport_437/bExport
+Response OnClick () id:Response_pExport_437_bExport_OnClick
 {
-  #keys: '[412672.1.111158036]'
+  #keys: '[414996.1.207566015]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_dhXMLDataListener_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_dhXMLDataListener_OnDataChanged.def
similarity index 76%
rename from _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_dhXMLDataListener_OnDataChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_dhXMLDataListener_OnDataChanged.def
index 801f169..18b7a85 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_dhXMLDataListener_OnDataChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_437_dhXMLDataListener_OnDataChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: pExport/dhXMLDataListener_801
-Response OnDataChanged () id:Response_pExport_dhXMLDataListener_OnDataChanged
+#parent: pExport_437/dhXMLDataListener
+Response OnDataChanged () id:Response_pExport_437_dhXMLDataListener_OnDataChanged
 {
-  #keys: '[414996.1.140601534]'
+  #keys: '[414996.1.207566014]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def
index cfa5e4d..7394c00 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def
@@ -7,9 +7,9 @@
   BaseType: 'WebForm'
   Children:
   [
-    #child: PanelRibbon_805
     #child: PanelAnnualPlan
     #child: pProductAttributeFilter
+    #child: PanelRibbon322_613
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionBudget.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionBudget.def
index 35bf6e7..31aa97b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionBudget.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionBudget.def
@@ -30,6 +30,7 @@
         DisplayField: 'Name'
         Label: '鍩哄噯闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 0
       ]
     }
@@ -70,6 +71,7 @@
         DisplayField: 'Name'
         Label: '瀵规瘮闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 2
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionCurve.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionCurve.def
index 3e57ff0..ff165bf 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionCurve.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionCurve.def
@@ -30,6 +30,7 @@
         DisplayField: 'Name'
         Label: '鍩哄噯闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 0
       ]
     }
@@ -70,6 +71,7 @@
         DisplayField: 'Name'
         Label: '瀵规瘮闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 2
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionIDS.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionIDS.def
index 2589294..e0448f0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionIDS.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionIDS.def
@@ -30,6 +30,7 @@
         DisplayField: 'Name'
         Label: '鍩哄噯闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 0
       ]
     }
@@ -70,6 +71,7 @@
         DisplayField: 'Name'
         Label: '瀵规瘮闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 2
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPP.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPP.def
index a066998..4801027 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPP.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPP.def
@@ -30,6 +30,7 @@
         DisplayField: 'Name'
         Label: '鍩哄噯闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 0
       ]
     }
@@ -70,6 +71,7 @@
         DisplayField: 'Name'
         Label: '瀵规瘮闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 2
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPPA.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPPA.def
index 9d8afc3..8820f77 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPPA.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPPA.def
@@ -30,6 +30,7 @@
         DisplayField: 'Name'
         Label: '鍩哄噯闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 0
       ]
     }
@@ -70,6 +71,7 @@
         DisplayField: 'Name'
         Label: '瀵规瘮闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 2
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPR.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPR.def
index 6c62f9e..d1ecdbf 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPR.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pSelectionPR.def
@@ -30,6 +30,7 @@
         DisplayField: 'Name'
         Label: '鍩哄噯闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 0
       ]
     }
@@ -70,6 +71,7 @@
         DisplayField: 'Name'
         Label: '瀵规瘮闇�姹傜増鏈細'
         NumberOfColumns: 50
+        SortCriteria: 'desc:DateTime'
         Taborder: 2
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_OnCreated.def
index cccf588..3834506 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_OnCreated.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
+      macroPlans := ApplicationMacroPlanner.GetLoadedMacroPlans();
       OfflinePlanTableInfo::CreateNew( macroPlans,RecycleBin );
     *]
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon206_478_bImportOutput_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon206_478_bImportOutput_OnClick.def
index a00e5c0..b33a302 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon206_478_bImportOutput_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon206_478_bImportOutput_OnClick.def
@@ -38,7 +38,7 @@
         WebMessageBox::Error( e.GeneralInformation() );
       }
       
-      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
+      macroPlans := ApplicationMacroPlanner.GetLoadedMacroPlans();
       table := MP_Cell_ScheduleSummary::CreateFullTable( macroPlans,RecycleBin ,Archive, MacroPlan );
       
       dhComparisonData854.Data( table );
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon820_OnClick\04371.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon820_OnClick\04371.def"
index 9c26fb3..66546ae 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon820_OnClick\04371.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon820_OnClick\04371.def"
@@ -9,7 +9,7 @@
   {
     Body:
     [*
-      macroPlans := ApplicationMacroPlanner.GetMacroPlans();
+      macroPlans := ApplicationMacroPlanner.GetLoadedMacroPlans();
       table := MP_Cell_ScheduleSummary::CreateFullTable( macroPlans,RecycleBin ,Archive, MacroPlan );
       
       dhComparisonData854.Data( table );
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon_OnClick\04388.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon_OnClick\04388.def"
index 58b31f0..f69fc60 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon_OnClick\04388.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_ButtonRibbon_OnClick\04388.def"
@@ -9,7 +9,7 @@
   {
     Body:
     [*
-      MP_Table::CreateMP_Tables_ScheduleSummary( ApplicationMacroPlanner.GetMacroPlans() );
+      MP_Table::CreateMP_Tables_ScheduleSummary( ApplicationMacroPlanner.GetLoadedMacroPlans() );
       WebMessageBox::Success( "Success" );
     *]
     GroupServerCalls: false

--
Gitblit v1.9.3