RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Вызов расширенного отчета из адресной строки

Давненько не было статей...
Вернемся к модулю расширенных отчетов. Одна из главных функций - это возможность вызывать расширенный отчет не только из карточки документа, но и передавая параметр в адресной строке.
Для чего это может быть полезно. Например при создании вложенных отчетов, или когда из одного отчета надо вызвать другой.

Параметры передаются как в любом запросе к aspx, первый через ? последующие через &
Имя параметра то же, какое задано в настройках отчета, и оно чувствительно к регистру.

Пример.
http://dvserver/docsvision/ReportingServer/Fetch.aspx?basename=DVBase&reportid=%7bEA242123-1C33-45BF-AEB9-E6784AAD62BD%7d&cardid=%7b99841090-2FF8-4DFB-B44A-A14A36E59FC0%7d&PartnerID=SDADFE1C-9A03-45CD-94C1-EE8577C12346

здесь
Идентификатор отчета
Идентификатор карточки расширенного отчета
Параметр


Если отчет содержит несколько параметров, то не обязательно передавать все. Те, которые не указаны в адресной строке будут взяты из настроек отчета – параметры по умолчанию.
На данный момент не реализована передача параметров типа "дата-время". Если есть необходимость в этом, то можно сделать в процедуре параметр типа "строка" и передавать значения в строке, приводя к дате уже в процедуре.

Теперь о безопасности. Нужно в любых отчетах уделять внимание безопасности. При возврате результирующего набора сервер расширенных отчетов ожидает колонку SecurityDesc, в которой должен быть дескриптор безопасности (каждая карточка ). И если у пользователя, который вызывает отчет нет прав на строку (нет записи в дескрипторе), то эта строка ему в отчет не будет возвращена. Если этой колонки нет, то будут возвращены все строки.

Как получить дескриптор - просто. Например, делается выборка по карточкам в этом случае нужно соединить Таблица.InstanceID = dvsys_instances.InstanceID, далее соединить dvsys_instances.SDID = dvsys_security.ID и получить из dvsys_security.SecurityDesc.


Добавлено.
Как это можно использовать? Например, делаете отчет, в котором есть статистика по всем контрагентам, а при нажатии на контрагента открывается новый отчет по нему (по сути в первом отчете есть ссылка на другой отчет, в который передаются параметры, как в xlst динамически делать ссылки описано в http://dvprofessionals.blogspot.com/2009/03/blog-post_4221.html).

Наример, в службе ТП, есть отчет по количеству обращений от компаний. При нажатии на название компании выводится статистика по всем обращениям от сотрудников данной, конкретной компании. Читать дальше

1 коммент.:

Анонимный комментирует...

Спасибо, что рассказали про результат вкючения колонки SecurityDesc в расширенных отчетах. Очень полезно!

Отправить комментарий