Фильтр по стадиям в отчете

Добрый день!

Есть следующая задача. В разделе Продажи при заведении новой сделки, можно указать стадию и ответственного. Необходимо создать отчет FastReport, в котором для каждого ответственного будут выводиться все сделки по стадиям. Если какой-то стадии у ответственного не существует, то необходимо это указать.
Создаю два запроса. Первый (sq_StageAll) выводит все существующие стадии, второй (sq_OwnerStage) - те стадии, которые участвуют в сделках данного ответственного. Dataset второго запроса (ds_OwnerStage) является подчиненным к первому (ds_StageAll). Если включить фильтр по стадиям сделок ответственного в sq_OwnerStage, то стадии, для которых сделок не существует, выводиться не будут, а надо бы. Можно ли включить фильтр в отчете? Как и в какой момент это лучше сделать?

Спасибо.

Нравится

4 комментария

Вы можете его включить на событиях OnPrepare или OnPreview отчета.
К примеру, событие OnPrepare отрабатывается при подготовке отчета к выводу.

В отчете должно получиться следующее:
Ответственный
Стадия
Количество сделок по этой стадии

Если для какой-то стадии нет сделки, надо вывести 0.

Создаю 3 запроса. Первый (sq_OwnerManager) выбирает ответственных, второй (sq_StageAll)- все стадии из справочника , третий (sq_OwnerStage) - те стадии, которые участвуют в сделках текущего ответственного. Создаю датасет для каждого запроса: ds_OwnerManager, ds_StageAll, ds_OwnerStage.Датасет ds_StageAll делаю подчиненым к ds_OwnerManager, а датасет ds_OwnerStage подчиненным к ds_StageAll.

Для того, чтобы для текущей стадии выводилось количество сделок, в которых она участвует, включаю в запросе sq_OwnerStage фильтр по ID стадии. Но тогда те стадии, у которых нет сделок, не выводятся.
Как быть в этом случае?

Для MasterData стадии установите "галочку" PrintIfDetailEmpty.

Шикарно! Большое спасибо!

Показать все комментарии