Последняя версия 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 КБ) 6038 просмотров

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 скачивания

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

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

Сообщение admin » Вс апр 07, 2019 9:05 pm

Иван писал(а):Я так понял попробовав что с числами можно только выполнять действие + или -. А с объектами сохранять значения полей, это верно?

Да, и с числами тоже допустима операция =.

По остальному, что Вы написали, вообще ничего не понял.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

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

Сообщение Иван » Вс апр 07, 2019 11:55 pm

admin писал(а):
Иван писал(а):Я так понял попробовав что с числами можно только выполнять действие + или -. А с объектами сохранять значения полей, это верно?

Да, и с числами тоже допустима операция =.

По остальному, что Вы написали, вообще ничего не понял.


В теории должно ли работать если на форме только числа, то есть без объектов?

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

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

Сообщение admin » Пн апр 08, 2019 8:08 am

Без объектов смысла нет в регистре.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

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

Сообщение Иван » Пн апр 08, 2019 1:05 pm

admin писал(а):Без объектов смысла нет в регистре.


А если использовать список с выбором источника вместо объекта, реально его использовать в данном расширении? Его и заполнять можно по умолчанию при открытии формы, в отличии от объекта, и изменение происходит если был изменен источник.

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

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

Сообщение admin » Пн апр 08, 2019 2:01 pm

Можно использовать только объекты и числа (см. описание). Объекту тоже можно задать значение по умолчанию. Не просто так есть соответствующее свойство у объекта.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

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

Сообщение Иван » Пн апр 08, 2019 7:50 pm

admin писал(а):Можно использовать только объекты и числа (см. описание). Объекту тоже можно задать значение по умолчанию. Не просто так есть соответствующее свойство у объекта.


А вот это я прошляпил, что можно заполнять объекты посредством id записи. Спасибо за наводку, вопрос снял)

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

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

Сообщение drts » Пн апр 29, 2019 1:59 pm

Если один из объектов, определенных в настройках регистра накопления содержит nil (для операции сравнения), расширение не срабатывает, что логично, однако возникают ситуации, когда в регистр нужно внести запись вида: [Наименование] [Склад] [Количество] и [Склад] в моей вселенной ))) молжет быть NIL по тем или иным причинам, так вот такую запись расширение не проводит. Можно конечно вместо нила в объекте задать какое-нибудь значение по умолчанию типа "Не определен", но может можно сделать операции '=' через OR (если объектов для сравнения больше одного)?

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

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

Сообщение admin » Вт апр 30, 2019 9:40 pm

Посмотрю на досуге, что можно сделать.

Аватара пользователя
Иван
Интересующийся
Сообщения: 68
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 4 раза
Поблагодарили: 2 раза

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

Сообщение Иван » Чт июн 06, 2019 5:34 pm

Не критическаий баг. Для информации, может поправите по возможности.

Если у объекта на форме регистра (ссылающегося на форму) в названии объекта есть точка то выдает ошибку.

/////////////////

+ Уточнение. Название поля с точкой не объект так же не проходит.
Вложения
2019-06-06 (1).png
2019-06-06 (1).png (10.81 КБ) 1229 просмотров

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

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

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

Если задавать значение чекбоксу через меню сервис-установить значение (например при массовой работе с несколькими записями), то расширение не срабатывает. Как обойти?


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