lazhen
2024-05-31 b0612bf1f3bbd4640b36f2db6ccb166ecae69d37
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg
已修改8个文件
已添加16个文件
515 ■■■■■ 文件已修改
_Main/BL/Type_Archive/StaticMethod_Archive.qbl 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_BESIProcessing.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_HandleBESI.qbl 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ArchiveCurve/Attribute_SourceFileBinaryValue.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_bBESIWarning_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Component_pBESI.def 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Component_pnlContent.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Method_OnOK.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pBESI_bBESI_OnClick.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pBESI_efBESI_OnUserChanged.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/_ROOT_Component_DialogBESIWarning.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnUserChanged.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchive_ddlPPAArchive_OnUserSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPreviousEditionCurve_cPreviousEditionCurve_OnUserChanged.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_Archive.qbl
@@ -3,7 +3,10 @@
StaticMethod Archive (
  JSON respJSON,
  Archive archive,
  String archiveType
  String archiveType,
  BinaryValue ppaBinaryValue,
  String curveFileName,
  BinaryValue curveBinaryValue
)
{
  TextBody:
@@ -11,6 +14,7 @@
    code             := respJSON.Get( "code" ).GetNumber();
    archiveFileJSONs := respJSON.Get( "archiveFiles" );
    info( archiveFileJSONs.AsString() );
    if ( code = 200 ) {
      for ( i := 0; i < archiveFileJSONs.Size(); i++ ) {
        archiveFileJSON := archiveFileJSONs.Get( i );
@@ -40,12 +44,21 @@
            archive.ArchiveBudget( relnew, Name := fileName, FilePath := filePath );
          }
        } else if ( archiveType = "PPA" ) {
          // å­˜æ¡£PPA
          appa := select( archive, ArchivePPA, tempAPPA, tempAPPA.Name() = fileName );
          if ( not isnull( appa ) ) {
            appa.FilePath( filePath );
            appa.SourceFileBinaryValue( ppaBinaryValue );
          } else {
            archive.ArchivePPA( relnew, Name := fileName, FilePath := filePath );
            archive.ArchivePPA( relnew, Name := fileName, FilePath := filePath, SourceFileBinaryValue := ppaBinaryValue );
          }
          // å­˜æ¡£Curve
          ac := select( archive, ArchiveCurve, tempAC, true );
          if ( not isnull( ac ) ) {
            ac.Delete();
          }
          archive.ArchiveCurve( relnew, Name := "始终只存一版.xlsx", FilePath := curveFileName, SourceFileBinaryValue := curveBinaryValue );
        }
      }
    }
_Main/BL/Type_Archive/StaticMethod_BESIProcessing.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod BESIProcessing (
  Archive archive,
  MacroPlan macroPlan,
  String besiFileName,
  BinaryValue besiBinaryValue
) as String
{
  TextBody:
  [*
    filePath := archive.FileArchivePath() + "\" + "temp" + "\";
    OS::CreateDirectory( filePath );
    respJSON := Archive::HandleBESI( archive, macroPlan, besiFileName, besiBinaryValue, filePath );
    message := respJSON.Get( "message" ).GetString();
    return message;
  *]
}
_Main/BL/Type_Archive/StaticMethod_HandleBESI.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
#parent: #root
StaticMethod HandleBESI (
  Archive archive,
  MacroPlan macroPlan,
  String besiFileName,
  BinaryValue besiBinaryValue,
  String filePath
) as owning JSON
{
  TextBody:
  [*
    // è¯·æ±‚参数
    pathBESI     := filePath + besiFileName;
    macroPlanKey := [String]macroPlan.MDSID().MinorKey();
    json         := JSON::Object()
                    .Add( "pathBESI", pathBESI )
                    .Add( "minorKey", macroPlanKey ).Build().AsString();
    // å†™å…¥ä¸´æ—¶æ–‡ä»¶
    Archive::WriteTempFile( pathBESI, besiBinaryValue );
    // è°ƒç”¨æŽ¥å£
    url := "/BESI/Import";
    i := HTTPInterface::Create( archive.JavaInterfaceAddress(), archive.JavaInterfacePort() );
    i.URL( url );
    i.PostMethod( true );
    i.MediaType( "application/json" );
    i.TimeOut( Duration::Minutes( 5 ) );
    i.Call( json );
    htmlresult := i.Result();
    respJSON   := JSON::Parse( htmlresult );
    return &respJSON;
  *]
}
_Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl
@@ -21,8 +21,8 @@
    pathPPA       := filePath + ppaFileName;
    pathCurve     := filePath + curveFileName;
    pathIDS       := filePath + idsFileName;
    info( pathPPA );
    info( pathCurve );
    info( "PPA文件路径:", pathPPA, "    æ–‡ä»¶å¤§å°ï¼š", ppaBinaryValue.Size() );
    info( "Curve文件路径:", pathCurve, "    æ–‡ä»¶å¤§å°ï¼š", curveBinaryValue.Size() );
    isArchivePPA  := ifexpr( isPPAArchive, "true", "false" );
    isOverridePPA := ifexpr( isOverwriteFile, "true", "false" );
    minorKey      := [String]macroPlan.MDSID().MinorKey();
_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl
@@ -38,25 +38,25 @@
    if ( prBinaryValue.Size() > 0 ) {
      archive -> Archive::HandlePR( macroPlan, userName, prFileName, prBinaryValue, isPRArchive, filePath, isOverwriteFile ) 
              -> Archive::Success( macroPlan, archiveExecutionStatus, userName )
              -> Archive::Archive( archive, "PR" )
              -> Archive::Archive( archive, "PR", ppaBinaryValue, curveFileName, curveBinaryValue )
              -> Exception() 
              -> Archive::OnException( archiveExecutionStatus, userName );
    } else if ( ppBinaryValue.Size() > 0 ) {
      archive -> Archive::HandlePP( macroPlan, userName, ppFileName, ppBinaryValue, isPPArchive, filePath, isOverwriteFile ) 
              -> Archive::Success( macroPlan, archiveExecutionStatus, userName )
              -> Archive::Archive( archive, "PP" )
              -> Archive::Archive( archive, "PP", ppaBinaryValue, curveFileName, curveBinaryValue )
              -> Exception() 
              -> Archive::OnException( archiveExecutionStatus, userName );
    } else if ( budgetBinaryValue.Size() > 0 ) {
      archive -> Archive::HandleBudget( macroPlan, userName, budgetFileName, budgetBinaryValue, isBudgetArchive, filePath, isOverwriteFile ) 
              -> Archive::Success( macroPlan, archiveExecutionStatus, userName )
              -> Archive::Archive( archive, "Budget" )
              -> Archive::Archive( archive, "Budget", ppaBinaryValue, curveFileName, curveBinaryValue )
              -> Exception()
              -> Archive::OnException( archiveExecutionStatus, userName );
    } else {
      archive -> Archive::HandlePPA_Curve_IDS( macroPlan, userName, ppaFileName, ppaBinaryValue, isPPAArchive, curveFileName, curveBinaryValue, idsFileName, idsBinaryValue, filePath, isOverwriteFile ) 
              -> Archive::Success( macroPlan, archiveExecutionStatus, userName )
              -> Archive::Archive( archive, "PPA" )
              -> Archive::Archive( archive, "PPA", ppaBinaryValue, curveFileName, curveBinaryValue )
              -> Exception()
              -> Archive::OnException( archiveExecutionStatus, userName );
    }
_Main/BL/Type_ArchiveCurve/Attribute_SourceFileBinaryValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SourceFileBinaryValue
{
  #keys: '3[414996.0.413864587][414996.0.413864586][414996.0.413864588]'
  ValueType: BinaryValue
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgRequirementPreprocessing.def
@@ -53,6 +53,17 @@
      ]
      Properties:
      [
        Taborder: 3
      ]
    }
    Component bBESIWarning
    {
      #keys: '[414996.0.413910939]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'WARNING'
        Label: 'BESI warning'
        Taborder: 2
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgRequirementPreprocessing_bBESIWarning_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: abgRequirementPreprocessing/bBESIWarning
Response OnClick () id:Response_MacroPlanner_abgRequirementPreprocessing_bBESIWarning_OnClick
{
  #keys: '[414996.0.417143762]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogBESIWarning );
      ApplicationMacroPlanner.ShowFormModal( dlg );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Component_pBESI.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
Quintiq file version 2.0
Component pBESI
{
  #keys: '[414996.0.417143941]'
  BaseType: 'WebPanel'
  Children:
  [
    Component efBESI
    {
      #keys: '[414996.0.417143942]'
      BaseType: 'WebEditField'
      Properties:
      [
        NumberOfColumns: 60
        Taborder: 1
      ]
    }
    Component bBESI
    {
      #keys: '[414996.0.417143943]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'FOLDER'
        Label: 'Browse...'
        Taborder: 2
      ]
    }
    Component lBESI
    {
      #keys: '[414996.0.417143945]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'BESI需求'
        NumberOfColumns: 0
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414996.0.415672889]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414996.0.415672893]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[414996.0.415672895]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414996.0.415672887]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pBESI
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Method_OnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogBESIWarning_OnOK
{
  #keys: '[414996.0.416965008]'
  Body:
  [*
    Form.ApplyChanges();
    message := Archive::BESIProcessing( Archive, MacroPlan,
                                        dhOriginalFileNameBESI.Data(), guard( dhBinaryDataBESI.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ) );
    Form.Close();
    WebMessageBox::Warning( message, true );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pBESI_bBESI_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#parent: pBESI/bBESI
Response OnClick () id:Response_pBESI_bBESI_OnClick
{
  #keys: '[414996.0.417143939]'
  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 );
          efBESI.Text( fileName );
          dhOriginalFileNameBESI.Data( fileName );
          dhBinaryDataBESI.Data( &webFileBinaryData );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pBESI_efBESI_OnUserChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: pBESI/efBESI
Response OnUserChanged () id:Response_pBESI_efBESI_OnUserChanged
{
  #keys: '[414996.0.417143940]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebEditField_OnUserChanged'
  QuillAction
  {
    Body:
    [*
      source := this.Text();
      flag := not this.Text().EndsWith( ".xlsx" );
      if ( not isnull( dhBinaryDataBESI.Data() ) ) {
        if ( flag ) {
          WebMessageBox::Warning( "文件需要以.xlsx为后缀" );
          this.Text( dhOriginalFileNameBESI.Data() );
        } else {
          dhOriginalFileNameBESI.Data( this.Text() );
        }
      } else {
        WebMessageBox::Warning( "请先上传文件在命名" );
        this.Text( "" );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[414996.0.415672899]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[414996.0.415672898]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      Form.OnOK();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/_ROOT_Component_DialogBESIWarning.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogBESIWarning
{
  #keys: '[414996.0.415672885]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component dhBinaryDataBESI
    {
      #keys: '[414996.0.417144297]'
      BaseType: 'WebDataHolder'
      Databinding: 'BinaryData*'
      Properties:
      [
        Taborder: 2
      ]
    }
    Component dhOriginalFileNameBESI
    {
      #keys: '[414996.0.417144357]'
      BaseType: 'WebDataHolder'
      Databinding: 'String*'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: 'BESI Warning'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def
@@ -37,6 +37,26 @@
        Taborder: 0
      ]
    }
    Component dhLocalBinaryDataCurve
    {
      #keys: '[414996.0.415601785]'
      BaseType: 'WebDataHolder'
      Databinding: 'BinaryData*'
      Properties:
      [
        Taborder: 3
      ]
    }
    Component dhLocalOriginalFileNameCurve
    {
      #keys: '[414996.0.415601918]'
      BaseType: 'WebDataHolder'
      Databinding: 'String*'
      Properties:
      [
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPA.def
@@ -48,6 +48,26 @@
        Taborder: 0
      ]
    }
    Component dhLocalBinaryDataPPA
    {
      #keys: '[414996.0.415681804]'
      BaseType: 'WebDataHolder'
      Databinding: 'BinaryData*'
      Properties:
      [
        Taborder: 4
      ]
    }
    Component dhLocalOriginalFileNamePPA
    {
      #keys: '[414996.0.415681937]'
      BaseType: 'WebDataHolder'
      Databinding: 'String*'
      Properties:
      [
        Taborder: 5
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnUserChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#parent: pPPAArchiveEnable/cPPAPPAArchiveEnable
Response OnUserChanged () id:Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnUserChanged
{
  #keys: '[414996.0.415681283]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
  QuillAction
  {
    Body:
    [*
      efPPA.Enabled( not this.Checked(), "" );
      bPPA.Enabled( not this.Checked(), "" );
      cPPA.Enabled( not this.Checked(), "" );
      ddlPPAArchive.Enabled( this.Checked(), "" );
      if ( this.Checked() ) {
        // ä¸ºtrue,调用存档,把全局PPA放置局部PPA
        dhLocalBinaryDataPPA.Data( guard( BinaryData::FromBase64EncodedString( dhBinaryDataPPA.Data().AsBase64EncodedString() ), BinaryData::Construct() ) );
        dhLocalOriginalFileNamePPA.Data( guard( dhOriginalFileNamePPA.Data(), "" ) );
        // æ›¿æ¢å…¨å±€PPA为下拉存档PPA
        dhBinaryDataPPA.Data( BinaryData::FromBase64EncodedString( ddlPPAArchive.Data().SourceFileBinaryValue().AsBase64EncodedString() ) );
        dhOriginalFileNamePPA.Data( ddlPPAArchive.Data().Name() );
      } else {
        // ä¸ºfalse,不调用存储,把局部PPA防止全局PPA
        dhBinaryDataPPA.Data( BinaryData::FromBase64EncodedString( dhLocalBinaryDataPPA.Data().AsBase64EncodedString() ) );
        dhOriginalFileNamePPA.Data( dhLocalOriginalFileNamePPA.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchive_ddlPPAArchive_OnUserSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: pPPAArchive/ddlPPAArchive
Response OnUserSelectionChanged (
  ArchivePPA selection
) id:Response_pPPAArchive_ddlPPAArchive_OnUserSelectionChanged
{
  #keys: '[414996.0.415611317]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownList_OnUserSelectionChanged'
  QuillAction
  {
    Body:
    [*
      dhBinaryDataPPA.Data( BinaryData::FromBase64EncodedString( selection.SourceFileBinaryValue().AsBase64EncodedString() ) );
      dhOriginalFileNamePPA.Data( selection.Name() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPreviousEditionCurve_cPreviousEditionCurve_OnUserChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: pPreviousEditionCurve/cPreviousEditionCurve
Response OnUserChanged () id:Response_pPreviousEditionCurve_cPreviousEditionCurve_OnUserChanged
{
  #keys: '[414996.0.415683420]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
  QuillAction
  {
    Body:
    [*
      efCurve.Enabled( not this.Checked(), "" );
      bCurve.Enabled( not this.Checked(), "" );
      if ( this.Checked() ) {
        // ä¸ºtrue,调用存档,把全局Curve放置局部Curve
        dhLocalBinaryDataCurve.Data( guard( BinaryData::FromBase64EncodedString( dhBinaryDataCurve.Data().AsBase64EncodedString() ), BinaryData::Construct() ) );
        dhLocalOriginalFileNameCurve.Data( guard( dhOriginalFileNameCurve.Data(), "" ) );
        // æ›¿æ¢å…¨å±€Curve为上一版Curve
        previousAC := select( Archive, ArchiveCurve, tempAC, true );
        dhBinaryDataCurve.Data( BinaryData::FromBase64EncodedString( previousAC.SourceFileBinaryValue().AsBase64EncodedString() ) );
        dhOriginalFileNameCurve.Data( previousAC.Name() );
      } else {
        // ä¸ºfalse,不调用存储,把局部PPA防止全局PPA
        dhBinaryDataCurve.Data( BinaryData::FromBase64EncodedString( dhLocalBinaryDataCurve.Data().AsBase64EncodedString() ) );
        dhOriginalFileNameCurve.Data( dhLocalOriginalFileNameCurve.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
  ProjectProperties
  {
    ApplicationComponentName: 'ApplicationMacroPlanner'
    BuildVersion: '2022.3.0.0'
    BuildVersion: '2022.3.0.29'
    Description: 'Quintiq Macro Planner'
    ProjectKind: 'WebClient'
  }
_var/_Main/ModelSettings/Common/Development/_ROOT_Role_Development.properties
@@ -427,6 +427,12 @@
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject.parameters=/datasource=MPERPIntegrationDataSource /owner=dbo /user=quintiq
domainmodel.ediremotedatasourcedefinition.remotestorage.vwed=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.vwed.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.vwed.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.vwed.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.vwed.parameters=/datasource=vwed /owner=dbo /user=sa
domainmodel.ediremotedatasourcedefinition.remotestorage.vwed.password=1 3799F7FDE4D4DACD796CCB551C8C6413 f8e8d767-733f-474c-ad16-52118cf96917
domainmodel.fileprovider.qdrive=template:domainmodel.fileprovider.qdrive
domainmodel.fileprovider.qdrive.enabled=true
domainmodel.fileprovider.qdrive.readonly=false
@@ -448,7 +454,7 @@
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.databaseenabled=true
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false