Заменить подключение к базе данных для отчета и всех подотчетов

Есть ли способ изменить расположение источника данных для отчета и всех его подотчетов без необходимости открывать каждый из них вручную?


person John Hubert    schedule 02.09.2008    source источник


Ответы (5)


Вот как я устанавливаю свои соединения во время выполнения. Я получаю информацию о подключении из местоположения конфигурации.

        #'SET REPORT CONNECTION INFO
        For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1
            rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
        Next

        For i = 0 To rsource.ReportDocument.Subreports.Count - 1
            For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1
                rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
            Next
        Next
person Jas    schedule 03.09.2008
comment
Я обнаружил, что это наиболее полезно для установки соединений во время выполнения. - person Manuel Hoffmann; 14.02.2018

Если вы просто делаете это как одноразовую сделку, мое предложение может не помочь. Но если вы часто меняете источники данных, это может быть полезно.

Отказ от ответственности: я не работал с Crystal начиная с версии 9.0, поэтому я не знаю, улучшили ли они это. Я всегда использовал файлы UDL. По сути, это указатель на источник данных. Настройте свой отчет так, чтобы он указывал на UDL, а UDL указывал на источник данных. Если источник изменится, просто обновите UDL.

Это невероятно полезно, если у вас есть несколько отчетов. Вам нужно обновить только один файл при смене сервера.

person Jason Z    schedule 01.10.2008

Связанные вложенные отчеты (по крайней мере, в CR XI) используют общий источник данных основного отчета — предположительно, ваш отчет уже настроен, так что это не вариант для вас?

person Unsliced    schedule 02.09.2008

@Unsliced ​​Я думаю, что проблема, с которой он столкнулся, заключается в том, что когда вы берете кристальный отчет, который кто-то разработал для другой базы данных, и вы открываете его в Crystal Reports XI, вы должны выполнить изменение источника данных для каждого поля, в том числе в подотчетах. Если вы просто меняете источник на верхнем уровне отчета, это часто приводит к ошибкам. (Я думаю, что это известная проблема в Crystal Reports).

person Steven Murawski    schedule 02.09.2008

Я предполагаю, что вы говорите о файлах .rdl из Reporting Services? (Если нет, то мой ответ может быть неправильным)

По сути, это просто XML, поэтому вы можете загрузить каждый из них и выполнить запрос XPath, чтобы получить узел, содержащий источник данных, и обновить его.

person David Cumps    schedule 02.09.2008