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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.10.2008, 15:37   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Переход на первую строку SalesLine_ds при вызове SalesTable_ds.write()
Форма SalesTable. В методе поля DataSource

\Forms\SalesTable\Data Sources\SalesLine\Fields\SalesQty\Methods\modified()

возникал необходимость вызвать salesTable_ds.write()

Все отрабатывает нормально, но по завершении кода происходит "перескок" указателя на первую запись SalesLine данного заказа. Как предотвратить уход фокуса с текущей записи или вернуть указатель в исходное положение после этого?

Проблема в том, что этот "перескок" происходит после отработки всех кодов. Трассировщик заканчивает работу. Нет кода по которому трассировщик еще мог бы пройти. Непонятно, где можно принудительно вернуть указатель на исходную строку? В каком методе?

Ax 2.5 SP3
Старый 02.10.2008, 15:57   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Скорее всего таким образом отрабатывает Dynalink. Он как раз срабатывает после небольшой паузы.

Если это так, то может быть пошаманить с методом linkActive() на salesLine_ds. Например не вызывать super().
Или попробовать избавиться от вызова salesTable_ds.write()
Старый 02.10.2008, 16:19   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Да. Была такая мысль. Только с LinkActive шаманить опасно. Один раз блокируешь super() и он просто отключается. Навсегда. Пока блокирую через переменную SalesLine.executeQuery(). Но какое-то это кривоватое решение...
Старый 02.10.2008, 16:42   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Мы похожую болезнь решали немного по другому - на ExecuteQuery() после super ставили findRecord() нужной записи. Работает нормально.

Правда тоже некрасиво - кривизна.
За это сообщение автора поблагодарили: Владимир Максимов (3).
Старый 02.10.2008, 18:08   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
После анализа кода все-таки удалось отказаться от вызова SalesTable_ds.write(). Вызываю напрямую табличный метод SalesTable.write().

Спасибо, за подсказку.
Теги
ax2.5

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Developer notes: Write InfoLog to database Blog bot DAX Blogs 0 03.05.2008 08:16
mfp: Do you want to write more secure code? Blog bot DAX Blogs 0 26.03.2008 18:05
Переход к основной таблице номенклатуры akvi DAX: Администрирование 13 24.05.2006 14:59
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14
Проблема: Переход с 2.5 на 3.0 Антон Солдатов DAX: Администрирование 1 18.06.2003 10:17

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

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

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