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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.12.2003, 14:35   #1  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
Angry
Итак, столкнулся с первой проблемой при первом опыте программирования на Х++:
Есть форма. На ней датасорс типа InventTable. Некоторые поля вытащены на грид bno_InventTableGrid.
Вопрос1.
Можно ли программно (по нажатию кнопочки, при отработке clicked()) перебрать этот грид и получить из него InventId (вытащен на грид)?
Вопрос 2.
Можно ли так же программно отловить то, что записи как-то отфильтрованы на форме?
__________________
-----------------------------------------
Искренне Ваш, ДК.
Старый 03.12.2003, 14:42   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Перебирать надо не грид, а FormDataSource, к которому грид привязан. Сделать это можно, например, с помощью методов getFirst, getNext и т. п. С выбранной в DataSource строкой автоматически ассоциируется курсор. В форме он доступен с именем, совпадающем с именем FormDataSource.

То, что записи отфильтрованы, понять можно, ИМХО, только анализируя свойство queryRun у FormDataSource (опять же, фильтруется не Grid, а FormDataSource).
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 03.12.2003, 15:40   #3  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
Спасибо Нефедову и Горбунову за подсказку
InventTableDS.dataSource().first();
while (InventTableDS.dataSource().next())
{
//что-то делаем
}
__________________
-----------------------------------------
Искренне Ваш, ДК.
Старый 03.12.2003, 16:15   #4  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
Осталось найти возможность отключить обновление формы при работе в цикле.
__________________
-----------------------------------------
Искренне Ваш, ДК.
Старый 03.12.2003, 19:44   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Uncle Nick
...перебрать этот грид и получить из него InventId...
а зачем перебирать грид, если ты не собираешься этот перебор отображать на экране.

грид нужен сугубо для интерфейсных вещей. он контрол и ничего более. Говоря по 1Совски, грид - это не Таблица значений.

Если тебе нужно перебрать значения - работай с таблицей, с запросом.
Вытащи из датасорса запрос и выполни его на таблице.

Или мы чего-то не поняли?
__________________
полезное на axForum, github, vk, coub.
Старый 03.12.2003, 19:49   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Uncle Nick
InventTableDS.dataSource().first();
while (InventTableDS.dataSource().next())
кстати first/next на датасорсе как правило используется для того, чтобы перебрать выделенные записи. Перебирать таким образом все записи слишком накладно.

см. best prectice. ключевое слово
Traversing multi selected records in a data source

http://technet.navision.com/usered/BPH/Dev...dDataSource.htm
__________________
полезное на axForum, github, vk, coub.
Старый 03.12.2003, 19:58   #7  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Вай-вай-вай, все напутали

1. first/next используются для фактического перемещения курсора по DataSource. Разумеется, перемещения курсора отражаются на внешнем виде формы.

2. getFirst/getNext курсор не перемещают. Их же можно использовать для перебора выбранных записей (если их выбрано несколько). Для этого надо передавать в параметр mark для getFirst ненулевое значение.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 03.12.2003, 20:02   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ой. точно. извините.
с getFirst/first действительно напутал.

а перебирать все равно лучше запросом
__________________
полезное на axForum, github, vk, coub.
Старый 04.12.2003, 11:26   #9  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
Да..... тяжело из себя 1С выдавливать....
__________________
-----------------------------------------
Искренне Ваш, ДК.
Старый 04.12.2003, 14:12   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
зачем выдавливать?
надо совмещать
__________________
полезное на axForum, github, vk, coub.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:06.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.