From 7d86bfa866dd2d83b27cd45c9d6dd791bf6abe7d Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 21 六月 2024 15:26:07 +0800
Subject: [PATCH] 财务产量数据结构和少部分前端

---
 _Main/BL/Type_Feedback/_ROOT_Type_Feedback.qbl                                                                                                       |    6 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def                                     |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def                                |   18 
 _Main/BL/Type_FinancialProductionColumn/Attribute_Index.qbl                                                                                          |    7 
 _Main/BL/Type_FinancialProductionSource/DefaultValue_UploadUser.qbl                                                                                  |    6 
 _Main/BL/Type_FinancialProductionSource/Attribute_IsXLSX.qbl                                                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def                                                        |   24 +
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def |   38 +
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportTable.def                                |   10 
 _Main/BL/Type_FinancialProductionReport/Attribute_ID.qbl                                                                                             |    8 
 _Main/BL/Type_FinancialProductionRow/Attribute_Name.qbl                                                                                              |    7 
 _Main/BL/Relations/Relation_FinancialProductionColumn_FinancialProductionCell_FinancialProducti.qbl                                                  |   26 +
 _Main/BL/Type_FinancialProductionSource/DefaultValue_Name.qbl                                                                                        |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def                                                         |   24 +
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def                               |   15 
 _Main/UI/MacroPlannerWebApp/Views/Financial_production_report_view.vw                                                                                |   75 +++
 _Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionColumn_FinancialProduc.qbl                                                  |   26 +
 _Main/BL/Relations/Relation_FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSo.qbl                                                  |   23 +
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/_ROOT_XML_FinancialProductionReportXML.qbl                                  |    8 
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_cell.qbl                                                      |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def                                    |   23 +
 _Main/BL/Type_FinancialProductionRow/_ROOT_Type_FinancialProductionRow.qbl                                                                           |   10 
 _Main/BL/Type_FinancialProductionSource/Method_ReadStructure.qbl                                                                                     |   26 +
 _Main/BL/Type_FinancialProductionSource/_ROOT_Type_FinancialProductionSource.qbl                                                                     |   10 
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_Key.qbl                                                 |    7 
 _Main/BL/Type_FinancialProductionSource/Attribute_FileBinaryValue.qbl                                                                                |    7 
 _Main/BL/Type_FinancialProductionRow/Attribute_RowNr.qbl                                                                                             |    7 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def                                                     |   24 +
 _Main/BL/Type_FinancialProductionReport/Attribute_IsImport.qbl                                                                                       |    7 
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_column.qbl                                             |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def                                    |   22 +
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def |   22 +
 _Main/BL/Type_FinancialProductionSource/Attribute_Name.qbl                                                                                           |    7 
 _Main/BL/Type_FinancialProductionSource/DefaultValue_UploadDateTime.qbl                                                                              |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def                               |   20 +
 _Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionRow_FinancialProductio.qbl                                                  |   23 +
 _Main/BL/Type_FinancialProductionReport/Method_SyncRows.qbl                                                                                          |   39 +
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_QuintiqType.qbl                                         |    7 
 _Main/BL/Type_FinancialProductionCell/_ROOT_Type_FinancialProductionCell.qbl                                                                         |   10 
 _Main/BL/Type_FinancialProductionColumn/Attribute_Name.qbl                                                                                           |    7 
 _Main/BL/Type_FinancialProductionColumn/Attribute_Period.qbl                                                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def                                            |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def                            |   46 ++
 _Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl                                                                                    |   47 ++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def                                                      |   15 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def                                      |   23 +
 _Main/BL/Type_FinancialProductionCell/Attribute_Value.qbl                                                                                            |    7 
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_column.qbl                                                    |   27 +
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/_ROOT_XML_FinancialProductionReportXMLHeaders.qbl                    |    8 
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_table.qbl                                                     |   27 +
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def                                                    |   24 +
 _Main/BL/Type_FinancialProductionSource/StaticMethod_Upload.qbl                                                                                      |   21 +
 _Main/BL/Relations/Relation_FinancialProductionRow_FinancialProductionCell_FinancialProductionC.qbl                                                  |   23 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def                                           |    2 
 _Main/BL/Type_FinancialProductionSource/Attribute_UploadDateTime.qbl                                                                                 |    7 
 _Main/BL/Type_FinancialProductionSource/StaticMethod_DownloadTemplate.qbl                                                                            |   40 ++
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_QuintiqType.qbl                                                |    7 
 _Main/BL/Type_FinancialProductionSource/Attribute_UploadUser.qbl                                                                                     |    7 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_O.def       |   16 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def                                                          |   25 +
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def                            |   23 +
 _Main/BL/Relations/Relation_FinancialProductionSource_FinancialProductionReport_FinancialProduc.qbl                                                  |   23 +
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_table.qbl                                              |   27 +
 _Main/BL/Type_FinancialProductionColumn/_ROOT_Type_FinancialProductionColumn.qbl                                                                     |   10 
 _Main/BL/Type_FinancialProductionReport/Attribute_Name.qbl                                                                                           |    8 
 _Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_Key.qbl                                                        |    7 
 _Main/BL/Type_FinancialProductionReport/_ROOT_Type_FinancialProductionReport.qbl                                                                     |   10 
 _Main/BL/Type_FinancialProductionColumn/Function_CalcIndex.qbl                                                                                       |   13 
 _Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def                                                        |   24 +
 69 files changed, 1,177 insertions(+), 2 deletions(-)

diff --git a/_Main/BL/Relations/Relation_FinancialProductionColumn_FinancialProductionCell_FinancialProducti.qbl b/_Main/BL/Relations/Relation_FinancialProductionColumn_FinancialProductionCell_FinancialProducti.qbl
new file mode 100644
index 0000000..854fb3d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialProductionColumn_FinancialProductionCell_FinancialProducti.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialProductionColumn_FinancialProductionCell_FinancialProductionCell_FinancialProductionColumn
+{
+  #keys: '1[415136.0.834715204]'
+  ProceduralSequenceRelationStrategy
+  {
+    #keys: '13[0.0.0][415136.0.834715223][415136.0.834715217][415136.0.834715224][415136.0.834715218][415136.0.834715225][415136.0.834715219][415136.0.834715226][415136.0.834715220][415136.0.834715227][415136.0.834715221][415136.0.834715228][415136.0.834715222]'
+    SequenceElementSuffix: 'CellInColumn'
+    SequenceSuffix: 'CellInColumn'
+  }
+  RelationSide.LeftSide FinancialProductionCell
+  {
+    #keys: '3[415136.0.834715206][415136.0.834715205][415136.0.834715207]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialProductionColumn
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialProductionColumn
+  {
+    #keys: '3[415136.0.834715209][415136.0.834715208][415136.0.834715210]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialProductionCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionColumn_FinancialProduc.qbl b/_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionColumn_FinancialProduc.qbl
new file mode 100644
index 0000000..9c3803f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionColumn_FinancialProduc.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialProductionReport_FinancialProductionColumn_FinancialProductionColumn_FinancialProductionReport
+{
+  #keys: '1[415136.0.834715133]'
+  ProceduralSequenceRelationStrategy
+  {
+    #keys: '13[0.0.0][415136.0.834715155][415136.0.834715149][415136.0.834715156][415136.0.834715150][415136.0.834715157][415136.0.834715151][415136.0.834715158][415136.0.834715152][415136.0.834715159][415136.0.834715153][415136.0.834715160][415136.0.834715154]'
+    SequenceElementSuffix: 'Column'
+    SequenceSuffix: 'Column'
+  }
+  RelationSide.LeftSide FinancialProductionColumn
+  {
+    #keys: '3[415136.0.834715135][415136.0.834715134][415136.0.834715136]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialProductionReport
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialProductionReport
+  {
+    #keys: '3[415136.0.834715138][415136.0.834715137][415136.0.834715139]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialProductionColumn
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionRow_FinancialProductio.qbl b/_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionRow_FinancialProductio.qbl
new file mode 100644
index 0000000..1a65dd4
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialProductionReport_FinancialProductionRow_FinancialProductio.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialProductionReport_FinancialProductionRow_FinancialProductionRow_FinancialProductionReport
+{
+  #keys: '1[415136.0.834715120]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide FinancialProductionRow
+  {
+    #keys: '3[415136.0.834715122][415136.0.834715121][415136.0.834715123]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialProductionReport
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialProductionReport
+  {
+    #keys: '3[415136.0.834715125][415136.0.834715124][415136.0.834715126]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialProductionRow
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialProductionRow_FinancialProductionCell_FinancialProductionC.qbl b/_Main/BL/Relations/Relation_FinancialProductionRow_FinancialProductionCell_FinancialProductionC.qbl
new file mode 100644
index 0000000..5ab5973
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialProductionRow_FinancialProductionCell_FinancialProductionC.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialProductionRow_FinancialProductionCell_FinancialProductionCell_FinancialProductionRow
+{
+  #keys: '1[415136.0.834715244]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide FinancialProductionCell
+  {
+    #keys: '3[415136.0.834715246][415136.0.834715245][415136.0.834715247]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialProductionRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide FinancialProductionRow
+  {
+    #keys: '3[415136.0.834715249][415136.0.834715248][415136.0.834715250]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialProductionCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialProductionSource_FinancialProductionReport_FinancialProduc.qbl b/_Main/BL/Relations/Relation_FinancialProductionSource_FinancialProductionReport_FinancialProduc.qbl
new file mode 100644
index 0000000..faba766
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialProductionSource_FinancialProductionReport_FinancialProduc.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialProductionSource_FinancialProductionReport_FinancialProductionReport_FinancialProductionSource
+{
+  #keys: '1[415136.0.833840404]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide FinancialProductionReport
+  {
+    #keys: '3[415136.0.833840406][415136.0.833840405][415136.0.833840407]'
+    Cardinality: '1toN'
+    ObjectDefinition: FinancialProductionSource
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide FinancialProductionSource
+  {
+    #keys: '3[415136.0.833840409][415136.0.833840408][415136.0.833840410]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialProductionReport
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSo.qbl b/_Main/BL/Relations/Relation_FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSo.qbl
new file mode 100644
index 0000000..3708e6b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSo.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation FinancialProductionSource_MacroPlan_MacroPlan_FinancialProductionSource
+{
+  #keys: '1[415136.0.834715355]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[415136.0.834715357][415136.0.834715356][415136.0.834715358]'
+    Cardinality: '0to1'
+    ObjectDefinition: FinancialProductionSource
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide FinancialProductionSource
+  {
+    #keys: '3[415136.0.834715360][415136.0.834715359][415136.0.834715361]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_Feedback/_ROOT_Type_Feedback.qbl b/_Main/BL/Type_Feedback/_ROOT_Type_Feedback.qbl
new file mode 100644
index 0000000..c7e5aea
--- /dev/null
+++ b/_Main/BL/Type_Feedback/_ROOT_Type_Feedback.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Feedback #extension
+{
+}
diff --git a/_Main/BL/Type_FinancialProductionCell/Attribute_Value.qbl b/_Main/BL/Type_FinancialProductionCell/Attribute_Value.qbl
new file mode 100644
index 0000000..2c929d9
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionCell/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+  #keys: '3[415136.0.834715167][415136.0.834715166][415136.0.834715168]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionCell/_ROOT_Type_FinancialProductionCell.qbl b/_Main/BL/Type_FinancialProductionCell/_ROOT_Type_FinancialProductionCell.qbl
new file mode 100644
index 0000000..e744c58
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionCell/_ROOT_Type_FinancialProductionCell.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialProductionCell
+{
+  #keys: '5[415136.0.834715104][415136.0.834715102][0.0.0][415136.0.834715103][415136.0.834715105]'
+  BaseType: Object
+  Description: '璐㈠姟浜ч噺鎶ヨ〃鍗曞厓鏍�'
+  StructuredName: 'FinancialProductionCells'
+}
diff --git a/_Main/BL/Type_FinancialProductionColumn/Attribute_Index.qbl b/_Main/BL/Type_FinancialProductionColumn/Attribute_Index.qbl
new file mode 100644
index 0000000..d5412ea
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionColumn/Attribute_Index.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Index
+{
+  #keys: '3[415136.0.834715088][415136.0.834715087][415136.0.834715089]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_FinancialProductionColumn/Attribute_Name.qbl b/_Main/BL/Type_FinancialProductionColumn/Attribute_Name.qbl
new file mode 100644
index 0000000..49515c7
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionColumn/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.834715282][415136.0.834715281][415136.0.834715283]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionColumn/Attribute_Period.qbl b/_Main/BL/Type_FinancialProductionColumn/Attribute_Period.qbl
new file mode 100644
index 0000000..63abfa2
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionColumn/Attribute_Period.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Period
+{
+  #keys: '3[415136.0.834715078][415136.0.834715077][415136.0.834715079]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_FinancialProductionColumn/Function_CalcIndex.qbl b/_Main/BL/Type_FinancialProductionColumn/Function_CalcIndex.qbl
new file mode 100644
index 0000000..56bbf20
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionColumn/Function_CalcIndex.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcIndex
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-21-2024 (created)
+    
+    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 );
+    
+    this.Index( value );
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionColumn/_ROOT_Type_FinancialProductionColumn.qbl b/_Main/BL/Type_FinancialProductionColumn/_ROOT_Type_FinancialProductionColumn.qbl
new file mode 100644
index 0000000..512c40f
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionColumn/_ROOT_Type_FinancialProductionColumn.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialProductionColumn
+{
+  #keys: '5[415136.0.834715074][415136.0.834715072][0.0.0][415136.0.834715073][415136.0.834715075]'
+  BaseType: Object
+  Description: '璐㈠姟浜ч噺鍒�'
+  StructuredName: 'FinancialProductionColumns'
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/Attribute_ID.qbl b/_Main/BL/Type_FinancialProductionReport/Attribute_ID.qbl
new file mode 100644
index 0000000..8822a7c
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[415136.0.834715053][415136.0.834715052][415136.0.834715054]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/Attribute_IsImport.qbl b/_Main/BL/Type_FinancialProductionReport/Attribute_IsImport.qbl
new file mode 100644
index 0000000..c8eb836
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/Attribute_IsImport.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsImport
+{
+  #keys: '3[415136.0.834715063][415136.0.834715062][415136.0.834715064]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/Attribute_Name.qbl b/_Main/BL/Type_FinancialProductionReport/Attribute_Name.qbl
new file mode 100644
index 0000000..be6b0eb
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.834715043][415136.0.834715042][415136.0.834715044]'
+  Description: '鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/Method_SyncRows.qbl b/_Main/BL/Type_FinancialProductionReport/Method_SyncRows.qbl
new file mode 100644
index 0000000..fb4bb8b
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/Method_SyncRows.qbl
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#parent: #root
+Method SyncRows
+{
+  TextBody:
+  [*
+    totalRows := 0;
+    totalColumns := this.FinancialProductionColumn( relsize );
+    
+    if ( totalColumns > 0 ) {
+      randomCol := select( this, FinancialProductionColumn, tempFPC, true );
+      totalRows := randomCol.FinancialProductionCell( relsize );
+      
+      this.FinancialProductionRow( relflush );
+      
+      cells := construct( FinancialProductionCells );
+      traverse ( this, FinancialProductionColumn, fpc ) {
+        cells.Add( fpc.FirstCellInColumn() );
+      }
+      
+      for ( i := 0; i < totalRows; i++ ) {
+        assert( selectvalues( cells, Elements, c, true, c.FinancialProductionColumn().Index() ).ToString( "" ) = 
+                selectvalues( selectsortedset( cells, Elements, c, true, c.FinancialProductionColumn().Index() ), Elements, c, true, c.FinancialProductionColumn().Index() ).ToString( "" ),
+                "Assertion error in FrockDataTable::syncRows: Cells not sorted by column index" );
+        row := this.FinancialProductionRow( relnew, RowNr := i );
+        
+        newCells := construct( FinancialProductionCells );
+        
+        traverse ( cells, Elements, c ) {
+          row.FinancialProductionCell( relinsert, c );
+          
+          newCells.Add( c.NextCellInColumn() );
+        }
+        
+        cells := &newCells;
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_Key.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_Key.qbl
new file mode 100644
index 0000000..4f408a0
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_Key.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLAddressType { }
+  XMLID Key { }
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_QuintiqType.qbl
new file mode 100644
index 0000000..7468757
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLElementId_QuintiqType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLID QuintiqType { }
+  XMLQualifierType { }
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_cell.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_cell.qbl
new file mode 100644
index 0000000..9211937
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_cell.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: FinancialProductionCell
+  XMLID cell { }
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Value
+      XMLID value { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_column.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_column.qbl
new file mode 100644
index 0000000..5c07ac7
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_column.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: FinancialProductionColumn
+  XMLID column { }
+  Aggregates:
+  [
+    XMLAggregate
+    {
+      ElementDefinition: cell
+      GenerateOutput: false
+      Relation: FinancialProductionCell
+      XMLID FinancialProductionCell { }
+    }
+  ]
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_table.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_table.qbl
new file mode 100644
index 0000000..19c27cc
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/XMLObjectBase_table.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: FinancialProductionReport
+  XMLID table { }
+  Aggregates:
+  [
+    XMLAggregate
+    {
+      ElementDefinition: column
+      GenerateOutput: false
+      Relation: FinancialProductionColumn
+      XMLID FinancialProductionColumn { }
+    }
+  ]
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/_ROOT_XML_FinancialProductionReportXML.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/_ROOT_XML_FinancialProductionReportXML.qbl
new file mode 100644
index 0000000..b473540
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXML/_ROOT_XML_FinancialProductionReportXML.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#root
+#parent: #root
+XML FinancialProductionReportXML
+{
+  Direction: 'ImportExport'
+  Root: table
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_Key.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_Key.qbl
new file mode 100644
index 0000000..4f408a0
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_Key.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLAddressType { }
+  XMLID Key { }
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_QuintiqType.qbl
new file mode 100644
index 0000000..7468757
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLElementId_QuintiqType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLID QuintiqType { }
+  XMLQualifierType { }
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_column.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_column.qbl
new file mode 100644
index 0000000..8e3c600
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_column.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: FinancialProductionColumn
+  XMLID column { }
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_table.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_table.qbl
new file mode 100644
index 0000000..19c27cc
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/XMLObjectBase_table.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: FinancialProductionReport
+  XMLID table { }
+  Aggregates:
+  [
+    XMLAggregate
+    {
+      ElementDefinition: column
+      GenerateOutput: false
+      Relation: FinancialProductionColumn
+      XMLID FinancialProductionColumn { }
+    }
+  ]
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/_ROOT_XML_FinancialProductionReportXMLHeaders.qbl b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/_ROOT_XML_FinancialProductionReportXMLHeaders.qbl
new file mode 100644
index 0000000..f925fee
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/XML_FinancialProductionReportXMLHeaders/_ROOT_XML_FinancialProductionReportXMLHeaders.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#root
+#parent: #root
+XML FinancialProductionReportXMLHeaders
+{
+  Direction: 'ImportExport'
+  Root: table
+}
diff --git a/_Main/BL/Type_FinancialProductionReport/_ROOT_Type_FinancialProductionReport.qbl b/_Main/BL/Type_FinancialProductionReport/_ROOT_Type_FinancialProductionReport.qbl
new file mode 100644
index 0000000..161f736
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionReport/_ROOT_Type_FinancialProductionReport.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialProductionReport
+{
+  #keys: '5[415136.0.834715039][415136.0.834715037][0.0.0][415136.0.834715038][415136.0.834715040]'
+  BaseType: Object
+  Description: '璐㈠姟浜ч噺鎶ヨ〃'
+  StructuredName: 'FinancialProductionReports'
+}
diff --git a/_Main/BL/Type_FinancialProductionRow/Attribute_Name.qbl b/_Main/BL/Type_FinancialProductionRow/Attribute_Name.qbl
new file mode 100644
index 0000000..4b1cfbc
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionRow/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.834715259][415136.0.834715258][415136.0.834715260]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionRow/Attribute_RowNr.qbl b/_Main/BL/Type_FinancialProductionRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..89743f1
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+  #keys: '3[415136.0.834200012][415136.0.834200011][415136.0.834200013]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_FinancialProductionRow/_ROOT_Type_FinancialProductionRow.qbl b/_Main/BL/Type_FinancialProductionRow/_ROOT_Type_FinancialProductionRow.qbl
new file mode 100644
index 0000000..8e7dddc
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionRow/_ROOT_Type_FinancialProductionRow.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialProductionRow
+{
+  #keys: '5[415136.0.834715099][415136.0.834715097][0.0.0][415136.0.834715098][415136.0.834715100]'
+  BaseType: Object
+  Description: '璐㈠姟浜ч噺琛�'
+  StructuredName: 'FinancialProductionRows'
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/Attribute_FileBinaryValue.qbl b/_Main/BL/Type_FinancialProductionSource/Attribute_FileBinaryValue.qbl
new file mode 100644
index 0000000..a11347e
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/Attribute_FileBinaryValue.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute FileBinaryValue
+{
+  #keys: '3[415136.0.833840427][415136.0.833840426][415136.0.833840428]'
+  ValueType: BinaryValue
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/Attribute_IsXLSX.qbl b/_Main/BL/Type_FinancialProductionSource/Attribute_IsXLSX.qbl
new file mode 100644
index 0000000..e0649ba
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/Attribute_IsXLSX.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsXLSX
+{
+  #keys: '3[415136.0.833840418][415136.0.833840417][415136.0.833840419]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/Attribute_Name.qbl b/_Main/BL/Type_FinancialProductionSource/Attribute_Name.qbl
new file mode 100644
index 0000000..6ec84a9
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[415136.0.833840430][415136.0.833840429][415136.0.833840431]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/Attribute_UploadDateTime.qbl b/_Main/BL/Type_FinancialProductionSource/Attribute_UploadDateTime.qbl
new file mode 100644
index 0000000..5e189a8
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/Attribute_UploadDateTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UploadDateTime
+{
+  #keys: '3[415136.0.833840421][415136.0.833840420][415136.0.833840422]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/Attribute_UploadUser.qbl b/_Main/BL/Type_FinancialProductionSource/Attribute_UploadUser.qbl
new file mode 100644
index 0000000..cde8728
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/Attribute_UploadUser.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UploadUser
+{
+  #keys: '3[415136.0.833840424][415136.0.833840423][415136.0.833840425]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/DefaultValue_Name.qbl b/_Main/BL/Type_FinancialProductionSource/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadDateTime.qbl b/_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadDateTime.qbl
new file mode 100644
index 0000000..8dde94e
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadDateTime.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: UploadDateTime
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadUser.qbl b/_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadUser.qbl
new file mode 100644
index 0000000..3dbb1dc
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/DefaultValue_UploadUser.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: UploadUser
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/Method_ReadStructure.qbl b/_Main/BL/Type_FinancialProductionSource/Method_ReadStructure.qbl
new file mode 100644
index 0000000..23e15cb
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/Method_ReadStructure.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+Method ReadStructure
+{
+  TextBody:
+  [*
+    tableGroupHandle := TableGroupHandle::Create( this.Name() );
+    tableGroupHandle := XLS::LoadTableGroupFromBinaryData( this.FileBinaryValue().AsBinaryData(), tableGroupHandle, true, this.IsXLSX() );
+    sheets := tableGroupHandle.TableNames();
+    
+    traverse ( sheets, Elements, sheetName ) {
+      tableHandle := tableGroupHandle.Table( sheetName );
+      tableXML := TableHandle::ExportXML( tableHandle );
+      
+    //  info( tableXML.AsQUILL() );
+      
+      FinancialProductionReport::XMLImportFinancialProductionReportXMLHeaders( tableXML );
+      xlstable := FinancialProductionReport::XMLImportFinancialProductionReportXML( tableXML );
+      
+      xlstable.SyncRows();
+      
+      xlstable.Name( sheetName );
+      this.FinancialProductionReport( relinsert, &xlstable ); 
+    }
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
new file mode 100644
index 0000000..5d56a54
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
@@ -0,0 +1,47 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Download (
+  MacroPlan macroPlan
+) as BinaryValue
+{
+  TextBody:
+  [*
+    table := selectobject( macroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() );
+    
+    xmlDOMI := XMLDOMImplementation::Create();
+    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
+    
+    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+    
+    traverse ( table, FinancialProductionColumn, column ) {
+      columnelement := xmlDOM.CreateElement( "column" );
+      nameelement   := xmlDOM.CreateElement( "name" );
+      typeelement   := xmlDOM.CreateElement( "type" );
+      nameelement.TextContent( column.Name() );
+      typeelement.TextContent( "String" );
+      columnelement.AppendChild( nameelement );
+      columnelement.AppendChild( typeelement );
+      
+      cells := selectsortedset( column, FinancialProductionCell, cell, true, cell.FinancialProductionRow().RowNr() );
+      traverse ( cells, Elements, c ) {
+        cellElement := xmlDOM.CreateElement( "cell" );
+        cellElement.SetAttribute( "value", c.Value() );
+        columnelement.AppendChild( cellElement );
+      }
+      
+      tableElement.AppendChild( columnelement );  
+    }
+    
+    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
+    
+    //info( xmlString );
+    
+    tableGroupHandle := TableGroupHandle::Create( "Financial productions" );
+    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+    tableGroupHandle.Add( tableHandle );
+    
+    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+    
+    return binaryData.AsBinaryValue();
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_DownloadTemplate.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_DownloadTemplate.qbl
new file mode 100644
index 0000000..4e29ea7
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_DownloadTemplate.qbl
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod DownloadTemplate (
+  MacroPlan macroPlan
+) as BinaryValue
+{
+  TextBody:
+  [*
+    xmlDOMI := XMLDOMImplementation::Create();
+    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name><column><name>Product</name><type>String</type></column><column><name>Unit</name><type>String</type></column></table>' );
+    
+    tableElement              := xmlDOM.GetElementByTagName( "table", 0 );
+    
+    startofyear               := macroPlan.StartOfPlanning().StartOfYear();
+    startofnextyear           := macroPlan.StartOfPlanning().StartOfNextYear();
+    
+    for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
+      columnElement := xmlDOM.CreateElement( "column" );
+      nameElement   := xmlDOM.CreateElement( "name" );
+      typeElement   := xmlDOM.CreateElement( "type" );
+      nameElement.TextContent( start.Format( "M2/D2/Y" ) );
+      typeElement.TextContent( "String" );
+      columnElement.AppendChild( nameElement );
+      columnElement.AppendChild( typeElement );
+      tableElement.AppendChild( columnElement );  
+    }
+    
+    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
+    
+    //info( xmlString );
+    
+    tableGroupHandle := TableGroupHandle::Create( "Financial productions" );
+    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+    tableGroupHandle.Add( tableHandle );
+    
+    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+    
+    return binaryData.AsBinaryValue();
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/StaticMethod_Upload.qbl b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Upload.qbl
new file mode 100644
index 0000000..9ffca0d
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/StaticMethod_Upload.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Upload (
+  MacroPlan owner,
+  BinaryValue binaryValue,
+  String filePath
+) as FinancialProductionSource
+{
+  TextBody:
+  [*
+    fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 );
+    
+    source := owner.FinancialProductionSource( relnew, FileBinaryValue := binaryValue,
+                                               Name                    := fileName,
+                                               IsXLSX                  := fileName.EndsWith( "xlsx" ),
+                                               UploadDateTime          := DateTime::ActualTime().Format( "Y-M2-D2 H:m:s" ),
+                                               UploadUser              := guard( QuintiqUser::CurrentUser().Username(), "" ) );
+    
+    return source;
+  *]
+}
diff --git a/_Main/BL/Type_FinancialProductionSource/_ROOT_Type_FinancialProductionSource.qbl b/_Main/BL/Type_FinancialProductionSource/_ROOT_Type_FinancialProductionSource.qbl
new file mode 100644
index 0000000..808d43c
--- /dev/null
+++ b/_Main/BL/Type_FinancialProductionSource/_ROOT_Type_FinancialProductionSource.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type FinancialProductionSource
+{
+  #keys: '5[415136.0.834715352][415136.0.834715350][0.0.0][415136.0.834715351][415136.0.834715353]'
+  BaseType: Object
+  Description: '璐㈠姟浜ч噺鎶ヨ〃'
+  StructuredName: 'FinancialProductionSources'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
new file mode 100644
index 0000000..10df23f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component ActionBarGroupReport
+{
+  #keys: '[415136.0.834352165]'
+  BaseType: 'WebActionBarGroup'
+  Children:
+  [
+    Component ButtonFinancialProductionReport
+    {
+      #keys: '[415136.0.834352212]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'DOCUMENT_REFRESH'
+        Label: 'Financial production report'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def
new file mode 100644
index 0000000..747c7e2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component ActionBarPageReport
+{
+  #keys: '[415136.0.834352164]'
+  BaseType: 'WebActionBarPage'
+  Children:
+  [
+    #child: ActionBarGroupReport
+  ]
+  Properties:
+  [
+    Taborder: 21
+    Title: 'Report'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
index 534bb0b..024119c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
@@ -3,6 +3,6 @@
 {
   Properties:
   [
-    Taborder: 21
+    Taborder: 22
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
index 85ceb93..389ee08 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
@@ -3,6 +3,6 @@
 {
   Properties:
   [
-    Taborder: 22
+    Taborder: 23
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_O.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_O.def
new file mode 100644
index 0000000..3348f76
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_O.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupReport/ButtonFinancialProductionReport
+Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialProductionReport_OnClick
+{
+  #keys: '[415136.0.836061956]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "Financial_production_report_view", true);
+    *]
+    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 576fb69..d05a449 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -18,6 +18,7 @@
         #child: applicationFixedPageActionBarPageDef
         #child: applicationDevelopmentActionBarPageDef_1
         #child: abpAlgorithmPostProcessing
+        #child: ActionBarPageReport
       ]
     }
     Component dhBinaryDataPR id:dhBinaryDataPR_688
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
new file mode 100644
index 0000000..2752b5b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelExport.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelExport
+{
+  #keys: '[415136.0.834352718]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonExport
+    {
+      #keys: '[415136.0.834352737]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'EXPORT1'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def
new file mode 100644
index 0000000..5779852
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportHeader.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelFinancialProductionReportHeader
+{
+  #keys: '[415136.0.834352344]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelFinancialProductionReportSearch
+    #child: PanelFinancialProductionReportOperation
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def
new file mode 100644
index 0000000..7d1a944
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportOperation.def
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component PanelFinancialProductionReportOperation
+{
+  #keys: '[415136.0.834352420]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component LabelFinancialProductionReportOperation
+    {
+      #keys: '[415136.0.834352468]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        NumberOfColumns: 15
+        Taborder: 0
+        Text: 'Production import'
+      ]
+    }
+    Component ButtonProductionImport
+    {
+      #keys: '[415136.0.834352491]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'EXPORT1'
+        Taborder: 1
+      ]
+    }
+    Component ButtonProductionExport
+    {
+      #keys: '[415136.0.834352534]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'IMPORT1'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def
new file mode 100644
index 0000000..9acdc9a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportSearch.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+Component PanelFinancialProductionReportSearch
+{
+  #keys: '[415136.0.834352398]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelUnit
+    #child: PanelGeneration
+    #child: PanelMQBMLB
+    #child: PanelPower
+    #child: PanelExport
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportTable.def
new file mode 100644
index 0000000..19a477e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelFinancialProductionReportTable.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component PanelFinancialProductionReportTable
+{
+  #keys: '[415136.0.834352365]'
+  BaseType: 'WebPanel'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def
new file mode 100644
index 0000000..3161a19
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelGeneration.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelGeneration
+{
+  #keys: '[415136.0.834352628]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddslGeneration
+    {
+      #keys: '[415136.0.834850709]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: 'Generation'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def
new file mode 100644
index 0000000..8bdd3ca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelMQBMLB.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelMQBMLB
+{
+  #keys: '[415136.0.834352657]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddslMQBMLB
+    {
+      #keys: '[415136.0.834850906]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: 'MQB/MLB'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def
new file mode 100644
index 0000000..d027e3a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelPower.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelPower
+{
+  #keys: '[415136.0.834352679]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddslPower
+    {
+      #keys: '[415136.0.834851149]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: 'Power'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def
new file mode 100644
index 0000000..451f699
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelUnit.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component PanelUnit
+{
+  #keys: '[415136.0.834352594]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddslUnit
+    {
+      #keys: '[415136.0.834851281]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: 'Unit'
+        Strings: '<All>;闀挎槬;澶ц繛'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def
new file mode 100644
index 0000000..13d7fd4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_ButtonExport_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelExport/ButtonExport
+Response OnClick () id:Response_PanelExport_ButtonExport_OnClick
+{
+  #keys: '[415136.0.834850599]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      binaryValue := FinancialProductionSource::Download( MacroPlan );
+      
+      Application.Download( "Financial productions.xlsx", binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def
new file mode 100644
index 0000000..176b03b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnCl.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelFinancialProductionReportOperation/ButtonProductionExport
+Response OnClick () id:Response_PanelFinancialProductionReportOperation_ButtonProductionExport_OnClick
+{
+  #keys: '[415136.0.834850519]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      binaryValue := FinancialProductionSource::DownloadTemplate( MacroPlan );
+      
+      Application.Download( "Financial productions.xlsx", binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def
new file mode 100644
index 0000000..03863b1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnCl.def
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: PanelFinancialProductionReportOperation/ButtonProductionImport
+Response OnClick () id:Response_PanelFinancialProductionReportOperation_ButtonProductionImport_OnClick
+{
+  #keys: '[415136.0.836011369]'
+  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();
+          
+          source := FinancialProductionSource::Upload( MacroPlan, webFileBinaryData, fileName );
+          source.ReadStructure();
+          
+          WebMessageBox::Success( Translations::A_VWED_Success() );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def
new file mode 100644
index 0000000..f0a61ca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelGeneration_ddslGeneration_OnCreated.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: PanelGeneration/ddslGeneration
+Response OnCreated () id:Response_PanelGeneration_ddslGeneration_OnCreated
+{
+  #keys: '[415136.0.834850727]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
+      
+      valueString := values.Concatenate( ";" );
+      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
+      
+      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
+      
+      this.Strings( valueString );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def
new file mode 100644
index 0000000..69c8279
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: PanelMQBMLB/ddslMQBMLB
+Response OnCreated () id:Response_PanelMQBMLB_ddslMQBMLB_OnCreated
+{
+  #keys: '[415136.0.834851070]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.MQBMLB() );
+      
+      valueString := values.Concatenate( ";" );
+      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
+      
+      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
+      
+      this.Strings( valueString );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def
new file mode 100644
index 0000000..08abda9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelPower_ddslPower_OnCreated.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: PanelPower/ddslPower
+Response OnCreated () id:Response_PanelPower_ddslPower_OnCreated
+{
+  #keys: '[415136.0.834851166]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Power() );
+      
+      valueString := values.Concatenate( ";" );
+      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
+      
+      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
+      
+      this.Strings( valueString );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def
new file mode 100644
index 0000000..aee99fe
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormFinancialProductionReport
+{
+  #keys: '[415136.0.834352278]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelFinancialProductionReportHeader
+    #child: PanelFinancialProductionReportTable
+  ]
+  Properties:
+  [
+    Image: 'DOCUMENT_REFRESH'
+    Title: 'Financial production report'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Financial_production_report_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Financial_production_report_view.vw
new file mode 100644
index 0000000..520b3cf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Financial_production_report_view.vw
@@ -0,0 +1,75 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormFinancialProductionReport
+      {
+        title: 'QMacroPlanner::FormFinancialProductionReport'
+        shown: true
+        componentID: 'QMacroPlanner::FormFinancialProductionReport'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 15
+          columnPosition: 1
+          columnSpan: 12
+        }
+        components
+        {
+          FormFinancialProductionReport_PanelFinancialProductionReportHeader
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelFinancialProductionReportSearch
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelUnit
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelGeneration
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelMQBMLB
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelPower
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelExport
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelFinancialProductionReportOperation
+          {
+            sizeRatio: 1
+          }
+          FormFinancialProductionReport_PanelFinancialProductionReportTable
+          {
+            sizeRatio: 1
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: ''
+    group: ''
+    index: 16
+    image: 'DOCUMENT_REFRESH'
+    description: ''
+  }
+  formatversion: 2
+  id: 'Financial_production_report_view'
+  name: 'Financial production report view'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3