From 08a26d6a64f0800623c1bfb857f46045c4866547 Mon Sep 17 00:00:00 2001
From: rislai <risheng.lai@capgemini.com>
Date: 星期三, 07 八月 2024 17:22:35 +0800
Subject: [PATCH] 添加计划汇总报表
---
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnCreated.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhFinelEntity_OnCreated.def | 16
_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl | 7
_Main/BL/Type_LocalCell_ScheduleSummary#859/Attribute_Output.qbl | 8
_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl | 1
_Main/BL/Type_MP_Table/DefaultValue_Name.qbl | 6
_Main/BL/Type_LocalCell_ScheduleSummary#859/StaticMethod_GetAttributeNames.qbl | 17
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnCreated.def | 12
_Main/BL/Relations/Relation_ScheduleSummaryOutputLine_Archive_Archive_ScheduleSummaryOutputLine.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbOutput_OnUserChanged.def | 16
_Main/BL/Type_ScheduleSummaryOutputData/_ROOT_Type_ScheduleSummaryOutputData.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelScheduleSummary.def | 70 +
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon820_OnClick.def | 19
_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl | 8
_Main/BL/Type_LocalCell_OfflinePlanComparison/_ROOT_Type_LocalCell_OfflinePlanComparison.qbl | 1
_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl | 94 ++
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def | 16
_Main/BL/Type_LocalCell_ScheduleSummary#859/StaticMethod_AsyncExport.qbl | 31
_Main/BL/Type_LocalCell_ScheduleSummary#859/_ROOT_Type_LocalCell_ScheduleSummary.qbl | 9
_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl | 7
_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl | 9
_Main/BL/Type_MP_Column/Attribute_Index.qbl | 7
_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl | 23
_Main/BL/Type_LocalCell_ScheduleSummary#859/DefaultValue_ShiftPattern.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbWorkday_OnUserChanged.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bExportTemplate_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsEndDate_OnChanged#273.def | 16
_Main/BL/Type_LocalCell_ScheduleSummary#859/Method_GetAttributeByName.qbl | 35
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon322#88.def | 150 +++
_Main/BL/Type_MP_Column/Function_CalcDate.qbl | 13
_Main/BL/Type_MP_Row/Attribute_Name.qbl | 7
_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhCheckedEntity_OnDataChanged.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon504.def | 66 +
_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl | 65 +
_Main/BL/Type_LocalCell_ScheduleSummary#859/StaticMethod_GetColumnXML.qbl | 51 +
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnDataChanged.def | 16
_Main/UI/MacroPlannerWebApp/Views/ComprehensiveStandardHoursReport.vw | 189 ++++
_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl | 6
_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl | 8
_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_GetTableName.qbl | 10
_Main/BL/Type_Test/StaticMethod_Test.qbl | 10
_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl | 6
_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl | 36
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonScheduleSummaryReport_OnCli.def | 17
_Main/BL/Type_MP_Column/DefaultValue_Name.qbl | 6
_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl | 7
_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl | 68 +
_Main/UI/MacroPlannerWebApp/Views/ScheduleSummaryReport.vw | 234 +++++
_Main/BL/Type_MP_Row/Function_CalcName.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison527.def | 10
_Main/BL/Type_LocalCell_ScheduleSummary#859/Attribute_Capacity.qbl | 8
_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl | 23
_Main/BL/Type_LocalCell_ProductionComparison/_ROOT_Type_LocalCell_ProductionComparison.qbl | 1
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bDownload_OnClick.def | 30
_Main/BL/Type_LocalCell_ScheduleSummary#859/Attribute_ShiftPattern.qbl | 7
_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Method_SetAttributes.def | 24
_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor#715.def | 103 ++
_Main/BL/Type_MP_Row/DefaultValue_Name.qbl | 6
_Main/BL/Type_ScheduleSummaryOutputLine/_ROOT_Type_ScheduleSummaryOutputLine.qbl | 9
_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Date.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_npYear_OnCreated.def | 17
_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison#1.def | 10
_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbComprehensiveHours_OnUserChanged.def | 4
_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl | 23
_Main/BL/Type_LocalCell_ScheduleSummary#859/Attribute_WorkingDay.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbShiftPlan_OnUserChanged.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhEndDate_OnCreated#478.def | 16
_Main/BL/Type_MP_Column/Attribute_Name.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbStandardHours_OnUserChanged.def | 4
_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def | 11
_Main/BL/Type_MP_Column/Function_CalcIndex.qbl | 25
_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Output.qbl | 7
_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl | 9
_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbCapacity_OnUserChanged.def | 16
_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_AsyncExport.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bDownload_OnClick#781.def | 2
_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl | 8
_Main/BL/Type_ScheduleSummaryOutputLine/Attribute_LineName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation#568.def | 2
_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl | 23
_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl | 29
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor510.def | 102 ++
_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_FormComprehensiveStandardHoursReport.def | 2
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def | 1
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison234.def | 10
_Main/BL/Type_MP_Row/Attribute_Index.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnDataChanged.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison#1.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def | 19
_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl | 9
_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl | 23
/dev/null | 8
_Main/BL/Type_LocalCell_ScheduleSummary#859/Method_GetDisplayNameByName.qbl | 27
_Main/BL/Type_MP_Table/Attribute_Name.qbl | 7
_Main/BL/Type_MP_Row/Attribute_CustomName.qbl | 7
_Main/BL/Relations/Relation_ScheduleSummaryOutputData_ScheduleSummaryOutputLine_ScheduleSummary.qbl | 23
_Main/BL/Type_MP_Column/Attribute_Date.qbl | 7
_Main/BL/Type_MP_Row/Attribute_Remark.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsStartDate_OnChanged#298.def | 16
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bExport_OnClick.def | 19
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bImportOutput_OnClick.def | 43 +
_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl | 7
_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl | 12
_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhStartDate_OnCreated#57.def | 16
_Main/BL/Type_LocalCell_DemandComparison/_ROOT_Type_LocalCell_DemandComparison.qbl | 1
112 files changed, 2,424 insertions(+), 34 deletions(-)
diff --git a/_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl b/_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl
new file mode 100644
index 0000000..a391b9f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MP_Column_MP_Cell_MP_Cell_MP_Column.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MP_Column_MP_Cell_MP_Cell_MP_Column
+{
+ #keys: '1[412672.1.95254848]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MP_Cell
+ {
+ #keys: '3[412672.1.95254850][412672.1.95254849][412672.1.95254851]'
+ Cardinality: '1toN'
+ ObjectDefinition: MP_Column
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide MP_Column
+ {
+ #keys: '3[412672.1.95254853][412672.1.95254852][412672.1.95254854]'
+ Cardinality: '0to1'
+ ObjectDefinition: MP_Cell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl b/_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl
new file mode 100644
index 0000000..dfbd52e
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MP_Row_MP_Cell_MP_Cell_MP_Row.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MP_Row_MP_Cell_MP_Cell_MP_Row
+{
+ #keys: '1[412672.1.95254835]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MP_Cell
+ {
+ #keys: '3[412672.1.95254837][412672.1.95254836][412672.1.95254838]'
+ Cardinality: '1toN'
+ ObjectDefinition: MP_Row
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide MP_Row
+ {
+ #keys: '3[412672.1.95254840][412672.1.95254839][412672.1.95254841]'
+ Cardinality: '0to1'
+ ObjectDefinition: MP_Cell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl b/_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl
new file mode 100644
index 0000000..b51ca1c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MP_Table_MP_Column_MP_Column_MP_Table.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MP_Table_MP_Column_MP_Column_MP_Table
+{
+ #keys: '1[412672.1.95254822]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MP_Column
+ {
+ #keys: '3[412672.1.95254824][412672.1.95254823][412672.1.95254825]'
+ Cardinality: '1toN'
+ ObjectDefinition: MP_Table
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide MP_Table
+ {
+ #keys: '3[412672.1.95254827][412672.1.95254826][412672.1.95254828]'
+ Cardinality: '0to1'
+ ObjectDefinition: MP_Column
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl b/_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl
new file mode 100644
index 0000000..00df18a
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MP_Table_MP_Row_MP_Row_MP_Table.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MP_Table_MP_Row_MP_Row_MP_Table
+{
+ #keys: '1[412672.1.95254809]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MP_Row
+ {
+ #keys: '3[412672.1.95254811][412672.1.95254810][412672.1.95254812]'
+ Cardinality: '1toN'
+ ObjectDefinition: MP_Table
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide MP_Table
+ {
+ #keys: '3[412672.1.95254814][412672.1.95254813][412672.1.95254815]'
+ Cardinality: '0to1'
+ ObjectDefinition: MP_Row
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl b/_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl
new file mode 100644
index 0000000..bc0e154
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MP_Table_MacroPlan_MacroPlan_MP_Table.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MP_Table_MacroPlan_MacroPlan_MP_Table
+{
+ #keys: '1[412672.1.95254796]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[412672.1.95254798][412672.1.95254797][412672.1.95254799]'
+ Cardinality: '0to1'
+ ObjectDefinition: MP_Table
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide MP_Table
+ {
+ #keys: '3[412672.1.95254801][412672.1.95254800][412672.1.95254802]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_ScheduleSummaryOutputData_ScheduleSummaryOutputLine_ScheduleSummary.qbl b/_Main/BL/Relations/Relation_ScheduleSummaryOutputData_ScheduleSummaryOutputLine_ScheduleSummary.qbl
new file mode 100644
index 0000000..fd38872
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ScheduleSummaryOutputData_ScheduleSummaryOutputLine_ScheduleSummary.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ScheduleSummaryOutputData_ScheduleSummaryOutputLine_ScheduleSummaryOutputLine_ScheduleSummaryOutputData
+{
+ #keys: '1[412672.1.95294307]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide ScheduleSummaryOutputLine
+ {
+ #keys: '3[412672.1.95294309][412672.1.95294308][412672.1.95294310]'
+ Cardinality: '0to1'
+ ObjectDefinition: ScheduleSummaryOutputData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ScheduleSummaryOutputData
+ {
+ #keys: '3[412672.1.95294312][412672.1.95294311][412672.1.95294313]'
+ Cardinality: '1toN'
+ ObjectDefinition: ScheduleSummaryOutputLine
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_ScheduleSummaryOutputLine_Archive_Archive_ScheduleSummaryOutputLine.qbl b/_Main/BL/Relations/Relation_ScheduleSummaryOutputLine_Archive_Archive_ScheduleSummaryOutputLine.qbl
new file mode 100644
index 0000000..9e029af
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ScheduleSummaryOutputLine_Archive_Archive_ScheduleSummaryOutputLine.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ScheduleSummaryOutputLine_Archive_Archive_ScheduleSummaryOutputLine
+{
+ #keys: '1[412672.1.95294320]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Archive
+ {
+ #keys: '3[412672.1.95294322][412672.1.95294321][412672.1.95294323]'
+ Cardinality: '0to1'
+ ObjectDefinition: ScheduleSummaryOutputLine
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide ScheduleSummaryOutputLine
+ {
+ #keys: '3[412672.1.95294325][412672.1.95294324][412672.1.95294326]'
+ Cardinality: '1toN'
+ ObjectDefinition: Archive
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl b/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl
index 1acc8ee..fd9deec 100644
--- a/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl
+++ b/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl
@@ -9,15 +9,17 @@
TextBody:
[*
// rislai Jun-21-2024 (created)
- manager := select( owner,ExportXMLManager,manager,manager.Name() = "LocalTableXML" );
+ manager := select( owner,ExportXMLManager,manager,manager.Name() = tableName );
if( isnull( manager )){
- manager := owner.ExportXMLManager( relnew,Name := "LocalTableXML",SheetName := tableName );
+ manager := owner.ExportXMLManager( relnew,Name := tableName,SheetName := tableName );
}else{
manager.ExportXMLData( relflush );
}
traverse( columnXMLData,Elements,element,element.TrimBoth() <> "" ){
data := manager.ExportXMLData( relnew, XML := element);
if( element.LikeUserLocale( "Product ID" )){
+ data.Priority( 1 );
+ }else if( element.LikeUserLocale( "浜х嚎" )){
data.Priority( 1 );
}else if( element.LikeUserLocale( "Attribute" )){
data.Priority( 2 );
@@ -30,6 +32,8 @@
}else if( element.LikeUserLocale( "鍙戝姩鏈哄洓浣嶇爜" )){
data.Priority( 6 );
}else{
+ info( element );
+ // <column><name>2020/04/01</name>
data.Priority( [Number]element.SubString( 14,10 ).ReplaceAll( "/","") );
}
}
diff --git a/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl b/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl
index 695ab4b..688c28d 100644
--- a/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl
+++ b/_Main/BL/Type_LocalCell_Default/_ROOT_Type_LocalCell_Default.qbl
@@ -4,6 +4,7 @@
TypeSpecialization LocalCell_Default
{
#keys: '2[412672.1.5620864][412672.1.5620859]'
+ Description: '榛樿鍗曞厓鏍�'
Parent: LocalCell
StructuredName: 'LocalCell_Defaults'
}
diff --git a/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_AsyncExport.qbl b/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_AsyncExport.qbl
index d19420b..9af8aa0 100644
--- a/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_AsyncExport.qbl
+++ b/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_AsyncExport.qbl
@@ -27,6 +27,6 @@
columnstring := columnstring.Merge( cellxml);
}
- columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),"Sheet1") );
+ columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),LocalCell_DemandComparison::GetTableName()) );
*]
}
diff --git a/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_GetTableName.qbl b/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_GetTableName.qbl
new file mode 100644
index 0000000..a28aac1
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_GetTableName.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetTableName () const declarative remote as owning String
+{
+ TextBody:
+ [*
+ // rislai Aug-7-2024 (created)
+ return "闇�姹傜増鏈姣�";
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_DemandComparison/_ROOT_Type_LocalCell_DemandComparison.qbl b/_Main/BL/Type_LocalCell_DemandComparison/_ROOT_Type_LocalCell_DemandComparison.qbl
index d141f48..4647a9a 100644
--- a/_Main/BL/Type_LocalCell_DemandComparison/_ROOT_Type_LocalCell_DemandComparison.qbl
+++ b/_Main/BL/Type_LocalCell_DemandComparison/_ROOT_Type_LocalCell_DemandComparison.qbl
@@ -4,6 +4,7 @@
TypeSpecialization LocalCell_DemandComparison
{
#keys: '2[412672.0.1087844722][412672.0.1087844717]'
+ Description: '闇�姹傚姣旀姤琛�'
Parent: LocalCell
StructuredName: 'LocalCell_DemandComparisons'
}
diff --git a/_Main/BL/Type_LocalCell_OfflinePlanComparison/_ROOT_Type_LocalCell_OfflinePlanComparison.qbl b/_Main/BL/Type_LocalCell_OfflinePlanComparison/_ROOT_Type_LocalCell_OfflinePlanComparison.qbl
index d360987..fa2e66e 100644
--- a/_Main/BL/Type_LocalCell_OfflinePlanComparison/_ROOT_Type_LocalCell_OfflinePlanComparison.qbl
+++ b/_Main/BL/Type_LocalCell_OfflinePlanComparison/_ROOT_Type_LocalCell_OfflinePlanComparison.qbl
@@ -4,6 +4,7 @@
TypeSpecialization LocalCell_OfflinePlanComparison
{
#keys: '2[412672.1.76654683][412672.1.76654682]'
+ Description: '涓嬬嚎璁″垝瀵规瘮鎶ヨ〃'
Parent: LocalCell
StructuredName: 'LocalCell_OfflinePlanComparisons'
}
diff --git a/_Main/BL/Type_LocalCell_ProductionComparison/_ROOT_Type_LocalCell_ProductionComparison.qbl b/_Main/BL/Type_LocalCell_ProductionComparison/_ROOT_Type_LocalCell_ProductionComparison.qbl
index 3271cca..ddeedb1 100644
--- a/_Main/BL/Type_LocalCell_ProductionComparison/_ROOT_Type_LocalCell_ProductionComparison.qbl
+++ b/_Main/BL/Type_LocalCell_ProductionComparison/_ROOT_Type_LocalCell_ProductionComparison.qbl
@@ -4,6 +4,7 @@
TypeSpecialization LocalCell_ProductionComparison
{
#keys: '2[412672.1.64753741][412672.1.64753740]'
+ Description: '鐢熶骇璁″垝瀵规瘮鎶ヨ〃'
Parent: LocalCell
StructuredName: 'LocalCell_ProductionComparisons'
}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_Capacity.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_Capacity.qbl"
new file mode 100644
index 0000000..4258f1d
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_Capacity.qbl"
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Capacity
+{
+ #keys: '3[412672.1.95303230][412672.1.95303229][412672.1.95303231]'
+ Description: '浜ц兘'
+ ValueType: Real
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_Output.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_Output.qbl"
new file mode 100644
index 0000000..8e93557
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_Output.qbl"
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Output
+{
+ #keys: '3[412672.1.95303221][412672.1.95303220][412672.1.95303222]'
+ Description: '浜у嚭'
+ ValueType: Real
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_ShiftPattern.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_ShiftPattern.qbl"
new file mode 100644
index 0000000..cfc4461
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_ShiftPattern.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPattern
+{
+ #keys: '3[412672.1.95303224][412672.1.95303223][412672.1.95303225]'
+ ValueType: String
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_WorkingDay.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_WorkingDay.qbl"
new file mode 100644
index 0000000..691debe
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Attribute_WorkingDay.qbl"
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkingDay
+{
+ #keys: '3[412672.1.95303227][412672.1.95303226][412672.1.95303228]'
+ Description: '宸ヤ綔鏃�'
+ ValueType: Number
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/DefaultValue_ShiftPattern.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/DefaultValue_ShiftPattern.qbl"
new file mode 100644
index 0000000..2877e16
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/DefaultValue_ShiftPattern.qbl"
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: ShiftPattern
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Method_GetAttributeByName.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Method_GetAttributeByName.qbl"
new file mode 100644
index 0000000..9ff831c
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Method_GetAttributeByName.qbl"
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetAttributeByName (
+ String attributeName
+) const declarative remote as String
+{
+ TextBody:
+ [*
+ // rislai Jun-21-2024 (created)
+ value := "";
+
+ if( attributeName = "ShiftPattern" ){
+ if( not this.LocalColumn().IsAttrbuteColumn() ){
+ value := this.ShiftPattern();
+ }
+ }
+ if( attributeName = "Capacity" ){
+ if( not this.LocalColumn().IsAttrbuteColumn() ){
+ value := this.Capacity().Format( "N(Dec)" );
+ }
+ }
+ if( attributeName = "Output" ){
+ if( not this.LocalColumn().IsAttrbuteColumn() ){
+ value := this.Output().Format( "N(Dec)" );
+ }
+ }
+ if( attributeName = "WorkingDay" ){
+ if( not this.LocalColumn().IsAttrbuteColumn() ){
+ value := [String]this.WorkingDay();
+ }
+ }
+
+ return value;
+ *]
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Method_GetDisplayNameByName.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Method_GetDisplayNameByName.qbl"
new file mode 100644
index 0000000..69cf7b7
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/Method_GetDisplayNameByName.qbl"
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetDisplayNameByName (
+ String attributeName
+) const declarative remote as String
+{
+ TextBody:
+ [*
+ // rislai Aug-7-2024 (created)
+ // rislai Jun-21-2024 (created)
+ value := "";
+ if( attributeName = "ShiftPattern" ){
+ value := "鐝";
+ }
+ if( attributeName = "Capacity" ){
+ value := "浜ц兘";
+ }
+ if( attributeName = "Output" ){
+ value := "浜у嚭";
+ }
+ if( attributeName = "WorkingDay" ){
+ value := "宸ヤ綔鏃�";
+ }
+
+ return value;
+ *]
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl"
new file mode 100644
index 0000000..278275c
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_AsyncExport.qbl"
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod AsyncExport (
+ RecycleBin recycleBin,
+ const constcontent LocalRows rows,
+ const constcontent LocalColumns columns
+)
+{
+ TextBody:
+ [*
+ // rislai Jun-20-2024 (created)
+ sortColumns := selectsortedset( columns,Elements,column,true,column.Index());
+
+ attributeNames := LocalCell_ScheduleSummary::GetAttributeNames();
+
+ columnstring := emit( "" );
+ flag := true;
+ traverse( sortColumns,Elements,sortColumn ){
+ if( flag ){
+ attributeXML := rows -> LocalCell_ScheduleSummary::GetColumnXML( sortColumn,attributeNames,"attribute" );
+ columnstring := columnstring.Merge( attributeXML )
+ flag := false;
+ }
+
+ cellxml := rows -> LocalCell_ScheduleSummary::GetColumnXML( sortColumn,attributeNames ,"data" );
+ columnstring := columnstring.Merge( cellxml);
+ }
+
+ columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),MP_Cell_ScheduleSummary::GetTableName()) );
+ *]
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_GetAttributeNames.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_GetAttributeNames.qbl"
new file mode 100644
index 0000000..3b2b047
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_GetAttributeNames.qbl"
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetAttributeNames () const declarative as owning Strings
+{
+ TextBody:
+ [*
+ // rislai Jun-21-2024 (created)
+ attributeNames := construct( Strings );
+
+ attributeNames.Add( "ShiftPattern" );
+ attributeNames.Add( "WorkingDay" );
+ attributeNames.Add( "Capacity" );
+ attributeNames.Add( "Output" );
+
+ return &attributeNames;
+ *]
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_GetColumnXML.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_GetColumnXML.qbl"
new file mode 100644
index 0000000..b181ceb
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/StaticMethod_GetColumnXML.qbl"
@@ -0,0 +1,51 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetColumnXML (
+ const constcontent LocalRows rows,
+ const LocalColumn column,
+ const Strings attributeNames,
+ String type
+) const as String
+{
+ TextBody:
+ [*
+ // rislai Jun-21-2024 (created)
+
+ columnXML := "";
+ cells := selectsortedset( column, LocalCell.astype( LocalCell_ScheduleSummary ), cell,
+ exists( rows,Elements,element,element = cell.LocalRow()), cell.LocalRow().Index());
+ if( type = "data" ){
+ columnXML := "<column><name>" + column.CustomDate().Format( "Y/M2/D2") + "</name><type>String</type>";
+ traverse ( cells, Elements, cell ) {
+ traverse( attributeNames ,Elements,e ){
+ cellXML := '<cell value="' + cell.GetAttributeByName( e ) + '"/>'
+ columnXML := columnXML + cellXML;
+ }
+ }
+ columnXML := columnXML + "</column>";
+ }
+ if( type = "attribute" ){
+ columnXML1 := "<column><name>浜х嚎</name><type>String</type>";
+ columnXML2 := "<column><name>Attribute</name><type>String</type>";
+
+ traverse ( cells, Elements, cell ) {
+ flag := true;
+ traverse( attributeNames ,Elements,e ){
+ if( flag ){
+ cellXML := '<cell value="' + cell.LocalRow().Name() + '"/>'
+ columnXML1 := columnXML1 + cellXML;
+ flag := false;
+ }else{
+ cellXML := '<cell value=" "/>'
+ columnXML1 := columnXML1 + cellXML;
+ }
+ cellXML := '<cell value="' + cell.GetDisplayNameByName( e ) + '"/>'
+ columnXML2 := columnXML2 + cellXML;
+ }
+ }
+ columnXML := columnXML1 + "</column>" + columnXML2 + "</column>";
+ }
+
+ return columnXML;
+ *]
+}
diff --git "a/_Main/BL/Type_LocalCell_ScheduleSummary\043859/_ROOT_Type_LocalCell_ScheduleSummary.qbl" "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/_ROOT_Type_LocalCell_ScheduleSummary.qbl"
new file mode 100644
index 0000000..5d6b975
--- /dev/null
+++ "b/_Main/BL/Type_LocalCell_ScheduleSummary\043859/_ROOT_Type_LocalCell_ScheduleSummary.qbl"
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization LocalCell_ScheduleSummary
+{
+ #keys: '2[412672.1.95303218][412672.1.95303213]'
+ Parent: LocalCell
+ StructuredName: 'LocalCell_ScheduleSummarys'
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl
new file mode 100644
index 0000000..c214e76
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Capacity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Capacity
+{
+ #keys: '3[412672.1.95254748][412672.1.95254747][412672.1.95254749]'
+ Description: '浜ц兘'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl
new file mode 100644
index 0000000..976e2a6
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_Output.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Output
+{
+ #keys: '3[412672.1.95254758][412672.1.95254757][412672.1.95254759]'
+ Description: '浜у嚭'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl
new file mode 100644
index 0000000..a64ba99
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_ShiftPattern.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPattern
+{
+ #keys: '3[412672.1.95291524][412672.1.95291523][412672.1.95291525]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl
new file mode 100644
index 0000000..8f20102
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/Attribute_WorkingDay.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkingDay
+{
+ #keys: '3[412672.1.95254735][412672.1.95254734][412672.1.95254736]'
+ Description: '宸ヤ綔鏃�'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl
new file mode 100644
index 0000000..480f365
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_Create.qbl
@@ -0,0 +1,68 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Create (
+ MacroPlan owner
+) as MP_Table
+{
+ TextBody:
+ [*
+ // rislai Aug-6-2024 (created)
+ table := select( owner,MP_Table,table,table.Name() = MP_Cell_ScheduleSummary::GetTableName() );
+ if( not isnull( table )){
+ table.Delete();
+ }
+
+ table := owner.MP_Table( relnew,Name := MP_Cell_ScheduleSummary::GetTableName());
+
+ startDate := owner.StartOfPlanning().Date();
+ endDate := startDate + 7;
+
+ columns := construct( MP_Columns );
+ columnIndexTree := NamedValueTree::Create();
+ for( i := startDate;i < endDate; i := i + 1){
+ column := table.MP_Column( relnew,CustomDate := i );
+ columnHandle := columnIndexTree.GetHandle( i.AsQUILL() );
+ columns.Add( column );
+ columnIndexTree.Root().AddChild( columnHandle,columns.Size() - 1 );
+ }
+
+ traverse( owner,Unit,unit,unit.HasCapacityTypeTime()){
+ // unit.AsEntity().DisplayNameForSelection()
+ row := table.MP_Row( relnew,CustomName := unit.ID(),Index := table.GetRowIndexCache() );
+ throughput := sum( unit,Operation,operation,operation.Throughput() ) / unit.Operation( relsize );
+
+ unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,
+ unitPeriodTime.Period_MP().StartDate() >= startDate
+ and unitPeriodTime.Period_MP().EndDate() <= endDate
+ and unitPeriodTime.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day());
+ traverse( unitPeriodTimes,Elements,unitPeriodTime ){
+ columnHandle := columnIndexTree.GetHandle( unitPeriodTime.Period_MP().StartDate().AsQUILL() );
+ columnIndex := guard( columnIndexTree.Root().Child( columnHandle ),null( NamedValue ));
+ if( not isnull( columnIndex )){
+ // 褰揳rrowedAvailableCapacity涓嶄负0锛屽伐浣滄棩 + 1
+ arrowedAvailableCapacity := unitPeriodTime.TotalAvailableCapacity();
+ zeroDuration := Duration::Construct( 0,0,0,0);
+
+ column := columns.Element( columnIndex.GetValueAsNumber() );
+
+ dayOfWeek := column.CustomDate().DayOfWeek();
+ workHours := select( unitPeriodTime,ShiftPattern.ShiftDay,shifDay,shifDay.Day_MP().ID() = dayOfWeek );
+ capacity := 0.0;
+
+ workDay := ifexpr( arrowedAvailableCapacity <> zeroDuration, 1,0 );
+ if( not isnull( workHours )){
+ capacity := workDay * throughput * workHours.Capacity().HoursAsReal()
+ }
+
+ row.MP_Cell( relnew,MP_Cell_ScheduleSummary,MP_Column := column,
+ ShiftPattern := unitPeriodTime.ShiftPatternName(),
+ WorkingDay := workDay,
+ Capacity := capacity,
+ Output := 0 );
+ }
+ }
+ }
+
+ return table;
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl
new file mode 100644
index 0000000..401d54f
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_CreateFullTable.qbl
@@ -0,0 +1,94 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateFullTable (
+ const MacroPlans owners,
+ RecycleBin recycleBin,
+ const Archive archive
+) as LocalTable
+{
+ TextBody:
+ [*
+ // rislai Aug-7-2024 (created)
+ tables := construct( MP_Tables );
+ traverse( owners,Elements,owner ){
+ table := select( owner,MP_Table,table,table.Name() = MP_Cell_ScheduleSummary::GetTableName() );
+ if( isnull( table )){
+ table := MP_Cell_ScheduleSummary::Create( owner );
+ }
+ tables.Add( table );
+ }
+
+ scheduleSummaryOutputDataIndexTree := NamedValueTree::Create();
+ scheduleSummaryOutputDatas := selectset( archive,ScheduleSummaryOutputLine.ScheduleSummaryOutputData,data,
+ exists( tables,Elements.MP_Row,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 );
+ }
+ info( scheduleSummaryOutputDataIndexTree.ToString() );
+
+ localTable := recycleBin.LocalTable( relnew,Name := MP_Cell_ScheduleSummary::GetTableName() );
+ startDate := minselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
+ endDate := maxselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate();
+
+ localColumns := construct( LocalColumns );
+ localColumnIndexTree := NamedValueTree::Create();
+ for( i := startDate.StartOfMonth(); i <= endDate.StartOfMonth(); i := i.StartOfNextMonth() ){
+ localColumn := localTable.LocalColumn( relnew,CustomDate := i );
+ localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() );
+ localColumns.Add( localColumn );
+ localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 );
+ }
+ traverse( tables,Elements.MP_Row,row ){
+ localRow := localTable.LocalRow( relnew,CustomName := row.Name(),Index := localTable.GetRowIndexCache() );
+
+ traverse( localColumns,Elements,localColumn ){
+ cells := selectset( row,MP_Cell.astype( MP_Cell_ScheduleSummary ),cell,cell.MP_Column().CustomDate() >= localColumn.CustomDate() and cell.MP_Column().CustomDate() < localColumn.CustomDate().StartOfNextMonth() );
+
+ output := 0.0;
+
+ scheduleSummaryOutputDataKey := row.Name() + localColumn.CustomDate().AsQUILL();
+ info( scheduleSummaryOutputDataKey );
+ scheduleSummaryOutputDataHandle := scheduleSummaryOutputDataIndexTree.GetHandle( scheduleSummaryOutputDataKey );
+ scheduleSummaryOutputDataIndex := guard( scheduleSummaryOutputDataIndexTree.Root().Child( scheduleSummaryOutputDataHandle ),null( NamedValue ));
+ if( not isnull( scheduleSummaryOutputDataIndex )){
+ scheduleSummaryOutputData := scheduleSummaryOutputDatas.Element( scheduleSummaryOutputDataIndex.GetValueAsNumber() );
+ output := scheduleSummaryOutputData.Output();
+ }
+
+ maxShiftPattern := "";
+ maxShiftPatternCount := 0;
+
+ workingDay := 0;
+ capacity := 0.0;
+
+ traverse( cells,Elements,cell ){
+ workingDay := workingDay + cell.WorkingDay();
+ capacity := capacity + cell.Capacity();
+
+ if( maxShiftPattern <> cell.ShiftPattern() ){
+ if( maxShiftPatternCount = 0 ){
+ maxShiftPattern := cell.ShiftPattern();
+ maxShiftPatternCount ++;
+ }else{
+ maxShiftPatternCount --;
+ }
+ }else{
+ maxShiftPatternCount ++;
+ }
+ }
+
+ localCell := localRow.LocalCell( relnew,LocalCell_ScheduleSummary,LocalColumn := localColumn );
+ localCell.ShiftPattern( maxShiftPattern );
+ localCell.WorkingDay( workingDay );
+ localCell.Capacity( capacity );
+ localCell.Output( output );
+ }
+ }
+
+ return localTable;
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl
new file mode 100644
index 0000000..e36e50c
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ExportOutputTemplate.qbl
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ExportOutputTemplate (
+ Number year
+) as BinaryValue
+{
+ Description: '瀵煎嚭浜у嚭瀵煎叆妯℃澘'
+ 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 + "</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 + "</column>";
+ }
+
+ xmlTemplate := xmlTemplate + "</table>";
+
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
+ XLS::SaveTable( tableHandle, OS::TempPath() + "template.xlsx" );
+ file := OSFile::Construct();
+ file.Open( OS::TempPath() + "template.xlsx", "Read", true );
+ data := file.ReadBinary();
+ return data;
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl
new file mode 100644
index 0000000..dbf4dd0
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_GetTableName.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetTableName () const declarative remote as owning String
+{
+ TextBody:
+ [*
+ // rislai Aug-7-2024 (created)
+ return "璁″垝姹囨�绘姤琛�";
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl
new file mode 100644
index 0000000..d07e7cf
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/StaticMethod_ImportOutput.qbl
@@ -0,0 +1,65 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ImportOutput (
+ Archive archive,
+ const GeneralExcelImportAndExportDataSource outputSource
+)
+{
+ Description: '浜у嚭瀵煎叆'
+ TextBody:
+ [*
+ // rislai Aug-6-2024 (created)
+ outputTable := select( outputSource,GeneralExcelImportAndExportDataTable,table,table.Name() = "浜у嚭");
+ if( isnull( outputTable )){
+ error( "瀵煎叆鐨勬枃浠朵笉姝g‘" );
+ }
+ lines := construct( ScheduleSummaryOutputLines );
+ lineIndexTree := NamedValueTree::Create();
+
+ traverse( archive,ScheduleSummaryOutputLine,line ){
+ lineHandle := lineIndexTree.GetHandle( line.LineName() );
+ lines.Add( line );
+ lineIndexTree.Root().AddChild( lineHandle,lines.Size() - 1 );
+ }
+
+ traverse( outputTable,GeneralExcelImportAndExportDataRow,row ){
+ count := 0;
+ line := null( ScheduleSummaryOutputLine );
+ datas := construct( ScheduleSummaryOutputDatas );
+ dataIndexTree := NamedValueTree::Create();
+ traverse( row,GeneralExcelImportAndExportDataCell,cell ){
+ if( count = 0 ){
+ lineName := cell.Value();
+ lineHandle := lineIndexTree.GetHandle( lineName );
+ lineIndex := guard( lineIndexTree.Root().Child( lineHandle ),null( NamedValue ));
+ if( isnull( lineIndex )){
+ line := archive.ScheduleSummaryOutputLine( relnew,LineName := lineName );
+ lines.Add( line );
+ lineIndexTree.Root().AddChild( lineHandle,lines.Size() - 1 );
+ }else{
+ line := lines.Element( lineIndex.GetValueAsNumber() );
+ traverse( line,ScheduleSummaryOutputData,data ){
+ dataHandle := dataIndexTree.GetHandle( data.Date().AsQUILL() );
+ datas.Add( data );
+ dataIndexTree.Root().AddChild( dataHandle,datas.Size() - 1 );
+ }
+ }
+ }else{
+ 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 ));
+ if( isnull( dataIndex )){
+ data := line.ScheduleSummaryOutputData( relnew,Date := date,Output := [Real]cell.Value() );
+ datas.Add( data );
+ dataIndexTree.Root().AddChild( dataHandle,datas.Size() - 1 );
+ }else{
+ data := datas.Element( dataIndex.GetValueAsNumber() );
+ data.Output( [Real]cell.Value() );
+ }
+ }
+ count ++;
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl b/_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl
new file mode 100644
index 0000000..ab38c84
--- /dev/null
+++ b/_Main/BL/Type_LocalCell_ScheduleSummary/_ROOT_Type_MP_Cell_ScheduleSummary.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization MP_Cell_ScheduleSummary
+{
+ #keys: '2[412672.1.95254704][412672.1.95254699]'
+ Description: '璁″垝姹囨�绘姤琛�'
+ Parent: MP_Cell
+ StructuredName: 'MP_Cell_ScheduleSummarys'
+}
diff --git a/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl b/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl
index 8319f34..a8ef9c9 100644
--- a/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl
+++ b/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl
@@ -5,21 +5,22 @@
TextBody:
[*
// rislai Jul-24-2024 (created)
- year := this.Date().Year();
- month := this.Date().Month();
- day := this.Date().Day();
-
- index := [String]year;
- if( month < 10 ){
- index := index + "0" + [String]month;
+ value := 0;
+ if( this.CustomIndex() = -999 ){
+ year := this.Date().Year();
+ month := this.Date().Month();
+ day := this.Date().Day();
+ index := [String]year;
+ if( month < 10 ){
+ index := index + "0" + [String]month;
+ }
+ if( day < 10 ){
+ index := index + "0" + [String]day;
+ }
+ value := [Number]index;
+ }else{
+ value := this.CustomIndex();
}
- if( day < 10 ){
- index := index + "0" + [String]day;
- }
-
-
- value := ifexpr( this.CustomIndex() = -999,[Number]index,this.CustomIndex() );
-
this.Index( value );
*]
}
diff --git a/_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl b/_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl
new file mode 100644
index 0000000..e9217ce
--- /dev/null
+++ b/_Main/BL/Type_MP_Cell/_ROOT_Type_MP_Cell.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MP_Cell
+{
+ #keys: '5[412672.1.95254793][412672.1.95254791][0.0.0][412672.1.95254792][412672.1.95254794]'
+ BaseType: Object
+ StructuredName: 'MP_Cells'
+}
diff --git a/_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl b/_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl
new file mode 100644
index 0000000..54a618e
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Attribute_CustomDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomDate
+{
+ #keys: '3[412672.1.95254881][412672.1.95254880][412672.1.95254882]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl b/_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl
new file mode 100644
index 0000000..40520aa
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Attribute_CustomIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomIndex
+{
+ #keys: '3[412672.1.95254872][412672.1.95254871][412672.1.95254873]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MP_Column/Attribute_Date.qbl b/_Main/BL/Type_MP_Column/Attribute_Date.qbl
new file mode 100644
index 0000000..315134a
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Attribute_Date.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Date
+{
+ #keys: '3[412672.1.95254869][412672.1.95254868][412672.1.95254870]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_MP_Column/Attribute_Index.qbl b/_Main/BL/Type_MP_Column/Attribute_Index.qbl
new file mode 100644
index 0000000..a0ef648
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Attribute_Index.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Index
+{
+ #keys: '3[412672.1.95254875][412672.1.95254874][412672.1.95254876]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl b/_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl
new file mode 100644
index 0000000..11d8db1
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Attribute_IsAttrbuteColumn.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsAttrbuteColumn
+{
+ #keys: '3[412672.1.95254866][412672.1.95254865][412672.1.95254867]'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_MP_Column/Attribute_Name.qbl b/_Main/BL/Type_MP_Column/Attribute_Name.qbl
new file mode 100644
index 0000000..5df6cb5
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[412672.1.95254878][412672.1.95254877][412672.1.95254879]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl b/_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl
new file mode 100644
index 0000000..d26aba3
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/DefaultValue_CustomIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ ISOValue: '-999'
+ TargetAttribute: CustomIndex
+}
diff --git a/_Main/BL/Type_MP_Column/DefaultValue_Name.qbl b/_Main/BL/Type_MP_Column/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_MP_Column/Function_CalcDate.qbl b/_Main/BL/Type_MP_Column/Function_CalcDate.qbl
new file mode 100644
index 0000000..2f59aa9
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Function_CalcDate.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcDate
+{
+ TextBody:
+ [*
+ // rislai Jun-28-2024 (created)
+ if( not this.IsAttrbuteColumn() ){
+ names := this.Name().Tokenize( "/" );
+ this.Date( ifexpr( this.CustomDate() <> Date::MinDate(),this.CustomDate(),guard( Date::Construct( [Number]names.Element( 0 ),[Number]names.Element( 1 ),[Number]names.Element( 2 )),Date::MinDate() )));
+ }
+ *]
+}
diff --git a/_Main/BL/Type_MP_Column/Function_CalcIndex.qbl b/_Main/BL/Type_MP_Column/Function_CalcIndex.qbl
new file mode 100644
index 0000000..8319f34
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/Function_CalcIndex.qbl
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcIndex
+{
+ TextBody:
+ [*
+ // rislai Jul-24-2024 (created)
+ year := this.Date().Year();
+ month := this.Date().Month();
+ day := this.Date().Day();
+
+ index := [String]year;
+ if( month < 10 ){
+ index := index + "0" + [String]month;
+ }
+ if( day < 10 ){
+ index := index + "0" + [String]day;
+ }
+
+
+ value := ifexpr( this.CustomIndex() = -999,[Number]index,this.CustomIndex() );
+
+ this.Index( value );
+ *]
+}
diff --git a/_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl b/_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl
new file mode 100644
index 0000000..57b1ea9
--- /dev/null
+++ b/_Main/BL/Type_MP_Column/_ROOT_Type_MP_Column.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MP_Column
+{
+ #keys: '5[412672.1.95254788][412672.1.95254786][0.0.0][412672.1.95254787][412672.1.95254789]'
+ BaseType: Object
+ StructuredName: 'MP_Columns'
+}
diff --git a/_Main/BL/Type_MP_Row/Attribute_CustomName.qbl b/_Main/BL/Type_MP_Row/Attribute_CustomName.qbl
new file mode 100644
index 0000000..9c69130
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/Attribute_CustomName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomName
+{
+ #keys: '3[412672.1.95254889][412672.1.95254888][412672.1.95254890]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MP_Row/Attribute_Index.qbl b/_Main/BL/Type_MP_Row/Attribute_Index.qbl
new file mode 100644
index 0000000..4590e93
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/Attribute_Index.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Index
+{
+ #keys: '3[412672.1.95254892][412672.1.95254891][412672.1.95254893]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MP_Row/Attribute_Name.qbl b/_Main/BL/Type_MP_Row/Attribute_Name.qbl
new file mode 100644
index 0000000..2412123
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[412672.1.95254895][412672.1.95254894][412672.1.95254896]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MP_Row/Attribute_Remark.qbl b/_Main/BL/Type_MP_Row/Attribute_Remark.qbl
new file mode 100644
index 0000000..2b44249
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/Attribute_Remark.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Remark
+{
+ #keys: '3[412672.1.95254886][412672.1.95254885][412672.1.95254887]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl b/_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl
new file mode 100644
index 0000000..ccf1251
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/DefaultValue_CustomName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: CustomName
+}
diff --git a/_Main/BL/Type_MP_Row/DefaultValue_Name.qbl b/_Main/BL/Type_MP_Row/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl b/_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl
new file mode 100644
index 0000000..b7df04c
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/DefaultValue_Remark.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Remark
+}
diff --git a/_Main/BL/Type_MP_Row/Function_CalcName.qbl b/_Main/BL/Type_MP_Row/Function_CalcName.qbl
new file mode 100644
index 0000000..c3cbb48
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/Function_CalcName.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcName
+{
+ TextBody:
+ [*
+ // rislai Jun-22-2024 (created)
+
+ value := ifexpr( this.CustomName() = "",[String]this.Index(),this.CustomName() );
+
+ this.Name( value );
+ *]
+}
diff --git a/_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl b/_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl
new file mode 100644
index 0000000..5963ba9
--- /dev/null
+++ b/_Main/BL/Type_MP_Row/_ROOT_Type_MP_Row.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MP_Row
+{
+ #keys: '5[412672.1.95254783][412672.1.95254781][0.0.0][412672.1.95254782][412672.1.95254784]'
+ BaseType: Object
+ StructuredName: 'MP_Rows'
+}
diff --git a/_Main/BL/Type_MP_Table/Attribute_Name.qbl b/_Main/BL/Type_MP_Table/Attribute_Name.qbl
new file mode 100644
index 0000000..0014815
--- /dev/null
+++ b/_Main/BL/Type_MP_Table/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[412672.1.95254900][412672.1.95254899][412672.1.95254901]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl b/_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl
new file mode 100644
index 0000000..521d84b
--- /dev/null
+++ b/_Main/BL/Type_MP_Table/Attribute_RowIndexCache.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowIndexCache
+{
+ #keys: '3[412672.1.95254903][412672.1.95254902][412672.1.95254904]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MP_Table/DefaultValue_Name.qbl b/_Main/BL/Type_MP_Table/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_MP_Table/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl b/_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl
new file mode 100644
index 0000000..eccdbc7
--- /dev/null
+++ b/_Main/BL/Type_MP_Table/Method_GetRowIndexCache.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+Method GetRowIndexCache () declarative as Number
+{
+ TextBody:
+ [*
+ // rislai Jun-20-2024 (created)
+ this.RowIndexCache( this.RowIndexCache() + 1 );
+
+ return this.RowIndexCache();
+ *]
+}
diff --git a/_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl b/_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl
new file mode 100644
index 0000000..620aaac
--- /dev/null
+++ b/_Main/BL/Type_MP_Table/_ROOT_Type_MP_Table.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MP_Table
+{
+ #keys: '5[412672.1.95254778][412672.1.95254776][0.0.0][412672.1.95254777][412672.1.95254779]'
+ BaseType: Object
+ StructuredName: 'MP_Tables'
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Date.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Date.qbl
new file mode 100644
index 0000000..bf15d8d
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Date.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Date
+{
+ #keys: '3[412672.1.95305012][412672.1.95305011][412672.1.95305013]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Output.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Output.qbl
new file mode 100644
index 0000000..30d1210
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/Attribute_Output.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Output
+{
+ #keys: '3[412672.1.95305022][412672.1.95305021][412672.1.95305023]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputData/_ROOT_Type_ScheduleSummaryOutputData.qbl b/_Main/BL/Type_ScheduleSummaryOutputData/_ROOT_Type_ScheduleSummaryOutputData.qbl
new file mode 100644
index 0000000..a19c60e
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputData/_ROOT_Type_ScheduleSummaryOutputData.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ScheduleSummaryOutputData
+{
+ #keys: '5[412672.1.95304995][412672.1.95304993][0.0.0][412672.1.95304994][412672.1.95304996]'
+ BaseType: Object
+ StructuredName: 'ScheduleSummaryOutputDatas'
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputLine/Attribute_LineName.qbl b/_Main/BL/Type_ScheduleSummaryOutputLine/Attribute_LineName.qbl
new file mode 100644
index 0000000..a6b2b41
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputLine/Attribute_LineName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineName
+{
+ #keys: '3[412672.1.95294297][412672.1.95294296][412672.1.95294298]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_ScheduleSummaryOutputLine/_ROOT_Type_ScheduleSummaryOutputLine.qbl b/_Main/BL/Type_ScheduleSummaryOutputLine/_ROOT_Type_ScheduleSummaryOutputLine.qbl
new file mode 100644
index 0000000..3d56b9f
--- /dev/null
+++ b/_Main/BL/Type_ScheduleSummaryOutputLine/_ROOT_Type_ScheduleSummaryOutputLine.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ScheduleSummaryOutputLine
+{
+ #keys: '5[412672.1.95294293][412672.1.95294291][0.0.0][412672.1.95294292][412672.1.95294294]'
+ BaseType: Object
+ StructuredName: 'ScheduleSummaryOutputLines'
+}
diff --git a/_Main/BL/Type_Test/StaticMethod_Test.qbl b/_Main/BL/Type_Test/StaticMethod_Test.qbl
index f3f8a11..8b72915 100644
--- a/_Main/BL/Type_Test/StaticMethod_Test.qbl
+++ b/_Main/BL/Type_Test/StaticMethod_Test.qbl
@@ -13,6 +13,14 @@
//names := name.Tokenize( "/" );
// info( guard( Date::Construct( [Number]names.Element( 0 ),[Number]names.Element( 1 ),[Number]names.Element( 2 )),Date::MinDate() ));
- info( macroPlan.DisplayNameForSelection() );
+ //traverse( archive,ScheduleSummaryOutputLine,line ){
+ // info( line.LineName() );
+ // traverse( line,ScheduleSummaryOutputData,data ){
+ // info( data.Date().Format( "Y-M2-D2 ") + " ->" + [String]data.Output() );
+ // }
+ //}
+
+ attributes := "ShiftPattern;WorkingDay;Capacity;Output;".SubString( 0,"ShiftPattern;WorkingDay;Capacity;Output;".Length() - 1 );
+ info( attributes );
*]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
index 1b42609..f42b770 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
@@ -93,6 +93,17 @@
Taborder: 7
]
}
+ Component ButtonScheduleSummaryReport
+ {
+ #keys: '[412672.1.95510221]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'DOCUMENT_CUP'
+ Label: '璁″垝姹囨�绘姤琛�'
+ Taborder: 8
+ ]
+ }
]
Properties:
[
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioComparisonViews\043859.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioComparisonViews\043859.def"
deleted file mode 100644
index f5f7736..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioComparisonViews\043859.def"
+++ /dev/null
@@ -1,4 +0,0 @@
-Quintiq file version 2.0
-Component ActionBarGroupScenarioComparisonViews #extension
-{
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioComparison.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioComparison.def
deleted file mode 100644
index fb3b421..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioComparison.def
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-Component ActionBarPageScenarioComparison #extension
-{
- Children:
- [
- #child: ActionBarGroupScenarioComparisonViews
- ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonScheduleSummaryReport_OnCli.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonScheduleSummaryReport_OnCli.def
new file mode 100644
index 0000000..0871e0b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonScheduleSummaryReport_OnCli.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupReport/ButtonScheduleSummaryReport
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonScheduleSummaryReport_OnClick
+{
+ #keys: '[412672.1.95510258]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ // Open view
+ ApplicationMacroPlanner.OpenView( 'ScheduleSummaryReport', this );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
index 2a93db6..ec25220 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -20,7 +20,6 @@
#child: abpAlgorithmPostProcessing
#child: ActionBarPagePlan
#child: ActionBarPageReport
- #child: ActionBarPageScenarioComparison
]
}
Component dhBinaryDataPR id:dhBinaryDataPR_688
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation\043568.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation\043568.def"
index f54864f..b37ae84 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation\043568.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation\043568.def"
@@ -29,7 +29,7 @@
Properties:
[
DataType: 'RecycleBin'
- FixedFilter: 'object.Name() = "LocalTableXML"'
+ FixedFilter: 'object.Name() = LocalCell_DemandComparison::GetTableName()'
Source: 'RecycleBin'
Taborder: 0
Transformation: 'ExportXMLManager'
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bDownload_OnClick\043781.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bDownload_OnClick\043781.def"
index 798a871..a580e4b 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bDownload_OnClick\043781.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bDownload_OnClick\043781.def"
@@ -21,7 +21,7 @@
[*
binaryValue := dhXMLDataListener.Data( ).Export();
- Application.Download( "闇�姹傜増鏈姣擾" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
+ Application.Download( LocalCell_DemandComparison::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
dhXMLDataListener.Data( ).Delete();
*]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor\043715.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor\043715.def"
new file mode 100644
index 0000000..e497a22
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor\043715.def"
@@ -0,0 +1,103 @@
+Quintiq file version 2.0
+Component MatrixEditor id:MatrixEditor_715
+{
+ #keys: '[412672.1.94121865]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCell
+ {
+ #keys: '[412672.1.94121866]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractorCells
+ {
+ #keys: '[412672.1.94121867]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MP_Table'
+ Source: 'dhComparisonData'
+ Taborder: 0
+ Transformation: 'MP_Row.MP_Cell.astype(MP_Cell_ScheduleSummary)'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'ShiftPattern;WorkingDay;Capacity;Output'
+ Column: 'MP_Column'
+ Row: 'MP_Row'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorRows
+ {
+ #keys: '[412672.1.94121868]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractorRows
+ {
+ #keys: '[412672.1.94121869]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MP_Table'
+ FilterArguments: 'checkedEntity:QMacroPlanner::FormScheduleSummaryReport.dhFinelEntity'
+ FixedFilter: 'exists( checkedEntity,Elements,entity,entity.DisplayName() = object.Name() )'
+ Source: 'dhComparisonData'
+ Taborder: 0
+ Transformation: 'MP_Row'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Name'
+ SortCriteria: 'Index'
+ Taborder: 1
+ ]
+ }
+ Component MatrixEditorColumns
+ {
+ #keys: '[412672.1.94121870]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractorColumns
+ {
+ #keys: '[412672.1.94121871]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MP_Table'
+ FilterArguments: 'startDate:QMacroPlanner::FormScheduleSummaryReport.dhStartDate;endDate:QMacroPlanner::FormScheduleSummaryReport.dhEndDate'
+ FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() '
+ Source: 'dhComparisonData'
+ Taborder: 0
+ Transformation: 'MP_Column'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Date'
+ SortCriteria: 'Index'
+ Taborder: 2
+ ]
+ }
+ #child: matrixEditorActionBarPageDemandComparison_1
+ #child: matrixeditorContextMenuDemandComparison_1
+ ]
+ Properties:
+ [
+ AllowMultipleAttributes: true
+ Columns: 'MatrixEditorColumns'
+ ContextMenu: 'matrixeditorContextMenuDemandComparison'
+ Rows: 'MatrixEditorRows'
+ Taborder: 0
+ Visible: false
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor510.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor510.def
new file mode 100644
index 0000000..41782c5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_MatrixEditor510.def
@@ -0,0 +1,102 @@
+Quintiq file version 2.0
+Component MatrixEditor510
+{
+ #keys: '[412672.1.96380864]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCell294
+ {
+ #keys: '[412672.1.96380865]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractorCells611
+ {
+ #keys: '[412672.1.96380866]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'LocalTable'
+ Source: 'dhComparisonData854'
+ Taborder: 0
+ Transformation: 'LocalRow.LocalCell.astype(LocalCell_ScheduleSummary)'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'ShiftPattern;WorkingDay;Capacity;Output'
+ Column: 'LocalColumn'
+ Row: 'LocalRow'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorRows221
+ {
+ #keys: '[412672.1.96380867]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractorRows116
+ {
+ #keys: '[412672.1.96380868]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'LocalTable'
+ FilterArguments: 'checkedEntity:QMacroPlanner::FormScheduleSummaryReport.dhFinelEntity'
+ FixedFilter: 'exists( checkedEntity,Elements,entity,entity.DisplayName() = object.Name() )'
+ Source: 'dhComparisonData854'
+ Taborder: 0
+ Transformation: 'LocalRow'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Name'
+ SortCriteria: 'Index'
+ Taborder: 1
+ ]
+ }
+ Component MatrixEditorColumns391
+ {
+ #keys: '[412672.1.96380869]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractorColumns655
+ {
+ #keys: '[412672.1.96380870]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'LocalTable'
+ FilterArguments: 'startDate:QMacroPlanner::FormScheduleSummaryReport.dhStartDate;endDate:QMacroPlanner::FormScheduleSummaryReport.dhEndDate'
+ FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() '
+ Source: 'dhComparisonData854'
+ Taborder: 0
+ Transformation: 'LocalColumn'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Date'
+ SortCriteria: 'Index'
+ Taborder: 2
+ ]
+ }
+ #child: matrixEditorActionBarPageDemandComparison234
+ #child: matrixeditorContextMenuDemandComparison527
+ ]
+ Properties:
+ [
+ AllowMultipleAttributes: true
+ Columns: 'MatrixEditorColumns391'
+ ContextMenu: 'matrixeditorContextMenuDemandComparison527'
+ Rows: 'MatrixEditorRows221'
+ Taborder: 2
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def
new file mode 100644
index 0000000..3b9186a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelRibbon
+{
+ #keys: '[412672.1.94122014]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: PanelRibbon504
+ #child: PanelRibbon322_88
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Taborder: 0
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon322\04388.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon322\04388.def"
new file mode 100644
index 0000000..b88a509
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon322\04388.def"
@@ -0,0 +1,150 @@
+Quintiq file version 2.0
+Component PanelRibbon322 id:PanelRibbon322_88
+{
+ #keys: '[412672.1.94122030]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component cbShiftPlan
+ {
+ #keys: '[412672.1.94122136]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Checked: true
+ Description: '鐝'
+ Label: '鐝'
+ Taborder: 0
+ ]
+ }
+ Component cbWorkday
+ {
+ #keys: '[412672.1.94122149]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Checked: true
+ Description: '宸ヤ綔鏃�'
+ Label: '宸ヤ綔鏃�'
+ Taborder: 1
+ ]
+ }
+ Component cbCapacity
+ {
+ #keys: '[412672.1.94122161]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Checked: true
+ Description: '浜ц兘'
+ Label: '浜ц兘'
+ Taborder: 2
+ ]
+ }
+ Component cbOutput
+ {
+ #keys: '[412672.1.94122174]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Checked: true
+ Description: '浜ч噺'
+ Label: '浜ч噺'
+ Taborder: 3
+ ]
+ }
+ Component dsStartDate id:dsStartDate_438
+ {
+ #keys: '[412672.1.94150910]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ Label: 'Start Date'
+ Taborder: 4
+ ]
+ }
+ Component dhStartDate id:dhStartDate_891
+ {
+ #keys: '[412672.1.94150932]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'Date*'
+ Properties:
+ [
+ Taborder: 5
+ ]
+ }
+ Component dsEndDate id:dsEndDate_963
+ {
+ #keys: '[412672.1.94150952]'
+ BaseType: 'WebDateSelector'
+ Properties:
+ [
+ Date: 9999-12-31
+ Label: 'End Date'
+ Taborder: 6
+ ]
+ }
+ Component dhEndDate id:dhEndDate_384
+ {
+ #keys: '[412672.1.94150974]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'Date*'
+ Properties:
+ [
+ Taborder: 7
+ ]
+ }
+ Component bExport
+ {
+ #keys: '[412672.1.99120484]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Taborder: 8
+ ]
+ }
+ Component dhXMLDataListener
+ {
+ #keys: '[412672.1.97821419]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'ExportXMLManager'
+ Children:
+ [
+ Component DataExtractorRibbon
+ {
+ #keys: '[412672.1.97821434]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'RecycleBin'
+ FixedFilter: 'object.Name() = MP_Cell_ScheduleSummary::GetTableName()'
+ Source: 'RecycleBin'
+ Taborder: 0
+ Transformation: 'ExportXMLManager'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 9
+ ]
+ }
+ Component bDownload
+ {
+ #keys: '[412672.1.97871677]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'DOWNLOAD'
+ Taborder: 10
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon504.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon504.def
new file mode 100644
index 0000000..b488d6b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelRibbon504.def
@@ -0,0 +1,66 @@
+Quintiq file version 2.0
+Component PanelRibbon504
+{
+ #keys: '[412672.1.94122024]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component bExportTemplate
+ {
+ #keys: '[412672.1.94122267]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Taborder: 3
+ ]
+ }
+ Component bImportOutput
+ {
+ #keys: '[412672.1.94122280]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'IMPORT1'
+ Taborder: 4
+ ]
+ }
+ Component ButtonRibbon
+ {
+ #keys: '[412672.1.94151012]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Create'
+ Taborder: 0
+ Visible: false
+ ]
+ }
+ Component ButtonRibbon820
+ {
+ #keys: '[412672.1.97441173]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'CreateFullTable'
+ Taborder: 1
+ ]
+ }
+ Component npYear
+ {
+ #keys: '[412672.1.98957184]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 1
+ Title: '浜у嚭瀵煎叆'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelScheduleSummary.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelScheduleSummary.def
new file mode 100644
index 0000000..69aad65
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_PanelScheduleSummary.def
@@ -0,0 +1,70 @@
+Quintiq file version 2.0
+Component PanelScheduleSummary
+{
+ #keys: '[412672.1.94121858]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component dhComparisonData
+ {
+ #keys: '[412672.1.94121859]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'MP_Table'
+ Properties:
+ [
+ Taborder: 1
+ ]
+ }
+ Component dhCheckedEntity
+ {
+ #keys: '[412672.1.94121860]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[Entity]*'
+ Children:
+ [
+ Component deCheckedProduct
+ {
+ #keys: '[412672.1.94121861]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[Entity]'
+ Source: 'ApplicationMacroPlanner.DataHolderCheckedEntities'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 5
+ ]
+ }
+ Component dhFinelEntity
+ {
+ #keys: '[412672.1.94121862]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[Entity]*'
+ Properties:
+ [
+ Taborder: 4
+ ]
+ }
+ #child: MatrixEditor_715
+ #child: MatrixEditor510
+ Component dhComparisonData854
+ {
+ #keys: '[412672.1.96380914]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'LocalTable'
+ Properties:
+ [
+ Taborder: 3
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison\0431.def"
new file mode 100644
index 0000000..235d981
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageDemandComparison id:matrixEditorActionBarPageDemandComparison_1
+{
+ #keys: '[412672.1.94121872]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison234.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison234.def
new file mode 100644
index 0000000..87dc127
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixEditorActionBarPageDemandComparison234.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPageDemandComparison234
+{
+ #keys: '[412672.1.96380871]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 3
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison\0431.def"
new file mode 100644
index 0000000..a12dd25
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuDemandComparison id:matrixeditorContextMenuDemandComparison_1
+{
+ #keys: '[412672.1.94121873]'
+ BaseType: 'matrixeditorContextMenu'
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison527.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison527.def
new file mode 100644
index 0000000..b0e701c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Component_matrixeditorContextMenuDemandComparison527.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenuDemandComparison527
+{
+ #keys: '[412672.1.96380872]'
+ BaseType: 'matrixeditorContextMenu'
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Method_SetAttributes.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Method_SetAttributes.def
new file mode 100644
index 0000000..017b5e5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Method_SetAttributes.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: #root
+Method SetAttributes () id:Method_FormScheduleSummaryReport_SetAttributes
+{
+ #keys: '[412672.1.98957835]'
+ Body:
+ [*
+ attributes := "";
+ if( cbShiftPlan.Checked() ){
+ attributes := attributes + "ShiftPattern;";
+ }
+ if( cbWorkday.Checked() ){
+ attributes := attributes + "WorkingDay;";
+ }
+ if( cbCapacity.Checked() ){
+ attributes := attributes + "Capacity;";
+ }
+ if( cbOutput.Checked() ){
+ attributes := attributes + "Output;";
+ }
+ attributes := attributes.SubString( 0,attributes.Length() - 1 );
+ MatrixEditor510.Attributes( attributes );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bDownload_OnClick.def
new file mode 100644
index 0000000..2f93565
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bDownload_OnClick.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/bDownload
+Response OnClick () id:Response_PanelRibbon322_88_bDownload_OnClick
+{
+ #keys: '[412672.1.98988449]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ flag := true;
+ feedback := "";
+ if( isnull( dhXMLDataListener.Data() )){
+ flag := false;
+ feedback := "褰撳墠鏃犱笅杞芥暟鎹紝鐐瑰嚮瀵煎嚭鍒涘缓涓嬭浇鏁版嵁銆�"
+ }
+ return flag;
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ binaryValue := dhXMLDataListener.Data( ).Export();
+
+ Application.Download( MP_Cell_ScheduleSummary::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() );
+
+ dhXMLDataListener.Data( ).Delete();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bExport_OnClick.def
new file mode 100644
index 0000000..71cef3e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_bExport_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/bExport
+Response OnClick () id:Response_PanelRibbon322_88_bExport_OnClick
+{
+ #keys: '[412672.1.99120483]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ rows := selectset( dhComparisonData854.Data(),LocalRow,row,exists( dhFinelEntity.Data(),Elements,entity,entity.DisplayName() = row.Name() ));
+ columns := selectset( dhComparisonData854.Data(),LocalColumn,column,dhStartDate.Data() <= column.Date() and dhEndDate.Data() > column.Date() );
+ LocalCell_ScheduleSummary::AsyncExport( RecycleBin,rows,columns );
+ //Application.Download( "浜у嚭瀵煎叆妯℃澘.xlsx",data.AsBinaryData() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbCapacity_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbCapacity_OnUserChanged.def
new file mode 100644
index 0000000..1bbb86b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbCapacity_OnUserChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/cbCapacity
+Response OnUserChanged () id:Response_PanelRibbon322_88_cbCapacity_OnUserChanged
+{
+ #keys: '[412672.1.98957932]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ FormScheduleSummaryReport.SetAttributes();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbOutput_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbOutput_OnUserChanged.def
new file mode 100644
index 0000000..8d6dcb4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbOutput_OnUserChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/cbOutput
+Response OnUserChanged () id:Response_PanelRibbon322_88_cbOutput_OnUserChanged
+{
+ #keys: '[412672.1.98957943]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ FormScheduleSummaryReport.SetAttributes();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbShiftPlan_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbShiftPlan_OnUserChanged.def
new file mode 100644
index 0000000..a8885e1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbShiftPlan_OnUserChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/cbShiftPlan
+Response OnUserChanged () id:Response_PanelRibbon322_88_cbShiftPlan_OnUserChanged
+{
+ #keys: '[412672.1.97801802]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ FormScheduleSummaryReport.SetAttributes();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbWorkday_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbWorkday_OnUserChanged.def
new file mode 100644
index 0000000..45abeb1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_cbWorkday_OnUserChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/cbWorkday
+Response OnUserChanged () id:Response_PanelRibbon322_88_cbWorkday_OnUserChanged
+{
+ #keys: '[412672.1.98957921]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ FormScheduleSummaryReport.SetAttributes();
+ *]
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhEndDate_OnCreated\043478.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhEndDate_OnCreated\043478.def"
new file mode 100644
index 0000000..b9729a9
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhEndDate_OnCreated\043478.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/dhEndDate_384
+Response OnCreated () id:Response_PanelFilter_dhEndDate_OnCreated_478
+{
+ #keys: '[412672.1.94150972]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ this.Data( Date::MaxDate() );
+ *]
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhStartDate_OnCreated\04357.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhStartDate_OnCreated\04357.def"
new file mode 100644
index 0000000..f2079d0
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dhStartDate_OnCreated\04357.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/dhStartDate_891
+Response OnCreated () id:Response_PanelFilter_dhStartDate_OnCreated_57
+{
+ #keys: '[412672.1.94150930]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ this.Data( Date::MinDate() );
+ *]
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsEndDate_OnChanged\043273.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsEndDate_OnChanged\043273.def"
new file mode 100644
index 0000000..e8b911a
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsEndDate_OnChanged\043273.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/dsEndDate_963
+Response OnChanged () id:Response_PanelFilter_dsEndDate_OnChanged_273
+{
+ #keys: '[412672.1.94150951]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ dhEndDate.Data( this.Date() );
+ *]
+ }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsStartDate_OnChanged\043298.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsStartDate_OnChanged\043298.def"
new file mode 100644
index 0000000..b1b47ea
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon322_88_dsStartDate_OnChanged\043298.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelRibbon322_88/dsStartDate_438
+Response OnChanged () id:Response_PanelFilter_dsStartDate_OnChanged_298
+{
+ #keys: '[412672.1.94150909]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ dhStartDate.Data( this.Date() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon820_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon820_OnClick.def
new file mode 100644
index 0000000..7b630bf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon820_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/ButtonRibbon820
+Response OnClick () id:Response_PanelRibbon504_ButtonRibbon820_OnClick
+{
+ #keys: '[412672.1.97441221]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ macroPlans := ApplicationMacroPlanner.GetMacroPlans();
+ table := MP_Cell_ScheduleSummary::CreateFullTable( macroPlans,RecycleBin ,Archive);
+
+ dhComparisonData854.Data( table );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon_OnClick.def
new file mode 100644
index 0000000..440221e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_ButtonRibbon_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/ButtonRibbon
+Response OnClick () id:Response_PanelRibbon504_ButtonRibbon_OnClick
+{
+ #keys: '[412672.1.94151032]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ table := MP_Cell_ScheduleSummary::Create( MacroPlan );
+
+ dhComparisonData.Data( table );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bExportTemplate_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bExportTemplate_OnClick.def
new file mode 100644
index 0000000..c661ea7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bExportTemplate_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/bExportTemplate
+Response OnClick () id:Response_PanelRibbon504_bExportTemplate_OnClick
+{
+ #keys: '[412672.1.94122418]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ data := MP_Cell_ScheduleSummary::ExportOutputTemplate( [Number]npYear.Number() );
+
+ Application.Download( "浜у嚭瀵煎叆妯℃澘.xlsx",data.AsBinaryData() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bImportOutput_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bImportOutput_OnClick.def
new file mode 100644
index 0000000..6c9ac52
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_bImportOutput_OnClick.def
@@ -0,0 +1,43 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/bImportOutput
+Response OnClick () id:Response_PanelRibbon504_bImportOutput_OnClick
+{
+ #keys: '[412672.1.96362099]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ try {
+ uploadJsonString := Application.GetFile();
+ if ( uploadJsonString <> "" ) {
+ uploadJson := JSON::Parse( uploadJsonString );
+ Archive::VerifyTheFileName( uploadJson );
+
+ fileName := uploadJson.Get( "name" ).GetString();
+ base64String := uploadJson.Get( "data" ).GetString();
+
+ webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
+
+ generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
+ generalExcelImportAndExportDataSource.ReadStructure();
+
+ MP_Cell_ScheduleSummary::ImportOutput( Archive,generalExcelImportAndExportDataSource);
+
+ // 鍚庣画鍒犻櫎
+ generalExcelImportAndExportDataSource.Delete();
+
+ WebMessageBox::Success( Translations::A_VWED_Success() );
+ }
+ } onerror {
+ WebMessageBox::Error( e.GeneralInformation() );
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_npYear_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_npYear_OnCreated.def
new file mode 100644
index 0000000..82c8067
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelRibbon504_npYear_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: PanelRibbon504/npYear
+Response OnCreated () id:Response_PanelRibbon504_npYear_OnCreated
+{
+ #keys: '[412672.1.97870619]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ date := Date::ActualDate();
+ this.Number( date.Year() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhCheckedEntity_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhCheckedEntity_OnDataChanged.def
new file mode 100644
index 0000000..0cceac0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhCheckedEntity_OnDataChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelScheduleSummary/dhCheckedEntity
+Response OnDataChanged () id:Response_PanelScheduleSummary_dhCheckedEntity_OnDataChanged
+{
+ #keys: '[412672.1.94121856]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ if( this.Data().Size() <> 0 ){
+ dhFinelEntity.Data( this.Data().Copy() );
+ }else{
+ dhFinelEntity.Data( DataHolderEntities.Data().Copy() );
+ }
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnCreated.def
new file mode 100644
index 0000000..3593bf5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnCreated.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: PanelScheduleSummary/dhComparisonData854
+Response OnCreated () id:Response_PanelScheduleSummary_dhComparisonData854_OnCreated
+{
+ #keys: '[412672.1.96380911]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnDataChanged.def
new file mode 100644
index 0000000..dc19aac
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData854_OnDataChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelScheduleSummary/dhComparisonData854
+Response OnDataChanged () id:Response_PanelScheduleSummary_dhComparisonData854_OnDataChanged
+{
+ #keys: '[412672.1.96380912]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ // PanelScheduleSummary.Title( this.Data().Name() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnCreated.def
new file mode 100644
index 0000000..08961a7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnCreated.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelScheduleSummary/dhComparisonData
+Response OnCreated () id:Response_PanelScheduleSummary_dhComparisonData_OnCreated
+{
+ #keys: '[412672.1.96303222]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ table := select( MacroPlan,MP_Table,table,table.Name() = MP_Cell_ScheduleSummary::GetTableName() );
+
+ dhComparisonData.Data( table );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnDataChanged.def
new file mode 100644
index 0000000..6b2b502
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhComparisonData_OnDataChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelScheduleSummary/dhComparisonData
+Response OnDataChanged () id:Response_PanelScheduleSummary_dhComparisonData_OnDataChanged
+{
+ #keys: '[412672.1.94121857]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ PanelScheduleSummary.Title( this.Data().Name() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhFinelEntity_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhFinelEntity_OnCreated.def
new file mode 100644
index 0000000..fac3111
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/Response_PanelScheduleSummary_dhFinelEntity_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelScheduleSummary/dhFinelEntity
+Response OnCreated () id:Response_PanelScheduleSummary_dhFinelEntity_OnCreated
+{
+ #keys: '[412672.1.94121855]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ this.Data( DataHolderEntities.Data().Copy() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def
new file mode 100644
index 0000000..35abd2f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScheduleSummaryReport/_ROOT_Component_FormScheduleSummaryReport.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormScheduleSummaryReport
+{
+ #keys: '[412672.1.94121778]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelRibbon
+ #child: PanelScheduleSummary
+ ]
+ Properties:
+ [
+ Description: '璁″垝姹囨�绘姤琛� '
+ Image: 'DOCUMENT_CUP'
+ Title: '璁″垝姹囨�绘姤琛� '
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbComprehensiveHours_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbComprehensiveHours_OnUserChanged.def
index bd4fd00..7f3145b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbComprehensiveHours_OnUserChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbComprehensiveHours_OnUserChanged.def
@@ -12,9 +12,9 @@
[*
cbStandardHours.Checked( not this.Checked() );
if( this.Checked() ){
- PackagingPlanLotSizeDialog.Title( "缁煎悎宸ユ椂鍒舵姤琛�" );
+ FormComprehensiveStandardHoursReport.Title( "缁煎悎宸ユ椂鍒舵姤琛�" );
}else{
- PackagingPlanLotSizeDialog.Title( "鏍囧噯宸ユ椂鍒舵姤琛�" );
+ FormComprehensiveStandardHoursReport.Title( "鏍囧噯宸ユ椂鍒舵姤琛�" );
}
*]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbStandardHours_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbStandardHours_OnUserChanged.def
index d5737ab..c65fbd7 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbStandardHours_OnUserChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_cbStandardHours_OnUserChanged.def
@@ -13,9 +13,9 @@
cbComprehensiveHours.Checked( not this.Checked() );
if( this.Checked() ){
- PackagingPlanLotSizeDialog.Title( "鏍囧噯宸ユ椂鍒舵姤琛�" );
+ FormComprehensiveStandardHoursReport.Title( "鏍囧噯宸ユ椂鍒舵姤琛�" );
}else{
- PackagingPlanLotSizeDialog.Title( "缁煎悎宸ユ椂鍒舵姤琛�" );
+ FormComprehensiveStandardHoursReport.Title( "缁煎悎宸ユ椂鍒舵姤琛�" );
}
*]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_PackagingPlanLotSizeDialog.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_FormComprehensiveStandardHoursReport.def
similarity index 79%
rename from _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_PackagingPlanLotSizeDialog.def
rename to _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_FormComprehensiveStandardHoursReport.def
index 2bb41dd..5a8f45a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_PackagingPlanLotSizeDialog.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/_ROOT_Component_FormComprehensiveStandardHoursReport.def
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
-OrphanComponent PackagingPlanLotSizeDialog
+OrphanComponent FormComprehensiveStandardHoursReport
{
#keys: '[412672.1.33151116]'
BaseType: 'WebForm'
diff --git a/_Main/UI/MacroPlannerWebApp/Views/ComprehensiveStandardHoursReport.vw b/_Main/UI/MacroPlannerWebApp/Views/ComprehensiveStandardHoursReport.vw
index 97583b3..bd4c43d 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/ComprehensiveStandardHoursReport.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/ComprehensiveStandardHoursReport.vw
@@ -2,6 +2,195 @@
{
viewcontents
{
+ forms
+ {
+ form_FormComprehensiveStandardHoursReport
+ {
+ title: 'QMacroPlanner::FormComprehensiveStandardHoursReport'
+ shown: true
+ componentID: 'QMacroPlanner::FormComprehensiveStandardHoursReport'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 17
+ columnPosition: 1
+ columnSpan: 11
+ }
+ components
+ {
+ FormComprehensiveStandardHoursReport_pMain
+ {
+ sizeRatio: 1
+ }
+ FormComprehensiveStandardHoursReport_pOperaction
+ {
+ sizeRatio: 1
+ }
+ FormComprehensiveStandardHoursReport_Panel743
+ {
+ sizeRatio: 1
+ }
+ FormComprehensiveStandardHoursReport_MatrixEditor859
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QMacroPlanner::FormComprehensiveStandardHoursReport.MatrixEditor859'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_RealValue
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'RealValue'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: "datamember:'Index'"
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'Index'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: 'Description'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
page: ''
group: ''
index: 0
diff --git a/_Main/UI/MacroPlannerWebApp/Views/ScheduleSummaryReport.vw b/_Main/UI/MacroPlannerWebApp/Views/ScheduleSummaryReport.vw
new file mode 100644
index 0000000..38aac6f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/ScheduleSummaryReport.vw
@@ -0,0 +1,234 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_FormScheduleSummaryReport
+ {
+ title: 'QMacroPlanner::FormScheduleSummaryReport'
+ shown: true
+ componentID: 'QMacroPlanner::FormScheduleSummaryReport'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 15
+ columnPosition: 1
+ columnSpan: 10
+ }
+ components
+ {
+ FormScheduleSummaryReport_PanelRibbon
+ {
+ sizeRatio: 1
+ }
+ FormScheduleSummaryReport_PanelRibbon322
+ {
+ sizeRatio: 1
+ }
+ FormScheduleSummaryReport_PanelRibbon504
+ {
+ sizeRatio: 1
+ }
+ FormScheduleSummaryReport_PanelScheduleSummary
+ {
+ sizeRatio: 1
+ }
+ FormScheduleSummaryReport_MatrixEditor
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QMacroPlanner::FormScheduleSummaryReport.MatrixEditor'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_ShiftPlan
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'ShiftPlan'
+ }
+ attribute_WorkingDay
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 1
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'WorkingDay'
+ }
+ attribute_Capacity
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 2
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'Capacity'
+ }
+ attribute_Output
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 3
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'Output'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: "datamember:'Index'"
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'Index'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: 'Description'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ CarCo_KPISetting: 'Blending'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ image: 'DOCUMENT_CUP'
+ page: ''
+ group: ''
+ index: 0
+ description: ''
+ }
+ formatversion: 2
+ id: 'ScheduleSummaryReport'
+ name: 'ScheduleSummaryReport'
+ isglobal: false
+ isroot: true
+}
--
Gitblit v1.9.3