Как установить поставщика для CrystalDecisions.Enterprise.Desktop.Report?

Что касается нашей среды отчетности, мы позволяем пользователям запускать отчеты «в сети» (код для этого основан на CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocument) или «в автономном режиме», то есть планировать их непосредственно на сервере Business Objects. Этот код основан на CrystalDecisions.Enterprise.Desktop.Report.

Для онлайн-отчета мы можем программно установить поставщика с помощью этого кода:

If crTableNew.ConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE Then
    crLogonInfo = CType(crAttributes("QE_LogonProperties"), PropertyBag)
    crLogonInfo("Data Source") = serverName
    crLogonInfo("Initial Catalog") = databaseName
    crLogonInfo("Provider") = "SQLNCLI11"
End If

Однако эквивалентный код для автономного режима, похоже, не раскрывает свойство «Поставщик». Эквивалентный объект примерно такой:

CrystalDecisions.Enterprise.Desktop.Report.ReportLogons.Item(tableIndex), но ни одно из свойств не является поставщиком.

Кто-нибудь может помочь?


person Scott Fortier    schedule 08.08.2018    source источник


Ответы (1)


Ближайшим соответствующим свойством ReportLogon к свойству LoginInfo Provider является свойство ServerType. Однако я не думаю, что вам это нужно для установки учетных данных базы данных.

Вы, вероятно, можете сделать что-то вроде этого

    foreach(ReportLogon reportLogon in reportLogons)
    {
       reportLogon.UseOriginalDataSource = false;

       reportLogon.CustomServerName = serverName;
       reportLogon.CustomUserName = userId;
       reportLogon.CustomPassword = password;
       reportLogon.CustomDatabaseName = databaseName;

       foreach(TablePrefix tablePrefix in reportLogon.TableLocationPrefixes)
       {
          tablePrefix.MappedTablePrefix = databaseName + ".dbo.";
          tablePrefix.UseMappedTablePrefix = true;
       }
    }

Циклический просмотр TableLocationPrefixes гарантирует, что все указанные таблицы или sproc связаны с базой данных, указанной в учетных данных для входа.

person Scratch    schedule 09.08.2018
comment
Невозможность установить провайдера, в конечном счете, является для нас большим препятствием. Смена провайдера была вызвана требованием отключить TLS 1.0/1.1 в нашей среде — новый провайдер, по сути, является требованием совместимости с TLS 1.2. В конечном итоге мы можем просто вручную установить поставщика для каждого отчета и опубликовать их повторно, но у нас есть сотни отчетов :( - person Scott Fortier; 10.08.2018