В прошлом шаге мы с вами предоставили пользователю самому ввести значение параметра. Однако по канонам проектирования баз данных это считается большой вольностью. "Наука" требует, чтобы пользователю был предоставлен выбор предопределенных значений, среди которых ему и предоставляется право выбора.
Crystal Reports позволяет при построении параметрического поля создать список выбора. Создать такой список можно двумя путями:
Создадим новое параметрическое поле:
В комбобоксе Browse table отображается список доступных таблиц. Выбираем таблицу, значениями из которой будет заполнятся список выбора. В комбобоксе Browse field отображается список доступных полей выбранной таблицы. Обратите внимание: поля отображаются не все, а только те, тип которых совпадает с выбранным в поле Value type. (Список полей может оказаться и пустым). После выбора поля его значением будет заполнен список в левом нижнем углу. Кнопками <, <<, >, >> значения из этого списка можно перемещать в список Default values и обратно. Именно список Default values содержит список ввода, которым будет заполняться комбобокс в окне-приглашении на ввод параметра при открытии отчета.
Если нужно ввести какое-то значение вручную, это значение нужно набрать с клавиатуры в текстовом поле слева от списка выбора. Чекбокс Allow editing on default values позволяет разрешить или запретить редактирование параметра непосредственно в окне-приглашении.
Вставив данное параметрическое поле в отчет, и запустив его, вы увидите окно-приглашение, в котором комбобокс заполнен списком выбора, и требуемое значение параметра выбирается простым щелчком.
Часто бывает, что требуется ввести не одно, а несколько значений параметра (например, сформировать отчет по нескольким товарам). Для этого необходимо поставить галочку в чекбоксе Allow multiple values. Вид окна-приглашения при этом изменится:
Как видите, в окне кроме комбобокса со списком выбора появился список. Кнопка Add добавляет, а кнопка Delete удаляет значение параметра из списка. При нажатии кнопки OK все выбранные значения будут переданы в отчет.