2009-07-01 6 views
2

J'ai un RDLC avec plusieurs tables et pour chaque table, j'ai un élément TextBox à bascule qui masque la table correspondante du rapport. Cela fonctionne parfaitement, cependant, je ne veux pas que ces zones de texte soient visibles dans les rapports imprimés/exportés. Ils sont vraiment destinés à désactiver le contenu dans le rapport et non pas en tant que contenu eux-mêmes. Existe-t-il un moyen de masquer ces cases à cocher à partir uniquement de la disposition d'impression et des versions exportées du rapport?Masquer un élément de rapport à partir de l'impression/exportation d'un rapport rdlc

J'ai regardé toutes les propriétés de la zone de texte du rapport et les expressions disponibles que je peux utiliser pour basculer la visibilité, mais je n'ai rien trouvé que je puisse utiliser pour masquer l'élément. Il y a une propriété DataElementOutput qui semble être ce que je veux, mais je crois que c'est seulement utile pour XML.

Répondre

1

tard, mais il y a une solution. Vous pouvez ajouter un paramètre au rapport pour la visibilité du contrôle des poignées et dans l'événement Imprimer, modifier la valeur du paramètre et actualiser le rapport (ReportViewer1.RefreshReport())

0

Vous pouvez faire quelques hacks pour essayer d'accomplir cela comme: - la définition du texte et de la frontière sur votre zone de texte pour être blanc afin qu'ils ne sont pas vislble mais toujours cliquable - faire plus grand rapport que la taille d'impression (format de papier) et déplacez vos zones de texte hors de la zone d'impression (elles seront imprimées/exportées mais pas sur la même page que vos tableaux) - placez vos zones de texte au dessus et créez-les pour qu'elles aient l'aspect de différentes vues (je sais, je sais, ce n'est pas ce que vous avez demandé :-))

Mais la meilleure façon de résoudre cela est de diviser votre rapport en plusieurs rapports - pour chaque rapport de table.

espérons que cela aide!

acclamations,

Pero

1

Ceci peut être réalisé en utilisant une simple bascule de visibilité. Vous pouvez utiliser la variable RenderFormat.IsInteractive pour déterminer si un rapport est affiché dans le visualiseur de rapports ou s'il est exporté. Un MSDN article explique ceci au sujet de cette variable globale,

En outre, un indicateur booléen (= Globals! RenderFormat.IsInteractive) détermine si une extension de rendu est un moteur de rendu interactif, à savoir pas un format d'exportation. La prévisualisation (GDI/Winforms) et le visionnage HTML sont des rendus interactifs considérés comme .

Définissez la visibilité de la zone de texte que vous souhaitez cacher dans l'exportation à l'expression suivante

=NOT(Globals!RenderFormat.IsInteractive) 

Reportez-vous à l'image suivante (avec la permission de blog.hoegaerden.be) pour connaître les valeurs attribuées à RenderFormat.IsInteractive RenderFormat.IsInteractive