20.10.2011, 10:01 | #1 |
Участник
|
Проблема с позиционированием курсора в датасурсе
Коллеги, имею следующую проблему с датасурсом.
Есть форма CustTable, на вкладке "адреса" отображается таблица Address, приджойненная к таблице CustTable, тип соединения delayed. При нажатии кнопки F5 на вкладке "адреса" курсор автоматически становится на самую первую строку в табличной части. Аналогичный эффект возникает при выполнении команды Address_ds.research(true); т.е. на исходную запись курсор не возвращается. Как бороться/что я делаю не так? AX2009 SP1, MS SQL 2008 Enterprise |
|
20.10.2011, 10:37 | #2 |
Участник
|
На сколько я помню - это штатное поведение системы: при research() подчиненного DS вызывается executeQuery() основного DS - который, в свою очередь, вызывает executeQuery() подчиненного же. Позиционироваться на нужную запись, нужно в executeQuery() подчиненного DS после super(). Кажется так.
|
|
20.10.2011, 10:44 | #3 |
Участник
|
В DAX 2009 по F5 выполняется операция обновления, для восстановления используется сочетание клавиш Ctrl+F5.
|
|
20.10.2011, 10:50 | #4 |
Участник
|
Цитата:
Сообщение от tricky
На сколько я помню - это штатное поведение системы: при research() подчиненного DS вызывается executeQuery() основного DS - который, в свою очередь, вызывает executeQuery() подчиненного же. Позиционироваться на нужную запись, нужно в executeQuery() подчиненного DS после super(). Кажется так.
|
|
20.10.2011, 10:50 | #5 |
Участник
|
|
|
20.10.2011, 11:42 | #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). |
20.10.2011, 12:13 | #7 |
MCITP
|
X++: this.findRecord(record); |
|
20.10.2011, 12:59 | #8 |
Участник
|
Да, точно, не обратил внимание на "true". Ну тогда дикое предположение: в свойствах таблицы Adress установлен PrimaryIndex?
|
|
20.10.2011, 16:14 | #9 |
Участник
|
|
|
20.10.2011, 16:23 | #10 |
Участник
|
Не не надо, тогда точно не заработает
|
|
20.10.2011, 16:44 | #11 |
Участник
|
|
|
21.10.2011, 08:52 | #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). |
21.10.2011, 11:33 | #13 |
Участник
|
Цитата:
Сообщение от GBH
Лучше совсем не использовать.
Вот тема про позиционирование: Позиционирование в гриде Там приведен пример: X++: element.args().lookupField(fieldNum(SalesTable, SalesId)); element.args().lookupValue(queryValue("хочу сюда!")); SalesTable_ds.executeQuery();[ |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|