2009-12-16 6 views
0

J'ai un rapport dans SQL Server Reporting Services qui devrait montrerTextbox dans Reporting Services - texte spectacle ou lien hypertexte

  • une zone de texte avec un texte statique pour utilisateurs « normaux »
  • une zone de texte avec un lien hypertexte pour ouvrir une nouvelle fenêtre de détails pour les utilisateurs "super"

Le niveau d'utilisateur est déterminé par un paramètre transmis dans le rapport.

Comment puis-je y parvenir? J'ai essayé de créer une zone de texte avec une partie de texte à l'intérieur qui a un lien hypertexte, et puis laissez simplement vide pour les utilisateurs "normaux", mais cela ne semble pas fonctionner de manière fiable.

Existe-t-il une astuce ou une méthode pour que cela fonctionne? Je pense que j'ai besoin d'ajouter du code au rapport pour vérifier le niveau de l'utilisateur, puis insérer un texte statique, ou un texte avec une étiquette, dans cette zone de texte cible. Mais comment puis-je faire cela (n'ayant aucune expérience VB/VBA/VB.NET ....)

Merci! Marc

+0

mis à jour ma réponse pour couvrir le formatage de lien hypertexte –

Répondre

3

Pour faire le lien, vous devriez être en mesure d'utiliser une expression comme

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

dans la propriété d'action de la zone de texte, si vous définissez l'action sur « Aller à l'URL ».

Pour contrôler le contenu de la zone de texte, utilisez une expression similaire dans la propriété Value.

(Ceci est vrai SSRS 2005 - Je n'ai pas accès à 2008)

Modifier

Malheureusement, les liens hypertextes dans SSRS ne sont pas formatés de manière à préciser qu'ils sont des hyperliens. La seule façon d'y parvenir serait d'ajouter une expression de mise en forme conditionnelle similaire aux attributs Color et TextDecoration pour que le champ apparaisse dans une couleur différente et souligné lorsqu'il s'agit d'un lien hypertexte.

+0

OK, merci pour l'indice - Je vais essayer cela et de rendre compte –

+0

Salut Ed, votre approche fonctionne, merci. Mon seul reproche en ce moment: si je suis un super utilisateur, et que ma zone de texte contient vraiment une URL pour y accéder - je ne vois pas vraiment cela visuellement - le texte ne se transforme pas en un hyperlien "typique" (bleu avec soulignement) . De toute façon, je peux régler ça aussi? (J'espérais mettre l'action à "Aller à l'URL" accomplir cela) –

+0

Ed - merci pour votre aide - avec votre réponse, j'ai été en mesure de faire fonctionner mes affaires. Merci! –

1

Je n'ai pas installé SSRS sur la machine sur laquelle j'écris ceci, donc je ne peux pas vous donner une réponse sans bug, mais cette réponse devrait vous mettre sur la bonne voie. Avoir deux zones de texte, toutes deux situées dans la même position absolue (à l'intérieur d'un élément conteneur si nécessaire). Remplissez-les tous les deux avec leurs valeurs correctes. Ensuite, contrôler seulement leur visibilité en leur propriété cachée basculer avec une expression:

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

Il est évident que userLevel est le nom du paramètre passé dans le rapport. La valeur 'Admin' est donnée à titre d'illustration, personnellement j'utiliserais une valeur int pour représenter le niveau de l'utilisateur, un peu comme utiliser une énumération.

Rappelez-vous que c'est la propriété cachée, vous définissez, vous devez donc inverser la logique que vous auriez utilisé si vous définissez une propriété visible :)

+0

Merci, oui, je pensais à quelque chose comme ça déjà.Je vais essayer –