1
Голосовать

Помогите разобраться с фильтрами в отчете

Создано:
Метки записи:

Я никак не могу разобраться с фильтрами в отчете. Мне надо в отчете отследить, сколько каждый человек создал документов за определенный период. Этот период я хочу задать с помощью фильтра по дате создания документа. В самом запросе я использую агрегатную функцию count, группировку и сортировку. А что писать в данном случае в OnActivate не могу понять.

Комментарии

Кихтенко Андрей
Irina K пишет:
Я никак не могу разобраться с фильтрами в отчете. Мне надо в отчете отследить, сколько каждый человек создал документов за определенный период. Этот период я хочу задать с помощью фильтра по дате создания документа. В самом запросе я использую агрегатную функцию count, группировку и сортировку. А что писать в данном случае в OnActivate не могу понять.

Я так понял, что идет речь о 2.8...
Когда Вы настраиваете фильтры - Вы указывате группу (1,2..9)
Поле "Шаблон SQL" показает в каком виде фильтр прийдет в отчет...
Если фильтр имеет группу 1 - он попадет в переменную Filter, группу 2 - Filter 2 и т.п.
Ваша задача просто получить эту переменную и вставить в запрос отчета, примерно такой конструкцией

   Query1.SQL := Query1.SQL + if(Filter = '', '', ' where ' + Filter);

Non noceo.

Irina K

Спасибо! Дело в том, что в принципе отчет у меня уже получился. Загвоздка была именно в группировке и сортировке. Т. е. если я правильно поняла, то конструкции group by и order by нужно писать в данном случае не в запросе, а при вставке переменной Filter в запрос в OnActivate.

Кихтенко Андрей
Irina K пишет:
Спасибо! Дело в том, что в принципе отчет у меня уже получился. Загвоздка была именно в группировке и сортировке. Т. е. если я правильно поняла, то конструкции group by и order by нужно писать в данном случае не в запросе, а при вставке переменной Filter в запрос в OnActivate.

Если Вы имеете в виду динамическое построение запроса, то - да...
конструкции group by и order by можна писать и до, просто переменную Filter нужно вставить между ними и перечислением полей и таблиц...

Non noceo.