Атрибут типа «Запись». Получение ID выбранных записей
Введение
Здесь представлен пример получения ID записей, выбранных в таблице, и передачи полученных ID в сценарий.
Прикладная задача
Имеются шаблоны записей: «Заказы» и «Товары».
Шаблон «Заказы» связан с шаблоном «Товары».
На форме заказа имеются таблицы «Избранные товары» и «Отложенные товары».
Требуется:
- На форме заказа:
- получить ID избранных и отложенных товаров, выбранных в заказе;
- сохранить полученные ID в атрибут «Выбранные товары» в заказе;
- сохранить заказ на выбранные товары.
- В списке всех товаров:
- получить ID выбранных товаров;
- оформить заказ на выбранные товары.
Настройка приложения
Настройка сохранения выбранных товаров в форме заказа
- Создайте шаблоны записей «Заказы» и «Товары».
-
В шаблоне «Заказы» создайте атрибуты «Избранные товары», «Отложенные товары» и «Выбранные товары» со следующими свойствами:
- Тип данных: запись
- Связанный шаблон: Товары
- Хранить несколько значений: флажок установлен
-
Откройте конструктор основной формы шаблона «Заказы».
- Поместите на форму атрибут «Выбранные товары».
- Для поля «Выбранные товары» на форме установите доступ «Только чтение» и представление «Раскрывающийся список».
- Создайте на форме вкладки «Избранное» и «Отложенное».
- Поместите атрибут «Избранные товары» на вкладку «Избранное», а атрибут «Отложенные товары» — на вкладку «Отложенное».
- Для полей «Избранные товары» и «Отложенные товары» на форме выберите представление «Таблица».
-
Добавьте на области кнопок таблиц «Избранные товары» и «Отложенные товары» кнопку «Создать» .
-
Сохраните форму.
- Перейдите к правилам для формы.
-
Добавьте правило со следующим действием:
- Элемент формы: Выбранные товары
- Действие: установить значение
- Новое значение: N3
# Импортируем библиотеки для работы с текущим контекстом
@prefix session: <http://comindware.com/ontology/session#>.
@prefix context: <http://comindware.com/ontology/session/context#>.
{
# Получаем ID всех записей,
# выбранных во всех таблицах на форме
session:context context:selectedIds ?value.
}
-
Сохраните правила для формы.
Настройка заказа выбранных товаров из списка всех товаров
-
В шаблоне «Товары» создайте кнопку «Оформить заказ» со следующими свойствами:
- Контекст операции: запись
- Операция: вызвать событие «Нажата кнопка»
- Результат выполнения: обновить данные
- Отображать диалоговое окно: флажок установлен
- Контекст операции: запись
-
На вкладке «Локальные переменные» добавьте переменную:
- Отображаемое название: Выбранные товары
- Тип данных: запись
- Системное имя:
ВыбранныеТовары
- Шаблон: Товары
-
Сохраните кнопку.
- Нажмите кнопку «Отображать диалоговое окно».
- Сохраните кнопку.
- Поместите в диалоговое окно переменную «Выбранные товары».
- Установите для поля «Выбранные товары» доступ «Только чтение» и представление «Раскрывающийся список».
- Сохраните диалоговое окно.
- Перейдите к правилам для диалогового окна.
-
Добавьте правило со следующим действием:
- Элемент формы: Выбранные товары
- Действие: установить значение
- Новое значение: N3
# Импортируем библиотеки для работы с текущим контекстом
@prefix session: <http://comindware.com/ontology/session#>.
@prefix context: <http://comindware.com/ontology/session/context#>.
{
# Получаем ID всех записей,
# выбранных во всех таблицах на форме
session:context context:selectedIds ?value.
}
-
Сохраните правила для формы.
- Вернитесь к свойствам кнопки и сохраните её.
- Поместите кнопку «Заказать» на область кнопок для таблицы «Все записи» шаблона «Товары».
- В текущем приложении создайте сценарий «Заказ выбранных товаров».
-
Настройте событие «Нажатие кнопки»:
- Контекстный шаблон: Товары
- Кнопка: Заказать
-
Добавьте действие «Создать запись» со следующими свойствами:
- Целевой шаблон записи: Заказы
-
Добавьте действие «Изменить значения атрибутов» со следующими свойствами:
- Атрибут: Выбранные товары
- Операция со значениями: заменить
- Значение: формула
# Получаем значение локальной переменной кнопки,
# которая вызвала сценарий
$$dialogVariables->ВыбранныеТовары
Тестирование
- Создайте запись в шаблоне «Заказы».
- На форме заказа создайте несколько записей в таблицах «Избранные товары» и атрибут «Отложенные товары».
- Сохраните заказ.
- Выберите некоторые избранные и отложенные товары с помощью флажков в таблице.
- Сохраните заказ.
- В поле «Выбранные товары» должны отобразиться ID выбранных товаров.
- Откройте таблицу «Все записи» шаблона «Товары».
- Выберите несколько товаров с помощью флажков в таблице.
- Нажмите кнопку «Заказать».
- Должно отобразиться диалоговое окно со списком ID выбранных товаров.
- Нажмите кнопку «Заказать».
- В таблице «Все записи» шаблона «Заказы» должен появиться новый заказ.
- Откройте новый заказ и удостоверьтесь, что в нем правильно указаны ID выбранных товаров.
Эта статья была полезна 2 чел.