В настоящее время я работаю с формой, которая имеет сетку внизу. Всякий раз, когда я нажимаю f5, сетка обновляется, а остальная часть формы - нет. Что я могу сделать, чтобы вся форма обновила свои данные?
Спасибо.
В настоящее время я работаю с формой, которая имеет сетку внизу. Всякий раз, когда я нажимаю f5, сетка обновляется, а остальная часть формы - нет. Что я могу сделать, чтобы вся форма обновила свои данные?
Спасибо.
Вы можете переопределить метод research
для источника данных:
public void research(boolean _retainPosition = false)
{
super(_retainPosition);
other_ds.research(_retainPosition);
}
other_ds
— это источник данных, к которому не присоединен текущий источник данных.
refresh
не вызывается в AX 4.0, но в AX 2009/2012 research
вызывается при нажатии F5, а refresh
запускается при нажатии Ctrl+F5?
- person 10p; 04.10.2012
Это зависит от формы, с которой вы работаете. Когда вы нажимаете F5 на записи, она запускает research
для источника данных, которому принадлежит запись, или его родительского источника данных (зависит от запроса формы, например, если вы нажмете F5 на SalesLine в форме SalesTable, будет запущен SalesTable_ds.research(true)
). Насколько я понимаю, если в остальной части вашей формы отображаются поля, принадлежащие этим источникам данных, то эти поля будут обновлены. Если поля не принадлежат этому источнику данных, остальная часть вашей формы не будет обновлена (если, например, не будет active
был переопределен для обновления остальной части формы из кода.
Что вы можете сделать, чтобы вся форма обновляла свои данные при нажатии F5: опять же, это зависит от формы, поэтому, не зная всех деталей, сложно что-то посоветовать, но одна из вещей, которые вы можете сделать, это переопределить research
в вашем источнике данных и программно обновите остальную часть формы оттуда. Чаще всего переопределяют метод active
, обычно вы должны использовать его.