From 4b5a6cffc6d1b65106c8944c8bf4529073e2c498 Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期日, 19 五月 2024 19:23:03 +0800
Subject: [PATCH] 需求导入前端界面

---
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_efPR_OnUserChanged.def                        |   25 ++
 _Main/BL/InfoMessages.qbl                                                                                                |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_bBudget_OnClick.def                       |   33 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def                                       |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_bPR_OnClick.def                               |   33 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurveEnable_cCurveEnable_OnChanged.def           |   16 +
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def                                         |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_efPPA_OnUserChanged.def                      |   25 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_cPPA_OnCreated.def                           |   16 +
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bIDSTemplateDownload_OnClick.def   |   18 +
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPR.def                                          |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pIDS.def                                         |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_efPP_OnUserChanged.def                        |   25 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_bPP_OnClick.def                               |   33 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAEnable_cPPAEnable_OnChanged.def               |   17 +
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_efBudget_OnUserChanged.def                |   25 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_bCurve_OnClick.def                         |   37 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_bIDS_OnClick.def                             |   33 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bCurveTemplateDownload_OnClick.def |   18 +
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bPPATemplateDownload_OnClick.def   |   18 +
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPP.def                                          |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_efCurve_OnUserChanged.def                  |   25 ++
 _Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl                                                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_efIDS_OnUserChanged.def                      |   25 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_bPPA_OnClick.def                             |   37 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pBudget.def                                      |   20 ++
 26 files changed, 581 insertions(+), 2 deletions(-)

diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 7e07cdc..16b4d4a 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -4,7 +4,7 @@
 {
   InfoMessage A_VWED_GeneralExcelImportAndExportDataSource_UploadError1
   {
-    DefaultText: 'Please upload a file in the format xlsx or xls'
+    DefaultText: 'Please upload a file in the format xlsx'
   }
   InfoMessage A_VWED_GeneralExcelImportAndExportDataSource_UploadError2
   {
diff --git a/_Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl b/_Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl
index b993a9a..1de4dd7 100644
--- a/_Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl
@@ -10,7 +10,7 @@
     
     fileNameSuffix := fileNames.Element( fileNames.Size() - 1 );
     
-    if ( fileNameSuffix <> "xlsx" and fileNameSuffix <> "xls" ) {
+    if ( fileNameSuffix <> "xlsx" ) {
       error( Translations::A_VWED_GeneralExcelImportAndExportDataSource_UploadError1() );
     }
   *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pBudget.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pBudget.def
index 081206b..b531fb8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pBudget.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pBudget.def
@@ -48,6 +48,26 @@
         Taborder: 0
       ]
     }
+    Component dhBinaryDataBudget
+    {
+      #keys: '[413988.0.1186302663]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BinaryData*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
+    Component dhOriginalFileNameBudget
+    {
+      #keys: '[413988.0.1186121268]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 5
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def
index 43cfea7..441e6d1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def
@@ -37,6 +37,26 @@
         Taborder: 0
       ]
     }
+    Component dhBinaryDataCurve
+    {
+      #keys: '[413988.0.1186330961]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BinaryData*'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+    Component dhOriginalFileNameCurve
+    {
+      #keys: '[413988.0.1187151501]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pIDS.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pIDS.def
index 68338a2..88f53dc 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pIDS.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pIDS.def
@@ -37,6 +37,26 @@
         Taborder: 0
       ]
     }
+    Component dhBinaryDataIDS
+    {
+      #keys: '[413988.0.1186390982]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BinaryData*'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+    Component dhOriginalFileNameIDS
+    {
+      #keys: '[413988.0.1187214517]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPP.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPP.def
index fa39264..482f72d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPP.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPP.def
@@ -48,6 +48,26 @@
         Taborder: 0
       ]
     }
+    Component dhBinaryDataPP
+    {
+      #keys: '[413988.0.1186302619]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BinaryData*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
+    Component dhOriginalFileNamePP
+    {
+      #keys: '[413988.0.1186363668]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 5
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def
index 802bc74..942cfb0 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def
@@ -48,6 +48,26 @@
         Taborder: 0
       ]
     }
+    Component dhBinaryDataPPA
+    {
+      #keys: '[413988.0.1186330911]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BinaryData*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
+    Component dhOriginalFileNamePPA
+    {
+      #keys: '[413988.0.1187121752]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 5
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPR.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPR.def
index 49e3f6a..5fc0826 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPR.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPR.def
@@ -48,6 +48,26 @@
         Taborder: 0
       ]
     }
+    Component dhBinaryDataPR
+    {
+      #keys: '[413988.0.1186120299]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'BinaryData*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
+    Component dhOriginalFileNamePR
+    {
+      #keys: '[413988.0.1186971485]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'String*'
+      Properties:
+      [
+        Taborder: 5
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_bBudget_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_bBudget_OnClick.def
new file mode 100644
index 0000000..45dc6f7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_bBudget_OnClick.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: pBudget/bBudget
+Response OnClick () id:Response_pBudget_bBudget_OnClick
+{
+  #keys: '[413988.0.1186730624]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  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 );
+          
+          efBudget.Text( fileName );
+          dhOriginalFileNameBudget.Data( fileName );
+          dhBinaryDataBudget.Data( &webFileBinaryData );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_efBudget_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_efBudget_OnUserChanged.def
new file mode 100644
index 0000000..d1da986
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pBudget_efBudget_OnUserChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pBudget/efBudget
+Response OnUserChanged () id:Response_pBudget_efBudget_OnUserChanged
+{
+  #keys: '[413988.0.1186913945]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      source := this.Text();
+      
+      flag := not this.Text().EndsWith( ".xlsx" );
+      
+      if ( flag ) {
+        WebMessageBox::Warning( "鏂囦欢闇�瑕佷互.xlsx涓哄悗缂�" );
+        this.Text( dhOriginalFileNameBudget.Data() );
+      } else {
+        dhOriginalFileNameBudget.Data( this.Text() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurveEnable_cCurveEnable_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurveEnable_cCurveEnable_OnChanged.def
new file mode 100644
index 0000000..877476b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurveEnable_cCurveEnable_OnChanged.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pCurveEnable/cCurveEnable
+Response OnChanged () id:Response_pCurveEnable_cCurveEnable_OnChanged
+{
+  #keys: '[413988.0.1188750240]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      efCurve.Enabled( this.Checked(), "" );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_bCurve_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_bCurve_OnClick.def
new file mode 100644
index 0000000..d597890
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_bCurve_OnClick.def
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: pCurve/bCurve
+Response OnClick () id:Response_pCurve_bCurve_OnClick
+{
+  #keys: '[413988.0.1186362682]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return cCurveEnable.Checked();
+  *]
+  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 );
+          
+          efCurve.Text( fileName );
+          dhBinaryDataCurve.Data( &webFileBinaryData );
+          dhOriginalFileNameCurve.Data( fileName );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_efCurve_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_efCurve_OnUserChanged.def
new file mode 100644
index 0000000..fab6e30
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_efCurve_OnUserChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pCurve/efCurve
+Response OnUserChanged () id:Response_pCurve_efCurve_OnUserChanged
+{
+  #keys: '[413988.0.1187151551]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      source := this.Text();
+      
+      flag := not this.Text().EndsWith( ".xlsx" );
+      
+      if ( flag ) {
+        WebMessageBox::Warning( "鏂囦欢闇�瑕佷互.xlsx涓哄悗缂�" );
+        this.Text( dhOriginalFileNameCurve.Data() );
+      } else {
+        dhOriginalFileNameCurve.Data( this.Text() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_bIDS_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_bIDS_OnClick.def
new file mode 100644
index 0000000..c442aaa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_bIDS_OnClick.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: pIDS/bIDS
+Response OnClick () id:Response_pIDS_bIDS_OnClick
+{
+  #keys: '[413988.0.1185074879]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  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 );
+          
+          efIDS.Text( fileName );
+          dhBinaryDataIDS.Data( &webFileBinaryData );
+          dhOriginalFileNameIDS.Data( fileName );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_efIDS_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_efIDS_OnUserChanged.def
new file mode 100644
index 0000000..6330dfd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pIDS_efIDS_OnUserChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pIDS/efIDS
+Response OnUserChanged () id:Response_pIDS_efIDS_OnUserChanged
+{
+  #keys: '[413988.0.1187183547]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      source := this.Text();
+      
+      flag := not this.Text().EndsWith( ".xlsx" );
+      
+      if ( flag ) {
+        WebMessageBox::Warning( "鏂囦欢闇�瑕佷互.xlsx涓哄悗缂�" );
+        this.Text( dhOriginalFileNameIDS.Data() );
+      } else {
+        dhOriginalFileNameIDS.Data( this.Text() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAEnable_cPPAEnable_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAEnable_cPPAEnable_OnChanged.def
new file mode 100644
index 0000000..b1f9819
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAEnable_cPPAEnable_OnChanged.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pPPAEnable/cPPAEnable
+Response OnChanged () id:Response_pPPAEnable_cPPAEnable_OnChanged
+{
+  #keys: '[413988.0.1188711785]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      efPPA.Enabled( this.Checked(), "" );
+      cPPA.Enabled( this.Checked(), "" );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_bPPA_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_bPPA_OnClick.def
new file mode 100644
index 0000000..339afee
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_bPPA_OnClick.def
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: pPPA/bPPA
+Response OnClick () id:Response_pPPA_bPPA_OnClick
+{
+  #keys: '[413988.0.1186822434]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return cPPAEnable.Checked();
+  *]
+  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 );
+          
+          efPPA.Text( fileName );
+          dhBinaryDataPPA.Data( &webFileBinaryData );
+          dhOriginalFileNamePPA.Data( fileName );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_cPPA_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_cPPA_OnCreated.def
new file mode 100644
index 0000000..5b53a0b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_cPPA_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pPPA/cPPA
+Response OnCreated () id:Response_pPPA_cPPA_OnCreated
+{
+  #keys: '[413988.0.1190422426]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      this.Enabled( cPPAEnable.Checked(), "" );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_efPPA_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_efPPA_OnUserChanged.def
new file mode 100644
index 0000000..35813d1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_efPPA_OnUserChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pPPA/efPPA
+Response OnUserChanged () id:Response_pPPA_efPPA_OnUserChanged
+{
+  #keys: '[413988.0.1187121790]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      source := this.Text();
+      
+      flag := not this.Text().EndsWith( ".xlsx" );
+      
+      if ( flag ) {
+        WebMessageBox::Warning( "鏂囦欢闇�瑕佷互.xlsx涓哄悗缂�" );
+        this.Text( dhOriginalFileNamePPA.Data() );
+      } else {
+        dhOriginalFileNamePPA.Data( this.Text() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_bPP_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_bPP_OnClick.def
new file mode 100644
index 0000000..d911323
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_bPP_OnClick.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: pPP/bPP
+Response OnClick () id:Response_pPP_bPP_OnClick
+{
+  #keys: '[413988.0.1186700628]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  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 );
+          
+          efPP.Text( fileName );
+          dhOriginalFileNamePP.Data( fileName );
+          dhBinaryDataPP.Data( &webFileBinaryData );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_efPP_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_efPP_OnUserChanged.def
new file mode 100644
index 0000000..0ee35cd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPP_efPP_OnUserChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pPP/efPP
+Response OnUserChanged () id:Response_pPP_efPP_OnUserChanged
+{
+  #keys: '[413988.0.1186363797]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      source := this.Text();
+      
+      flag := not this.Text().EndsWith( ".xlsx" );
+      
+      if ( flag ) {
+        WebMessageBox::Warning( "鏂囦欢闇�瑕佷互.xlsx涓哄悗缂�" );
+        this.Text( dhOriginalFileNamePP.Data() );
+      } else {
+        dhOriginalFileNamePP.Data( this.Text() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_bPR_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_bPR_OnClick.def
new file mode 100644
index 0000000..d37d0d1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_bPR_OnClick.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: pPR/bPR
+Response OnClick () id:Response_pPR_bPR_OnClick
+{
+  #keys: '[413988.0.1186120890]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  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 );
+          
+          efPR.Text( fileName );
+          dhOriginalFileNamePR.Data( fileName );
+          dhBinaryDataPR.Data( &webFileBinaryData );
+        }
+      } onerror {
+        WebMessageBox::Error( e.GeneralInformation() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_efPR_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_efPR_OnUserChanged.def
new file mode 100644
index 0000000..13a66c2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPR_efPR_OnUserChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pPR/efPR
+Response OnUserChanged () id:Response_pPR_efPR_OnUserChanged
+{
+  #keys: '[413988.0.1186643093]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      source := this.Text();
+      
+      flag := not this.Text().EndsWith( ".xlsx" );
+      
+      if ( flag ) {
+        WebMessageBox::Warning( "鏂囦欢闇�瑕佷互.xlsx涓哄悗缂�" );
+        this.Text( dhOriginalFileNamePR.Data() );
+      } else {
+        dhOriginalFileNamePR.Data( this.Text() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bCurveTemplateDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bCurveTemplateDownload_OnClick.def
new file mode 100644
index 0000000..9566937
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bCurveTemplateDownload_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlActionsLeft/bCurveTemplateDownload
+Response OnClick () id:Response_pnlActionsLeft_bCurveTemplateDownload_OnClick
+{
+  #keys: '[413988.0.1185011957]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      binaryValue := TemplateManager::GetCurveTemplate();
+      
+      Application.Download( "Curve涓婁紶妯℃澘.xlsx", binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bIDSTemplateDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bIDSTemplateDownload_OnClick.def
new file mode 100644
index 0000000..3605881
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bIDSTemplateDownload_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlActionsLeft/bIDSTemplateDownload
+Response OnClick () id:Response_pnlActionsLeft_bIDSTemplateDownload_OnClick
+{
+  #keys: '[413988.0.1185012200]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      binaryValue := TemplateManager::GetIDSTemplate( 14 );
+      
+      Application.Download( "IDS涓婁紶妯℃澘.xlsx", binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bPPATemplateDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bPPATemplateDownload_OnClick.def
new file mode 100644
index 0000000..a535929
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pnlActionsLeft_bPPATemplateDownload_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlActionsLeft/bPPATemplateDownload
+Response OnClick () id:Response_pnlActionsLeft_bPPATemplateDownload_OnClick
+{
+  #keys: '[413988.0.1185011800]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      binaryValue := TemplateManager::GetPPATemplate();
+      
+      Application.Download( "PPA涓婁紶妯℃澘.xlsx", binaryValue.AsBinaryData() );
+    *]
+    GroupServerCalls: false
+  }
+}

--
Gitblit v1.9.3