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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2006, 14:44   #1  
andy239 is offline
andy239
1C
1C
 
52 / 10 (1) +
Регистрация: 26.05.2005
Сохранение строки закупки - потеря фокуса?
Всем доброго дня, помогите пожалуйста, разобраться!

Ситуация следующая:

есть закупка, довольно большая (180 строк). При сохранении строки (это должна быть не одна из первых строк) курсорчик в гриде улетает на первую строку.

Покопавшись в коде, я выяснил, что это происходит при отработке метода purchLine_ds. Конкретно - строка purchLine_ds.reRead().

Я ее закомментировал - эффект исчез.

Вопрос - как еще с этим эффектом бороться? Мне не очень понравился мой метод борьбы...

Спасибо
Старый 20.01.2006, 15:33   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Если Вы имеете в виду метод write на датасорсе PurchLine - то эффект проявляется на purchTable_ds.reread().
Бороться с этим можно по-разному:
1) Воспользоваться методом findRecord на purchLine_ds. Т.е. сначала запомнить курсор, затем скормить его: purchLine_ds.findRecord(курсор). Этим правда не рекомендуется пользоваться на больших количествах записей (свыше 1000) - к примеру - нехорошо так делать на PurchTable. Т.к. findRecord исполняется на датасорсе, где всего 180 записей - то тут можно применить сей метод
2) Попытаться понять - почему сделано именно так и что пострадает, когда код будет закомментирован. Этот метод ведет к большей переделке, однако он единственен, если записей много
__________________
Возможно сделать все. Вопрос времени
Старый 20.01.2006, 16:08   #3  
andy239 is offline
andy239
1C
1C
 
52 / 10 (1) +
Регистрация: 26.05.2005
Цитата:
Сообщение от sukhanchik
Если Вы имеете в виду метод write на датасорсе PurchLine - то эффект проявляется на purchTable_ds.reread().
Бороться с этим можно по-разному:
1) Воспользоваться методом findRecord на purchLine_ds. Т.е. сначала запомнить курсор, затем скормить его: purchLine_ds.findRecord(курсор). Этим правда не рекомендуется пользоваться на больших количествах записей (свыше 1000) - к примеру - нехорошо так делать на PurchTable. Т.к. findRecord исполняется на датасорсе, где всего 180 записей - то тут можно применить сей метод
2) Попытаться понять - почему сделано именно так и что пострадает, когда код будет закомментирован. Этот метод ведет к большей переделке, однако он единственен, если записей много
Действительно, purchTable. Это я невнимательно посмотрел.

Вполне понятно, зачем это нужно - например, при изменении количества в строке может измениться статус закупки. Поэтому надо перечитать...

Я воспользовался findRecord. Вроде, без тормозов. Спасибо.
Старый 20.01.2006, 16:28   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от andy239
Вполне понятно, зачем это нужно
Я имел в виду что помимо осознания зачем это нужно - еще необходима "обходная" реализация - т.е. переделка таким образом, чтобы и у вас все работало и чтобы не пострадал необходимый имеющийся функционал.
Цитата:
Сообщение от MikeR
его нет среди предопределенных
См \System Documentation\Classes\FormDataSource\reread
__________________
Возможно сделать все. Вопрос времени
Старый 22.01.2006, 12:33   #5  
andy239 is offline
andy239
1C
1C
 
52 / 10 (1) +
Регистрация: 26.05.2005
Цитата:
Сообщение от sukhanchik
Я имел в виду что помимо осознания зачем это нужно - еще необходима "обходная" реализация - т.е. переделка таким образом, чтобы и у вас все работало и чтобы не пострадал необходимый имеющийся функционал.
воспользовался findRecord...
Старый 20.01.2006, 15:37   #6  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Если правильно понял reRead() - то это ссылка на метод и похоже его нет среди предопределенных.
Можно покапаться в слоях, так чтоб определить в каком слое добавлено.
Старый 20.01.2006, 16:08   #7  
andy239 is offline
andy239
1C
1C
 
52 / 10 (1) +
Регистрация: 26.05.2005
Цитата:
Сообщение от MikeR
Если правильно понял reRead() - то это ссылка на метод и похоже его нет среди предопределенных.
Можно покапаться в слоях, так чтоб определить в каком слое добавлено.
reread - перечитывает из базы данных строку источника данных... В данном случае, purchTable.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Потеря фокуса при вызове формы поиска Paul_ST DAX: Программирование 21 03.08.2022 15:12
Строки заказа/закупки и их складские проводки sparur DAX: Функционал 19 13.02.2007 08:22
Авто подстановка Цены в строки заказа/закупки sparur DAX: Программирование 15 04.08.2006 09:30
Ввод и разноска цены закупки Zveriok DAX: Функционал 5 20.04.2005 22:33
потеря связи закупки с товаром mad_pilot DAX: Функционал 2 15.11.2002 17:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.