lihongji
2024-05-16 7d1851c05553b46b81a647c0fd207a3b91973b64
发动机匹配导入导出
已修改17个文件
已添加52个文件
1401 ■■■■■ 文件已修改
_Main/BL/InfoMessages.qbl 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataColumn_GeneralExcelImportAndExportDa.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataRow_GeneralExcelImportAndExportDataC.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataSource_Archive_Archive_GeneralExcelI.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExpor#456.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExpor#716.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExportDat.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataCell/Attribute_Value.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataCell/_ROOT_Type_GeneralExcelImportAndExportDataCell.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/Attribute_ColumnIndex.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/Function_CalcColumnIndex.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/_ROOT_Type_GeneralExcelImportAndExportDataColumn.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataRow/Attribute_RowNr.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataRow/_ROOT_Type_GeneralExcelImportAndExportDataRow.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_FileBinaryValue.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_IsXLSX.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_UploadDateTime.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_UploadUser.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Method_ReadStructure.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/StaticMethod_Upload.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataSource/_ROOT_Type_GeneralExcelImportAndExportDataSource.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/Method_SyncRows.qbl 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLElementId_Key.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLElementId_QuintiqType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLObjectBase_cell.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLObjectBase_column.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLObjectBase_table.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/_ROOT_XML_GeneralExcelImportAndExportDataTableXML.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLElementId_Key.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLElementId_QuintiqType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLObjectBase_column.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLObjectBase_table.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/_ROOT_XML_GeneralExcelImportAndExportDataTableXMLHeaders.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GeneralExcelImportAndExportDataTable/_ROOT_Type_GeneralExcelImportAndExportDataTable.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PR_PP_Budget/StaticMethod_Upload.qbl 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SixDigitCode/StaticMethod_Download.qbl 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SixDigitCode/StaticMethod_Upload.qbl 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SixDigitCode/StaticMethod_ValidateInput.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ThreeDigitCode/StaticMethod_Download.qbl 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ThreeDigitCode/StaticMethod_Upload.qbl 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ThreeDigitCode/StaticMethod_ValidateInput.qbl 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_List1.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_swBottom.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_swTop.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_swTopMost.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Response_List1_MenuDelete_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/_ROOT_Component_frmStandardAnalysis857.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Component_pnlContent.def 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Method_Edit.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Method_OnOK.def 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Response_pnlActions_btnOk_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Response_pnlContent_ddlEnginePartNumber_OnSelectionChanged#537.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Response_pnlContent_ddlVehicleModel_OnSelectionChanged#640.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/_ROOT_Component_DialogCreateEditSixDigitCode.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Component_pnlContent.def 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Method_Edit.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Method_OnOK.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Response_pnlActions_btnOk_OnClick.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/_ROOT_Component_DialogCreateEditThreeDigitCode.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form989/Response_pHeader_bExport_OnClick.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form989/Response_pHeader_bImport_OnClick.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPR_PP_Budget/Response_pHeader_bImport_OnClick.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSixDigitCode/Response_pHeader_393_bExport_OnClick.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSixDigitCode/Response_pHeader_393_bImport_OnClick.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/InfoMessages.qbl
@@ -2,6 +2,14 @@
#parent: #root
InfoMessages id:#InfoMessages #extension
{
  InfoMessage A_VWED_GeneralExcelImportAndExportDataSource_UploadError1
  {
    DefaultText: 'Please upload a file in the format xlsx or xls'
  }
  InfoMessage A_VWED_GeneralExcelImportAndExportDataSource_UploadError2
  {
    DefaultText: 'File name mismatch'
  }
  InfoMessage A_VWED_PR_PP_Budget_VerificationRules1 (
    const String fieldName
  )
@@ -40,4 +48,38 @@
  {
    DefaultText: 'The vehicle model, engine part number, and existing data do not match'
  }
  InfoMessage A_VWED_SixDigitCode_Code
  {
    DefaultText: 'Code'
  }
  InfoMessage A_VWED_SixDigitCode_Curve
  {
    DefaultText: 'Curve'
  }
  InfoMessage A_VWED_SixDigitCode_VerificationRules1 (
    constcontent String fieldName
  )
  {
    DefaultText: 'Missing mandatory field:@fieldName@'
  }
  InfoMessage A_VWED_SixDigitCode_VerificationRules2
  {
    DefaultText: 'There are duplicate six digit codes present'
  }
  InfoMessage A_VWED_SixDigitCode_VerificationRules3
  {
    DefaultText: 'Inconsistent model and system Sales Segments'
  }
  InfoMessage A_VWED_SixDigitCode_VerificationRules4
  {
    DefaultText: 'The engine part number is inconsistent with the system Products'
  }
  InfoMessage A_VWED_Success
  {
    DefaultText: 'Success'
  }
  InfoMessage A_VWED_ThreeDigitCode_VerificationRules2
  {
    DefaultText: 'There are duplicate three digit codes present'
  }
}
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataColumn_GeneralExcelImportAndExportDa.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation GeneralExcelImportAndExportDataColumn_GeneralExcelImportAndExportDataCell_GeneralExcelImportAndExportDataCell_GeneralExcelImportAndExportDataColumn
{
  #keys: '1[413988.0.1161870213]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][413988.0.1161870232][413988.0.1161870226][413988.0.1161870233][413988.0.1161870227][413988.0.1161870234][413988.0.1161870228][413988.0.1161870235][413988.0.1161870229][413988.0.1161870236][413988.0.1161870230][413988.0.1161870237][413988.0.1161870231]'
    SequenceElementSuffix: 'CellInColumn'
    SequenceSuffix: 'CellInColumn'
  }
  RelationSide.LeftSide GeneralExcelImportAndExportDataCell
  {
    #keys: '3[413988.0.1161870215][413988.0.1161870214][413988.0.1161870216]'
    Cardinality: '1toN'
    ObjectDefinition: GeneralExcelImportAndExportDataColumn
    OwningSide: 'Owned'
  }
  RelationSide.RightSide GeneralExcelImportAndExportDataColumn
  {
    #keys: '3[413988.0.1161870218][413988.0.1161870217][413988.0.1161870219]'
    Cardinality: '0to1'
    ObjectDefinition: GeneralExcelImportAndExportDataCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataRow_GeneralExcelImportAndExportDataC.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation GeneralExcelImportAndExportDataRow_GeneralExcelImportAndExportDataCell_GeneralExcelImportAndExportDataCell_GeneralExcelImportAndExportDataRow
{
  #keys: '1[413988.0.1161870263]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GeneralExcelImportAndExportDataCell
  {
    #keys: '3[413988.0.1161870265][413988.0.1161870264][413988.0.1161870266]'
    Cardinality: '1toN'
    ObjectDefinition: GeneralExcelImportAndExportDataRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide GeneralExcelImportAndExportDataRow
  {
    #keys: '3[413988.0.1161870268][413988.0.1161870267][413988.0.1161870269]'
    Cardinality: '0to1'
    ObjectDefinition: GeneralExcelImportAndExportDataCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataSource_Archive_Archive_GeneralExcelI.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation GeneralExcelImportAndExportDataSource_Archive_Archive_GeneralExcelImportAndExportDataSource
{
  #keys: '1[413988.0.1161870117]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Archive
  {
    #keys: '3[413988.0.1161870119][413988.0.1161870118][413988.0.1161870120]'
    Cardinality: '0to1'
    ObjectDefinition: GeneralExcelImportAndExportDataSource
    OwningSide: 'Reference'
  }
  RelationSide.RightSide GeneralExcelImportAndExportDataSource
  {
    #keys: '3[413988.0.1161870122][413988.0.1161870121][413988.0.1161870123]'
    Cardinality: '1toN'
    ObjectDefinition: Archive
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExpor#456.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExportDataSource_GeneralExcelImportAndExportDataSource_GeneralExcelImportAndExportDataTable
{
  #keys: '1[413988.0.1161910094]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GeneralExcelImportAndExportDataSource
  {
    #keys: '3[413988.0.1161910096][413988.0.1161910095][413988.0.1161910097]'
    Cardinality: '0to1'
    ObjectDefinition: GeneralExcelImportAndExportDataTable
    OwningSide: 'Reference'
  }
  RelationSide.RightSide GeneralExcelImportAndExportDataTable
  {
    #keys: '3[413988.0.1161910099][413988.0.1161910098][413988.0.1161910100]'
    Cardinality: '1toN'
    ObjectDefinition: GeneralExcelImportAndExportDataSource
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExpor#716.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExportDataRow_GeneralExcelImportAndExportDataRow_GeneralExcelImportAndExportDataTable
{
  #keys: '1[413988.0.1161910076]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GeneralExcelImportAndExportDataRow
  {
    #keys: '3[413988.0.1161910078][413988.0.1161910077][413988.0.1161910079]'
    Cardinality: '1toN'
    ObjectDefinition: GeneralExcelImportAndExportDataTable
    OwningSide: 'Owned'
  }
  RelationSide.RightSide GeneralExcelImportAndExportDataTable
  {
    #keys: '3[413988.0.1161910081][413988.0.1161910080][413988.0.1161910082]'
    Cardinality: '0to1'
    ObjectDefinition: GeneralExcelImportAndExportDataRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExportDat.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation GeneralExcelImportAndExportDataTable_GeneralExcelImportAndExportDataColumn_GeneralExcelImportAndExportDataColumn_GeneralExcelImportAndExportDataTable
{
  #keys: '1[413988.0.1161910041]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][413988.0.1161910060][413988.0.1161910054][413988.0.1161910061][413988.0.1161910055][413988.0.1161910062][413988.0.1161910056][413988.0.1161910063][413988.0.1161910057][413988.0.1161910064][413988.0.1161910058][413988.0.1161910065][413988.0.1161910059]'
    SequenceElementSuffix: 'Column'
    SequenceSuffix: 'Column'
  }
  RelationSide.LeftSide GeneralExcelImportAndExportDataColumn
  {
    #keys: '3[413988.0.1161910043][413988.0.1161910042][413988.0.1161910044]'
    Cardinality: '1toN'
    ObjectDefinition: GeneralExcelImportAndExportDataTable
    OwningSide: 'Owned'
  }
  RelationSide.RightSide GeneralExcelImportAndExportDataTable
  {
    #keys: '3[413988.0.1161910046][413988.0.1161910045][413988.0.1161910047]'
    Cardinality: '0to1'
    ObjectDefinition: GeneralExcelImportAndExportDataColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Type_Archive/StaticMethod_VerifyTheFileName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod VerifyTheFileName (
  JSON uploadJson
)
{
  TextBody:
  [*
    fileNames := uploadJson.Get( "name" ).GetString().Tokenize( "." );
    fileNameSuffix := fileNames.Element( fileNames.Size() - 1 );
    if ( fileNameSuffix <> "xlsx" and fileNameSuffix <> "xls" ) {
      error( Translations::A_VWED_GeneralExcelImportAndExportDataSource_UploadError1() );
    }
  *]
}
_Main/BL/Type_GeneralExcelImportAndExportDataCell/Attribute_Value.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Value
{
  #keys: '3[413988.0.1161870283][413988.0.1161870282][413988.0.1161870284]'
  ValueType: String
}
_Main/BL/Type_GeneralExcelImportAndExportDataCell/_ROOT_Type_GeneralExcelImportAndExportDataCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GeneralExcelImportAndExportDataCell
{
  #keys: '5[413988.0.1161910028][413988.0.1161910026][0.0.0][413988.0.1161910027][413988.0.1161910029]'
  BaseType: Object
  StructuredName: 'GeneralExcelImportAndExportDataCells'
}
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/Attribute_ColumnIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ColumnIndex
{
  #keys: '3[413988.0.1161870194][413988.0.1161870193][413988.0.1161870195]'
  ValueType: Number
}
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1161870204][413988.0.1161870203][413988.0.1161870205]'
  ValueType: String
}
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/Function_CalcColumnIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcColumnIndex
{
  TextBody:
  [*
    // lihongji May-16-2024 (created)
    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().ColumnIndex() + 1 );
    this.ColumnIndex( value );
  *]
}
_Main/BL/Type_GeneralExcelImportAndExportDataColumn/_ROOT_Type_GeneralExcelImportAndExportDataColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GeneralExcelImportAndExportDataColumn
{
  #keys: '5[413988.0.1161910023][413988.0.1161910021][0.0.0][413988.0.1161910022][413988.0.1161910024]'
  BaseType: Object
  StructuredName: 'GeneralExcelImportAndExportDataColumns'
}
_Main/BL/Type_GeneralExcelImportAndExportDataRow/Attribute_RowNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute RowNr
{
  #keys: '3[413988.0.1161870163][413988.0.1161870162][413988.0.1161870164]'
  ValueType: Number
}
_Main/BL/Type_GeneralExcelImportAndExportDataRow/_ROOT_Type_GeneralExcelImportAndExportDataRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GeneralExcelImportAndExportDataRow
{
  #keys: '5[413988.0.1161910018][413988.0.1161910016][0.0.0][413988.0.1161910017][413988.0.1161910019]'
  BaseType: Object
  StructuredName: 'GeneralExcelImportAndExportDataRows'
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_FileBinaryValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute FileBinaryValue
{
  #keys: '3[413988.0.1161870068][413988.0.1161870067][413988.0.1161870069]'
  ValueType: BinaryValue
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_IsXLSX.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsXLSX
{
  #keys: '3[413988.0.1161870078][413988.0.1161870077][413988.0.1161870079]'
  ValueType: Boolean
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1161870088][413988.0.1161870087][413988.0.1161870089]'
  ValueType: String
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_UploadDateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UploadDateTime
{
  #keys: '3[413988.0.1161870098][413988.0.1161870097][413988.0.1161870099]'
  ValueType: String
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/Attribute_UploadUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UploadUser
{
  #keys: '3[413988.0.1161870108][413988.0.1161870107][413988.0.1161870109]'
  ValueType: String
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/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() );
      GeneralExcelImportAndExportDataTable::XMLImportGeneralExcelImportAndExportDataTableXMLHeaders( tableXML );
      xlstable := GeneralExcelImportAndExportDataTable::XMLImportGeneralExcelImportAndExportDataTableXML( tableXML );
      xlstable.SyncRows();
      xlstable.Name( sheetName );
      this.GeneralExcelImportAndExportDataTable( relinsert, &xlstable );
    }
  *]
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/StaticMethod_Upload.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  Archive archive,
  BinaryValue binaryValue,
  String filePath
) as GeneralExcelImportAndExportDataSource
{
  TextBody:
  [*
    fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 );
    generalExcelImportAndExportDataSource := archive.GeneralExcelImportAndExportDataSource( 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 generalExcelImportAndExportDataSource;
  *]
}
_Main/BL/Type_GeneralExcelImportAndExportDataSource/_ROOT_Type_GeneralExcelImportAndExportDataSource.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GeneralExcelImportAndExportDataSource
{
  #keys: '5[413988.0.1161870062][413988.0.1161870060][0.0.0][413988.0.1161870061][413988.0.1161870063]'
  BaseType: Object
  StructuredName: 'GeneralExcelImportAndExportDataSources'
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1161910032][413988.0.1161910031][413988.0.1161910033]'
  ValueType: String
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/Method_SyncRows.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#parent: #root
Method SyncRows
{
  TextBody:
  [*
    totalRows := 0;
    totalColumns := this.GeneralExcelImportAndExportDataColumn( relsize );
    if ( totalColumns > 0 ) {
      randomCol := select( this, GeneralExcelImportAndExportDataColumn, tempGEIAEDC, true );
      totalRows := randomCol.GeneralExcelImportAndExportDataCell( relsize );
      this.GeneralExcelImportAndExportDataRow( relflush );
      cells := construct( GeneralExcelImportAndExportDataCells );
      traverse ( this, GeneralExcelImportAndExportDataColumn, geiaedc ) {
        cells.Add( geiaedc.FirstCellInColumn() );
      }
      for ( i := 0; i < totalRows; i++ ) {
        assert( selectvalues( cells, Elements, c, true, c.GeneralExcelImportAndExportDataColumn().ColumnIndex() ).ToString( "" ) =
                selectvalues( selectsortedset( cells, Elements, c, true, c.GeneralExcelImportAndExportDataColumn().ColumnIndex() ), Elements, c, true, c.GeneralExcelImportAndExportDataColumn().ColumnIndex() ).ToString( "" ),
                "Assertion error in FrockDataTable::syncRows: Cells not sorted by column index" );
        row := this.GeneralExcelImportAndExportDataRow( relnew, RowNr := i );
        newCells := construct( GeneralExcelImportAndExportDataCells );
        traverse ( cells, Elements, c ) {
          row.GeneralExcelImportAndExportDataCell( relinsert, c );
          newCells.Add( c.NextCellInColumn() );
        }
        cells := &newCells;
      }
    }
  *]
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLElementId_Key.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLAddressType { }
  XMLID Key { }
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLElementId_QuintiqType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLID QuintiqType { }
  XMLQualifierType { }
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLObjectBase_cell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: GeneralExcelImportAndExportDataCell
  XMLID cell { }
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Value
      XMLID value { }
    }
  ]
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLObjectBase_column.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: GeneralExcelImportAndExportDataColumn
  XMLID column { }
  Aggregates:
  [
    XMLAggregate
    {
      ElementDefinition: cell
      GenerateOutput: false
      Relation: GeneralExcelImportAndExportDataCell
      XMLID GeneralExcelImportAndExportDataCell { }
    }
  ]
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/XMLObjectBase_table.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: GeneralExcelImportAndExportDataTable
  XMLID table { }
  Aggregates:
  [
    XMLAggregate
    {
      ElementDefinition: column
      GenerateOutput: false
      Relation: GeneralExcelImportAndExportDataColumn
      XMLID GeneralExcelImportAndExportDataColumn { }
    }
  ]
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXML/_ROOT_XML_GeneralExcelImportAndExportDataTableXML.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#root
#parent: #root
XML GeneralExcelImportAndExportDataTableXML
{
  Direction: 'ImportExport'
  Root: table
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLElementId_Key.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLAddressType { }
  XMLID Key { }
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLElementId_QuintiqType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
XMLElementId
{
  XMLID QuintiqType { }
  XMLQualifierType { }
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLObjectBase_column.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: GeneralExcelImportAndExportDataColumn
  XMLID column { }
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/XMLObjectBase_table.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
XMLObjectBase.ObjectDefinitions
{
  IdField: Key
  ObjectTypeField: QuintiqType
  TargetType: GeneralExcelImportAndExportDataTable
  XMLID table { }
  Aggregates:
  [
    XMLAggregate
    {
      ElementDefinition: column
      GenerateOutput: false
      Relation: GeneralExcelImportAndExportDataColumn
      XMLID GeneralExcelImportAndExportDataColumn { }
    }
  ]
  Attributes:
  [
    XMLAttribute
    {
      Attribute: Name
      XMLID name { }
    }
  ]
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/XML_GeneralExcelImportAndExportDataTableXMLHeaders/_ROOT_XML_GeneralExcelImportAndExportDataTableXMLHeaders.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#root
#parent: #root
XML GeneralExcelImportAndExportDataTableXMLHeaders
{
  Direction: 'ImportExport'
  Root: table
}
_Main/BL/Type_GeneralExcelImportAndExportDataTable/_ROOT_Type_GeneralExcelImportAndExportDataTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GeneralExcelImportAndExportDataTable
{
  #keys: '5[413988.0.1161910013][413988.0.1161910011][0.0.0][413988.0.1161910012][413988.0.1161910014]'
  BaseType: Object
  StructuredName: 'GeneralExcelImportAndExportDataTables'
}
_Main/BL/Type_PR_PP_Budget/StaticMethod_Upload.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  MacroPlan macroPlan,
  GeneralExcelImportAndExportDataTable table
)
{
  TextBody:
  [*
    // æ¸…空原始数据
    macroPlan.PR_PP_Budget( relflush );
    // æ ¡éªŒæ–‡ä»¶å
    if ( table.GeneralExcelImportAndExportDataSource().Name() <> "发动机匹配-PR&PP&Budget.xlsx" ) {
      error( Translations::A_VWED_GeneralExcelImportAndExportDataSource_UploadError2() );
    }
    // ç”Ÿæˆæ•°æ®
    rowSize := table.GeneralExcelImportAndExportDataRow( relsize );
    for ( rowIndex := 0; rowIndex < rowSize; rowIndex++ ) {
      row := select( table, GeneralExcelImportAndExportDataRow, tempGEIAEDR, tempGEIAEDR.RowNr() = rowIndex );
      modelCell               := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 );
      modelCodeCell           := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
      engineCell              := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 );
      //producingAreaCell       := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 3 );
      vehicleModelCell        := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 4 );
      enginePartNumberCell    := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 5 );
      //engineFourDigitCodeCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 6 );
      macroPlan.PR_PP_Budget( relnew,
                              Model               := guard( modelCell.Value(), "" ),
                              ModelCode           := guard( modelCodeCell.Value(), "" ),
                              Engine              := guard( engineCell.Value(), "" ),
                              ProducingArea       := guard( select( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = guard( vehicleModelCell.Value(), "" ) ).Parent().Parent().Name(), "" ),
                              VehicleModel        := guard( vehicleModelCell.Value(), "" ),
                              EnginePartNumber    := guard( enginePartNumberCell.Value(), "" ),
                              EngineFourDigitCode := guard( select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = guard( enginePartNumberCell.Value(), "" ) ).Notes(), "" ) );
    }
    // æ ¡éªŒæ•°æ®
    feedback            := "";
    sanitycheckfeedback := "";
    flag                := true;
    traverse ( macroPlan, PR_PP_Budget, prppb, flag ) {
      PR_PP_Budget::ValidateInput( feedback, sanitycheckfeedback, macroPlan, prppb.Model(), prppb.ModelCode(), prppb.Engine(), prppb.ProducingArea(), prppb.VehicleModel(), prppb.EnginePartNumber(),
                                   prppb.EngineFourDigitCode(), prppb );
      flag := feedback = "";
    }
    if ( not flag ) {
      error( feedback );
    }
  *]
}
_Main/BL/Type_SixDigitCode/StaticMethod_Download.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
) as BinaryValue
{
  TextBody:
  [*
    xmlDOMI := XMLDOMImplementation::Create();
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name><column><name>六位码</name><type>String</type></column><column><name>Curve</name><type>String</type></column><column><name>车型</name><type>String</type></column><column><name>产地</name><type>String</type></column><column><name>发动机</name><type>String</type></column><column><name>功率</name><type>String</type></column><column><name>发动机零件号</name><type>String</type></column><column><name>发动机四位码</name><type>String</type></column><column><name>备注</name><type>String</type></column></table>' );
    tableElement              := xmlDOM.GetElementByTagName( "table", 0 );
    codeColumn                := tableElement.GetElementByTagName( "column", 0 ); // Code
    curveColumn               := tableElement.GetElementByTagName( "column", 1 ); // Curve
    vehicleModelColumn        := tableElement.GetElementByTagName( "column", 2 ); // è½¦åž‹
    productingAreaColumn      := tableElement.GetElementByTagName( "column", 3 ); // äº§åœ°
    engineColumn              := tableElement.GetElementByTagName( "column", 4 ); // å‘动机
    powerColumn               := tableElement.GetElementByTagName( "column", 5 ); // åŠŸçŽ‡
    enginePartNumberColumn    := tableElement.GetElementByTagName( "column", 6 ); // å‘动机零件号
    engineFourDigitCodeColumn := tableElement.GetElementByTagName( "column", 7 ); // å‘动机四位码
    remarksColumn             := tableElement.GetElementByTagName( "column", 8 ); // å¤‡æ³¨
    traverse ( macroPlan, SixDigitCode, sdc ) {
      PR_PP_Budget::ExportCreateCell( xmlDOM, codeColumn, sdc.Code() );                               // Code
      PR_PP_Budget::ExportCreateCell( xmlDOM, curveColumn, sdc.Curve() );                             // Curve
      PR_PP_Budget::ExportCreateCell( xmlDOM, vehicleModelColumn, sdc.VehicleModel() );               // è½¦åž‹
      PR_PP_Budget::ExportCreateCell( xmlDOM, productingAreaColumn, sdc.ProducingArea() );            // äº§åœ°
      PR_PP_Budget::ExportCreateCell( xmlDOM, engineColumn, sdc.Engine() );                           // å‘动机
      PR_PP_Budget::ExportCreateCell( xmlDOM, powerColumn, sdc.Power() );                             // åŠŸçŽ‡
      PR_PP_Budget::ExportCreateCell( xmlDOM, enginePartNumberColumn, sdc.EnginePartNumber() );       // å‘动机零件号
      PR_PP_Budget::ExportCreateCell( xmlDOM, engineFourDigitCodeColumn, sdc.EngineFourDigitCode() ); // å‘动机四位码
      PR_PP_Budget::ExportCreateCell( xmlDOM, remarksColumn, sdc.Remarks() );                         // å‘动机零件号
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_SixDigitCode/StaticMethod_Upload.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  MacroPlan macroPlan,
  GeneralExcelImportAndExportDataTable table
)
{
  TextBody:
  [*
    // æ¸…空原始数据
    macroPlan.SixDigitCode( relflush );
    // æ ¡éªŒæ–‡ä»¶å
    if ( table.GeneralExcelImportAndExportDataSource().Name() <> "发动机匹配-六位码.xlsx" ) {
      error( Translations::A_VWED_GeneralExcelImportAndExportDataSource_UploadError2() );
    }
    // ç”Ÿæˆæ•°æ®
    rowSize := table.GeneralExcelImportAndExportDataRow( relsize );
    for ( rowIndex := 0; rowIndex < rowSize; rowIndex++ ) {
      row := select( table, GeneralExcelImportAndExportDataRow, tempGEIAEDR, tempGEIAEDR.RowNr() = rowIndex );
      codeCell             := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 );
      curveCell            := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
      vehicleModelCell     := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 );
      engineCell           := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 4 );
      powerCell            := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 5 );
      enginePartNumberCell := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 6 );
      remarksCell          := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 8 );
      macroPlan.SixDigitCode( relnew,
                              Code                := guard( codeCell.Value(), "" ),
                              Curve               := guard( curveCell.Value(), "" ),
                              VehicleModel        := guard( vehicleModelCell.Value(), "" ),
                              ProducingArea       := guard( select( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = guard( vehicleModelCell.Value(), "" ) ).Parent().Parent().Name(), "" ),
                              Engine              := guard( engineCell.Value(), "" ),
                              Power               := guard( powerCell.Value(), "" ),
                              EnginePartNumber    := guard( enginePartNumberCell.Value(), "" ),
                              EngineFourDigitCode := guard( select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = guard( enginePartNumberCell.Value(), "" ) ).Notes(), "" ),
                              Remarks             := guard( remarksCell.Value(), "" ) );
    }
    // æ ¡éªŒæ•°æ®
    feedback            := "";
    sanitycheckfeedback := "";
    flag                := true;
    traverse ( macroPlan, SixDigitCode, sdc, flag ) {
      SixDigitCode::ValidateInput( feedback, sanitycheckfeedback, macroPlan, sdc.Code(), sdc.Curve(), sdc.VehicleModel(), sdc.ProducingArea(), sdc.Engine(), sdc.Power(), sdc.EnginePartNumber(),
                                   sdc.EngineFourDigitCode(), sdc.Remarks(), sdc );
      flag := feedback = "";
    }
    if ( not flag ) {
      error( feedback );
    }
  *]
}
_Main/BL/Type_SixDigitCode/StaticMethod_ValidateInput.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ValidateInput (
  output String feedback_o,
  output String sanitycheckfeedback_o,
  MacroPlan macroPlan,
  String code,
  String curve,
  String vehicleModel,
  String productingArea,
  String engine,
  String power,
  String enginePartNumber,
  String engineFourDigitCode,
  String remarks,
  SixDigitCode selection
) declarative remote as Boolean
{
  TextBody:
  [*
    // lihongji May-14-2024 (created)
    feedback_o            := "";
    sanitycheckfeedback_o := "";
    if ( code.TrimBoth() = "" or curve.TrimBoth() = "" or vehicleModel.TrimBoth() = "" or enginePartNumber.TrimBoth() = "" ) {
      feedback_o            := ifexpr( code.TrimBoth() = "", Translations::A_VWED_SixDigitCode_Code() + "、", "" )                         +
                               ifexpr( curve.TrimBoth() = "", Translations::A_VWED_SixDigitCode_Curve() + "、", "" )                       +
                               ifexpr( vehicleModel.TrimBoth() = "", Translations::A_VWED_PR_PP_Budget_VehicleModel() + "、", "" )         +
                               ifexpr( enginePartNumber.TrimBoth() = "", Translations::A_VWED_PR_PP_Budget_EnginePartNumber() + "、", "" );
      feedback_o            := Translations::A_VWED_SixDigitCode_VerificationRules1( guard( feedback_o.SubString( 0, feedback_o.Length() - 1 ), "error" ) );
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    } else if ( code.TrimBoth() <> "" and exists( macroPlan, SixDigitCode, tempSDC, tempSDC.Code() = code and tempSDC <> selection ) ) {
      feedback_o            := Translations::A_VWED_SixDigitCode_VerificationRules2();
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    } else if ( vehicleModel.TrimBoth() <> "" and not exists( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = vehicleModel ) ) {
      feedback_o            := Translations::A_VWED_SixDigitCode_VerificationRules3();
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    } else if ( enginePartNumber.TrimBoth() <> "" and not exists( macroPlan, Product_MP, tempPMP, tempPMP.ID() = enginePartNumber ) ) {
      feedback_o            := Translations::A_VWED_SixDigitCode_VerificationRules4();
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    }
    return feedback_o = "";
  *]
}
_Main/BL/Type_ThreeDigitCode/StaticMethod_Download.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
) as BinaryValue
{
  TextBody:
  [*
    xmlDOMI := XMLDOMImplementation::Create();
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name><column><name>三位码</name><type>String</type></column><column><name>车型</name><type>String</type></column></table>' );
    tableElement              := xmlDOM.GetElementByTagName( "table", 0 );
    codeColumn                := tableElement.GetElementByTagName( "column", 0 ); // Code
    vehicleModelColumn        := tableElement.GetElementByTagName( "column", 1 ); // è½¦åž‹
    traverse ( macroPlan, ThreeDigitCode, sdc ) {
      PR_PP_Budget::ExportCreateCell( xmlDOM, codeColumn, sdc.Code() );                               // Code
      PR_PP_Budget::ExportCreateCell( xmlDOM, vehicleModelColumn, sdc.VehicleModel() );               // è½¦åž‹
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( "Sheet1" );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_ThreeDigitCode/StaticMethod_Upload.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  MacroPlan macroPlan,
  GeneralExcelImportAndExportDataTable table
)
{
  TextBody:
  [*
    // æ¸…空原始数据
    macroPlan.ThreeDigitCode( relflush );
    // æ ¡éªŒæ–‡ä»¶å
    if ( table.GeneralExcelImportAndExportDataSource().Name() <> "发动机匹配-三位码.xlsx" ) {
      error( Translations::A_VWED_GeneralExcelImportAndExportDataSource_UploadError2() );
    }
    // ç”Ÿæˆæ•°æ®
    rowSize := table.GeneralExcelImportAndExportDataRow( relsize );
    for ( rowIndex := 0; rowIndex < rowSize; rowIndex++ ) {
      row := select( table, GeneralExcelImportAndExportDataRow, tempGEIAEDR, tempGEIAEDR.RowNr() = rowIndex );
      codeCell             := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 );
      vehicleModelCell     := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
      macroPlan.ThreeDigitCode( relnew,
                                Code                := guard( codeCell.Value(), "" ),
                                VehicleModel        := guard( vehicleModelCell.Value(), "" ) );
    }
    // æ ¡éªŒæ•°æ®
    feedback            := "";
    sanitycheckfeedback := "";
    flag                := true;
    traverse ( macroPlan, ThreeDigitCode, tdc, flag ) {
      ThreeDigitCode::ValidateInput( feedback, sanitycheckfeedback, macroPlan, tdc.Code(), tdc.VehicleModel(), tdc );
      flag := feedback = "";
    }
    if ( not flag ) {
      error( feedback );
    }
  *]
}
_Main/BL/Type_ThreeDigitCode/StaticMethod_ValidateInput.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ValidateInput (
  output String feedback_o,
  output String sanitycheckfeedback_o,
  MacroPlan macroPlan,
  String code,
  String vehicleModel,
  ThreeDigitCode selection
) declarative remote as Boolean
{
  TextBody:
  [*
    // lihongji May-14-2024 (created)
    feedback_o            := "";
    sanitycheckfeedback_o := "";
    if ( code.TrimBoth() = "" or vehicleModel.TrimBoth() = "" ) {
      feedback_o            := ifexpr( code.TrimBoth() = "", Translations::A_VWED_SixDigitCode_Code() + "、", "" )                 +
                               ifexpr( vehicleModel.TrimBoth() = "", Translations::A_VWED_PR_PP_Budget_VehicleModel() + "、", "" );
      feedback_o            := Translations::A_VWED_SixDigitCode_VerificationRules1( guard( feedback_o.SubString( 0, feedback_o.Length() - 1 ), "error" ) );
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    } else if ( code.TrimBoth() <> "" and exists( macroPlan, ThreeDigitCode, tempTDC, tempTDC.Code() = code and tempTDC <> selection ) ) {
      feedback_o            := Translations::A_VWED_ThreeDigitCode_VerificationRules2();
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    } else if ( vehicleModel.TrimBoth() <> "" and not exists( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = vehicleModel ) ) {
      feedback_o            := Translations::A_VWED_SixDigitCode_VerificationRules3();
      sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning();
    }
    return feedback_o = "";
  *]
}
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -77,6 +77,26 @@
            }
          ]
        }
        Component menuSeparator833 { #keys: '[413988.0.1164544044]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenu469 { #keys: '[413988.0.1164544687]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysis857' Text: '' ] }
      ]
      Properties:
      [
        ModeledStringList ChildOrdering
        {
          c: MenuFunctions
          c: MenuSeparatorFunctions
          c: MenuConfiguration
          c: Menu38
          c: MenuEditKnowledgeTables
          c: Menu18
          c: MenuAuthorization
          c: MenuAdministrativeTools1
          c: Menu8
          c: MenuSelectDemoDataset
          c: menuSeparator833
          c: ComponentMenu469
        }
      ]
    }
  ]
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_List1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
Component List1
{
  #keys: '[530.0.3531950]'
  BaseType: 'List1'
  IsDerived: true
  Children:
  [
    Component popupList1
    {
      #keys: '[530.0.5957094]'
      BaseType: 'popupList1'
      IsDerived: true
      Children:
      [
        Component PopupParent
        {
          #keys: '[514.0.129466]'
          BaseType: 'PopupParent'
          IsDerived: true
          Children:
          [
            Component menuSeparator { #keys: '[413988.0.1164545508]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuDelete { #keys: '[413988.0.1164545559]' BaseType: 'Menu' Properties: [ Image: 'DELETE' Text: 'Delete' ] }
          ]
          Properties:
          [
            ModeledStringList ChildOrdering
            {
              c: MenuActions
              c: MenuFilter
              c: menuListQuintiqSetQuantor
              c: menuOLSeparator0
              c: menuUseFilter
              c: menuAppendFilter
              c: menuClearAnalysisFilter
              c: MenuClearAnalysisConfigurationsList
              c: menuSeparator
              c: MenuDelete
            }
          ]
        }
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_swBottom.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component swBottom
{
  #keys: '[530.0.3531811]'
  BaseType: 'swBottom'
  IsDerived: true
  Children:
  [
    Component spBottomRight
    {
      #keys: '[530.0.3531813]'
      BaseType: 'spBottomRight'
      IsDerived: true
      Children:
      [
        #child: List1
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_swTop.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
Component swTop
{
  #keys: '[530.0.3531806]'
  BaseType: 'swTop'
  IsDerived: true
  Children:
  [
    Component spTopLeft
    {
      #keys: '[530.0.3531807]'
      BaseType: 'spTopLeft'
      IsDerived: true
      Children:
      [
        Component Analysis
        {
          #keys: '[530.0.3532065]'
          BaseType: 'Analysis'
          IsDerived: true
          Properties:
          [
            GlobalInstance: 'Archive'
          ]
        }
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Component_swTopMost.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
Component swTopMost
{
  #keys: '[530.0.3531801]'
  BaseType: 'swTopMost'
  IsDerived: true
  Children:
  [
    Component SplitterPane1
    {
      #keys: '[530.0.3531802]'
      BaseType: 'SplitterPane1'
      IsDerived: true
      Children:
      [
        #child: swTop
      ]
    }
    Component SplitterPane2
    {
      #keys: '[530.0.3531803]'
      BaseType: 'SplitterPane2'
      IsDerived: true
      Children:
      [
        #child: swBottom
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/Response_List1_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: List1
Response OnClick (
  structured[Object] selection
) id:Response_List1_MenuDelete_OnClick
{
  #keys: '[413988.0.1164545589]'
  Body:
  [*
    MacroPlan::DeleteObjects( selection );
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_List1_Menu_OnClick'
  Initiator: 'MenuDelete'
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysis857/_ROOT_Component_frmStandardAnalysis857.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#root
#parent: MacroPlanner
OrphanComponent frmStandardAnalysis857
{
  #keys: '[413988.0.1164544060]'
  BaseType: 'frmStandardAnalysis'
  Children:
  [
    #child: swTopMost
  ]
  Properties:
  [
    Height: 506
    Title: 'Archive'
    Width: 965
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Component_pnlContent.def
@@ -27,17 +27,6 @@
        Taborder: 1
      ]
    }
    Component efVehicleModel
    {
      #keys: '[413988.0.1148720711]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.VehicleModel'
        Label: 'Vehicle Model'
        Taborder: 2
      ]
    }
    Component efProducingArea
    {
      #keys: '[413988.0.1148720713]'
@@ -45,6 +34,7 @@
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.ProducingArea'
        Enabled: false
        Label: 'Producing Area'
        Taborder: 3
      ]
@@ -71,17 +61,6 @@
        Taborder: 5
      ]
    }
    Component efEnginePartNumber
    {
      #keys: '[413988.0.1148720719]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.EnginePartNumber'
        Label: 'Engine Part Number'
        Taborder: 6
      ]
    }
    Component efEngineFourDigitCode
    {
      #keys: '[413988.0.1148720721]'
@@ -89,6 +68,7 @@
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.EngineFourDigitCode'
        Enabled: false
        Label: 'Engine Four Digit Code'
        Taborder: 7
      ]
@@ -104,6 +84,60 @@
        Taborder: 8
      ]
    }
    Component ddlVehicleModel id:ddlVehicleModel_119
    {
      #keys: '[413988.0.1167500317]'
      BaseType: 'WebDropDownList'
      Databinding: 'SalesSegment_MP'
      Children:
      [
        Component deContent199 id:deContent199_720
        {
          #keys: '[413988.0.1167500318]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'SalesSegment_MP'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: 'Vehicle Model'
        Taborder: 2
      ]
    }
    Component ddlEnginePartNumber id:ddlEnginePartNumber_582
    {
      #keys: '[413988.0.1167500457]'
      BaseType: 'WebDropDownList'
      Databinding: 'Product_MP'
      Children:
      [
        Component deContent id:deContent_144
        {
          #keys: '[413988.0.1167500458]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'Product_MP'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'ID'
        Label: 'Engine Part Number'
        Taborder: 6
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Method_Edit.def
@@ -9,7 +9,14 @@
  [*
    data := shadow( selection );
    
    ssmp := select( MacroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = selection.VehicleModel() );
    ddlVehicleModel.Data( ssmp );
    pmp  := select( MacroPlan, Product_MP, tempPMP, tempPMP.ID() = selection.EnginePartNumber() );
    ddlEnginePartNumber.Data( pmp );
    DataHolderDialogData.Data( &data );
    dhSelectionSixDigitCode.Data( selection );
    
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Method_OnOK.def
@@ -8,7 +8,12 @@
    // On ok
    Form.ApplyChanges();
    
    DataHolderDialogData.Data().Commit();
    data := DataHolderDialogData.Data();
    data.VehicleModel( guard( ddlVehicleModel.Data().Name(), "" ) );
    data.EnginePartNumber( guard( ddlEnginePartNumber.Data().ID(), "" ) );
    data.Commit();
    
    Form.Close();
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Response_pnlActions_btnOk_OnClick.def
@@ -4,6 +4,23 @@
{
  #keys: '[413988.0.1148570679]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    sanitycheckfeedback := '';
    return SixDigitCode::ValidateInput( feedback,
                                        sanitycheckfeedback,
                                        MacroPlan,
                                        efCode.Text(),
                                        efCurve.Text(),
                                        ddlVehicleModel.Data().Name(),
                                        efProducingArea.Text(),
                                        efEngine.Text(),
                                        efPower.Text(),
                                        ddlEnginePartNumber.Data().ID(),
                                        efEngineFourDigitCode.Text(),
                                        efRemarks.Text(),
                                        dhSelectionSixDigitCode.Data() );
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Response_pnlContent_ddlEnginePartNumber_OnSelectionChanged#537.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlContent/ddlEnginePartNumber_582
Response OnSelectionChanged () id:Response_pnlContent_ddlEnginePartNumber_OnSelectionChanged_537
{
  #keys: '[413988.0.1167500455]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      efEngineFourDigitCode.Text( guard( this.Data().Notes(), "" ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/Response_pnlContent_ddlVehicleModel_OnSelectionChanged#640.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlContent/ddlVehicleModel_119
Response OnSelectionChanged () id:Response_pnlContent_ddlVehicleModel_OnSelectionChanged_640
{
  #keys: '[413988.0.1167500315]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      efProducingArea.Text( guard( this.Data().Parent().Parent().Name(), "" ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditSixDigitCode/_ROOT_Component_DialogCreateEditSixDigitCode.def
@@ -19,6 +19,16 @@
        Taborder: 2
      ]
    }
    Component dhSelectionSixDigitCode
    {
      #keys: '[413988.0.1166161525]'
      BaseType: 'WebDataHolder'
      Databinding: 'SixDigitCode'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Component_pnlContent.def
@@ -16,13 +16,29 @@
        Taborder: 0
      ]
    }
    Component efVehicleModel
    Component ddlVehicleModel
    {
      #keys: '[413988.0.1149413314]'
      BaseType: 'WebEditField'
      #keys: '[413988.0.1167810823]'
      BaseType: 'WebDropDownList'
      Databinding: 'SalesSegment_MP'
      Children:
      [
        Component deContent199
        {
          #keys: '[413988.0.1167810824]'
          BaseType: 'WebDataExtractor'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.VehicleModel'
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'SalesSegment_MP'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: 'Vehicle Model'
        Taborder: 1
      ]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Method_Edit.def
@@ -9,7 +9,11 @@
  [*
    data := shadow( selection );
    
    ssmp := select( MacroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = selection.VehicleModel() );
    ddlVehicleModel.Data( ssmp );
    DataHolderDialogData.Data( &data );
    dhSelectionThreeDigitCode.Data( selection );
    
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Method_OnOK.def
@@ -8,7 +8,11 @@
    // On ok
    Form.ApplyChanges();
    
    DataHolderDialogData.Data().Commit();
    data := DataHolderDialogData.Data();
    data.VehicleModel( guard( ddlVehicleModel.Data().Name(), "" ) );
    data.Commit();
    
    Form.Close();
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/Response_pnlActions_btnOk_OnClick.def
@@ -4,6 +4,16 @@
{
  #keys: '[413988.0.1149411986]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    sanitycheckfeedback := '';
    return ThreeDigitCode::ValidateInput( feedback,
                                          sanitycheckfeedback,
                                          MacroPlan,
                                          efCode.Text(),
                                          ddlVehicleModel.Data().Name(),
                                          dhSelectionThreeDigitCode.Data() );
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThreeDigitCode/_ROOT_Component_DialogCreateEditThreeDigitCode.def
@@ -19,6 +19,16 @@
        Taborder: 2
      ]
    }
    Component dhSelectionThreeDigitCode
    {
      #keys: '[413988.0.1167410600]'
      BaseType: 'WebDataHolder'
      Databinding: 'ThreeDigitCode'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_Form989/Response_pHeader_bExport_OnClick.def
@@ -5,8 +5,18 @@
  #keys: '[413988.0.1147413980]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := ThreeDigitCode::Download( MacroPlan );
      Application.Download( "发动机匹配-三位码.xlsx", binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form989/Response_pHeader_bImport_OnClick.def
@@ -5,8 +5,41 @@
  #keys: '[413988.0.1147413979]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( Archive, webFileBinaryData, fileName );
          generalExcelImportAndExportDataSource.ReadStructure();
          selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" );
          ThreeDigitCode::Upload( MacroPlan, selection );
          // åŽç»­åˆ é™¤
          generalExcelImportAndExportDataSource.Delete();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPR_PP_Budget/Response_pHeader_bImport_OnClick.def
@@ -5,8 +5,41 @@
  #keys: '[413988.0.1141930584]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( Archive, webFileBinaryData, fileName );
          generalExcelImportAndExportDataSource.ReadStructure();
          selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" );
          PR_PP_Budget::Upload( MacroPlan, selection );
          // åŽç»­åˆ é™¤
          generalExcelImportAndExportDataSource.Delete();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSixDigitCode/Response_pHeader_393_bExport_OnClick.def
@@ -5,8 +5,18 @@
  #keys: '[413988.0.1146140232]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := SixDigitCode::Download( MacroPlan );
      Application.Download( "发动机匹配-六位码.xlsx", binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSixDigitCode/Response_pHeader_393_bImport_OnClick.def
@@ -5,8 +5,41 @@
  #keys: '[413988.0.1146140231]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( Archive, webFileBinaryData, fileName );
          generalExcelImportAndExportDataSource.ReadStructure();
          selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" );
          SixDigitCode::Upload( MacroPlan, selection );
          // åŽç»­åˆ é™¤
          generalExcelImportAndExportDataSource.Delete();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}