Перейти к содержанию

Атрибут типа «Запись». Получение ID выбранных записей

Введение

Здесь представлен пример получения ID записей, выбранных в таблице, и передачи полученных ID в сценарий.

Прикладная задача

Имеются шаблоны записей: «Заказы» и «Товары».

Шаблон «Заказы» связан с шаблоном «Товары».

На форме заказа имеются таблицы «Избранные товары» и «Отложенные товары».

Требуется:

  • На форме заказа:
    • получить ID избранных и отложенных товаров, выбранных в заказе;
    • сохранить полученные ID в атрибут «Выбранные товары» в заказе;
    • сохранить заказ на выбранные товары.
  • В списке всех товаров:
    • получить ID выбранных товаров;
    • оформить заказ на выбранные товары.

Настройка приложения

Настройка сохранения выбранных товаров в форме заказа

  1. Создайте шаблоны записей «Заказы» и «Товары».
  2. В шаблоне «Заказы» создайте атрибуты «Избранные товары», «Отложенные товары» и «Выбранные товары» со следующими свойствами:

    • Тип данных: запись
    • Связанный шаблон: Товары
    • Хранить несколько значений: флажок установлен
  3. Откройте конструктор основной формы шаблона «Заказы».

  4. Поместите на форму атрибут «Выбранные товары».
  5. Для поля «Выбранные товары» на форме установите доступ «Только чтение» и представление «Раскрывающийся список».
  6. Создайте на форме вкладки «Избранное» и «Отложенное».
  7. Поместите атрибут «Избранные товары» на вкладку «Избранное», а атрибут «Отложенные товары» — на вкладку «Отложенное».
  8. Для полей «Избранные товары» и «Отложенные товары» на форме выберите представление «Таблица».
  9. Добавьте на области кнопок таблиц «Избранные товары» и «Отложенные товары» кнопку «Создать» .

  10. Сохраните форму.

  11. Перейдите к правилам для формы.
  12. Добавьте правило со следующим действием:

    • Элемент формы: Выбранные товары
    • Действие: установить значение
    • Новое значение: N3
    # Импортируем библиотеки для работы с текущим контекстом 
    @prefix session: <http://comindware.com/ontology/session#>.
    @prefix context: <http://comindware.com/ontology/session/context#>.
    {
    # Получаем ID всех записей,
    # выбранных во всех таблицах на форме
        session:context context:selectedIds ?value.
    }
  13. Сохраните правила для формы.

Настройка заказа выбранных товаров из списка всех товаров

  1. В шаблоне «Товары» создайте кнопку «Оформить заказ» со следующими свойствами:

    • Контекст операции: запись
    • Операция: вызвать событие «Нажата кнопка»
    • Результат выполнения: обновить данные
    • Отображать диалоговое окно: флажок установлен
    • Контекст операции: запись
  2. На вкладке «Локальные переменные» добавьте переменную:

    • Отображаемое название: Выбранные товары
    • Тип данных: запись
    • Системное имя: ВыбранныеТовары
    • Шаблон: Товары
  3. Сохраните кнопку.

  4. Нажмите кнопку «Отображать диалоговое окно».
  5. Сохраните кнопку.
  6. Поместите в диалоговое окно переменную «Выбранные товары».
  7. Установите для поля «Выбранные товары» доступ «Только чтение» и представление «Раскрывающийся список».
  8. Сохраните диалоговое окно.
  9. Перейдите к правилам для диалогового окна.
  10. Добавьте правило со следующим действием:

    • Элемент формы: Выбранные товары
    • Действие: установить значение
    • Новое значение: N3
    # Импортируем библиотеки для работы с текущим контекстом 
    @prefix session: <http://comindware.com/ontology/session#>.
    @prefix context: <http://comindware.com/ontology/session/context#>.
    {
    # Получаем ID всех записей,
    # выбранных во всех таблицах на форме
        session:context context:selectedIds ?value.
    }
  11. Сохраните правила для формы.

  12. Вернитесь к свойствам кнопки и сохраните её.
  13. Поместите кнопку «Заказать» на область кнопок для таблицы «Все записи» шаблона «Товары».
  14. В текущем приложении создайте сценарий «Заказ выбранных товаров».
  15. Настройте событие «Нажатие кнопки»:

    • Контекстный шаблон: Товары
    • Кнопка: Заказать
  16. Добавьте действие «Создать запись» со следующими свойствами:

    • Целевой шаблон записи: Заказы
  17. Добавьте действие «Изменить значения атрибутов» со следующими свойствами:

    • Атрибут: Выбранные товары
    • Операция со значениями: заменить
    • Значение: формула
    # Получаем значение локальной переменной кнопки, 
    # которая вызвала сценарий
    $$dialogVariables->ВыбранныеТовары

Тестирование

  1. Создайте запись в шаблоне «Заказы».
  2. На форме заказа создайте несколько записей в таблицах «Избранные товары» и атрибут «Отложенные товары».
  3. Сохраните заказ.
  4. Выберите некоторые избранные и отложенные товары с помощью флажков в таблице.
  5. Сохраните заказ.
  6. В поле «Выбранные товары» должны отобразиться ID выбранных товаров.
  7. Откройте таблицу «Все записи» шаблона «Товары».
  8. Выберите несколько товаров с помощью флажков в таблице.
  9. Нажмите кнопку «Заказать».
  10. Должно отобразиться диалоговое окно со списком ID выбранных товаров.
  11. Нажмите кнопку «Заказать».
  12. В таблице «Все записи» шаблона «Заказы» должен появиться новый заказ.
  13. Откройте новый заказ и удостоверьтесь, что в нем правильно указаны ID выбранных товаров.
К началу