【问题标题】:MS Project VSTOMS 项目 VSTO
【发布时间】:2019-03-26 06:08:04
【问题描述】:

我正在使用 Project 2016 与 ERP 集成。我的目标是阅读项目的资源信息。

为此,我将数据库保存在 mdb 文件中。

做这个技巧的那一行是:

projApp.VisualReportsSaveDatabase(FileNameCompleteMdb, PjVisualReportsDataLevel.pjLevelDays)

一切正常,但我的一些用户正在使用带有葡萄牙语的项目。创建 Access mdb 文件时,许多表字段的名称都是葡萄牙语,这导致我的所有 SQL 语句都失败。

我的问题是:

有什么办法可以强制 Project 始终导出英文的 mdb 文件。

最好的问候

【问题讨论】:

    标签: vsto ms-project


    【解决方案1】:

    经过一番研究,我得到了这个解决方案。这不是最好的解决方案,但很有效。

    第一步,将所有字段声明为字符串

    Dim _Code 作为字符串 Dim _Name 作为字符串 Dim _Start As String 暗淡 _Finish 作为字符串 Dim _Work 作为字符串 将 _ActualWork 作为字符串调暗

    第二步:

    使用从您的项目应用程序中读取的 FieldName 设置您的字符串。此时,project 将根据设置的语言返回其 FieldNames。

        _Code = projApp.FieldConstantToFieldName(PjField.pjResourceCode)
        _Name = projApp.FieldConstantToFieldName(PjField.pjResourceName)
        _Start = projApp.FieldConstantToFieldName(PjField.pjResourceStart)
        _Finish = projApp.FieldConstantToFieldName(PjField.pjResourceFinish)
        _Work = projApp.FieldConstantToFieldName(PjField.pjResourceWork)
        _ActualWork = projApp.FieldConstantToFieldName(PjField.pjResourceActualWork)
    
    
        Dim qryResource As String = "Select [ResourceUID], [Code], [Name], [Start], [Finish], [Work], [Actual Work] From MSP_EpmResource Where [Code] >'0';"
    

    第 3 步: 使用英文的 sql 语句,只需将原始 FieldNames 替换为您的变量即可:

        qryResource = qryResource.Replace("Code", _Code)
        qryResource = qryResource.Replace("Name", _Name)
        qryResource = qryResource.Replace("Start", _Start)
        qryResource = qryResource.Replace("Finish", _Finish)
        qryResource = qryResource.Replace("Actual Work", _ActualWork)
        qryResource = qryResource.Replace("Work", _Work)
    

    最后,您将拥有一个有效的 sql 语句,具体取决于您的应用程序语言。

    tks

    【讨论】:

      猜你喜欢
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2020-03-31
      相关资源
      最近更新 更多