AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

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

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

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

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

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

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

Last edited by Cardagant; 03.07.2014 at 10:12.
Old 03.07.2014, 10:40   #8  
at5454 is offline
at5454
Участник
 
61 / 10 (1) +
Join Date: 29.05.2014
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные
то они будут меняться в реальной таблице в базе данных или только виртуально на экране?
2) Как мне использовать
YourDataSourceName_ds.queryRun().query()
если у меня в датасорсе 5 таблиц
3) что значит окончание "_ds"?
Old 03.07.2014, 10:43   #9  
user_ax is offline
user_ax
Участник
user_ax's Avatar
 
599 / 39 (3) +++
Join Date: 07.10.2012
Location: ZP
Quote:
Originally Posted by at5454 View Post
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные
то они будут меняться в реальной таблице в базе данных или только виртуально на экране?
2) Как мне использовать
YourDataSourceName_ds.queryRun().query()
если у меня в датасорсе 5 таблиц
3) что значит окончание "_ds"?
1) Они будут меняться в базе данных, потому что на экран выводятся данные как раз-таки из базы данных.
2) В вашем примере вы хотите делать обход через .next() , что не есть правильно.
Так же Вы сказали, что хотите оперировать отфильтрованными записями. Для этого пользователь Cardagant предложил Вам хороший вариант с запросом(query), который приходит с активного источника данных(ds).
Эту конструкцию Вы можете использовать по клику на Вашу кнопку на форме.

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
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
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 11:24.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.