03.07.2014, 09:47 | #1 |
Участник
|
Обход грида в цикле
Здравствуйте! У меня на форме есть табличка (grid) и рядом кнопочка в которой я хочу обойти все строчки этой таблички и что то с ними сделать.Табличка называается PurchLine.
К примеру как то так только вместо next() надо какой то метод который я не знаю while(PurchLine.next()) { info("This is an info."); } Какой метод таблички нужен вместо next() чтобы обойти все строчки? Заранее спасибо |
|
03.07.2014, 10:01 | #2 |
Участник
|
Вам нужно также учесть фильтры, заданные пользователем в форме? Или модифицировать все имеющиеся записи PurchLIne?
|
|
03.07.2014, 10:02 | #3 |
Участник
|
|
|
03.07.2014, 10:02 | #4 |
Участник
|
|
|
03.07.2014, 10:03 | #5 |
Участник
|
Задачу уточнить можно ?? Странный обход записей, если честно.
|
|
03.07.2014, 10:06 | #6 |
Участник
|
|
|
03.07.2014, 10:07 | #7 |
Участник
|
Если только отфильтрованные (а не выделенные), то, как вариант, можно получить Query датасорса формы через
X++: YourDataSourceName_ds.queryRun().query(). Также хороший пример привёл tricky Последний раз редактировалось Cardagant; 03.07.2014 в 10:12. |
|
03.07.2014, 10:40 | #8 |
Участник
|
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные то они будут меняться в реальной таблице в базе данных или только виртуально на экране? 2) Как мне использовать YourDataSourceName_ds.queryRun().query() если у меня в датасорсе 5 таблиц 3) что значит окончание "_ds"? |
|
03.07.2014, 10:43 | #9 |
Участник
|
Цитата:
Сообщение от at5454
Мне надо менять только экранную информацию(базу данных не трогать)
1)В этом случае если я буду в своем цикле менять данные то они будут меняться в реальной таблице в базе данных или только виртуально на экране? 2) Как мне использовать YourDataSourceName_ds.queryRun().query() если у меня в датасорсе 5 таблиц 3) что значит окончание "_ds"? 2) В вашем примере вы хотите делать обход через .next() , что не есть правильно. Так же Вы сказали, что хотите оперировать отфильтрованными записями. Для этого пользователь Cardagant предложил Вам хороший вариант с запросом(query), который приходит с активного источника данных(ds). Эту конструкцию Вы можете использовать по клику на Вашу кнопку на форме. 3) Окончание _ds означает datadource. Пример: у вас есть форма PurchLine, у которой множество датасорсов, в том числе и сам PurchLine. Так вот, чтобы обратиться к конкретной записи датасорса, Вам необходимо использовать конструкцию PurchLine_ds. |
|
03.07.2014, 10:58 | #10 |
Участник
|
Расскажу поподробнее. Есть грид который который тянет инфу из пяти таблиц. После применения фильтров у меня остается на экране 10 строчек. Которые я и хочу обработать.После моей обработки этих строчек их новое значение подхватит другое (НЕ МОЕ) вычисление.
И все благополучно стерется после закрытия формы.А в базе все останется без изменений. Вот такая задача. В этом случаем мне использовать совет tricky? |
|
03.07.2014, 11:01 | #11 |
Участник
|
Цитата:
Сообщение от at5454
Расскажу поподробнее. Есть грид который который тянет инфу из пяти таблиц. После применения фильтров у меня остается на экране 10 строчек. Которые я и хочу обработать.После моей обработки этих строчек их новое значение подхватит другое (НЕ МОЕ) вычисление.
И все благополучно стерется после закрытия формы.А в базе все останется без изменений. Вот такая задача. В этом случаем мне использовать совет tricky? В задаче, описанной вами, разумнее использовать временные таблицы. |
|
03.07.2014, 11:29 | #12 |
Участник
|
Вы извините что туплю, у меня сегодня третий рабочий день, только третий день работаю с аксаптой.
Благодаря совету cardagant мне удалось успешно пробежать мои 10 записей из таблицы формы. И вот новые обстоятельства: При пробегании если поле X равно определенному значению то мне нужно в поле Y записать свое значение. НО! Если поле X - это родное поле из таблицы базы данных, то поле Y -это виртуальное поле лишь данного грида, которое рождается только при запуске формы. Как же мне в него записать? |
|
03.07.2014, 11:35 | #13 |
Участник
|
Цитата:
Сообщение от at5454
Вы извините что туплю, у меня сегодня третий рабочий день, только третий день работаю с аксаптой.
Благодаря совету cardagant мне удалось успешно пробежать мои 10 записей из таблицы формы. И вот новые обстоятельства: При пробегании если поле X равно определенному значению то мне нужно в поле Y записать свое значение. НО! Если поле X - это родное поле из таблицы базы данных, то поле Y -это виртуальное поле лишь данного грида, которое рождается только при запуске формы. Как же мне в него записать? Если верно понимаю Вас, то Вам следует почитать о дисплей-методах (display-method). |
|