Списки значений применяются для наглядного выбора данных из таблиц справочников в поля блоков данных.
Для создания списка значений нужно в Object Navigator выделить узел «LOVs» и в меню выбрать пункт Edit->Create. В появившемся диалоге выбрать «Use the LOV Wizard» (рис. 121).
Рисунок 121 - Создание списка значений
На втором шаге мастера, где требуется указать запрос для заполнения списка значений данными, в поле «SQL Query Statement» введите следующий запрос:
SELECT S_ORG.KOD, S_ORG.NAIMEN, S_ORG.INN FROM S_ORG |
На третьем шаге переместите все поля из области «Record Group Columns» в область «LOV Columns» для отображения в списке значений всех полей запроса.
На четвертом шаге, необходимо указать, в какие поля формы будут вставляться выбранные в списке значения (рис. 122). В колонке «Column» указывается имя поля в списке значений, в колонке «Title» – заголовок столбца в списке значений, «Width» – ширина колонки, «Return Value» – адрес элемента формы, в который следует записать выбранные пользователем значения. Далее при описании нового списка значений будем для простоты записывать значения вышеперечисленных колонок таким образом:
|
|
1. KOD - DOVER.KOD_ORG;
2. NAIMEN - DOVER.NAIM_ORG,
где первое значение – колонка «Column», а второе – «Return Value» (рис. 122). Значения остальных столбцов принципиального значения не имеют. Значения «DOVER.KOD_ORG», «DOVER.NAIM_ORG» записать в колонку «Return Value».
Рисунок 122 - Определения полей возврата значений списком
Пятый шаг мастера – это указание заголовка окна списка значений и его физических размеров. В поле «Title» укажем заголовок: «Выбор организации».
На этом работу мастера можно завершить нажатием кнопки Готово.
Теперь в Object Navigator в узле «LOVs» появился новый список значений. Нужно переименовать его в «ORG_LOV» (рис. 123).
Рисунок 123 - Переименование списка значений
Для выбора физического лица создадим новый список значений «FIZ_LIC_LOV». Запрос для списка значений с учетом объединения трех полей (фамилии, имени и отчества) будет следующим:
SELECT kod, Concat(Concat(Concat(Concat(fam, ' '), im), ' '), otch) as fio FROM s_fiz_lic |
На четвертом шаге элементы списка значений будут ассоциированы таким образом:
1. KOD - DOVER.KOD_FIZ_LIC
2. FIO - DOVER.FIO
На пятом шаге зададим заголовок: «Выбор физического лица».
Теперь нужно создать еще один список значений - «NAIMEN_LOV» для выбора наименования товара и справочника в подчиненную таблицу.
Запрос этого списка:
SELECT ALL S_NAIMEN.KOD, S_NAIMEN.NAIMEN FROM S_NAIMEN |
Ассоциированные поля:
1. KOD - DOVER_SP.KOD_S_NAIMEN
2. NAIMEN - DOVER_SP.NAIMEN
Заголовок списка: «Выбор товара».