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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.07.2014, 09:47   #1  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Обход грида в цикле
Здравствуйте! У меня на форме есть табличка (grid) и рядом кнопочка в которой я хочу обойти все строчки этой таблички и что то с ними сделать.Табличка называается PurchLine.

К примеру как то так только вместо next() надо какой то метод который я не знаю

while(PurchLine.next())
{
info("This is an info.");
}

Какой метод таблички нужен вместо next() чтобы обойти все строчки?
Заранее спасибо
Старый 03.07.2014, 10:01   #2  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Вам нужно также учесть фильтры, заданные пользователем в форме? Или модифицировать все имеющиеся записи PurchLIne?
Старый 03.07.2014, 10:02   #3  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Вам нужно также учесть фильтры, заданные пользователем в форме? Или модифицировать все имеющиеся записи PurchLIne?
мне нужно обойти отфильтрованное
Старый 03.07.2014, 10:02   #4  
tricky is offline
tricky
Участник
 
140 / 64 (3) ++++
Регистрация: 03.05.2005
Адрес: Гуково
Может поможет?
Старый 03.07.2014, 10:03   #5  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Задачу уточнить можно ?? Странный обход записей, если честно.
Старый 03.07.2014, 10:06   #6  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от at5454 Посмотреть сообщение
мне нужно обойти отфильтрованное
Вам необходимо работать не с гридом, а с датасорсом PurchLine_ds в данном случае.
Старый 03.07.2014, 10:07   #7  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Если только отфильтрованные (а не выделенные), то, как вариант, можно получить Query датасорса формы через

X++:
YourDataSourceName_ds.queryRun().query().
и пройти его, модифицируя полученные записи

Также хороший пример привёл tricky

Последний раз редактировалось Cardagant; 03.07.2014 в 10:12.
Старый 03.07.2014, 10:40   #8  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные
то они будут меняться в реальной таблице в базе данных или только виртуально на экране?
2) Как мне использовать
YourDataSourceName_ds.queryRun().query()
если у меня в датасорсе 5 таблиц
3) что значит окончание "_ds"?
Старый 03.07.2014, 10:43   #9  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от at5454 Посмотреть сообщение
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные
то они будут меняться в реальной таблице в базе данных или только виртуально на экране?
2) Как мне использовать
YourDataSourceName_ds.queryRun().query()
если у меня в датасорсе 5 таблиц
3) что значит окончание "_ds"?
1) Они будут меняться в базе данных, потому что на экран выводятся данные как раз-таки из базы данных.
2) В вашем примере вы хотите делать обход через .next() , что не есть правильно.
Так же Вы сказали, что хотите оперировать отфильтрованными записями. Для этого пользователь Cardagant предложил Вам хороший вариант с запросом(query), который приходит с активного источника данных(ds).
Эту конструкцию Вы можете использовать по клику на Вашу кнопку на форме.

3) Окончание _ds означает datadource. Пример: у вас есть форма PurchLine, у которой множество датасорсов, в том числе и сам PurchLine. Так вот, чтобы обратиться к конкретной записи датасорса, Вам необходимо использовать конструкцию PurchLine_ds.
Старый 03.07.2014, 10:58   #10  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Расскажу поподробнее. Есть грид который который тянет инфу из пяти таблиц. После применения фильтров у меня остается на экране 10 строчек. Которые я и хочу обработать.После моей обработки этих строчек их новое значение подхватит другое (НЕ МОЕ) вычисление.
И все благополучно стерется после закрытия формы.А в базе все останется без изменений. Вот такая задача.
В этом случаем мне использовать совет tricky?
Старый 03.07.2014, 11:01   #11  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от at5454 Посмотреть сообщение
Расскажу поподробнее. Есть грид который который тянет инфу из пяти таблиц. После применения фильтров у меня остается на экране 10 строчек. Которые я и хочу обработать.После моей обработки этих строчек их новое значение подхватит другое (НЕ МОЕ) вычисление.
И все благополучно стерется после закрытия формы.А в базе все останется без изменений. Вот такая задача.
В этом случаем мне использовать совет tricky?
Скажите, пожалуйста, каким образом Вы их хотите обработать ??

В задаче, описанной вами, разумнее использовать временные таблицы.
Старый 03.07.2014, 11:29   #12  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Регистрация: 29.05.2014
Вы извините что туплю, у меня сегодня третий рабочий день, только третий день работаю с аксаптой.
Благодаря совету cardagant мне удалось успешно пробежать мои 10 записей из таблицы формы.
И вот новые обстоятельства: При пробегании если поле X равно определенному значению то мне нужно в поле Y записать свое значение.
НО!
Если поле X - это родное поле из таблицы базы данных, то поле Y -это виртуальное поле лишь данного грида, которое рождается только при запуске формы.
Как же мне в него записать?
Старый 03.07.2014, 11:35   #13  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от at5454 Посмотреть сообщение
Вы извините что туплю, у меня сегодня третий рабочий день, только третий день работаю с аксаптой.
Благодаря совету cardagant мне удалось успешно пробежать мои 10 записей из таблицы формы.
И вот новые обстоятельства: При пробегании если поле X равно определенному значению то мне нужно в поле Y записать свое значение.
НО!
Если поле X - это родное поле из таблицы базы данных, то поле Y -это виртуальное поле лишь данного грида, которое рождается только при запуске формы.
Как же мне в него записать?
Это процесс обучения, так что вопросы - это нормально)
Если верно понимаю Вас, то Вам следует почитать о дисплей-методах (display-method).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
EP AX2009: сохранить параметры грида (фильтр, позиционирование) caper DAX: Программирование 9 01.04.2010 09:16
Данные и метаданные грида... PODOL DAX: Программирование 8 21.07.2006 14:20
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47
Кнопка быстрого рефреша грида Zabr DAX: Функционал 2 12.04.2004 16:19
Сколько раз вызывается DataMethod поля грида при инициализации этого грида? storer DAX: Программирование 2 18.11.2003 14:03

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

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

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