Самая странная проблема с отчетами Crystal

Это очень странно. У меня есть CR, запуск которого занимает более 30 минут. Он использует 5 больших таблиц и запрашивает сервер. Я сделал представление на сервере IBM i для сбора данных. По какой-то причине он не дает мне данных о ЧР за 12.08. Когда я запрашиваю эту дату на сервере, у него есть данные, и даже если я сделаю быстрый отчет о CR, он покажет все данные, включая 2013 год.

Причина может быть в этом >

Когда я создавал представление, я по ошибке использовал несколько разных баз данных. И одна из двух баз данных использовалась как часть очистки данных. Так что, возможно, у него не было данных после 8.12/

Но с этого момента я также изменил вид, чтобы добавить несколько новых столбцов, и он это делает и даже показывает их в данных, которые он показывает (до 8/12).

Таким образом, это говорит мне о том, что CR полностью использует новый вид.

Так что я могу заново создать CR, но это довольно утомительно. Может, я что-то не так делаю?


person user2734217    schedule 17.09.2013    source источник


Ответы (2)


Crystal Reports, как правило, лучше справляется с отчетами, чем с обработкой запроса. Для более быстрого и простого способа отладки часто лучше создать в базе данных процедуру, которая объединяет данные из различных источников. Получив нужные данные, используйте Crystal для отображения этих данных.

Другими словами, старайтесь не делать в Crystal больше работы, чем необходимо. Конечно, группировка, заголовки и красивое форматирование будут сделаны там. Но все запросы, объединение и сортировку лучше выполнять в вашей базе данных. Если там запрос медленный, то можно оптимизировать там. Если возвращаются неправильные данные, вы исправляете свою процедуру до тех пор, пока она не вернет то, что вам нужно.

Дополнительным преимуществом является необходимость внесения изменений в отчет. Если данные должны поступать из другого места, вы можете изменить процедуру и никогда не прикасаться к Crystal. Если форматирование необходимо изменить, вы можете изменить Crystal и никогда не касаться процедуры. Вы меняете меньше, и поэтому вам не нужно все тестировать.

person thursdaysgeek    schedule 17.09.2013

Привязан ли кристальный отчет к рабочему серверу?

Если вы используете SQL Server, вы можете изменить SQL, составляющий ваше представление, изменив имена таблиц следующим образом: databasename..tablename Я не уверен, как сделать то же самое в другом СУБД.

Если вы измените свою таблицу таким образом, чтобы представление запрашивало таблицы из правильной не очищенной базы данных, и вы по-прежнему не получаете данные более поздние, чем 8/12, проверьте, есть ли ограничения в операторах WHERE и/или HAVING, или если в разделе ON JOIN есть неявные/явные ограничения.

person bf2020    schedule 01.06.2014
comment
Я забыл еще одну вещь: если вы работаете с представлением, возможно, представление указывает на устаревшую таблицу... - person bf2020; 02.06.2014