Как указать Crystal Reports на новую базу данных - PullRequest
25 голосов
/ 15 ноября 2011

У меня есть пользователь Crystal Reports 2008, у которого более 100 специально разработанных отчетов. Все отчеты запрашивают базы данных Sql Server (SQL 2005).
Этот сервер базы данных заменяется новой системой (под управлением SQL 2008 R2), и существующие базы данных будут перемещены на новый сервер. Новый сервер базы данных будет иметь другое имя (к которому я могу обратиться через соединения Crystal Reports), однако одно из приложений также обновляется одновременно. Старая база данных (DB_A) будет восстановлена ​​на новом сервере для исторической отчетности, и будет создана новая база данных (DB_B). Новая DB_B будет иметь очень похожую схему, поэтому я ожидаю, что большинство Crystal Reports должно быть в состоянии работать с новым DB_B с небольшими изменениями или без каких-либо изменений, кроме указания определения отчета на новый DB_B.

Конечно, большинство моих пользователей специально разрабатывали запросы к DB_A.

У меня вопрос: как изменить существующие файлы Crystal Reports так, чтобы они указывали на новое имя базы данных (DB_B) вместо старой базы данных (DB_A)?

Ответы [ 2 ]

48 голосов
/ 11 апреля 2013

Используйте меню «База данных» и пункт «Установить местоположение источника данных», чтобы изменить имя или местоположение каждой таблицы в отчете.

Это работает для изменения местоположения базы данных, перехода на новую базу данных,и изменение местоположения или имени отдельной таблицы, используемой в отчете.

Чтобы изменить соединение с источником данных, перейдите в меню «База данных» и нажмите «Установить местоположение источника данных».

  1. Изменить источник данныхСоединение:
    1. В списке Текущий источник данных (верхнее поле) один раз нажмите на соединение с источником данных, которое вы хотите изменить.
    2. В списке Заменить на (нижнее поле) щелкнитеодин раз при новом соединении с источником данных.
    3. Нажмите Обновить.
  2. Изменить отдельные таблицы:
  3. В списке Текущий источник данных (верхнее поле) разверните соединение с источником данных, которое вы хотите изменить.
  4. Найдите таблицу, для которой вы хотите обновить местоположение или имя.
  5. В списке «Заменить на» (нижнее поле) разверните новое подключение к источнику данных.
  6. Найдите новую таблицу, на которую хотите обновить указатель.
  7. Нажмите Обновить.
  8. Обратите внимание, что если имя таблицы изменилось, старое имя таблицы все равно будет отображаться в Обозревателе полей, даже если теперь оно использует новую таблицу.(Вы можете подтвердить это, посмотрев Имя таблицы свойств таблицы в Текущем источнике данных в разделе Задать местоположение источника данных. Снимок экрана http://i.imgur.com/gzGYVTZ.png) Можно переименовать старое имя таблицы в новое имя из контекстного меню в Database Expert-> Выбранные таблицы.
Изменить подотчеты: Повторите каждый из приведенных выше шагов для всех вложенных отчетов, которые вы могли бы встроить в свой отчет. Закройте окно «Задать местоположение источника данных». Любые команды или выражения SQL: Перейдите в меню «База данных» и нажмите «Эксперт по базе данных». Если дизайнер отчетов использовал «Добавить команду» для написания пользовательского SQL, он будет показан в поле «Выбранные таблицы» справа. Щелкните правой кнопкой мыши по этой команде и выберите «Редактировать команду». Проверьте, указывает ли этот SQL конкретную базу данных.Если это так, вам может потребоваться изменить его. Закройте окно Database Expert. В правой части панели обозревателя полей щелкните правой кнопкой мыши любые выражения SQL. Проверьте, есливыражения SQL указывают конкретную базу данных.Если это так, вам может потребоваться изменить его. Сохраните и закройте окно редактора формул, когда закончите редактирование.

И попробуйте запустить отчетснова.

Ключ в том, чтобы сначала изменить соединение с источником данных, затем любые таблицы, которые вам нужно обновить, а затем все остальное.Соединение не будет автоматически изменять таблицы внизу.Эти столы похожи на гусят, которые запечатлены на первом большом похожем на гусиное животное, которое они видят.Они будут продолжать обходить все причины и логику и идти туда, куда они всегда шли, если только вы не измените их вручную.

Чтобы сделать это более удобным, вот совет: вы можете "Показать запрос SQL" вменю «База данных», и вы увидите имена таблиц, соответствующие базе данных (например, «Продажи». «dbo». «Клиенты») для любых таблиц, которые идут прямо в конкретную базу данных.Это может облегчить охоту, если у вас много чего происходит.Когда я решил эту проблему, мне пришлось изменить каждую таблицу, чтобы она указала на новую таблицу в новой базе данных.

5 голосов
/ 15 ноября 2011

Выберите базу данных |Установить местоположение источника данных ... Выберите узел базы данных (желтоватый цилиндр) текущего соединения, затем выберите узел базы данных желаемого соединения (вам может потребоваться аутентификация), затем нажмите Обновить.

Это необходимо сделать и для узлов «Подотчеты».

К вашему сведению, вы также можете составить отдельные таблицы, выбрав каждую по отдельности, а затем выбрав «Обновить».

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