AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2006, 13:27   #21  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Выложил расширение номер 2
За это сообщение автора поблагодарили: sukhanchik (3).
Старый 15.12.2006, 13:34   #22  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от belugin Посмотреть сообщение
Выложил расширение номер 2
Это уже есть в 4.0.
Старый 15.12.2006, 16:42   #23  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
также там есть подобия sidax, axpath, axunit2, правда табакса нет (хотя оригинальный портирован) - вобщем юзабилити улучшается, что не может не радовать.
Старый 15.12.2006, 19:07   #24  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
Выложил расширение номер 2
Ну во-первых спасибо belugin за его выложенный код по стеку вызовов.

Во-вторых есть возможность решить тоже самое более простым путем (без создания кучи классов), причем решить также и для случая когда SysInfoAction определен в строке инфолога
Итак:
1. Добавляем в табличку SysInfolog поле типа контейнер xppCallStack
2. В Info\add пишем код (в конце метода):
X++:
    if (_helpUrl || _sysInfoAction)
    {
        tmpInfoTable.helpUrl       = _helpUrl;
        if (_sysInfoAction)
        {
            tmpInfoTable.action        = _sysInfoAction.pack();
            tmpInfoTable.actionClassId = classIdGet(_sysInfoAction);
        }
        else
        {
            tmpInfoTable.action        = conNull();
            tmpInfoTable.actionClassId = 0;
        }
        // Построение стека вызовов -->
        tmpInfoTable.xppCallStack = xSession::xppCallStack();
        // Построение стека вызовов <--
        tmpInfoTable.insert();
        tmpActionId[this.line()+1] = tmpInfoTable.recId;
    }
    // Построение стека вызовов -->
    else
    {
        tmpInfoTable.clear();
        tmpInfoTable.xppCallStack = xSession::xppCallStack();
        tmpInfoTable.insert();
        tmpActionId[this.line()+1] = tmpInfoTable.recId;
    }
    // Построение стека вызовов <--
Т.е. мы добавляем в эту табличку всегда запись "о себе"
3. Добавляем в форму SysInfologBrowser - в метод context новый menuItem - стек вызовов и кнопку "Стек". На самом деле кнопки достаточно - если она всегда будет отображаться.
4. Создаем свою форму, в данном случае - Dev_StackTrace, с listBox-ом для отображения стека (в Dev_StackTrace есть еще поля - о них речи я не веду, т.к. они не участвуют в отображении стека вызовов)
5. Нехитрый код заполнит listBox (с названием контрола StackListbox):
X++:
    int             i;
    #define.lineToken(' - line ')
    ;
    for (i = 1; i <= conlen(xppCallStack); i += 2)
    {
        StackListbox.add(strfmt('%1%2%3', conpeek(xppCallStack, i), #lineToken, conpeek(xppCallStack, i + 1)));
    }
Здесь - xppCallStack - контейнер стека вызовов, полученный из той самой таблички SysInfolog. Табличка доступна через метод infolog.tmpInfoTable() и в методе context формы SysInfologBrowser доступна как переменная tmpInfo
6. Стандартный класс из таким образом заполненного listbox-а на форме перейдет к коду:
X++:
    SysTraceJumpToSource::doJumpToSource(StackListbox.getText(StackListbox.selection()));
7. Если хочется поиграться с кнопкой на форме SysInfologBrowser - то надо немного подправить класс info (увы - именно там определены контролы на форме SysInfologBrowser)

В общем вот так.
Нюансы:
1. Форма SysInfologBrowser всегда загружена - поэтому для ее отладки требуется перезаход в Аксапту
2. После добавления поля в табличку требуется перезаход в Аксапту
3. Не дай Бог вливать все это добро под включенным АОСом - вылетят все и сразу

2EVGL: Дык не у всех же 4.0 Поэтому и облегчают себе жизнь не дожидаясь, когда это будет сделано в ядре 3.0
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 15.12.2006 в 19:16.
За это сообщение автора поблагодарили: belugin (10).
Старый 18.12.2006, 09:43   #25  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от kashperuk Посмотреть сообщение
P.S.
И как вам девочка? Кто знает фамилию имя?
Летиция Каста, если память не изменяет
Старый 18.12.2006, 10:40   #26  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Летиция Каста, если память не изменяет
Неа. Не угадал
Старый 19.01.2007, 11:43   #27  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
еще одну штуку выложил http://erpkb.com/Axapta/RegExearch
Старый 19.01.2007, 11:54   #28  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от EVGL
...
Извините за скепсис, но если бы программисты с тем же рвением занимались тем, что можно продать, а не интересными "приблудами", уровень благосостояния сообщества повысился бы.
...
У любого человека м.б. хобби. Интересы у всех разные. Кто-то пьет пиво в пабе или сериалы по вечерам смотрит по ящику, кто-то на лыжах катается, кто-то порисовать любит...

Так что не стоит так категорично.
__________________
С уважением,
glibs®
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как добавить теги к теме? mazzy Информация для участников 99 14.08.2009 12:34
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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