Заменить соединение с базой данных для отчета и всех вложенных отчетов - PullRequest
7 голосов
/ 03 сентября 2008

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

Ответы [ 5 ]

6 голосов
/ 03 сентября 2008

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

        #'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
2 голосов
/ 01 октября 2008

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

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

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

1 голос
/ 03 сентября 2008

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

1 голос
/ 03 сентября 2008

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

0 голосов
/ 03 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...