Проблемы с обновлением базового окна

Есть задача вызвать окно, послевыполнения в окно деталей добавляется новая запись. Проблема состоит в том, что после закрытия вызванного окна по кнопке ОК необходимо обновить окно деталей (т.е. в нем должна появиться новая запись).

Нравится

1 комментарий

Предполагаю, что окно унаследовано от wnd_BaseEdit ?
Общий принцип такой:
- перед вызовом своего окна присвойте его атрибуту NotifyObject ссылку на окно-получатель сообщения о закрытии;

    var wnd_Test = Services.GetNewItemByUSI('wnd_Test');
    wnd_Test.Attrbutes('NotifyObject') = Self;
    wnd_Test.Prepare();
    wnd_Test.Show();

- в обработчике кнопки ОК своего окна, по окончании других действий, отправьте сообщение MSG_OK.

    SendNotify(Self, 'MSG_OK', '');

- в обработчике OnNotify вызывающего окна, обработайте это сообщение (если деталь унаследована от wnd_BaseGridArea, то не нужно - такая обработка уже реализована):

    if (Message == 'MSG_OK')
    {
        // обновить датасет
    }

Можете также посмотреть, как реализовано в стандартных сервисах wnd_BaseGridArea/wnd_BaseDBEdit
--------------------------------------------
Лабитек
Центр разработки приложений

Показать все комментарии