05.09.2019, 15:02 | #1 |
Участник
|
Активная форма пользователей
DAX2009.
Есть табличка и привязанная к ней форма. Как сделать, чтобы при обновлении данных в таблице (update) любым пользователем - у всех пользователей, у которых эта форма активна, она обновилась. Можно, конечно, привязать обновление к setTimeOut или просто пользователям сказать чтобы F5 постоянно жали, но хотелось бы чтобы реалтайм и все красиво...
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! |
|
05.09.2019, 15:55 | #2 |
Участник
|
Задание некорректно сформулировано на мой взгляд.
В чем необходимость принудительного обновления данных? Оповещение о том что данные изменились - нормально и решается с помощью различных eventов вполне аккуратно. |
|
05.09.2019, 17:10 | #3 |
Участник
|
Ну, представьте себе, что Вы добились чего хотели. Форма обновляется.
1. Пользователь начал что-то изменять на форме. Но тут форма обновилась. Все то, что он вводил - удалилось. Надо начинать заново 2. Пользователь просто смотрит список. Но тут форма обновилась. Скорее всего, весь список "передернулся". Т.е. та строка на которую пользователь смотрел, скорее всего, куда-то уедет. Надо искать ее заново Другими словами, такое автообновление имеет смысл только для очень специфических форм. Для обычных форм заказов, например, работать с такой автообновляемой формой станет невозможно Т.е. в данном случае надо начать с вопроса "зачем?". Что именно хотят получить пользователи от такого автообновления и нельзя ли это реализовать как-то по другому? Какие проблемы будут если пользователь своевременно не увидит обновление, сделанное другим пользователем? Насколько критичны эти проблемы? Ну, и т.д. и т.п. В общем, сама постановка задачи не корректная, что и надо постараться донести до пользователей
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2), Pandasama (1). |
06.09.2019, 10:55 | #4 |
Участник
|
Поясняю смысл.
Есть сотрудники склада - грузчики, кладовщики, штабелерщики. Они выполняют разные работы - комплектация, погрузка, разгрузка, перемещение, пополнение, пересчет, проверка ячеек и т.д. Это делается через ТСД и данные, что сделал сотрудник в этот момент времени будут обновляться в этой таблице. Есть старший смены, старший оператор, начальник и помощник начальника склада, директор и прочие руководители. У них есть компьютеры. Они хотят видеть чем занимаются сотрудники. Но не всегда есть возможность подойти близко к компу. Например у старшего смены нужно обойти стойку, а экран видно за 2-3 метра. Я разные виды работ раскрашу разными цветами и издалека будет видно что почем. Да, эта форма только для отображения. И сотрудников 20-25, так что будет видно в пределах одного экрана. Хотя, действительно, может не заморачиваться, сделать автообновление раз в минуту... Просто интересно само понимание, можно так сделать или нет?
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! Последний раз редактировалось БАХ43; 06.09.2019 в 11:10. |
|
06.09.2019, 12:52 | #5 |
Administrator
|
Делали такое на разных проектах в разных версиях. Условия были такими:
1. Форма, которая отображает данные должна иметь один датасорс в виде одной таблицы с кучей полей, т.е. без джойнов (они тормозят). Данные доступны только для чтения. 2. (для AX2012 и D365) крайне желательно исключить всякие Reference Group - это по сути те же джойны 3. Форма должна быть не нагружена контролами, т.е. условно - один грид и все. Пара кнопок - максимум 4. Периодическая операция, обновляющая данные - должна выбирать на обновление записи с пессимистической блокировкой (select pessimisticlock myTable) 5. На форме при ее открытии, нужно вызвать setTimeOut, который обновляет данные раз в некий период. Где это применялось: - Отчет ДДС для роли финконтролера банка - Перечень работ - кто чем в данную минуту занимается. Цветовой подкраской активно пользовались, т.к. сотруднику, мониторящему, к примеру, денежный поток - нужно было оперативно видеть картину остатков по счетам и цветом видеть уменьшающиеся остатки, а также уход в овердрафт. А в перечне работ цветом выделялись срочные, внеплановые (и еще по классификации) работы
__________________
Возможно сделать все. Вопрос времени |
|
06.09.2019, 13:00 | #6 |
Участник
|
Цитата:
Зачем ок понятно а вот почему именно в аксапте как инструмент? почему к примеру не Excel или web страница? Последний раз редактировалось axm2017; 06.09.2019 в 13:09. |
|
06.09.2019, 14:38 | #7 |
Участник
|
Цитата:
обратно в Аксапту. Вы предлагаете на ТСД еще Эксель поставить? Или из Аксапты в реалтайме данные в эксель передавать?
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! |
|
06.09.2019, 14:46 | #8 |
Участник
|
Цитата:
5. На форме при ее открытии, нужно вызвать setTimeOut, который обновляет данные раз в некий период.
Ладно, не буду заморачиваться, сделаю через setTimeOut. Вопрос закрыт.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! |
|
06.09.2019, 15:17 | #9 |
Участник
|
|
|
06.09.2019, 17:19 | #10 |
Участник
|
Цитата:
Альтернатива - это тот, кто проводил изменения подает сигнал (или команду) о необходимости обновления (другой клиент или SQL). Со стороны SQL - не знаю. Может ли SQL напрямую управлять Axapta ? Со стороны другого клиента - это Business Connector. Правда, какое-то "тяжелое" решение и масса сопутствующих вопросов возникает. Теоретически, можно еще попробовать вписаться с системные периодически автоопросы. Ну, вроде обновления кеша для таблиц с режимом кеширования Entire Table. Но это не очень хорошее решение в виду слабой управляемости и слабой же предсказуемости результата.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|