|
![]() |
#1 |
Участник
|
привет всем ещё раз
Мне надо при открытии каждой формы записать ее открытия в логтаблицу,например открываем форму 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; } ваще я правильно делаю? как узнать имя открываемый формы???? |
|
![]() |
#2 |
Участник
|
Нет. Включите поля Modified Date, Modified Time и Modified Author в таблице, которую вы объявили логом.
Очень странна постановка, когда вы хотите узнать только имя формы. Вообще говоря, было бы гораздо лучше запоминать весь стек вызовов. xSession::xppCallStack() Если вы затеяли программизм только для того, чтобы понять что именно происходит, то лучше разберитесь с: 1. отладчиком 2. профайлером (меню Сервис \ Средства разработки \ Профайле кода) 3. с логом запросов (Главное меню \ Администрирование \ Базы данных \ Журнал трассировки операторов SQL) Не надо программировать впустую. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
element.name();
|
|
![]() |
#5 |
Участник
|
Нет необходимости модифицировать каждую форму.
Можно, например, так: в методе \Classes\Info\open добавить обработку (в вашем случае запись в таблицу): Для теста попробуйте так: [codebox]info(formRun.name());[/codebox] |
|