#crystal-reports
#crystal-отчеты
Вопрос:
Я использую Crystal Reports 11.5.10.1263.
Я не являюсь обычным пользователем Crystal Reports, но использовал его в прошлом.
Отчет Crystal [который был недавно изменен третьей стороной] работает на нашем рабочем сервере, но не будет запускаться на тестовом сервере [с тестовой базой данных, которая должна, но может и не совпадать с базой данных производственного SQL Server]. Мне поручено выяснить, почему это не будет работать.
Сначала я открыл отчет в нашем рабочем графическом интерфейсе и просмотрел SQL, используя пункты меню «База данных» — «Показать запрос». Я запустил этот SQL в SSMS, и он выдает список из двух столбцов идентификаторов клиентов и идентификаторов представителей клиентов. Я ожидал, что SQL покажет все поля, отображаемые в отчете при его запуске.
Когда я делал это в прошлом, я неизменно получал полный SQL, который возвращает все поля, показанные в выходных данных отчета.
Предполагая, что какой-то объект, встроенный в отчет, использует эти два значения для извлечения остальных сведений о клиенте, отображаемых в выходных данных отчета, я заглянул в раздел «Поля базы данных» в режиме конструктора отчета в Crystal Reports, и там, где я ожидаю получить имя таблицы или представления, есть имя объекта [назовем его ‘Unknown_Object’], которого не существует в нашей базе данных … с длинным списком полей, которые я распознаю и, вероятно, мог бы найти в нашей базе данных, запросив разные таблицы, в которых они находятся.
Проблема, которую я пытаюсь решить, однако, заключается в том, почему отчет выполняется в нашем производственном графическом интерфейсе на производственном сервере / среде, а не в тестовом графическом интерфейсе на нашем тестовом сервере, который использует «реплику» производственной базы данных.
Я полагаю, что причина в том, что ‘Unknown_Object’, возможно, является некоторой SQL [Хранимой процедурой? Функция? Другой механизм?] который я не знаю, как проверить — и который существует в производственном графическом интерфейсе и / или БД, но не в тестовом графическом интерфейсе и / или БД.
Вопрос 1. Возможно ли, что «Unknown_Object» является объектом «черного ящика», который может просматривать только разработчик?
Вопрос 2. Какие шаги я могу предпринять, чтобы точно выяснить, какой механизм используется для получения всех сведений о клиенте, используя идентификаторы клиентов и представителей клиентов, которые я смог получить… и, таким образом, возможно, ответить на вопрос о том, почему он не будет запускаться в тестовой системе?
Надеюсь, я объяснил с достаточной ясностью. Я был бы признателен за любую помощь, которую я могу получить.
Спасибо!
Ответ №1:
Скопируйте rpt-файл на свой рабочий сервер и попробуйте проверить базу данных. Если CR сообщает, что база данных была обновлена, запросы в рабочей и тестовой среде могут отличаться либо типами полей, либо их порядком, либо чем-то еще.
Убедитесь, что запрос на обоих серверах возвращает точно такие же наборы данных.
Ответ №2:
С помощью этого инструмента вы можете сравнить старый и новый отчеты http://r-tag.com/Pages/CrystalSearch.aspx. Инструмент имеет пробный период, поэтому приобретать его не нужно.