Фильтр в sq для Fr отчета

Подскажите как правильно сделать:

Есть простой fr (sq + ds) отчет который выводит все Счета.
Хочу установить фильтр (в sq)

WHERE([tbl_vwInvoiceManager].[ContactID] = :ContactID)

, чтобы менеджеры при открытии отчета видели только свои Счета.
На какое событие в ds установить:

ApplyDatasetFilter(ds_InvoiceManager, 'ContactID', ContactID, true);

К примеру, как передать параметр :ContactID в sq (см. рисунок) для фильтра (на какое событие ds скрипта?). Пробовал разные варианты, но фильтрации не происходит. Если же в самом фильтре (в sq)прописать значение для параметра , то фильтр срабатывает.

Как правильно реализовать данный пример?

Нравится

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

Попробуйте применять фильтр в обработчике события OnDatasetBeforeOpen Вашего датасета для отчета:

var ContactID = Connector.CurrentUser.ContactID;
ApplyDatasetFilter(ds_InvoiceManager, 'ContactID', ContactID, true);

"Савельева Алла" написал:

Попробуйте применять фильтр в обработчике события OnDatasetBeforeOpen Вашего датасета для отчета:

var ContactID = Connector.CurrentUser.ContactID;

ApplyDatasetFilter(ds_InvoiceManager, 'ContactID', ContactID, true);


Именно так я и делал, но при ds_InvoiceManager.Open(); цикл опять повторяется в данном обработчике и открытие отчета FastReport не происходит.
В случае, если это не отчет FR, то все нормально срабатывает.

Спасибо, вопрос решился.

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