0

Je vérifie si un utilisateur a l'autorisation d'afficher le rapport via la procédure stockée de l'ensemble de données et si l'utilisateur ne le fait pas, raiserror est appelé.SSRS 2005 - Capture du message RAISERROR

Existe-t-il un moyen d'afficher un message différent de SQL Server Reports 2005 lorsqu'une procédure stockée (qui remplit le jeu de données de rapport) déclenche une erreur (via RAISERROR) au lieu de renvoyer des données?

Voici un code squelette de la procédure

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 

stockées ensemble de données Je suis intéressé par deux peut-être des solutions

  1. Affichage message d'erreur dans les RAISERROR
  2. Afficher un message hardcoded personnalisé dans le rapport SSRS lui-même

Actuellement c'est la message d'erreur affiché par les rapports SSRS alt text

+0

j'ai trouvé un travail autour mais je suis toujours impatient savoir comment capturer le message RAISERROR à partir du rapport SQL Server. – Sung

Répondre

2

Pourquoi autoriser l'utilisateur à ouvrir le rapport s'il n'a pas l'autorisation de le consulter?

Pour afficher un message personnalisé dans le rapport de SSRS lui-même:

  1. Ajouter un champ texte
  2. Personnaliser le texte affiché sur elle à votre satisfaction
  3. Fournir une expression de la visibilité> valeur cachée (Fenêtre des propriétés). IE:

    = ssi (count (champs Application_Number.Value, "VOTRE-DATASOURCE-NOM")> 0, vrai, faux!)

+0

@rexem: "Pourquoi autorisez-vous l'utilisateur à ouvrir le rapport s'il n'a pas la permission de l'afficher?" C'est une question valide. J'ai demandé au développeur qui a créé le menu mais il n'y a aucun moyen d'associer une permission pour l'élément de menu "pour l'instant" mais je dois encore faire quelque chose et c'est pourquoi je cherche un "work-around" pour faire quelque chose pour le moment. – Sung

+0

Existe-t-il un moyen de "capturer" le message Raierror? – Sung

+0

Je n'ai pas eu à capturer la sortie RAISERROR dans un rapport, désolé. –