AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.01.2024, 20:24   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,663 / 1172 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
В dax2012 форма для раскрывающегося списка - это просто базовый класс формы. А "TemporaryFormName" - это имя этой новой формы, чтобы не создавать макрос

X++:
protected FormRun formRun()
{
    Form                            form = new Form();

    form.name(identifierstr(TemporaryFormName));
(...)

Т.е. TemporaryFormName - не есть объект-форма. Здесь это используется просто как имя. Текст. Никаких реквизитов формы TemporaryFormName (да и самой формы) здесь не используют

Поэтому блокировка закрытия lookup-формы - это именно что запрет вызова super() в методе closeSelect()

Например, если посмотреть форму Lookup для множественного выбора SysLookupMultiSelectGrid, то у нее именно что метод closeSelect() закомментирован

Здесь же в ссылках ниже есть статья Максима Горбунова Создание Lookup формы, где он также пишет, что надо просто перекрыть closeSelect() если нужен контроль закрытия формы


PS: Чтобы создать форму именно на основе формы из AOT нужен другой синтаксис

X++:
form  = new Form(formstr(Dialog))

SysTableLookup - создает форму "с нуля". Без какого-либо шаблона формы в AOT. Поэтому и перехват методов невозможен. Не известен объект у которого эти методы надо перехватывать
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 26.01.2024 в 20:35.
Старый 27.01.2024, 12:47   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
*
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
PS: Чтобы создать форму именно на основе формы из AOT нужен другой синтаксис

X++:
form  = new Form(formstr(Dialog))
Да, все правильно. Я так и сделал. Написал в самописной форме нужный код и все заработало как мне надо.
Но вопрос был в другом. Как сделать так чтобы перехватить методы формы close, closeSelect классом обработчиком, не модифицируя саму форму. Потому-что как-то странно система себя ведет - методы контролов формы перехватывать можно, а методы формы не получается.

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
SysTableLookup - создает форму "с нуля". Без какого-либо шаблона формы в AOT. Поэтому и перехват методов невозможен. Не известен объект у которого эти методы надо перехватывать
Нет. Дело не в этом. Движок аксапты одинаково работает. Для несуществующей в AOT формы созданной на лету успешно работает перехват методов на контролах.
Старый 29.01.2024, 11:11   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,663 / 1172 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Но вопрос был в другом. Как сделать так чтобы перехватить методы формы close, closeSelect классом обработчиком, не модифицируя саму форму.
Я бы сделал по аналогии с RunBase и формой Dialog. Т.е. передавать в форму ссылку на класс, а в методах формы проверять факт наличия класса и определенного метода этого класса.

Если есть класс и в нем метод с заранее известным именем (validate ?), то выполнить этот метод
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
OZKA's DAX Journal: Модификация формы "Должностные лица". Blog bot DAX Blogs 0 30.09.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Пару вопросов про формы в Аксапте Гений 1С DAX: Программирование 0 05.12.2006 16:28
Метод findValue у источника данных формы demID DAX: Программирование 3 01.10.2004 10:19
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:16.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.