|
![]() |
#1 |
Участник
|
Если нужно обновить только одну запись, то лучше сделать так:
X++: InventJournalTable_ds.reread(); InventJournalTable_ds.refresh(); |
|
![]() |
#2 |
Участник
|
![]()
Если нужно это выполнять из вашего RunBase, а не в методе clicked формы вызова (например, обновление нужно только если нажата ОК, а не Отмена), то можно выполнить что-то подобное в методе main:
X++: static void main(Args _args) { FormDataSource fdsCaller; ... if (importEngenie.prompt()) { importEngenie.run(); if (_args && _args.dataset() && _args.record().dataSource()) { fdsCaller = _args.record().dataSource(); fdsCaller.reread(); fdsCaller.refresh(); } } } |
|
|
За это сообщение автора поблагодарили: Poleax (1). |
![]() |
#3 |
MCP
|
[QUOTE=Raven Melancholic;171974]Если нужно это выполнять из вашего RunBase, а не в методе clicked формы вызова (например, обновление нужно только если нажата ОК, а не Отмена), то можно выполнить что-то подобное в методе main:
Хороший способ, но тогда придется искать запись на которой стоял курсор предложенными выше способами. Иногда это долго. Предлагаю так: X++: static void main(Args _args) { FormDataSource fdsCaller; InventJournalTable InventJournalTable; ... if (importEngenie.prompt()) { importEngenie.run(); if (_args && _args.record() && _args.record().tableId == tablenum(InventJournalTable)) { InventJournalTable = _args.record(); if(InventJournalTable.isFormDataSource()) { fdsCaller = InventJournalTable.dataSource(); fdsCaller.reread(); fdsCaller.activate(); // Тогда запись перечитается и курсор не слетит с текущей записи в гриде } } } } Последний раз редактировалось kornix; 12.04.2011 в 10:40. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|