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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.08.2007, 13:42   #1  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
? как узнать имя открываемый формы????
привет всем ещё раз
Мне надо при открытии каждой формы записать ее открытия в логтаблицу,например открываем форму PurchTable
void run()
X++:
{
    super();
    if (!advanced)
        tabHeader.tab(2);
    else
        tabHeader.tab(1);
    MyLog::CreateLogForm( "имя открываемый формы"); 

}
а в лог таблице создал метод CreateLogForm
X++:
Static void CreateLogForm(FormRun  _FormRun)
{
    MytLog       TableLog;
    ttsbegin;
    TableLog.ObjectType=0;
    //TableLog.ObjectName="имя открываемый формы";
    TableLog.Data=systemDateGet();
    TableLog.Time=timenow();
    TableLog.insert();
    ttscommit;
}
ваще я правильно делаю? как узнать имя открываемый формы????
Старый 01.08.2007, 13:44   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Неправильно.
см \Classes\SysSetupFormRun, \Classes\Info\activate
Старый 01.08.2007, 13:58   #3  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Также советую не писать:
X++:
TableLog.Data=systemDateGet();
TableLog.Time=timenow();
а просто установить для этой таблицы свойства createdTime, createdDate в true.
Старый 01.08.2007, 14:36   #4  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
В вашем конкретном примере можно использовать element.name(), но если хотите побыстрее перестать быть новичком, то советую внимательно читать советы EVGL.
Старый 01.08.2007, 15:00   #5  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
...
может вопрос не понятен всем? т.е я хочу в каждой формы в методе run дописать
X++:
MyLog::CreateLogForm( "имя открываемый формы");
. Открываемая форма свое имя должна передать в MyLog::CreateLogForm капаюсь тож, хелпните
Старый 01.08.2007, 15:11   #6  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,740 / 404 (17) +++++++
Регистрация: 23.03.2006
поставь точку останова на
\Classes\Info\activate
и будет тебе счастье
тоже относится к методам \Classes\SysSetupFormRun

Последний раз редактировалось ice; 01.08.2007 в 15:18.
Старый 01.08.2007, 17:44   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, petr уже ответил. Но если его ответ пропустили в спешке, то можно повторить.

Изнутри методов формы можно использовать специальную служебную ссылку "element", чтобы достучаться до свойств и методов текущей формы

element.name() - имя текущей формы

Также можно использовать ссылку "this"

this.name()

Но this, в данном случае, будет возвращать ссылку на форму только из методов собственно формы. В методах объектов формы это уже будет ссылка на соответствующий объект формы. А element возвращает ссылку на форму из любых методов любых объектов формы.

Ссылка на форму через element и this в процессе работы - это ссылка объект FormRun.
Старый 02.08.2007, 09:35   #8  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
? Уважаемый Владимир Максимов
X++:
 NatBotLog::CreateLogForm(this);
вызываю метод

X++:
Static void CreateLogForm(FormRun  _FormRun)
{
    MyLog       TableLog;
    ;

    ttsbegin;
    TableLog.ObjectType=0;
    TableLog.ObjectName =strfmt("%1%", _FormRun);
    TableLog.insert();
    ttscommit;
}
TableLog.ObjectName =strfmt("%1%", _FormRun); на этом месте ругается что не так опять ?

Последний раз редактировалось Daido; 02.08.2007 в 10:03.
Старый 02.08.2007, 09:48   #9  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Static void CreateLogForm(Name _FormRun)
Старый 02.08.2007, 17:20   #10  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
TableLog.ObjectName =strfmt("%1%", _FormRun.name());
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Имя формы CasperSKY DAX: Программирование 8 21.03.2008 12:18
Как узнать имя формы CasperSKY DAX: Программирование 5 11.03.2008 09:38
Можно-ли узнать сетевое имя пользователя? egorych DAX: Администрирование 8 21.11.2007 16:27
что-такое "<имя-формы>_ds"? Valia DAX: Программирование 3 21.08.2003 10:48
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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