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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.07.2008, 05:15   #1  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Research, refresh, reread шпаргалка
Хочу поделиться радостью.
Была простая и смешная проблема - надо было сделать чтобы строка закупки блокировалась если отправлена на одобрение и разблокировалась после одобрения, и одобрение могло быть выполнено автоматически или вручную.
Были страдания часа на два а может быть и три, как эту форму с закупками обновить так, чтобы курсор никуда не упрыгивал, строчки обновлялись и данные в строчках обновлялись тоже, ну и конечно чтобы блокировка-разблокировка строк все-таки работала. Плохо китайскому стажеру - не у кого спросить, пришлось тыкаться методом научного тыка, пока не нашлась статья вот здесь: http://www.mail-archive.com/axapta-k.../msg09550.html . Человек тоже поделился радостью понимания

Вот коротенько перевод надеюсь близко к тексту:
--
.refresh() не читает повторно данные из базы данных, а просто обновляет экран вместе со всем, что хранится в кешэ формы.

.reread() считает повторно из базы данных только ТЕКУЩУЮ запись, поэтому не нужно использовать это для того, чтобы обновить данные формы если вы добавили или удалили записи. Это часто используется если вы изменили какие-нибудь значения в текущей записи с помощью метода, и отправляете эти значения в бащу данных используя метод update() на таблице вместо того, чтобы работать с источником данных формы. В этом случае метод reread() отобращит эти изменения на форме.

.research() выполнит существующий запрос источника данных формы, обновляя информацию как о новых и удаленных записях, так и о существующих. Этот метод сохранит любые существующие фильтры и сортировки на форме.

.executeQuery() - еще один полезный метод. Его следует использовать если вы изменили запрос в методе (с помощью программирования) и желаете обновить форму. Этот метод похож на .research() , однако он берет в расчет изменения в запросе.

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

В общем у меня получился вот такой код для обновления:

X++:
void clicked()
{
    ;
    super();
    purchline::PLApprovalStatus(purchline);
    lines_ds.reread();
    lines_ds.research();
}
За это сообщение автора поблагодарили: macklakov (3), G.Menshikh (1), miklenew (2), dreamer (1), alex55 (1), jeky (1).
Теги
executequery, formdatasource, refresh, research, полезное, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX UK: Now the New VPC Refresh is here Blog bot DAX Blogs 4 27.02.2009 09:09
AX UK: Pre-Sales Demonstration Toolkit For Microsoft Dynamics AX 2009 - Refresh 1 - Available now Blog bot DAX Blogs 0 24.02.2009 18:05
Reread() на форме c View KpecT DAX: Программирование 8 11.11.2008 13:00
Dynamics AX: AMR Research: Awakening a Sleeping Giant - Inside Microsoft Business Solutions' ERP Strategy Blog bot DAX Blogs 0 22.09.2008 22:05
jinx: MultiSelect und die DataSource-Methode research(). Blog bot DAX auf Deutsch 0 14.08.2008 22:06

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

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

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