|
08.09.2021, 09:26 | #1 |
Участник
|
упрек принят.
вопрос к единственному числу принят. это то понятно. учесть что один может быть с группировкой и/или агрегатными функциями, а другой без один может быть union запрос, а другой нет и прочие радости... вдруг кто-нибудь это уже делал... А вот точно ли единственный вариант? Может кто копал в сторону dataSet, которые появились в 2009? Делал ли кто-нибудь код, который эмулирует dataSet и автоматом делает выполняет вложенные запросы? Есть ли перспективы в этих направлениях? Последний раз редактировалось mazzy; 08.09.2021 в 09:28. |
|
09.09.2021, 00:23 | #2 |
Administrator
|
Цитата:
И потом...А как интересно можно создать единый Query, если его на форме в принципе нет? Я имею в виду пример SalesTable, где датасорсы SalesTable и SalesLine связаны между собой по Delayed? Да, если связка по Inner / Exists / Outer Join - там все понятно и в этом случае все датасорсы сидят в корневом датасорсе, а значит весь запрос вытаскивается через метод FormDataSource.query(). Ведь даже на форме SalesTable (AX2009) видно, что строки подгружаются позже шапок, т.е. отдельным запросом к БД.
__________________
Возможно сделать все. Вопрос времени |
|
09.09.2021, 11:23 | #3 |
Участник
|
Цитата:
очередной объект для конкретного случая... но вдруг? Цитата:
я неправильно сформулировал вопрос. в исходном сообщении я писал "Предположим, я хочу как-то обработать все выбранные строки всех выбранных заказов." правильный вопрос: "как обработать все строки, которые может увидеть пользователь на форме, с учётом наложенных на форму фильтров" Последний раз редактировалось mazzy; 09.09.2021 в 11:32. |
|
10.09.2021, 01:28 | #4 |
Administrator
|
Цитата:
Напрашивается решение - обратиться к датасорсу, к которому привязаны строки и посмотреть у него _ds.queryRun().query() (ну если в явном виде не перебирать все строки текущего датасорса) Т.е. подразумевается, что есть форма (условно - SalesTable), в ней есть строки (SalesLine), которые подчинены главному датасорсу по Delayed. Я хочу обработать все строки (SalesLine) с учетом пользовательского фильтра. Я делаю кнопку на форме, к ней привязываю тот датасорс, строки которого я хочу обработать, а дальше в коде обращаюсь к _ds.queryRun().query() Но это все хорошо, если мой датасорс является либо корневым, либо подчиненным по Delayed / Active / Passive - в общем не join Если же мой датасорс подчинен кому-то по *Join, то получается, что надо обращаться к его родителю (его датасорсу) и уже там искать _ds.queryRun().query() Т.е. грубо говоря, если на форме SalesTable под строками я подразумеваю не SalesLine, а InventDim, то мне нужно от датасорса InventDim "подняться" до SalesLine и взять его queryRun.query()
__________________
Возможно сделать все. Вопрос времени |
|