SSRS 2005 - захват сообщения RAISERROR - PullRequest
0 голосов
/ 21 июля 2009

Я проверяю, есть ли у пользователя разрешение на просмотр отчета через хранимую процедуру набора данных, и если у пользователя нет, вызывается raiserror.

Есть ли способ отобразить сообщение, отличное от SQL Server Reports 2005, когда хранимая процедура (которая заполняет набор данных отчета) выдает ошибку (через RAISERROR) вместо возврата данных?

Вот скелетный код хранимой процедуры набора данных

create procedure ReportSprocName
    @ClientID   int,
    @Login      sysname
as
begin
    --; check user's permission through @Login
    --; * Pseudo code *
    if @Login does not have permission begin
        raiserror(@Login does not have permission, 127, 1)
        return
    end

    select  id, name, etc...
    from    someTable   
end
GO

Меня интересуют два возможных решения

  1. Отображение сообщения об ошибке в RAISERROR
  2. Отображение жестко запрограммированного пользовательского сообщения в самом отчете SSRS

В настоящее время это сообщение по умолчанию, отображаемое в отчетах SSRS. alt text

1 Ответ

2 голосов
/ 21 июля 2009

Почему вы позволяете пользователю запускать отчет, если у него нет разрешения на его просмотр?

Чтобы отобразить пользовательское сообщение в самом отчете SSRS:

  1. Добавить текстовое поле
  2. Настройте отображаемый текст на свое усмотрение
  3. Укажите выражение для значения Видимость> Скрытое (окно свойств). IE:

    = iif (count (Fields! Application_Number.Value, "YOUR-DATASOURCE-NAME")> 0, true, false)

...