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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.06.2014, 16:04   #1  
userax2009 is offline
userax2009
Участник
 
24 / 10 (1) +
Регистрация: 16.05.2014
Цитата:
Сообщение от Logger Посмотреть сообщение
Ну почему же ?
Можно запихнуть анализатор сюда :
\Classes\SysSetupFormRun\selectControl

и запоминать какой контрол активировался и.т.п.
А если только для одной формы интересно, то аналогичный метод для конкретной формы.
Обьясните пожалуйста более подробней как это сделать
Старый 25.06.2014, 16:43   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от userax2009 Посмотреть сообщение
Обьясните пожалуйста более подробней как это сделать
Например, так

X++:
public boolean selectControl(FormControl _control)
{
    #GRD_sysDataBaseLogFixStack4Button // GRD_sysDataBaseLogfixStack_pkoz // pkoz 19.05.2011
    boolean ret;
    ;
    // GRD_sysDataBaseLogfixStack_pkoz // pkoz 19.05.2011 -->
//    if (GRD_isPkoz())
    {
        //mes = strFMT("%1 : %2", Element.name(),  _control.name());
        //info::messageWinAddLine(mes);
      //  info::messageWinAddLine( strFMT("%1 : %2 : %3", Element.name(),  _control.name(), ret));
        /*
         info::messageWinAddLine( strFMT("%1 : %2 : %3 : %4",
            this ? this.name() : "",
            _control ? _control.name() : "",
            ret,
            classid2Name(_control ? _control.handle() : 0)
            ));
        */
        if (_control)
        {
            switch (_control.handle())
            {
            case classNum(FormButtonControl)         :    // button
            case classNum(FormCommandButtonControl)  :   // commandButton
            case classNum(FormFunctionButtonControl) :  // menuItem
            case classNum(FormMenuButtonControl)     : // MenuButton
                    if (infolog)
                    {
                        infolog.globalCache().set(#GRD_FixStack4Button, #GRD_FixStack4ButtonMainKey, [
                            this ? this.name() : "",
                            _control ? _control.name() : "",
                            _control ? _control.id() : 0,
                            ret
                        ]);
                    }
                    break;
            }
        }

    }
    // GRD_sysDataBaseLogfixStack_pkoz // pkoz 19.05.2011 <--

    ret = super(_control);

    return ret;
}
Это цитата из нашего кода. Он проверяет, что тип выбранного контрола - кнопка, запоминаем информацию о нем в глобальном кеше. А затем хитрым образом прокидывает её на сервер в начале транзакции (и при наличии еще ряда оптимизаций, минимизирующих клиент серверный трафик) и там уже использует при записи в SysDatabaseLog - ставит в стек вызовов имя кнопки и формы с которого он начинался. Естественно мы сохраняем стек вызовов в SysDataBaseLog ( в отличие от стандартного приложения)
За это сообщение автора поблагодарили: S.Kuskov (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поле в гриде не из датасорса Katuxa DAX: Программирование 9 01.03.2013 16:24
Закрыто поле на таблице kaw DAX: Программирование 2 15.03.2012 10:55
Пробелы теряются в текстовом поле erudit DAX: Программирование 20 07.04.2011 17:47
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
Поле "Оплатить до" в строке общего журнала longson DAX: Функционал 7 29.03.2008 14:38

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

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

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