Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Работа с регистрами

Расширение функционала и существующих возможностей программы с помощью модулей расширений и плагинов от сторонних разработчиков.

Модератор: Разработчики расширений

Аватара пользователя
admin
Разработчик
Сообщения: 4516
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 73 раза

Работа с регистрами

Сообщение admin » Чт сен 20, 2018 11:31 pm

1. Копировать в регистр
Расширение копирует данные формы и ее подчиненные данные в другую форму, называемую регистром. Это позволяет решать некоторые задачи, в которых имеется три уровня подчиненности данных: Операция->Изделие->Комплектующее, Меню->Блюдо->Продукты, Операция->Услуги->Работы, материалы и т. д. Возможности запросов ограничены, они могут извлекать данные только из двух уровней подчиненности: формы и таблицы. Но если в таблице есть объекты, которые имеют какой-то состав (например, изделие состоит из комплектующих), то запрос не может получить этот состав. Для этого приходилось связывать формы запросами и использовать свойство объекта "Заполнить таблицу". Вместо этого можно просто копировать нужные для анализа данные в отдельную форму и использовать простые запросы для получения результатов. При этом интерфейс программы заметно упростится, т. к. будет избавлен от лишних элементов.

Для того, чтобы легче было разобраться с настройками действия сделал такой сводный рисунок на примере демо-базы.
REGISTERDEMO.png
REGISTERDEMO.png (94.08 КБ) 6039 просмотров

2. Записать в регистр остатков
Реализация хранения итогов в форме, называемой регистром остатков. С помощью этого действия вы сможете, к примеру, вычислять остатки товаров на текущий момент. Это альтернатива вычислению остатков с помощью запроса. Запросу приходится каждый раз просматривать таблицы, чтобы вычислить остатки. Если данных много, это может занимать некоторое время. В регистре остатки уже рассчитаны и их получение происходит практически мгновенно. Расчет остатков происходит при сохранении и удалении записей. Действие ищет в регистре соответствующую запись и меняет в ней числовое поле: увеличивает или уменьшает значение в зависимости от выбранной операции. Если запись не найдена, то она добавляется. Действие может предупреждать об отрицательных остатках. Предупреждение отображается в окне вывода.

1.1 - добавлено действие "Записать в регистр остатков".
1.0 - первая версия.

Registers.zip
(6.96 КБ) 105 скачиваний
Вложения
REGBALANCEDEMO.zip
Демонстрация регистра остатков
(107.52 КБ) 188 скачиваний
Registers 1.1.zip
Актуальная версия
(10.9 КБ) 152 скачивания
REGISTERDEMO.zip
Демонстрация копирования в регистр
(78.19 КБ) 162 скачивания

Аватара пользователя
Develop-Soft
Сообщения: 716
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 35 раз
Поблагодарили: 163 раза
Контактная информация:

Re: Работа с регистрами

Сообщение Develop-Soft » Ср июн 19, 2019 2:36 pm

drts писал(а):Как обойти?

Походу - никак... Операции "Сервис"а выполняются без проверок и какого-либо взаимодействия с формой.

Аватара пользователя
admin
Разработчик
Сообщения: 4516
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 73 раза

Re: Работа с регистрами

Сообщение admin » Ср июн 19, 2019 3:46 pm

Верно. Скрипт или в расширении smart использовать функцию smart_setfieldvalue (точно не помню не отключал ли я там afterpost).

drts
Опытный
Сообщения: 349
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск
Благодарил (а): 17 раз
Поблагодарили: 3 раза

Re: Работа с регистрами

Сообщение drts » Ср июн 19, 2019 5:59 pm

Ок. Скрипт, значит скрипт.


Вернуться в «Расширения и плагины»