AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 03.07.2014, 09:47   #1  
at5454 ist offline
at5454
Участник
 
61 / 10 (1) +
Registriert seit: 29.05.2014
Обход грида в цикле
Здравствуйте! У меня на форме есть табличка (grid) и рядом кнопочка в которой я хочу обойти все строчки этой таблички и что то с ними сделать.Табличка называается PurchLine.

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

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

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

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

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

Geändert von Cardagant (03.07.2014 um 10:12 Uhr)
Alt 03.07.2014, 10:40   #8  
at5454 ist offline
at5454
Участник
 
61 / 10 (1) +
Registriert seit: 29.05.2014
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные
то они будут меняться в реальной таблице в базе данных или только виртуально на экране?
2) Как мне использовать
YourDataSourceName_ds.queryRun().query()
если у меня в датасорсе 5 таблиц
3) что значит окончание "_ds"?
Alt 03.07.2014, 10:43   #9  
user_ax ist offline
user_ax
Участник
Benutzerbild von user_ax
 
599 / 39 (3) +++
Registriert seit: 07.10.2012
Ort: ZP
Zitat:
Zitat von at5454 Beitrag anzeigen
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные
то они будут меняться в реальной таблице в базе данных или только виртуально на экране?
2) Как мне использовать
YourDataSourceName_ds.queryRun().query()
если у меня в датасорсе 5 таблиц
3) что значит окончание "_ds"?
1) Они будут меняться в базе данных, потому что на экран выводятся данные как раз-таки из базы данных.
2) В вашем примере вы хотите делать обход через .next() , что не есть правильно.
Так же Вы сказали, что хотите оперировать отфильтрованными записями. Для этого пользователь Cardagant предложил Вам хороший вариант с запросом(query), который приходит с активного источника данных(ds).
Эту конструкцию Вы можете использовать по клику на Вашу кнопку на форме.

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 09:08 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.