Наконец-то он готов, ваш отчет… Настоящее произведение искусства! Он не только соответствует малейшим прихотям клиента, но превзошел даже самые смелые ожидания. Вся необходимая информация обобщена и представлена в красивом презентабельном виде в сногсшибательном количестве форм и форматов. Вы «убили» больше месяца на создание своего детища и почти столько же на его тестирование.
И вдруг… непредвиденный форс-мажор! Вместо обычных 20 секунд процесс генерирования вашего отчета почему-то затягивается до целых 2 часов. Рано или поздно любой пользователь SAP Crystal Reports может столкнуться с подобной проблемой, которая становится сильнейшим раздражительным фактором в моменты особой спешки. К счастью, существует целый ряд способов ее устранения, каждый из которых сам по себе может принести дополнительные выгоды для пользователя.
Ниже рассмотрены пять наиболее вероятных причин ненадлежащего функционирования SAP Crystal Reports и способы устранения негативных последствий.
Вероятно, у вас нет возможности изменить данный факт, однако нередко случается, что установка и настройка баз данных была осуществлена далеко не идеально, в результате чего возможны следующие последствия:
• По причине отсутствия индексации некоторые поля не поддаются фильтрации. Это можно легко проверить, воспользовавшись связующей закладкой в окне Database Expert. Проиндексированные поля обозначены цветными отметками. Многие пользователи на собственном опыте убедились в том, что отчет начинает работать в несколько десятков раз быстрее, после того как для важных (в контексте фильтрации) полей создается индекс.
• Использование проекций вместо оригиналов таблиц с целью создания отчета может пагубно сказаться на его функциональных характеристиках. Это объясняется преимущественно отсутствием тех же индексов. Проекция (view) представляет собой набор таблиц (наподобие базового отчета) и часто используется с целью упрощения данных для удобства пользователя. Единственный способ избежать этого заключается во включении в отчет таблиц, составляющих проекцию. Определить, что именно лежит в основе поля: таблица или проекция, можно опять-таки при помощи окна Database Expert, так как поля и проекции находятся в разных списках. Определение таблиц, составляющих проекцию, может оказаться нелегкой задачей и потребовать обращения к технической документации базы данных. Кроме того, при работе с базами данных Oracle отключение опции чувствительности к регистру может в несколько раз повысить скорость генерации отчетов, однако при этом может возникнуть необходимость в переписывании существующих ответов.
2. Использование неправильного ODBC-драйвера
ODBC-драйверы являются связующим звеном между программным решением SAP Crystal Reports и собственно базой данных. Существует целый ряд ODBC-драйверов, которые приспособлены для работы с базами данных различных производителей, однако некоторые из них в работе все же оказываются более эффективными, чем их «собратья».
Единственный способ определить такой ODBC-драйвер заключается в пробном тестировании всех имеющихся драйверов в работе с базой данных. Исходя из опыта, можно сделать вывод о том, что наиболее оптимальным является ODBC-драйвер, поставляемый совместно с программным обеспечением того же производителя, что и база данных.
3. Избыточное использование подотчетов
4. Создание ссылок на таблицы
5. Выбор записей
Дополнительным фактором, оказывающим влияние на оперативность создания и функционирования отчета, является его запрограммированный по времени запуск. В этом случае на скорости работы отчета может сказаться загруженность трафика сети или интенсивное использование базы данных большим количеством пользователей.
Статья публикуется с разрешения Crystalkeen, Mindconnection и Chelsea Technologies Ltd., которым принадлежит авторское право на этот материал.