![]() |
#1 |
Участник
|
![]()
У меня есть форма с гридом по трем связанным DS.
Стандартными средствами Axapta я делаю в гриде фильтр. Как мне сформировать отчет по отфильтрованным данным? Т.е. как мне передать из формы в отчет все наложенные Range? |
|
![]() |
#2 |
Участник
|
На DS есть метод query(). при помощи него можно программно менять фильры на форме. Если попробовать передать е качесве параметра в отчет - думаю должно получиться
|
|
![]() |
#3 |
Юзовские
|
Рискну вставить свое слово.
Передавать нужно не query, a queryRun, причем взять его из верхнего датасорса, т.к. query не учитывает фильтры наложенные пользователем. |
|
![]() |
#4 |
Участник
|
Согласен
|
|
![]() |
#5 |
Участник
|
PHP код:
Количество таблиц в отчете может быть больше или меньше DS в форме ... |
|
![]() |
#6 |
Участник
|
Теперь можно например заполнить временную таблицу и на ней построить отчет, тогда отчет будет строится в 2 прохода - заполнение временной таблицы и непосредственно вывод отчета, а можно и воспользаваться .sent()
PHP код:
|
|
![]() |
#7 |
Юзовские
|
Если есть острая необходимость перенести range'ы и нет желания париться с временной таблицей, можно воспользоваться методами
dataSourceCount() у query и rangeCount() у queryBuildDataSource, чтобы перебрать все датасорсы и range'ы. Примеры можно найти в методах класса SysQuery. Например в SysQuery::unpackRangeAndSortorder. |
|
![]() |
#8 |
Moderator
|
Стоит заметить что в DataSource.queryRun().query() лежит как раз текущий запрос - с учетом всех фильтров, установленных пользователем.
А вот уже из этого query можно сделать отдельный queryRun, с которым можно будет делать все что угодно. |
|
|
За это сообщение автора поблагодарили: AlexeyS (2). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|