Предыстория
Продукт Stimulsoft BI Server подразумевает командную работу с отчетами и дашбордами. Группа пользователей может просматривать и редактировать, к примеру, один и тот же шаблон. Представим, что для определенного пользователя или группы пользователей, необходимо фильтровать данные по какому-либо критерию. Другими словами, администраторы видят одни данные, менеджеры – другие. Конечно, для каждого такого пользователя или группы можно создать отдельный шаблон, и уже в шаблоне фильтровать данные в источнике данных. Однако, с ростом количества пользователей будет расти и количество шаблонов. Ярлыки, о которых мы подробно говорили в статье, в данном случае не являются решением, поскольку ярлык – это ссылка на исходный шаблон, и для определенного ярлыка фильтровать данные невозможно. А если представить, что на каждого такого пользователя будет приходиться не один шаблон, то ситуация становится критической – каждый шаблон необходимо будет настраивать для каждого пользователя или для каждой группы пользователей. Таким образом, по мере роста числа пользователей, администрирование будет сложнее и сложнее.Параметры пользователя
Проблему с фильтрацией данных для конкретного пользователя можно решить, если передавать в отчет какой-либо параметр, а затем использовать его в запросе на выборку данных для их фильтрации. В этом случае при просмотре отчета пользователь будет видеть только необходимые данные. И все это может быть в рамках одного шаблона. Ниже мы еще вернемся к подробному рассмотрению примера с фильтрацией данных. А пока ответим на главный вопрос.Что такое параметр пользователя?
По сути, это локальная переменная пользователя, которая добавляется в шаблон как переменная отчета, когда этот пользователь работает с этим шаблоном. При работе с шаблоном другим пользователем переменные от предыдущего пользователя очищаются, и в шаблон добавляются уже параметры текущего пользователя.В параметрах пользователя можно передавать строковые, числовые, логические значения, дату, изображение и выражение. В выражениях параметров пользователя можно передавать также данные пользователя: имя, фамилия, username, роль, наименование родительской папки, наименование рабочего пространства. Параметры пользователя могут использоваться не только для фильтрации данных – это лишь частный случай. Например, также можно выводить в отчете имя пользователя, который работает с ним в данный момент.
Как создать параметр пользователя?
Создание параметров осуществляется при помощи команды Добавить параметр пользователя на вкладке Пользователи в Навигаторе. В зависимости от выделенного контекста – рабочее пространство, роль или пользователь – параметр будет добавлен для всех пользователей рабочего пространства, для всех пользователей определенной роли или для определенного пользователя. В меню создания нового параметра необходимо указать наименование параметра, тип и значение. Затем нужно нажать кнопку Ок в этом меню. После этого параметр будет добавлен и отобразиться в иерархии пользователей. К слову, любой созданный параметр пользователя можно изменить или удалить на этой вкладке при помощи команд Изменить и Удалить.Использование параметров пользователя в отчете
Как уже отмечалось выше, параметр пользователя будет добавлен в шаблон как переменная отчета и будет отображаться в перечне элементов словаря данных. При редактировании отчета параметры пользователя можно использовать как переменные отчета. Например, для фильтрации источника данных, для вывода в отчете и так далее. Важно!Нужно отметить один важный момент, который представляет собой очень тонкую грань отличия между параметром пользователя и переменной отчета. Переменная отчета – это переменная, которая принадлежит шаблону. Параметр пользователя – переменная, которая принадлежит конкретному пользователю. На момент написания этой статьи невозможно перезаписать переменную отчета при использовании параметров пользователя. Дело в том, что перед загрузкой отчета в дизайнер или вьювер список параметров предыдущего пользователя очищается, а затем добавляются параметры текущего пользователя.
Практическое применение
Вернемся к нашему примеру с фильтрацией, но прежде подведем промежуточный итог. Итак, можно добавить параметр определенному пользователю. Этот параметр будет добавляться как переменная отчета в шаблон. Соответственно, и работать с параметром пользователя можно как с переменной отчета, в том числе, использовать этот параметр в запросе для фильтрации данных. Однако, при загрузке шаблона в дизайнер или вьювер, список параметров предыдущего пользователя очищается, и добавляется список текущего.И тут возникает вопрос: как фильтровать один и тот же запрос разными пользователями? Всё просто – необходимо добавить пользователям параметры с одинаковым наименованием, но разными значениями. В самом шаблоне, в запросе к источнику данных нужно добавить параметр с типом выражение. Далее в качестве выражения следует указать наименование параметра пользователя. Таким образом, при просмотре отчета, в запрос для фильтрации данных будет передаваться пользовательское значение, данные будут отфильтрованы, и в отчете отобразятся только те данные, которые необходимы.
Таким образом, параметры пользователя значительно расширяют возможности командной работы с отчетами и дашбордами в Stimulsoft BI Server.