21.10.2002, 16:57 | #1 |
Moderator
|
Определить текущий DataSource
Hi all!
Подскажите, как определить, на каком DataSource в форме установлен фокус? Или отследить перемещение курсора с одного датасоурса на другой? Пример: на форме 2 DS с гридами, при нахождении фокуса в одном из них кнопку надо сделать недоступной, в другом - доступной. Спасибо.
__________________
Андрей. |
|
21.10.2002, 17:09 | #2 |
Banned
|
Такие фокусы обычно делаются на .active() обоих источников данных.
А вообще говоря - FormRun.dataSource() (см. класс EmplTableCall_RU в SP4). |
|
21.10.2002, 17:22 | #3 |
Moderator
|
active() при перемещении между датасоурсами не вызывается, проверено.
__________________
Андрей. |
|
22.10.2002, 09:45 | #4 |
----------------
|
Для решения такой задачи, возможно, подойдут методы на Grid-ах gotFocus(), leave(), lostFocus()
|
|
22.10.2002, 10:28 | #5 |
Moderator
|
Т.е. без привязки к контролам (например, событиями на datasource) эту задачу не решить? Печально Но ведь система как-то распознает, когда ей разрешать или запрещать кнопки "новая запись", "удаление" в тулбаре?
__________________
Андрей. |
|
22.10.2002, 11:02 | #6 |
----------------
|
Метод formRun.dataSource() возвращает активный DS, вопрос только в том на какое событие повесить проверку.
Цитата:
Но ведь система как-то распознает, когда ей разрешать или запрещать кнопки "новая запись", "удаление" в тулбаре
|
|
25.10.2002, 17:50 | #7 |
Участник
|
Active() вызывается при перемещении по записям одного датасорса.
|
|
28.10.2002, 10:53 | #8 |
Administrator
|
Попробуйте cursorNotify().
Еще некоторую свободу власти можно получить, указав dataSource для кнопки. Не могу точно сказать вам, как это использовать, так как не знаю вашу задачу, но это как поле для изысканий.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
28.10.2002, 11:03 | #9 |
Administrator
|
Кстати, из User's guide on Axapta Development:
Цитата:
Методы источника данных формы (FormDataSource) в AOT
. . . Leave() - Перемещение фокуса из источника данных, например при выходе из формы.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
28.10.2002, 11:42 | #10 |
Moderator
|
К моему огорчению, ни cursorNotify(), ни leave() не вызываются при переходе между датасорсами (оба срабатывают по типу active()).
__________________
Андрей. |
|
|
|