извлечь необработанный SQL-запрос из файла Crystal Report .rpt - PullRequest
18 голосов
/ 14 июля 2010

У меня есть файл .rpt, который я не написал и не могу найти документацию. Я хочу иметь возможность просмотреть SQL, сгенерированный из этого отчета, чтобы я мог выяснить, какие данные он извлекает и какие параметры предложения WHERE были использованы.

Я могу открыть его и посмотреть макет отчета. Но когда я выбираю База данных | Показать запрос SQL ... , отчет пытается подключиться к источнику данных. Проблема в том, что используемый источник данных мне неизвестен, вероятно, соединение ODBC используется тем, кто написал запрос. Все, что я могу сделать на этом этапе, это «Отмена», и я снова вернусь к дизайнеру отчетов.

Я что-то упустил? Могу ли я получить SQL-запрос без подключения к источнику данных? Кажется, что просмотр критериев выбора не должен зависеть от подключения к данным.

Спасибо.

версия: Crystal Reports 2008

Ответы [ 5 ]

18 голосов
/ 23 марта 2011

Я знаю, что это старая тема, но я столкнулся с этой же проблемой.Фактически у нас была база данных / приложение, которое с тех пор было получено внешним агентством.

Хотя у них теперь есть база данных / приложение, у них нет доступа к отчетам Crystal, поэтому мы не можем просто отправитьим старый отчет, который мы использовали для запуска.Точно так же мы не можем запустить его, поскольку у нас даже не настроена база данных ... Поэтому вместо этого наш план состоял в том, чтобы просто извлечь SQL-код, сгенерированный отчетом, и передать его дальше.

Мыиспытал ту же проблему, но решение на самом деле довольно простое.Если у вас нет доступа к исходному источнику данных, просто создайте новый «пустой» источник данных (например, соединение ODBC).Пока работает соединение с источником данных (т.е. это какой-то действительный источник данных, он работает нормально).При запуске опции «Показать SQL» укажите отчет на этот источник данных.До тех пор, пока вы не попытаетесь на самом деле запустить отчет (и только покажете SQL), операция не завершится неудачей.В любом случае, это сработало для нашей ситуации.(Crystal Reports 2008)

(могу дать более подробную информацию, если это поможет.)

6 голосов
/ 14 июля 2010

Должна быть возможность узнать некоторые подробности о существующем источнике данных, выбрав База данных> Установить местоположение источника данных ....

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

5 голосов
/ 14 июля 2010

Без пароля я не уверен, сколько ты сможешь сделать.Кажется, «Показать запрос SQL» требует сначала запустить отчет, а затем сгенерировать план SQL.

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

3 голосов
/ 21 января 2015

Просмотр SQL команды в файле отчета Crystal

Иногда у вас есть только файл отчета, но не связанная структура базы данных, используемая в отчете.Это часто встречается при работе с примерами отчетов о функциях, которые вы хотите имитировать.Это обходной путь ТОЛЬКО для того, чтобы вы могли видеть SQL команды, на которой основан отчет Crystal, когда у вас нет соединения с базой данных, на котором основан отчет.По сути, диалоговое окно должно быть удовлетворено, прежде чем оно будет отображать SQL, поэтому мы дурачим его легитимным источником данных, а не тем, который будет работать с SQL, который фактически находится в команде SQL.

Почему в отчете используется команда?Разве Crystal Reports не может связывать таблицы?Если отчет Crystal Report основан на наборе записей, который слишком сложен для функциональных возможностей связывания таблиц в Crystal Reports, отчет вместо этого может основываться на запросе SQL, который обычно разрабатывается / тестируется в другом инструменте редактора и вставляется в команду.Это позволяет использовать расширенные функции SQL.

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

Простого файла Microsoft Access .mdb, сохраненного в простом месте, будет достаточно.Я поместил мой путь C: \ A_test \ test.mdb, чтобы его было легко найти.Если у вас его нет, найдите в Google пример файла MDB и загрузите его, сохранив его с именем и местоположением, которое вы можете запомнить.(Вы никогда не откроете этот файл, а просто подключитесь к нему.) После сохранения файла откройте администратор ODBC и создайте новый источник данных.(Вы можете быстро перейти к ODBC Administrator через Пуск> введите ODBC в поле Поиск). На вкладке Пользовательский DSN нажмите кнопку Добавить.Прокрутите список драйверов до Microsoft Access Driver (* .mdb), выберите его и нажмите кнопку Готово.В поле Имя источника данных введите имя (я использовал MyTest).Нажмите кнопку «Выбрать» и выберите файл MDB, сохраненный на предыдущем шаге, нажмите «ОК».Нажмите ОК еще раз.Вы увидите ваш новый источник данных в списке под именем, которое вы ему дали.Нажмите ОК.Теперь у вас есть источник данных, который вам понадобится для следующих шагов.

  1. Откройте отчет Crystal, для которого вы хотите увидеть команду SQL, и нажмите кнопку Эксперт базы данных или База данных> Меню базы данных Эксперт.
  2. В разделе «Выбранные таблицы» щелкните правой кнопкой мыши команду и выберите команду «Просмотр команды»
  3. Появится окно выбора источника данных.Выберите источник данных, который вы создали (или тот, который вы уже используете) и нажмите кнопку Готово.Окно View Command должно открыться с SQL на левой панели.Скопируйте SQL в ваш любимый текстовый редактор.
0 голосов
/ 15 октября 2018

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

Создайте локальную базу данных или используйте базу данных, хранящуюся на сервере, добавьте ее в ODBCИсточники данных и использовать его при подключении.После успешного подключения вы сможете просматривать SQL-запрос без ошибок.

...