From 212864834f7727ba09b5ece6e9b71e69e182d228 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期二, 03 十二月 2024 17:09:33 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg

---
 _Main/BL/Type_ScheduleSummaryOutputData/Attribute_ShiftPattern.qbl                                                                             |    7 
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl                                                                        |  205 ++++++++++++--------
 _Main/BL/Type_ScheduleSummaryOutputData/Attribute_Capacity.qbl                                                                                 |    8 
 _Main/BL/Type_SingleShiftConfig/Attribute_ThirdSingleShiftQuantity.qbl                                                                         |    2 
 _Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl                                                                                        |   16 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewAssemblyOnlinePlan_OnC#171.def |    6 
 _Main/BL/Type_ScheduleSummaryOutputData/DefaultValue_ShiftPattern.qbl                                                                          |    6 
 _Main/BL/Type_SingleShiftConfig/Attribute_FirstSingleShiftQuantity.qbl                                                                         |    4 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bShippingActualData_OnClic#778.def |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPlanViews.def                                            |   56 +++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def                                           |   68 ------
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bTransferPlan_OnClick#100.def      |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewOfflinePlan_OnClick#653.def    |    6 
 _Main/BL/Type_SingleShiftConfig/Attribute_SecondSingleShiftQuantity.qbl                                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def          |    4 
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ImportOutput.qbl                                                                           |   26 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bPackagingPlan_OnClick#832.def     |    6 
 _Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl                                                         |   70 +++---
 _Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl                                                                                       |   19 +
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ExportOutputTemplate.qbl                                                                   |   36 +++
 _Main/BL/Type_ScheduleSummaryOutputData/Attribute_WorkingDay.qbl                                                                               |    8 
 _Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl                                                                        |    2 
 22 files changed, 348 insertions(+), 226 deletions(-)

diff --git a/_Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl b/_Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl
index d68eddd..182e9e1 100644
--- a/_Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl
+++ b/_Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl
@@ -9,11 +9,14 @@
   {
     EDIMLTable SingleShiftConfig
     {
+      PrimaryKeyColumns: ID
       TargetType: SingleShiftConfig
+      TypeIndex: SingleShiftConfigTypeIndex
+      EDIMLColumn FirstSingleShiftQuantity { Attribute: FirstSingleShiftQuantity ValueType: Real }
       EDIMLColumn ID { Attribute: ID ValueType: String }
+      EDIMLColumn SecondSingleShiftQuantity { Attribute: SecondSingleShiftQuantity ValueType: Real }
       EDIMLColumn ShiftName { Attribute: ShiftName ValueType: String }
-      EDIMLColumn SingleShiftName { Attribute: SingleShiftName ValueType: String }
-      EDIMLColumn StandardYield { Attribute: StandardYield ValueType: Real }
+      EDIMLColumn ThirdSingleShiftQuantity { Attribute: ThirdSingleShiftQuantity ValueType: Real }
       EDIMLColumn UnitID { Attribute: UnitID ValueType: String }
     }
   }
@@ -23,10 +26,11 @@
     {
       InputTable: SingleShiftConfig
       OutputTable: SingleShiftConfig
+      EDIColumnMatch { InputColumn: FirstSingleShiftQuantity OutputColumn: FirstSingleShiftQuantity }
       EDIColumnMatch { InputColumn: ID OutputColumn: ID }
+      EDIColumnMatch { InputColumn: SecondSingleShiftQuantity OutputColumn: SecondSingleShiftQuantity }
       EDIColumnMatch { InputColumn: ShiftName OutputColumn: ShiftName }
-      EDIColumnMatch { InputColumn: SingleShiftName OutputColumn: SingleShiftName }
-      EDIColumnMatch { InputColumn: StandardYield OutputColumn: StandardYield }
+      EDIColumnMatch { InputColumn: ThirdSingleShiftQuantity OutputColumn: ThirdSingleShiftQuantity }
       EDIColumnMatch { InputColumn: UnitID OutputColumn: UnitID }
     }
   }
@@ -38,10 +42,11 @@
       Columns:
       [
         EDIXLSLinkColumn ID { ValueType: String }
-        EDIXLSLinkColumn ShiftName { ValueType: String }
-        EDIXLSLinkColumn SingleShiftName { ValueType: String }
-        EDIXLSLinkColumn StandardYield { ValueType: Real }
         EDIXLSLinkColumn UnitID { ValueType: String }
+        EDIXLSLinkColumn ShiftName { ValueType: String }
+        EDIXLSLinkColumn FirstSingleShiftQuantity { ValueType: Real }
+        EDIXLSLinkColumn SecondSingleShiftQuantity { ValueType: Real }
+        EDIXLSLinkColumn ThirdSingleShiftQuantity { ValueType: Real }
       ]
     }
   }
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
index 777b22d..b845399 100644
--- a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
@@ -165,24 +165,26 @@
         singleShiftVolume2 := 0.0;
         singleShiftVolume3 := 0.0;
         
-        singleShiftConfigs := selectset( unit,SingleShiftConfig,config,config.ShiftName() = "3" );
-        traverse( singleShiftConfigs,Elements,singleShiftConfig ){
+        singleShiftConfig := select( unit,SingleShiftConfig,config,config.ShiftName() = "3" );
+        if( not isnull( singleShiftConfig ) ){
           if( line.Tips().LikeUserLocale( "淇濆吇" )){
-            if( singleShiftConfig.SingleShiftName() = "鐧界彮"){
-              singleShiftVolume1 := 0.0;
-            }else if( singleShiftConfig.SingleShiftName() = "浜岀彮"){
-              singleShiftVolume2 := singleShiftConfig.StandardYield();
-            }else if( singleShiftConfig.SingleShiftName() = "涓夌彮"){
-              singleShiftVolume3 := singleShiftConfig.StandardYield();
-            }
+            singleShiftVolume1 := 0.0;
+            singleShiftVolume2 := singleShiftConfig.SecondSingleShiftQuantity();
+            singleShiftVolume3 := singleShiftConfig.ThirdSingleShiftQuantity();
           }else{
-            if( singleShiftConfig.SingleShiftName() = "鐧界彮"){
-              singleShiftVolume1 := singleShiftConfig.StandardYield();
-            }else if( singleShiftConfig.SingleShiftName() = "浜岀彮"){
-              singleShiftVolume2 := singleShiftConfig.StandardYield();
-            }else if( singleShiftConfig.SingleShiftName() = "涓夌彮"){
-              singleShiftVolume3 := singleShiftConfig.StandardYield();
-            }
+            singleShiftVolume1 := singleShiftConfig.FirstSingleShiftQuantity();
+            singleShiftVolume2 := singleShiftConfig.SecondSingleShiftQuantity();
+            singleShiftVolume3 := singleShiftConfig.ThirdSingleShiftQuantity();
+          }
+        }else{
+          if( line.Tips().LikeUserLocale( "淇濆吇" )){
+            singleShiftVolume1 := 0.0;
+            singleShiftVolume2 := lineQuantity / 2;
+            singleShiftVolume3 := lineQuantity / 2;
+          }else{
+            singleShiftVolume1 := lineQuantity / 3;
+            singleShiftVolume2 := lineQuantity / 3;
+            singleShiftVolume3 := lineQuantity / 3;
           }
         }
         
@@ -219,20 +221,22 @@
         singleShiftVolume1 := 0.0;
         singleShiftVolume2 := 0.0;
         
-        singleShiftConfigs := selectset( unit,SingleShiftConfig,config,config.ShiftName() = line.ShiftName() );
-        traverse( singleShiftConfigs,Elements,singleShiftConfig ){
+        singleShiftConfig := select( unit,SingleShiftConfig,config,config.ShiftName() = line.ShiftName() );
+        if( not isnull( singleShiftConfig )){
           if( line.Tips().LikeUserLocale( "淇濆吇" )){
-            if( singleShiftConfig.SingleShiftName() = "鐧界彮"){
-              singleShiftVolume1 := 0.0;
-            }else if( singleShiftConfig.SingleShiftName() = "浜岀彮"){
-              singleShiftVolume2 := singleShiftConfig.StandardYield();
-            }
+            singleShiftVolume1 := 0.0;
+            singleShiftVolume2 := singleShiftConfig.SecondSingleShiftQuantity();
           }else{
-            if( singleShiftConfig.SingleShiftName() = "鐧界彮"){
-              singleShiftVolume1 := singleShiftConfig.StandardYield();
-            }else if( singleShiftConfig.SingleShiftName() = "浜岀彮"){
-              singleShiftVolume2 := singleShiftConfig.StandardYield();
-            }
+            singleShiftVolume1 := singleShiftConfig.FirstSingleShiftQuantity();
+            singleShiftVolume2 := singleShiftConfig.SecondSingleShiftQuantity();
+          }
+        }else{
+          if( line.Tips().LikeUserLocale( "淇濆吇" )){
+            singleShiftVolume1 := 0.0;
+            singleShiftVolume2 := lineQuantity;
+          }else{
+            singleShiftVolume1 := lineQuantity / 2;
+            singleShiftVolume2 := lineQuantity / 2;
           }
         }
     
@@ -260,13 +264,7 @@
         }
         
       }else if( line.ShiftName() = "1" ){
-        singleShiftVolume1 := lineQuantity / 1;
-        
-        if( line.Tips().LikeUserLocale( "淇濆吇" )){
-          singleShiftVolume1 := lineQuantity / 1;
-        }else{
-          singleShiftVolume1 := lineQuantity / 1;
-        }
+        singleShiftVolume1 := lineQuantity;
         
         for( i := tempProducts.Size() - 1;i >= 0; i-- ){
           product := tempProducts.Element( i );
@@ -280,7 +278,7 @@
         }
         
       }else{
-        
+        info( "涓嶆敮鎸佺殑鐝鍚嶇О銆�" + line.ShiftName() + "銆�");
       }
     }
     
diff --git a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
index 1128295..daaba1f 100644
--- a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
+++ b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateFullTable.qbl
@@ -10,18 +10,30 @@
   [*
     // rislai Aug-7-2024 (created)
     // 鑾峰彇瀛樻。鏁版嵁
-    tables := selectset( archive,ArchiveTable,table,table.Name() = ArchiveCell_ScheduleSummary::GetTableName() );
+    //tables := selectset( archive,ArchiveTable,table,table.Name() = ArchiveCell_ScheduleSummary::GetTableName() );
     
-    // 鑾峰彇瀹為檯鐢熶骇鏁版嵁
+    // 鑾峰彇瀵煎叆鐢熶骇鏁版嵁
     scheduleSummaryOutputDataIndexTree := NamedValueTree::Create();
-    scheduleSummaryOutputDatas := selectset( archive,ScheduleSummaryOutputLine.ScheduleSummaryOutputData,data,
-                                             exists( tables,Elements.ArchiveRow,row,row.CustomName() = data.ScheduleSummaryOutputLine().LineName() ));
-    // 鏋勫缓瀹為檯鐢熶骇鏁版嵁绱㈠紩
+    scheduleSummaryOutputDatas := selectset( archive,ScheduleSummaryOutputLine.ScheduleSummaryOutputData,data, true );
+    //                                         exists( tables,Elements.ArchiveRow,row,row.CustomName() = data.ScheduleSummaryOutputLine().LineName() ));
+    // 鏋勫缓瀵煎叆鐢熶骇鏁版嵁绱㈠紩
     for( i :=0;i < scheduleSummaryOutputDatas.Size();i++ ){
       scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( i );
       scheduleSummaryOutputDataKey := scheduleSummaryOutputData.ScheduleSummaryOutputLine().LineName() + scheduleSummaryOutputData.Date().AsQUILL();
       scheduleSummaryOutputDataHandle := scheduleSummaryOutputDataIndexTree.GetHandle( scheduleSummaryOutputDataKey );
       scheduleSummaryOutputDataIndexTree.Root().AddChild( scheduleSummaryOutputDataHandle,i );
+    }
+    
+    // 鑾峰彇瀹為檯鐢熶骇鏁版嵁
+    actualDailyProductionDataIndexTree := NamedValueTree::Create();
+    actualDailyProductionDatas := selectset( archive,ActualDailyProductionData,data, true );
+    //                                         exists( tables,Elements.ArchiveRow,row,row.CustomName() = data.LineName() ));
+    // 鏋勫缓瀹為檯鐢熶骇鏁版嵁绱㈠紩
+    for( i :=0;i < actualDailyProductionDatas.Size();i++ ){
+      actualDailyProductionData := actualDailyProductionDatas.Element( i );
+      actualDailyProductionDataKey := actualDailyProductionData.LineName() + actualDailyProductionData.ProductionDate().AsQUILL();
+      actualDailyProductionDataHandle := actualDailyProductionDataIndexTree.GetHandle( actualDailyProductionDataKey );
+      actualDailyProductionDataIndexTree.Root().AddChild( actualDailyProductionDataHandle,i );
     }
     
     // 娓呴櫎鍘嗗彶鏁版嵁
@@ -31,8 +43,8 @@
     localTable := recycleBin.LocalTable( relnew,Name := ArchiveCell_ScheduleSummary::GetTableName() );
     
     // 鑾峰彇寮�濮嬫椂闂村拰缁撴潫鏃堕棿
-    startDate := minselect( tables,Elements.ArchiveColumn,column,column.CustomDate() ).CustomDate();
-    endDate := maxselect( tables,Elements.ArchiveColumn,column,column.CustomDate() ).CustomDate();
+    startDate := minselect( archive,ActualDailyProductionData,data,data.ProductionDate() ).ProductionDate();
+    endDate := maxselect( macroPlan,Period_MP,period,period.EndDate() ).EndDate();
     
     // 鏋勫缓LocalColumn鐨勭储寮�
     localColumns := construct( LocalColumns );
@@ -61,73 +73,62 @@
       unitIndexTree.Root().AddChild( unitHandle,i );
     }
     
-    // 寮�濮嬫嫾鎺ュ瓨妗f暟鎹�
-    traverse( tables,Elements.ArchiveRow,row ){
-       // 鍏堝鎵緇ocalRow锛屾壘涓嶅埌灏辨柊寤猴紝骞跺垱寤虹储寮�
-       localRow := null( LocalRow );
-       {
-         localRowHandle := localRowIndexTree.GetHandle( row.Name() );
-         localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
-         if( isnull( localRowIndex )){
-           localRow := localTable.LocalRow( relnew,CustomName := row.Name(),Index := localTable.GetRowIndexCache() );
-           localRows.Add( localRow );
-           localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
-         }else{
-           localRow := localRows.Element( localRowIndex.GetValueAsNumber());
-         }
-       }
-       // 寰幆鍒涘缓鏈堟暟鎹�
-       traverse( localColumns,Elements,localColumn ){
-          archiveCells := selectset( row,ArchiveCell.astype( ArchiveCell_ScheduleSummary ),cell,
-                              cell.IsFristWeekData() and
-                              cell.ArchiveColumn().CustomDate() >= localColumn.CustomDate() and 
-                              cell.ArchiveColumn().CustomDate() < localColumn.CustomDate().StartOfNextMonth() );
-          
-          isFuture := macroPlan.StartOfPlanning().Date() <= localColumn.CustomDate();
-          
-          workingDay := 0;
-          capacity := 0.0;
-          output := 0.0;
-          shiftPatterns := construct( Strings );
-          if( not isFuture ){
-            scheduleSummaryOutputDataKey := row.Name() + localColumn.CustomDate().AsQUILL();
-            scheduleSummaryOutputDataHandle := scheduleSummaryOutputDataIndexTree.GetHandle( scheduleSummaryOutputDataKey );
-            scheduleSummaryOutputDataIndex := guard( scheduleSummaryOutputDataIndexTree.Root().Child( scheduleSummaryOutputDataHandle ),null( NamedValue ));
-            if( not isnull( scheduleSummaryOutputDataIndex )){
-              scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( scheduleSummaryOutputDataIndex.GetValueAsNumber() );
-              output := scheduleSummaryOutputData.Output();
-            }
-            
-    
-          }
-          
-          traverse( archiveCells,Elements,cell,cell.IsFristWeekData() ){
-             workingDay := workingDay + cell.WorkingDay();
-             capacity := capacity + cell.Capacity();
-             if( cell.ShiftPattern() <> "" ){
-               shiftPatterns.Add( cell.ShiftPattern() );
-             }
-          }
-          
-          localCell := null( LocalCell_ScheduleSummary );
-          {
-            localCellHandle := localCellIndexTree.GetHandle( row.Name() + localColumn.CustomDate().AsQUILL() );
-            localCellIndex := guard( localCellIndexTree.Root().Child( localCellHandle ),null( NamedValue ));
-            if( isnull( localCellIndex )){
-              localCell := localRow.LocalCell( relnew,LocalCell_ScheduleSummary,LocalColumn := localColumn );
-              localCells.Add( localCell );
-              localCellIndexTree.Root().AddChild( localCellHandle , localCells.Size() - 1 );
-            }else{
-              localCell := localCells.Element( localCellIndex.GetValueAsNumber() ); 
-            }
-          }
-          
-          localCell.ShiftPattern( selectuniquevalues( shiftPatterns,Elements,element,element ).Concatenate( "/" ) );
-          localCell.WorkingDay( localCell.WorkingDay() + workingDay );
-          localCell.Capacity( localCell.Capacity() + capacity );
-          localCell.Output( localCell.Output() + output );
-       }
-    }
+    //// 寮�濮嬫嫾鎺ュ瓨妗f暟鎹�
+    //traverse( tables,Elements.ArchiveRow,row ){
+    //   // 鍏堝鎵緇ocalRow锛屾壘涓嶅埌灏辨柊寤猴紝骞跺垱寤虹储寮�
+    //   localRow := null( LocalRow );
+    //   {
+    //     localRowHandle := localRowIndexTree.GetHandle( row.Name() );
+    //     localRowIndex := guard( localRowIndexTree.Root().Child( localRowHandle ),null( NamedValue ));
+    //     if( isnull( localRowIndex )){
+    //       localRow := localTable.LocalRow( relnew,CustomName := row.Name(),Index := localTable.GetRowIndexCache() );
+    //       localRows.Add( localRow );
+    //       localRowIndexTree.Root().AddChild( localRowHandle,localRows.Size() - 1 );
+    //     }else{
+    //       localRow := localRows.Element( localRowIndex.GetValueAsNumber());
+    //     }
+    //   }
+    //   // 寰幆鍒涘缓鏈堟暟鎹�
+    //   traverse( localColumns,Elements,localColumn ){
+    //      archiveCells := selectset( row,ArchiveCell.astype( ArchiveCell_ScheduleSummary ),cell,
+    //                          cell.IsFristWeekData() and
+    //                          cell.ArchiveColumn().CustomDate() >= localColumn.CustomDate() and 
+    //                          cell.ArchiveColumn().CustomDate() < localColumn.CustomDate().StartOfNextMonth() );
+    //      
+    //      isFuture := macroPlan.StartOfPlanning().Date() <= localColumn.CustomDate();
+    //      
+    //      workingDay := 0;
+    //      capacity := 0.0;
+    //      output := 0.0;
+    //      shiftPatterns := construct( Strings );
+    //      
+    //      localCell := null( LocalCell_ScheduleSummary );
+    //      {
+    //        localCellHandle := localCellIndexTree.GetHandle( row.Name() + localColumn.CustomDate().AsQUILL() );
+    //        localCellIndex := guard( localCellIndexTree.Root().Child( localCellHandle ),null( NamedValue ));
+    //        if( isnull( localCellIndex )){
+    //          localCell := localRow.LocalCell( relnew,LocalCell_ScheduleSummary,LocalColumn := localColumn );
+    //          localCells.Add( localCell );
+    //          localCellIndexTree.Root().AddChild( localCellHandle , localCells.Size() - 1 );
+    //        }else{
+    //          localCell := localCells.Element( localCellIndex.GetValueAsNumber() ); 
+    //        }
+    //      }
+    //      
+    //      traverse( archiveCells,Elements,cell,cell.IsFristWeekData() ){
+    //         workingDay := workingDay + cell.WorkingDay();
+    //         capacity := capacity + cell.Capacity();
+    //         if( cell.ShiftPattern() <> "" ){
+    //           shiftPatterns.Add( cell.ShiftPattern() );
+    //         }
+    //      }
+    //      
+    //      localCell.ShiftPattern( selectuniquevalues( shiftPatterns,Elements,element,element ).Concatenate( "/" ) );
+    //      localCell.WorkingDay( localCell.WorkingDay() + workingDay );
+    //      localCell.Capacity( localCell.Capacity() + capacity );
+    //      localCell.Output( localCell.Output() + output );
+    //   }
+    //}
     
     tempArchiveTable := ArchiveCell_ScheduleSummary::CreateTempTable( macroPlan,recycleBin );
     traverse( tempArchiveTable,LocalRow,row ){
@@ -153,22 +154,34 @@
           capacity := 0.0;
           output := 0.0;
           shiftPatterns := construct( Strings );
-          isFuture := macroPlan.StartOfPlanning().Date() <= localColumn.CustomDate();
+          startDate := ifexpr( macroPlan.StartOfPlanning().Date() >= localColumn.CustomDate(), macroPlan.StartOfPlanning().Date(), localColumn.CustomDate() );
           
-          if( isFuture ){
+          {
             unitHandle := unitIndexTree.GetHandle( row.CustomName() );
             unitIndex := guard( unitIndexTree.Root().Child( unitHandle ),null( NamedValue ));
             if( not isnull( unitIndex )){
               unit := units.Element( unitIndex.GetValueAsNumber() );
               output := sum( unit,StockingPoint_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ).NewSupply,newSupply,
                              newSupply.PeriodTask_MP().istype( PeriodTaskOperation ) and not newSupply.PeriodTask_MP().astype( PeriodTaskOperation ).IsSupplier() and // 鍒楄〃杩囨护鏉′欢锛欶ormProductionPlanDetails
-                             newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().StartDate() >= localColumn.CustomDate() and
+                             newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().StartDate() >= startDate and
                              newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().StartDate() < localColumn.CustomDate().StartOfNextMonth() and
                              newSupply.ProductInStockingPointInPeriodPlanning().Period_MP().TimeUnit() = "Day",
                              newSupply.Quantity());
             }
-            
-    
+          }
+          
+          // 璁″垝寮�濮嬩箣鍓嶇殑浜у嚭鍙栧疄闄呮瘡鏃ョ敓浜ф帴鍙�
+          if( localColumn.CustomDate() < macroPlan.StartOfPlanning().Date() ){
+            historyStartDate := ifexpr( macroPlan.StartOfPlanning().Date() <= localColumn.CustomDate(), macroPlan.StartOfPlanning().Date(), localColumn.CustomDate() );
+            historyEndDate := ifexpr( macroPlan.StartOfPlanning().Date() > localColumn.CustomDate().StartOfNextMonth() and 
+                                      macroPlan.StartOfPlanning().Date().Month() = localColumn.CustomDate().Month() and 
+                                      macroPlan.StartOfPlanning().Date().Year() = localColumn.CustomDate().Year() ,macroPlan.StartOfPlanning().Date(), localColumn.CustomDate().StartOfNextMonth() );
+            {
+              actualOut := sum( archive,ActualDailyProductionData,data,data.LineName() = row.CustomName() and 
+                                data.ProductionDate() >= historyStartDate and
+                                data.ProductionDate() < historyEndDate,data.ActualOut() );
+              output := output + actualOut;
+            }
           }
           
           traverse( archiveCells,Elements,cell ){
@@ -201,8 +214,38 @@
        }
     }
     
-    traverse( localTable,LocalRow.LocalCell.astype( LocalCell_ScheduleSummary ),cell,cell.WorkingDay() <> 0 ){
-      cell.Capacity( cell.Capacity() / cell.WorkingDay() );
+    traverse( localTable,LocalRow.LocalCell.astype( LocalCell_ScheduleSummary ),cell ){
+      if( cell.WorkingDay() <> 0  ){
+        cell.Capacity( cell.Capacity() / cell.WorkingDay() );
+      }
+      
+      // 鍙栧鍏ョ殑鏁版嵁
+          row := cell.LocalRow();
+          localColumn := cell.LocalColumn();
+          {
+            scheduleSummaryOutputDataKey := row.CustomName() + localColumn.CustomDate().AsQUILL();
+            scheduleSummaryOutputDataHandle := scheduleSummaryOutputDataIndexTree.GetHandle( scheduleSummaryOutputDataKey );
+            scheduleSummaryOutputDataIndex := guard( scheduleSummaryOutputDataIndexTree.Root().Child( scheduleSummaryOutputDataHandle ),null( NamedValue ));
+            if( not isnull( scheduleSummaryOutputDataIndex )){
+              scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( scheduleSummaryOutputDataIndex.GetValueAsNumber() );
+              if( scheduleSummaryOutputData.Output() <> -1 ){
+                output := scheduleSummaryOutputData.Output();
+                cell.Output( output );
+              }
+              if( scheduleSummaryOutputData.WorkingDay() <> -1 ){
+                workingDay := scheduleSummaryOutputData.WorkingDay();
+                cell.WorkingDay( workingDay );
+              }
+              if( scheduleSummaryOutputData.Capacity() <> -1 ){
+                capacity := scheduleSummaryOutputData.Capacity();
+                cell.Capacity( capacity );
+              }
+              if( scheduleSummaryOutputData.ShiftPattern() <> "-1"){
+                shiftPattern := scheduleSummaryOutputData.ShiftPattern();
+                cell.ShiftPattern( shiftPattern );
+              }
+            }
+          }
     }
     
     AsyncFlag::Success( recycleBin,ArchiveCell_ScheduleSummary::GetTableName() );
diff --git a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl
index 08f6a1e..f8a91b9 100644
--- a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl
+++ b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_CreateTempTable.qbl
@@ -12,7 +12,7 @@
     
     table := recycleBin.LocalTable( relnew,Name := ArchiveCell_ScheduleSummary::GetTableName());
     
-    startDate := macroPlan.StartOfPlanning().Date() + 8;
+    startDate := macroPlan.StartOfPlanning().Date();
     endDate := maxselect( macroPlan,Unit.UnitPeriod.astype( UnitPeriodTime ).Period_MP,period,period.TimeUnit() = Translations::MP_GlobalParameters_Day(),period.EndDate()).EndDate();
     
     columns := construct( LocalColumns );
diff --git a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ExportOutputTemplate.qbl b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ExportOutputTemplate.qbl
index e36e50c..54b00fb 100644
--- a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ExportOutputTemplate.qbl
+++ b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ExportOutputTemplate.qbl
@@ -8,19 +8,45 @@
   TextBody:
   [*
     // rislai Aug-6-2024 (created)
-    // Akari May-18-2024 (created)
-    // rislai Jan-19-2024 (created)
     sheetName := "浜у嚭";
     xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?><table><name>'+ sheetName +'</name>';
     
     xmlTemplate := xmlTemplate + "<column><name>浜х嚎</name><type>String</type>";
-    
-    // xmlTemplate := xmlTemplate + '<cell value=" "/>';
+    xmlTemplate := xmlTemplate + '<cell value="绀轰緥浜х嚎"/>';
+    xmlTemplate := xmlTemplate + '<cell value=" "/>';
+    xmlTemplate := xmlTemplate + '<cell value=" "/>';
+    xmlTemplate := xmlTemplate + '<cell value=" "/>';
     xmlTemplate := xmlTemplate + "</column>";
     
+    xmlTemplate := xmlTemplate + "<column><name>灞炴��</name><type>String</type>";
+    xmlTemplate := xmlTemplate + '<cell value="鐝"/>';
+    xmlTemplate := xmlTemplate + '<cell value="宸ヤ綔鏃�"/>';
+    xmlTemplate := xmlTemplate + '<cell value="浜ц兘"/>';
+    xmlTemplate := xmlTemplate + '<cell value="浜у嚭"/>';
+    xmlTemplate := xmlTemplate + "</column>";
+    
+    for( i := 6 ; i <= 12 ; i++ ){
+      xmlTemplate := xmlTemplate + "<column><name>" + Date::Construct( year - 1,i,1 ).Format( "Y/M/D" ) + "</name><type>Number</type>";
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + "</column>";
+    }
     for( i := 1 ; i <= 12 ; i++ ){
       xmlTemplate := xmlTemplate + "<column><name>" + Date::Construct( year,i,1 ).Format( "Y/M/D" ) + "</name><type>Number</type>";
-      // xmlTemplate := xmlTemplate + '<cell value=" "/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + "</column>";
+    }
+    for( i := 1 ; i <= 6 ; i++ ){
+      xmlTemplate := xmlTemplate + "<column><name>" + Date::Construct( year + 1,i,1 ).Format( "Y/M/D" ) + "</name><type>Number</type>";
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
+      xmlTemplate := xmlTemplate + '<cell value="0"/>';
       xmlTemplate := xmlTemplate + "</column>";
     }
     
diff --git a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ImportOutput.qbl b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ImportOutput.qbl
index fb50032..83fdeb7 100644
--- a/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ImportOutput.qbl
+++ b/_Main/BL/Type_MP_Cell_ScheduleSummary0/StaticMethod_ImportOutput.qbl
@@ -25,13 +25,14 @@
       lineIndexTree.Root().AddChild( lineHandle,lines.Size() - 1 );
     }
     
+    countRow := 0;
+    line := null( ScheduleSummaryOutputLine );
+    datas := construct( ScheduleSummaryOutputDatas );
+    dataIndexTree := NamedValueTree::Create();
     traverse( outputTable,GeneralExcelImportAndExportDataRow,row ){
       count := 0;
-      line := null( ScheduleSummaryOutputLine );
-      datas := construct( ScheduleSummaryOutputDatas );
-      dataIndexTree := NamedValueTree::Create();
       traverse( row,GeneralExcelImportAndExportDataCell,cell ){
-        if( count = 0 ){
+        if( count = 0 and countRow mod 4 = 0){
           lineName := cell.Value();
           lineHandle := lineIndexTree.GetHandle( lineName );
           lineIndex := guard( lineIndexTree.Root().Child( lineHandle ),null( NamedValue ));
@@ -47,22 +48,33 @@
               dataIndexTree.Root().AddChild( dataHandle,datas.Size() - 1 );
             }
           }
-        }else{
+        }else if( count <> 1 and count <> 0 ){
           stringsDate := cell.GeneralExcelImportAndExportDataColumn().Name().Tokenize( "/" );
           date := guard( Date::Construct( [Number]stringsDate.Element( 0 ),[Number]stringsDate.Element( 1 ),[Number]stringsDate.Element( 2 )),Date::MinDate() );
           dataHandle := dataIndexTree.GetHandle( date.AsQUILL() );
           dataIndex := guard( dataIndexTree.Root().Child( dataHandle ),null( NamedValue ));
+          data := null( ScheduleSummaryOutputData );
           if( isnull( dataIndex )){
-            data := line.ScheduleSummaryOutputData( relnew,Date := date,Output := [Real]cell.Value() );
+            data := line.ScheduleSummaryOutputData( relnew,Date := date );
             datas.Add( data );
             dataIndexTree.Root().AddChild( dataHandle,datas.Size() - 1 );
           }else{
             data := datas.Element( dataIndex.GetValueAsNumber() );
+          }
+          if( countRow mod 4 = 0 ){
+            data.ShiftPattern( cell.Value() );
+          }else if( countRow mod 4 = 1 ){
+            data.WorkingDay( [Number]cell.Value() );
+          }else if( countRow mod 4 = 2 ){
+            data.Capacity( [Real]cell.Value() );
+          }else if( countRow mod 4 = 3 ){
             data.Output( [Real]cell.Value() );
           }
         }
+        
         count ++;
-      } 
+      }
+      countRow ++;
     }
   *]
 }
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Capacity.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Capacity.qbl
new file mode 100644
index 0000000..e7e9d24
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Capacity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Capacity
+{
+  #keys: '3[414996.1.259744817][414996.1.259744816][414996.1.259744818]'
+  Description: '浜ц兘'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_ShiftPattern.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_ShiftPattern.qbl
new file mode 100644
index 0000000..f02b7da
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_ShiftPattern.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPattern
+{
+  #keys: '3[414996.1.259744814][414996.1.259744813][414996.1.259744815]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_WorkingDay.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_WorkingDay.qbl
new file mode 100644
index 0000000..15c64d0
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_WorkingDay.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkingDay
+{
+  #keys: '3[414996.1.259744811][414996.1.259744810][414996.1.259744812]'
+  Description: '宸ヤ綔鏃�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/DefaultValue_ShiftPattern.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/DefaultValue_ShiftPattern.qbl
new file mode 100644
index 0000000..2877e16
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/DefaultValue_ShiftPattern.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ShiftPattern
+}
diff --git a/_Main/BL/Type_SingleShiftConfig/Attribute_SingleShiftName.qbl b/_Main/BL/Type_SingleShiftConfig/Attribute_FirstSingleShiftQuantity.qbl
similarity index 68%
rename from _Main/BL/Type_SingleShiftConfig/Attribute_SingleShiftName.qbl
rename to _Main/BL/Type_SingleShiftConfig/Attribute_FirstSingleShiftQuantity.qbl
index d5ea020..5317085 100644
--- a/_Main/BL/Type_SingleShiftConfig/Attribute_SingleShiftName.qbl
+++ b/_Main/BL/Type_SingleShiftConfig/Attribute_FirstSingleShiftQuantity.qbl
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute SingleShiftName
+Attribute FirstSingleShiftQuantity
 {
   #keys: '3[414996.1.251280114][414996.1.251280113][414996.1.251280115]'
-  ValueType: String
+  ValueType: Real
 }
diff --git a/_Main/BL/Type_SingleShiftConfig/Attribute_SecondSingleShiftQuantity.qbl b/_Main/BL/Type_SingleShiftConfig/Attribute_SecondSingleShiftQuantity.qbl
new file mode 100644
index 0000000..50a8763
--- /dev/null
+++ b/_Main/BL/Type_SingleShiftConfig/Attribute_SecondSingleShiftQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SecondSingleShiftQuantity
+{
+  #keys: '3[414996.1.260510622][414996.1.260510621][414996.1.260510623]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_SingleShiftConfig/Attribute_StandardYield.qbl b/_Main/BL/Type_SingleShiftConfig/Attribute_ThirdSingleShiftQuantity.qbl
similarity index 79%
rename from _Main/BL/Type_SingleShiftConfig/Attribute_StandardYield.qbl
rename to _Main/BL/Type_SingleShiftConfig/Attribute_ThirdSingleShiftQuantity.qbl
index 962b480..8b1c9c4 100644
--- a/_Main/BL/Type_SingleShiftConfig/Attribute_StandardYield.qbl
+++ b/_Main/BL/Type_SingleShiftConfig/Attribute_ThirdSingleShiftQuantity.qbl
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute StandardYield
+Attribute ThirdSingleShiftQuantity
 {
   #keys: '3[414996.1.251280101][414996.1.251280100][414996.1.251280102]'
   ValueType: Real
diff --git a/_Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl b/_Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl
index c3d4983..8f345c5 100644
--- a/_Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl
+++ b/_Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl
@@ -28,11 +28,12 @@
     
     traverse( rows,Elements,row ){
       
-      // idCell             := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 );
-      shiftNameCell            := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
-      singleShiftNameCell     := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 );
-      standardYieldCell           := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 3 );
-      unitIDCell            := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 4 );
+      unitIDCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
+      shiftNameCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 );
+      firstSingleShiftQuantityCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 3 );
+      secondSingleShiftQuantityCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 4 );
+      thirdSingleShiftQuantityCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 5 );
+      
       
       unitID := guard( unitIDCell.Value(), "" );
       if( unitID = "" ){
@@ -45,8 +46,9 @@
         unit.SingleShiftConfig( relnew,
                                 ID := IDHolder::GetGUID(),
                                 ShiftName := guard( shiftNameCell.Value(), "" ),
-                                SingleShiftName := guard( singleShiftNameCell.Value(), "" ),
-                                StandardYield := [Real]guard( standardYieldCell.Value(), "0" ));
+                                FirstSingleShiftQuantity := guard( [Real]firstSingleShiftQuantityCell.Value(), 0.0 ),
+                                SecondSingleShiftQuantity := guard( [Real]secondSingleShiftQuantityCell.Value(), 0.0 ),
+                                ThirdSingleShiftQuantity := guard( [Real]thirdSingleShiftQuantityCell.Value(), 0.0 ) );
       }else{
         error( "鏃犳硶鍦ㄣ��" + macroPlan.MDSMacroPlan().Description() + "銆戝唴鎵惧埌浜х嚎銆�" + unitID + "銆戙��");
       }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPlanViews.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPlanViews.def
index ad37324..d38880a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPlanViews.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPlanViews.def
@@ -14,5 +14,61 @@
         Taborder: 8
       ]
     }
+    Component bTransferPlan id:bTransferPlan_697
+    {
+      #keys: '[413988.1.207593018]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'HAND_TRUCK_BOX'
+        Label: 'Transfer plan'
+        Taborder: 9
+      ]
+    }
+    Component bNewOfflinePlan id:bNewOfflinePlan_667
+    {
+      #keys: '[413988.1.207593152]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'LIGHTBULB'
+        Label: 'Output plan'
+        Taborder: 10
+      ]
+    }
+    Component bNewAssemblyOnlinePlan id:bNewAssemblyOnlinePlan_670
+    {
+      #keys: '[413988.1.207593219]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Description: '鏂扮増涓婄嚎璁″垝'
+        Image: 'PALM_TREE'
+        Label: 'Filing plan'
+        Taborder: 11
+      ]
+    }
+    Component bPackagingPlan id:bPackagingPlan_368
+    {
+      #keys: '[413988.1.207540470]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'SIXPACK_BEER'
+        Label: 'Packaging plan'
+        Taborder: 12
+      ]
+    }
+    Component bShippingActualData id:bShippingActualData_957
+    {
+      #keys: '[413988.1.207540537]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'TABLE_CONNECTION'
+        Label: 'Shipping data'
+        Taborder: 13
+      ]
+    }
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
index 8dfc3c0..8efce7a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -5,36 +5,13 @@
   BaseType: 'WebActionBarGroup'
   Children:
   [
-    Component bTransferPlan
-    {
-      #keys: '[413988.0.1290300652]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'HAND_TRUCK_BOX'
-        Label: 'Transfer plan'
-        Taborder: 0
-      ]
-    }
     Component bBlank
     {
       #keys: '[413988.0.1291640400]'
       BaseType: 'WebButton'
       Properties:
       [
-        Taborder: 7
-      ]
-    }
-    Component bOfflinePlan
-    {
-      #keys: '[413988.0.1296872738]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'LIGHTBULB'
-        Label: 'Output plan'
-        Taborder: 1
-        Visible: false
+        Taborder: 2
       ]
     }
     Component bAssemblyOnlinePlan
@@ -46,53 +23,20 @@
         Description: 'AssemblyOnlinePlan'
         Image: 'PALM_TREE'
         Label: 'Filing plan'
-        Taborder: 3
+        Taborder: 1
         Visible: false
       ]
     }
-    Component bPackagingPlan
+    Component bOfflinePlan
     {
-      #keys: '[413988.0.1291640400]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'SIXPACK_BEER'
-        Label: 'Packaging plan'
-        Taborder: 5
-      ]
-    }
-    Component bShippingActualData
-    {
-      #keys: '[415136.0.905520117]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Image: 'TABLE_CONNECTION'
-        Label: 'Shipping data'
-        Taborder: 6
-      ]
-    }
-    Component bNewOfflinePlan
-    {
-      #keys: '[413988.0.1607471411]'
+      #keys: '[413988.1.207540403]'
       BaseType: 'WebButton'
       Properties:
       [
         Image: 'LIGHTBULB'
         Label: 'Output plan'
-        Taborder: 2
-      ]
-    }
-    Component bNewAssemblyOnlinePlan
-    {
-      #keys: '[413988.0.1701710485]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Description: '鏂扮増涓婄嚎璁″垝'
-        Image: 'PALM_TREE'
-        Label: 'Filing plan'
-        Taborder: 4
+        Taborder: 0
+        Visible: false
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewAssemblyOnlinePlan_OnClic.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewAssemblyOnlinePlan_OnC\043171.def"
similarity index 70%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewAssemblyOnlinePlan_OnClic.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewAssemblyOnlinePlan_OnC\043171.def"
index 9305f09..7b153f1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewAssemblyOnlinePlan_OnClic.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewAssemblyOnlinePlan_OnC\043171.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: abgSecondDevelopmentPlan/bNewAssemblyOnlinePlan
-Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewAssemblyOnlinePlan_OnClick
+#parent: ActionBarGroupPlanViews/bNewAssemblyOnlinePlan_670
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewAssemblyOnlinePlan_OnClick_171
 {
-  #keys: '[413988.0.1699330508]'
+  #keys: '[413988.1.207593218]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewOfflinePlan_OnClick\043653.def"
similarity index 72%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewOfflinePlan_OnClick\043653.def"
index c15a91d..4ba713e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bNewOfflinePlan_OnClick\043653.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: abgSecondDevelopmentPlan/bNewOfflinePlan
-Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick
+#parent: ActionBarGroupPlanViews/bNewOfflinePlan_667
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick_653
 {
-  #keys: '[413988.0.1607471572]'
+  #keys: '[413988.1.207593151]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bPackagingPlan_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bPackagingPlan_OnClick\043832.def"
similarity index 72%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bPackagingPlan_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bPackagingPlan_OnClick\043832.def"
index 9dfe8ba..7c60471 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bPackagingPlan_OnClick.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bPackagingPlan_OnClick\043832.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: abgSecondDevelopmentPlan/bPackagingPlan
-Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bPackagingPlan_OnClick
+#parent: ActionBarGroupPlanViews/bPackagingPlan_368
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bPackagingPlan_OnClick_832
 {
-  #keys: '[413988.0.1400700759]'
+  #keys: '[413988.1.207540469]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bShippingActualData_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bShippingActualData_OnClic\043778.def"
similarity index 72%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bShippingActualData_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bShippingActualData_OnClic\043778.def"
index 19a4c93..eb9ef4e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bShippingActualData_OnClick.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bShippingActualData_OnClic\043778.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: abgSecondDevelopmentPlan/bShippingActualData
-Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bShippingActualData_OnClick
+#parent: ActionBarGroupPlanViews/bShippingActualData_957
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bShippingActualData_OnClick_778
 {
-  #keys: '[415136.0.905520217]'
+  #keys: '[413988.1.207540536]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bTransferPlan_OnClick\043100.def"
similarity index 73%
rename from _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bTransferPlan_OnClick\043100.def"
index af99f70..511eb98 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPlanViews_bTransferPlan_OnClick\043100.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: abgSecondDevelopmentPlan/bTransferPlan
-Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick
+#parent: ActionBarGroupPlanViews/bTransferPlan_697
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick_100
 {
-  #keys: '[413988.0.1290322113]'
+  #keys: '[413988.1.207593017]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def
index eaab98b..5603df4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
 #parent: abgSecondDevelopmentPlan/bOfflinePlan
-Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupPlanViews_bOfflinePlan_OnClick
 {
-  #keys: '[413988.0.1296872869]'
+  #keys: '[413988.1.207540402]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true

--
Gitblit v1.9.3