2 votes

Masquer un élément de rapport lors de l'impression/exportation d'un rapport rdlc

J'ai un RDLC avec plusieurs tableaux et pour chaque tableau, j'ai un élément TextBox à bascule qui masque le tableau correspondant dans le rapport. Cela fonctionne parfaitement, mais je ne veux pas que ces zones de texte soient visibles dans les rapports imprimés/exportés. Elles sont en fait destinées à désactiver le contenu du rapport et non à servir de contenu en soi. Existe-t-il un moyen de masquer ces cases à bascule uniquement dans les versions imprimées et exportées du rapport ?

J'ai examiné toutes les propriétés de la zone de texte du rapport et les expressions disponibles que je peux utiliser pour changer la visibilité, mais je n'ai rien trouvé que je puisse utiliser pour cacher l'élément. Il existe une propriété DataElementOutput qui semble être ce que je veux, mais je crois qu'elle n'est utile que pour le XML.

1voto

Hugo Points 36

C'est tard, mais il y a une solution. Vous pouvez ajouter un paramètre au rapport pour la visibilité du contrôle de la poignée et, dans l'événement d'impression, modifier la valeur du paramètre, puis rafraîchir le rapport (ReportViewer1.RefreshReport()).

1voto

Kolappan Nathan Points 634

Cela peut être réalisé à l'aide d'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 site Article de MSDN explique cela à propos de cette variable globale,

En outre, un indicateur booléen (=Globals!RenderFormat.IsInteractive) détermine si une extension de rendu est un renderer interactif, c'est-à-dire qu'il ne s'agit pas d'un format d'exportation. La prévisualisation (GDI/Winforms) et l'affichage HTML sont sont considérés comme des moteurs de rendu interactifs.

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

=NOT(Globals!RenderFormat.IsInteractive)

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

0voto

Perica Zivkovic Points 1808

Vous pouvez faire quelques bidouillages pour essayer d'accomplir cela comme : - définir le texte et la bordure de votre zone de texte en blanc pour qu'ils ne soient pas visibles mais toujours cliquables. - faites un rapport plus grand que la taille d'impression (taille du papier) et déplacez vos zones de texte en dehors de la zone d'impression (elles seront imprimées/exportées mais pas sur la même page que vos tableaux). - mettez vos zones de texte en haut de la page et concevez-les pour qu'elles ressemblent à des onglets qui permettent différentes vues (je sais, je sais, ce n'est pas ce que vous avez demandé :-) )

Mais la meilleure façon de résoudre ce problème est de diviser votre rapport en plusieurs rapports - un rapport pour chaque table.

J'espère que cela vous aidera !

Santé,

Pero

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X