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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.07.2004, 18:15   #1  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
Позиционирование курсора на конкретной записи в Data Source на форме
ответ содержащийся в базе знаний жутко тормозит
(в таблице ~100 000 записей)
однако "перезод к основной таблице" работает практически мгновенно и устанавливает курсор на нужную позицию
Старый 25.01.2013, 22:31   #2  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Аналогичная проблема. В форме резервирования InventOnHandReserve необходимо спозиционироваться на строке, где InventDim.wmsLocationId идентичен ему же из формы-родителя (значение InventDim-а формы-родителя хранится в переменной InventDimRes (типа InventDim) формы)

Изначальные варианты типа
X++:
if (InventDimRes)
    {
     InventDim_ds.findValue(fieldNum(InventDim,wmsLocationId),strfmt("%1",InventDimRes.wMSLocationId));
     element.redraw();
    }
не работают. InventSum_ds.FindRecord() тоже не прокатило, т.к. там сплошные аггрегатные функции с группировками.

X++:
element.args().lookupField(fieldNum(InventDim,InventDimId));
element.args().lookupValue(InventDimRes.InventDimId);
тоже не работает. (При размещении в ExecuteQuery первого датасорса (InventSum) перед супером)

X++:
     do {
            record = InventDim_ds.cursor();
            if( record.(fieldNum(InventDim,wmsLocationId)) == InventDimRes.wmsLocationId )
                break;
        } while( InventDim_ds.next() );
в дебаггере отлично срабатывает, чего, однако не видно на форме!
(При размещении в ExecuteQuery последнего датасорса (InventTrans) после супера)

И как же спозиционироваться на нужную запись???
Старый 30.01.2013, 12:36   #3  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Вопрос все еще актуален!!! Как же спозиционироваться на нужную запись???
Старый 30.01.2013, 13:30   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от alicedr Посмотреть сообщение
X++:
     do {
            record = InventDim_ds.cursor();
            if( record.(fieldNum(InventDim,wmsLocationId)) == InventDimRes.wmsLocationId )
                break;
        } while( InventDim_ds.next() );
в дебаггере отлично срабатывает, чего, однако не видно на форме!
(При размещении в ExecuteQuery последнего датасорса (InventTrans) после супера)
По идее двигать нужно курсор главного источника данных, т.е. того который прописан в свойстве dataSource у грида.
Старый 30.01.2013, 14:38   #5  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
По идее двигать нужно курсор главного источника данных, т.е. того который прописан в свойстве dataSource у грида.
Источник данных для грида = InventSum, но в дизайне в грид добавлена группа, где источник данных = InventDim. В InventSum'e (в дебаггере) поле InventDimId пустое, а поле wmsLocationId (которое, собственно и надо найти) вообще отсутствует, так что привязаться туда никак нельзя. Поэтому привязываюсь к InventDim, а там хоть и все проходит в дебаггере гладко, а на форме все равно позиционирование на первую строку идет.
Старый 30.01.2013, 15:08   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от alicedr Посмотреть сообщение
В InventSum'e (в дебаггере) поле InventDimId пустое, а поле wmsLocationId (которое, собственно и надо найти) вообще отсутствует, так что привязаться туда никак нельзя.
InventSum.joinChild() должен вернуть соответствующий InventDim
За это сообщение автора поблагодарили: alicedr (1).
Старый 30.01.2013, 16:10   #7  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от lvan Посмотреть сообщение
вспомнилась "Сага о X, Y и Z"
Неконструктивно.


Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
InventSum.joinChild() должен вернуть соответствующий InventDim
Именно то, что нужно! Спасибо!
Старый 30.01.2013, 15:04   #8  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
вспомнилась "Сага о X, Y и Z"
Теги
ax3.0, курсор, позиционирование, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axStart: Change data on a data source on a Form Blog bot DAX Blogs 0 04.09.2008 15:05
Инициализация записи из курсора в форме andy239 DAX: Программирование 5 16.08.2005 15:00
Что сделать, чтобы связанные Data Source обновились? Maxim Gorbunov DAX: Программирование 4 11.04.2005 17:40
Использование View как Data Source или Нормализация Базы Знаний в Axapta rohlenko DAX: Программирование 15 17.02.2005 14:00
Позиционирование курсора на конкретной записи в DataSource на форме Anton Sk. DAX: База знаний и проекты 1 19.07.2004 17:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:56.