Авторизация



Динамические и каскадные списки выбора

Оценить
(0 голоса)

При необходимости основать поле параметра на поле базы данных, содержимое которого меняется очень часто, для него потребуется создать динамический список выбора. Эта мовая, появившаяся в версии XI возможность позволяет спискам выбора генерироваться автоматически каждый раз, когда пользователь получает приглашение ввести значение в поле параметра. Чтобы создать динамический список выбора, прежде всего, установите в диалоговом окне Create New Parameter переключатель Dynamic (Динамический). С этого момента остальная часть диалогового окна будет меняться в зависимости от выбираемых вами опций.

На заметку! Описываемые в этой главе действия касаются создания динамических и каскад- пых списков выбора только для тех отчетов, которые не публикуются в Crystal Reports Server/BusinessObjects Enterprise. В случае публикации отчета в Crystal Reports Server/ BusinessObjects Enterprise динамические и каскадные списки следует настраивать в среде сервера с помощью Business Views. Более подробную информацию по этому вопросу можно найти в главе 16.

Если это первый динамический список в отчете, в разделе Choose A Data Source (Выберите источник данных) будет доступен только переключатель New (Создать). Если в отчете уже существуют другие динамические списки, вы сможете установить переключатель Existing (Существующий) и выбрать в расположенном напротив него выпадающем списке подходящий из существующих источник данных. Выбрав переключатель New, щелкните на расположенной прямо под ним кнопке Insert (Вставить), чтобы выбрать поле, которое должно использоваться в качестве источника данных для создаваемого списка выбора. В появившемся после этого диалоговом окне в выпадающем списке Value (Значение) выберите поле, которое хотите использовать в качестве источника данных.

Также, при желании, вы можете выбрать поле отчета, которое будет поставлять описания для выбранного вами поля значений. Эта возможность может пригодиться в случае, когда поле параметра требует ввода кодов или аббревиатур (например, табельных номеров торговых представителей вместо их имен), но вы хотите, чтобы в списке выбора рядом с этими кодами или аббревиатурами (или вместо них) отображались их описания. Опция Prompt With Description Only, расположенная ниже в этом же диалоговом окне, отвечает за то, будет список выбора отображать только описания (если хотите, чтобы это было так, установите для этой опции значение True) или значения и описания вместе (если хотите, чтобы это было так, установите для этой опции значение False).

После этого вы можете отсортировать динамический список выбора по выбранному полю значений или полю описаний. Чтобы сделать это, просто установите подходящее значение для опции Sort Order (Порядок сортировки) в разделе Options (рис. 13.10). При появлении диалогового окна Enter Values (Введите значения) с приглашением ввести значения в поле параметра, значения в списке выбора будут отображаться именно в том порядке, который вы указали.

Совет. И хотя вы можете ввести текст в поле напротив опции Prompt Group Text (Текст группы подсказок), при наличии одного единственного динамического списка от этого особой пользы не будет. В таком случае лучше после определения списка выбора ввести текст в поле напротив опции Prompt Text (Текст подсказки). Опция Prompt Group Text больше подходит для каскадных списков выбора, рассматриваемых далее в этой главе.

Создание каскадного списка выбора

Каскадный список выбора похож на состоящий из одного списка динамический список выбора тем, что данные для него также извлекаются из базы данных в реальном времени каждый раз, когда на экране появляется диалоговое окно с приглашением ввести значение в поле параметра. Однако каскадный список выбора состоит из двух или более списков, которые связаны между собой. Например, вы могли бы создать в качестве вышестоящего списка список Customer Name (Имя заказчика), а в качестве нижестоящего — список Order Number (Номер заказа). В этом случае во втором списке отображались бы номера только тех заказов, которые были сделаны заказчиком (заказчиками), выбранным в первом списке.

Шаги по созданию каскадного списка выбора практически ничем не отличаются от шагов по созданию динамического списка выбора (которые были описаны ранее в этой главе), только в этом случае потребуется добавить дополнительные поля для создания каскадной “иерархии”. Возьмем предыдущий пример: чтобы создать каскадный список, состоящий из списков Customer Name (Имя заказчика) и Order Number (Номер заказа), сначала добавьте в диалоговое окно Create New Parameter поле Customer Name, а затем — поле Order Number. В результате будет создана иерархия, называемая “группой подсказок” (коллекция, состоящая из одного или более динамических списков, которые рассматриваются как одно целое), в которой первым будет отображаться динамический список Customer Name, а вторым — динамический список Order Number, ограничиваемый в соответствии со значением, которое выбирается в первом списке. Как^только вы определите последний список выбора в иерархии, щелкните на сообщении Click То Create Parameter (Щелкните, чтобы создать параметр) в столбце Parameters (Параметры), чтобы назначить этот последний список выбора полю параметра. В результате полю параметра, которое вы создаете, будет присвоено значение, выбранное в последнем списке выбора в иерархии.

Вы можете создавать в каскадной иерархии столько уровней, сколько необходимо. Например, вы могли бы добавить сначала поле Country (Страна), за ним — поле State (Штат), за ним — поле ZIP Code (Почтовый индекс) и, наконец, — поле Store ID (Номер склада): каждый находящийся выше по уровню список ограничивал бы следующий за ним список.

Динамические и каскадные списки выбора

Все, что потребуется сделать — это выбрать нужные поля, добавить их в вильном порядке и присвоить поле параметра последнему списку выбора в иерархии.

Внимание! Создавая каскадный список выбора, вы заметите, что Crystal Reports изменяет ит поля параметра, добавляя к исходному имени, которое вы ему присвоили, имя поля из гл»н чета, с которым оно соединено в группе подсказок. При желании вернуть полю парамепщш исходное имя, отобразите окно проводника Field Explorer; отыщите в нем нужное поле ивИ раметра и либо щелкните на его имени и не отпускайте кнопку мыши в течение несколъкшшЬ секунд до тех пор, пока оно не будет переведено в режим редактирования, либо выделшт его имя и щелкните на кнопке Rename (Переименовать) в панели инструментов npoeoomt- ка Field Explorer. После этого вы сможете вернуть полю параметра его исходное имя.

Поскольку группа подсказок (prompt group) содержит более одного списка выбора, у вас появляется возможность настроить сразу два разных набора опций, связанных : текстом подсказок. Во-первых, вы можете изменить добавленный по умолчанию текг^ подсказки для каждого списка выбора в поле Prompt Text, доступном в разделе Options диалогового окна. Во-вторых, вы можете установить еще одно дополнительное значен**? Prompt Group Text (Текст группы подсказок), введя нужный текст в соответствующем поле непосредственно под переключателями Static и Dynamic. Текст, введенный в этом поле, будет отображаться для всей группы подсказок, а текст, введенный в поле Prompt Text для каждого списка выбора, будет отображаться рядом с выпадающим списком данного конкретного списка выбора. Возьмем описанный выше пример с каскадным списком, состоящим из списка Customer Name и списка Order Number: вы могли бы в поле Prompt Text для списка Customer Name ввести Choose Customer: (Выберите заказчика: \ для списка Order Number — Choose Order Number: (Выберите номер заказа:), а в поле Prompt Group Text — Choose Customer/Order Number Combination: (Выберите заказчика и номер заказа:), как показано на рис. 13.11.

Динамические и каскадные списки выбора

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

 

Использование SQL-команды или хранимой процедуры для заполнения списка выбора
Специальные возможности полей параметров
Множественные значения
Диапазоны значений
Управление вводом данных в поле параметра

Добавить комментарий


Защитный код
Обновить