|
26.09.2008, 17:11 | #1 |
Участник
|
Обновление формы
Можно ли узнать, что у пользователя открыт экземпляр конкретной формы и дать этой форме команду на обновление??? |
|
26.09.2008, 17:32 | #2 |
Ищущий знания...
|
На сколько я знаю нет. Т.к. все формы выполняются на клиенте. Соответственно, запустив у себя на компьютере Аксапту, вы не сможете в ней увидеть в какой форме сейчас работает Вася Иванов.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
26.09.2008, 19:45 | #3 |
Боец
|
Не знаю, зачем такое понадобилось, но можно сделать так (первое что пришло на ум).
1. Создать таблицу с полями: 1. UserId, 2. Hwnd, 3. Update [NoYes], 4. Имя формы (опционально). 2. Далее, находим в AOT класс SysSetupFormRun, перекрываем метод run() и после вызова super() инициализируем и вставляем запись в нашу табличку: curUserId(), this.hWnd(), Update=No; 3. Используя метод setTimeOut() этого же класса периодически сканим нашу таблицу, ищем там текущее окно и проверяем флаг update==Yes, обновляем форму и сбрасываем его в No Тем временем, при необходимости обновления формы на клиенте, мы с другого клиента, отыскиваем в нашей таблице нужную для обновления форму и взводим флаг update==Yes. Над 3м пунктом можно ещё подумать, может можно найти другой способ, избавився от периодического скана таблицы. PS: Да, естественно, перед закрытием формы не забываем удалять запись из нашей таблички (перекрыть close() в этом же классе) Для информации, класс SysSetupFormRun наследуется всеми формами, так что манипуляции с ним действуют на ВСЕ формы в DAX, поэтому будьте осторожны, при его модификации Последний раз редактировалось DSPIC; 26.09.2008 в 19:50. |
|