28.08.2007, 15:06 | #1 |
Участник
|
Перебор данных на форме ReqTransPO
Здравствуйте.
Такая проблема: необходимо перебрать все выбранные записи на форме ReqTransPO (выгрузка для последующего анализа). написал код: X++: reqpo_ds.executeQuery(); reqpo_ds.first(); while (reqPO_ds.queryRun().next()){ reqTranscov_ds.executeQuery(); reqtranscov_ds.first(); while(reqtranscov_ds.queryRun().next()){ // выгружаю, обращаясь к таблицам ReqPO, ReqTrans, ReqTransCov info(strfmt('%1,%2',ReqPO.ItemId,ReqTransSettled.ReqDate)); // пример обращения } //while reqtranscov } //while reqpo 1) получилась только часть данных, кот. были на форме 2) на форму выставляется фильтр, никаким образом не связанный даже с тем, что выгрузилось в эксперименте никаких фильтров на форму дополнительно не ставится. |
|
28.08.2007, 15:19 | #2 |
SAP
|
Цитата:
reqPO_ds.queryRun()
|
|
28.08.2007, 15:25 | #3 |
Участник
|
А вы читали то, что написали?
Вы определитесь, вы хотите использовать источник данных, или его queryRun а то сперва _ds.first, а потом вместо _ds.next() делаете _ds.queryRun().next() Честно говоря не пробовал такого, но врядли получится что-то разумное. |
|
28.08.2007, 15:50 | #4 |
Участник
|
спасибо, пофиксил. результат был. правда тот же - выводилось только то, что более одной строчки имело в ReqTransCov...
нормально срослось, когда проставил вывод еще одной строчки до цикла: X++: reqpo_ds.executeQuery(); reqpo_ds.first(); while (reqPO_ds.queryRun().next()){ reqTranscov_ds.executeQuery(); reqtranscov_ds.first(); // **** вот это добавил info(strfmt('%1,%2',ReqPO.ItemId,ReqTransSettled.ReqDate)); // пример обращения while(reqtranscov_ds.queryRun().next()){ // выгружаю, обращаясь к таблицам ReqPO, ReqTrans, ReqTransCov info(strfmt('%1,%2',ReqPO.ItemId,ReqTransSettled.ReqDate)); // пример обращения } //while reqtranscov } //while reqpo |
|
28.08.2007, 16:10 | #5 |
Участник
|
Чёто не понял зачем такой странный код.
Нормально делается так X++: queryRun queryRunLoc; ; queryRunLoc = new QueryRun(.query()); while (queryRunLoc.next()) { inventJournalTransLoc = queryRunLoc.get(tablenum(inventJournalTrans)); } |
|
28.08.2007, 16:23 | #6 |
Участник
|
Дело в том, что на данной форме все не так просто - три executequery пеписаны, поэтому пришлось делать именно так непосредственно обращаясь к обектам формы. еще нужно было снять аналогичные данные с InventTrans - там делал именно так. А здесь - 5 датасорсов на форме, все они хитро вяжутся...
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Подскажите красивое решение задачи (поиск данных на форме) | 4 | |||
Стандартный импорт данных. Обновление | 0 | |||
Обновление данных на форме | 11 | |||
Перебор данных в таблице | 10 |
|