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