Текстовое поле в службах Reporting Services - показать текст или гиперссылку - PullRequest
0 голосов
/ 16 декабря 2009

У меня есть отчет в службах отчетов SQL Server, который должен отображать

  • текстовое поле со статическим текстом для "обычных" пользователей
  • текстовое поле с гиперссылкой для открытия новых окон сведений для "супер" пользователей

Уровень пользователя определяется параметром, передаваемым в отчет.

Как мне этого добиться? Я попытался создать текстовое поле с текстовым интервалом внутри, который имеет гиперссылку, а затем просто оставить его пустым для «обычных» пользователей, но это не работает надежно.

Есть ли уловка или метод, чтобы заставить это работать? Я думаю, мне нужно добавить код в отчет, чтобы проверить уровень пользователя, а затем либо вставить статический текст, либо текст с меткой, в это целевое текстовое поле. Но как мне это сделать (не имея опыта работы с VB / VBA / VB.NET ....)

Спасибо! Марк

Ответы [ 2 ]

3 голосов
/ 16 декабря 2009

Чтобы создать гиперссылку, вы должны использовать выражение типа

=iif(Parameters!IsSuperUser.Value = True, "http://some link","#")

в свойстве Action текстового поля, если для параметра Action установлено значение «Перейти к URL».

Чтобы управлять содержимым текстового поля, используйте аналогичное выражение в свойстве Value.

(Это верно для SSRS 2005 - у меня нет доступа к 2008)

Редактировать

К сожалению, гиперссылки в SSRS не отформатированы таким образом, чтобы было ясно, что они являются гиперссылками. Единственный способ добиться этого - добавить аналогичные выражения условного форматирования в атрибуты Color и TextDecoration, чтобы поле отображалось другим цветом и подчеркивалось, когда оно является гиперссылкой.

1 голос
/ 16 декабря 2009

У меня не установлен SSRS на машине, на которой я пишу это, поэтому я не могу дать вам точный гарантированный ответ без ошибок, но этот ответ должен поставить вас на правильный путь.

Имеют два текстовых поля, оба расположены в одной и той же абсолютной позиции (при необходимости внутри элемента контейнера). Заполните их оба правильными значениями. Затем просто контролируйте их видимость, переключая их свойство Hidden с помощью выражения:

=(Parameters!UserLevel.Value = 'Admin')

Очевидно, UserLevel - это имя параметра, передаваемого в отчет. Значение «Admin» предназначено для иллюстративных целей, лично я бы использовал значение int для представления уровня пользователя, очень похоже на использование enum.

Помните, что это свойство Hidden, которое вы устанавливаете, поэтому вам придется изменить логику, которую вы использовали бы, если бы вы устанавливали свойство Visible:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...