Предел выбора параметров Crystal Reports?
Я пытаюсь создать отчет Crystal Reports 11 для базы данных Oracle, сгруппированной по пользователям. У меня более тысячи пользователей. Я хочу создать поле параметра, которое предлагает человеку выбрать, для каких пользователей они хотели бы просмотреть результаты. Однако мое поле выбора параметров показывает только 221 возможных пользователей. Пользователи отображаются в алфавитном порядке из-за оператора SQL "Порядок". Мне интересно, есть ли ограничение на количество динамических значений по умолчанию, которые может хранить поле параметра. Любая помощь с этим была бы великолепна.
5 ответов
Ограничение по умолчанию в Crystal 11, по-видимому, составляет 1000 (содержится в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.0\Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords), поэтому ваша проблема может заключаться в построении самого поля параметра. Убедитесь, что это динамическое поле параметров, которое будет запрашивать базу данных при использовании, так как показанное нечетное количество значений заставляет меня думать, что это был список, сгенерированный при первом запуске и сохранении отчета, и, следовательно, список статических параметров.
Я попытался воспроизвести вашу ситуацию, используя таблицу базы данных с более чем 5000 записей.
В этом поле я создал динамический параметр (Crystal Reports XI R3, полная версия). Он генерировал уникальный список значений, который, казалось, был около 1000 (я начал считать его, но оценил его общий размер на основе положения полосы прокрутки).
Я добавил запись реестра HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite \Crystal Reports\DatabaseOptions\LOV\MaxRowsetRecords (String) и установил для нее значение -1.
С изменением записи реестра LoV включил все значения.
Когда у LoVs было ограничение записи, казалось, что выборочные значения из каждой буквы алфавита без разбора. Может быть, это то, с чем вы сталкиваетесь.
221 звучит ужасно низко, чтобы быть пределом выбора по умолчанию, по крайней мере для меня. Но есть способ увеличить количество записей, которые извлекают эти динамические параметры. Это включает редактирование реестра.
Просто чтобы уточнить, что значение MaxRowsetRecords НЕ относится к числу различных значений параметров, из которых вы можете выбрать. Это максимальное количество записей, которые Crystal просматривает, из которых он извлекает значения динамических параметров. Скорее всего, если вы посмотрите на свой запрос, вы обнаружите, что в первой 1000 записей содержится 221 уникальное значение. Примените изменение реестра к большему числу, и вы должны увидеть больше значений параметров, из которых вы можете выбирать.
Следующее предназначено для Crystal Reports 2013.
Добавить новую запись реестра под:
- Для 32-битного компьютера
HKEY_HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions
- Для 64-битного компьютера (примечание Wow6432Node)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions
Добавьте новый ключ на этом уровне с именем:
\LOV
Добавьте строку с именем
MaxRowsetRecords
Установите значение на любое ограничение, которое вы хотите, я выбрал
100000
в разработке. (0
или же-1
, что означает все значения, больше не поддерживается.)После внесения изменений в реестр перезапустите уязвимую службу или приложение, как требуется.