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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2008, 16:10   #1  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Динамическое создание метода.
Есть ли возможность на лету создать некий метод из некого текстового буфера?

Сорри, если тема уже обсуждалась, поиск удволетворительных ризалтов не дал(

Последний раз редактировалось HorrR; 18.02.2008 в 16:15.
Старый 18.02.2008, 16:16   #2  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
runBuf
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 18.02.2008, 16:26   #3  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Или посмотрите внизу страницы уже нашлась аналогичная тема!
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 18.02.2008, 16:28   #4  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Ребята, огромное спасибо за участие, но неужели сложно, рас уж вы отписались хоть немного конкретики. В первом случае хотя бы элементарный пример, во втором ссылка.
З.Ы Мну есть фактически ламер только познающий просторы великой и могущественной Аксапты)
__________________
Axapta has seduced me deadly!
Старый 18.02.2008, 16:33   #5  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вообще в Axapte если вы знаете волшебное слово, то всё легко найти.
По AOT поиск запустить. Обязательно, что нибудь выдаст.
Вот такие волшебные слова вам и сказали.
Старый 18.02.2008, 16:42   #6  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Мда, криво я искал( На то и ламер, наверное. Да, уже увидел, но фактически runbuf выполняет стейтменты из текста, а мне нужно именно создать метод! и закрепить его за неким классом\таблицей. З.Ы И опять я изначально плохо сформулировал вопрос, ещё раз сорри.
__________________
Axapta has seduced me deadly!
Старый 18.02.2008, 16:47   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
А зачем, если не секрет?
Старый 18.02.2008, 16:50   #8  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Найти нужный узел в AOT, добавить метод и сохранить. Только так делать не рекомендуется
Возможно ли перекрыть событие динамически?
За это сообщение автора поблагодарили: HorrR (1).
Старый 18.02.2008, 16:50   #9  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
А зачем, если не секрет?
Да какие тут секреты, автоматически генерить парм-методы, а то меня достало бест-практисы подобного рода фиксить. З.Ы Чё-то мне подсказывает, что надо иметь дело с DictClass and DictMethod, но вот только каким образом. Особенно неясным остаётся вопрос о том, как же можно забиндить метод к классу.
__________________
Axapta has seduced me deadly!

Последний раз редактировалось HorrR; 18.02.2008 в 16:57.
Старый 18.02.2008, 16:56   #10  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Вот кусочек из того, как это у нас сделано:

X++:
void insertParmMethod(GenAccessorType _accessorType, str typeName, SysElementName name )
{
    TreeNode        n1;
    SysElementName  methodName;
    ;

    name        = strlrtrim(name);
    if(_accessorType==GenAccessorType::Parm)
        name        = strUpr(substr(name,1,1))+substr(name,2,strlen(name));

    methodName  = strFmt(_accessorType==GenAccessorType::Parm ? 'parm%1' : '%1' , name  );
    if (class_Node)
    {
        class_Node.AOTadd( methodName );
        n1 = class_Node.AOTfindChild( methodName );
        n1.AOTsave();
        n1.AOTsetSource( this.genParmMethod(_accessorType, typeName, name ), false );
        n1.AOTsave();
    }
}
За это сообщение автора поблагодарили: HorrR (1).
Старый 18.02.2008, 16:58   #11  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от dn Посмотреть сообщение
Найти нужный узел в AOT, добавить метод и сохранить. Только так делать не рекомендуется
Возможно ли перекрыть событие динамически?
Спасибо, кажется то, что нужно. А почему не рекомендуется?
__________________
Axapta has seduced me deadly!
Старый 18.02.2008, 17:02   #13  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от oip Посмотреть сообщение
Вот кусочек из того, как это у нас сделано:
И вам спасибо, добрый вы человек!)
__________________
Axapta has seduced me deadly!
Старый 18.02.2008, 17:20   #14  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от oip Посмотреть сообщение
Кстати, раз вы генерили парм методы, как вы решили проблему с присвоением значений по умолчанию, если EDT arrayelements>=2 и это EDT числового типа?
__________________
Axapta has seduced me deadly!
Старый 18.02.2008, 17:22   #15  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Сообщение от HorrR Посмотреть сообщение
Спасибо, кажется то, что нужно. А почему не рекомендуется?
Если пишете мастер для автоматического создания методов, то это вполне нормально. Не рекомендуется создавать таким способом методы динамически, сложно будет потом "читать" такой код.
Старый 18.02.2008, 18:25   #16  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вот еще - не совсем по теме, но все же:
http://www.axaptapedia.com/ClassBuild_Class
За это сообщение автора поблагодарили: HorrR (1).
Старый 18.02.2008, 18:32   #17  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
А чего, очень даже и по теме, класс как я понял предоставляет весьма удобный интерфейс для конструирования нового класса, а эта задача тоже весьма нетривиальна и интересна. Большое спасибо! Риспект!
__________________
Axapta has seduced me deadly!
Старый 19.02.2008, 09:34   #18  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от HorrR Посмотреть сообщение
Ребята, огромное спасибо за участие, но неужели сложно, рас уж вы отписались хоть немного конкретики. В первом случае хотя бы элементарный пример, во втором ссылка.
З.Ы Мну есть фактически ламер только познающий просторы великой и могущественной Аксапты)
Странно, что может быть конкретнее конкретной ссылки? Похоже Вы даже ее не смотрели, раз не нашли по нейконкретный пример
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 19.02.2008, 10:22   #19  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
Цитата:
Сообщение от HorrR Посмотреть сообщение
Да какие тут секреты, автоматически генерить парм-методы, а то меня достало бест-практисы подобного рода фиксить.
Все равно не понял. Зачем автоматом генерить parm методы на классах?
Есть же стандартный скрипт, который сильно упрощает создание parm методов.

А как Вы будете выбирать для каких полей класса созадвать соотв. pram метды?
Или Вы намерены перебирать Все переменные, которые описаны в ClassDeclaration ?
Старый 19.02.2008, 10:25   #20  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Стандартный - менее удобный чем тот, что есть на аксаптапедии.
Теги
aot, метод, программно, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Динамическое создание DataSource на форме, и добавление элементов дизайна. epack DAX: Программирование 12 24.11.2010 15:31
Динамическое создание контролов на форме Yari DAX: Функционал 8 23.08.2007 13:51
Динамическое создание элементов дизайна на Web-формах AvrDen DAX: Программирование 0 04.08.2005 12:58
Динамическое создание методов. Ratmir DAX: База знаний и проекты 19 18.08.2004 09:13
Динамическое создание объектов на формах Prof DAX: Программирование 5 08.12.2003 15:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:37.