![]() |
#1 |
Участник
|
Проблема с позиционированием курсора в датасурсе
Коллеги, имею следующую проблему с датасурсом.
Есть форма CustTable, на вкладке "адреса" отображается таблица Address, приджойненная к таблице CustTable, тип соединения delayed. При нажатии кнопки F5 на вкладке "адреса" курсор автоматически становится на самую первую строку в табличной части. Аналогичный эффект возникает при выполнении команды Address_ds.research(true); т.е. на исходную запись курсор не возвращается. Как бороться/что я делаю не так? AX2009 SP1, MS SQL 2008 Enterprise |
|
![]() |
#2 |
Участник
|
На сколько я помню - это штатное поведение системы: при research() подчиненного DS вызывается executeQuery() основного DS - который, в свою очередь, вызывает executeQuery() подчиненного же. Позиционироваться на нужную запись, нужно в executeQuery() подчиненного DS после super(). Кажется так.
|
|
![]() |
#3 |
Участник
|
В DAX 2009 по F5 выполняется операция обновления, для восстановления используется сочетание клавиш Ctrl+F5.
|
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от tricky
![]() На сколько я помню - это штатное поведение системы: при research() подчиненного DS вызывается executeQuery() основного DS - который, в свою очередь, вызывает executeQuery() подчиненного же. Позиционироваться на нужную запись, нужно в executeQuery() подчиненного DS после super(). Кажется так.
|
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
здравствуйте,
попробуйте перекрыть на датасорсе Address метод executeQuery как показано ниже (у меня отработал): public void executeQuery() { Address record; ; record.data(Address); super(); this.findRecord(record); } п.с. да вот еще, у меня таблица адреса связана через 2 таблицы и инер джойном - так что пришлось перекрыть этот метод и на них тоже
__________________
Все в порядке - идем ко дну! (к/ф Экипаж счастливой "Щуки") Последний раз редактировалось Veter; 20.10.2011 в 11:47. |
|
|
За это сообщение автора поблагодарили: mikki_messer (1). |
![]() |
#7 |
MCITP
|
X++: this.findRecord(record); |
|
![]() |
#8 |
Участник
|
Да, точно, не обратил внимание на "true". Ну тогда дикое предположение: в свойствах таблицы Adress установлен PrimaryIndex?
|
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
Участник
|
Не не надо, тогда точно не заработает
![]() |
|
![]() |
#11 |
Участник
|
|
|
![]() |
#12 |
MCITP
|
Цитата:
Да, это точно, у нас адресов много, так что вариант оставим на крайний случай
Вот тема про позиционирование: Позиционирование в гриде Там приведен пример: X++: element.args().lookupField(fieldNum(SalesTable, SalesId)); element.args().lookupValue(queryValue("хочу сюда!")); SalesTable_ds.executeQuery();[ Последний раз редактировалось GBH; 21.10.2011 в 08:55. |
|
|
За это сообщение автора поблагодарили: mikki_messer (1), Veter (1). |
![]() |
#13 |
Участник
|
Цитата:
Сообщение от GBH
![]() Лучше совсем не использовать.
Вот тема про позиционирование: Позиционирование в гриде Там приведен пример: X++: element.args().lookupField(fieldNum(SalesTable, SalesId)); element.args().lookupValue(queryValue("хочу сюда!")); SalesTable_ds.executeQuery();[ |
|