Comment puis-je rendre une image PNG (sous forme de flux de mémoire) sur une surface de rapport .NET ReportViewer?
J'ai créé dynamiquement l'image que je sauve à un flux de données afin que je puisse l'afficher sur un ReportViewer surface.
De l'installation:
- Application Client Windows (pas WebForms)
- Rapport de la source de données est un objet de source de données, avec un générées dynamiquement flux en tant que propriété (CustomImage)
- Rapport.EnableExternalImages = true
- Image.Source = Base De Données
- Image.MIMEType = image/png
- Image.Valeur = =Champs!CustomImage.Valeur
Ce n'est pas le travail, mais ne signale pas les erreurs, il suffit de montrer une image vide icône sur le rapport de la surface. Tous les autres champs sont affichés correctement.
Quelqu'un aurait-il un exemple de code opérationnel de ce scénario?
source d'informationauteur Ben Laan
Vous devez vous connecter pour publier un commentaire.
Je suis en train de faire quelque chose de similaire afin d'avoir un changement de logo sur les rapports toutefois je utiliser les paramètres de rapport pour transmettre la valeur. Je ne vois pas pourquoi cette méthode ne fonctionne pas si les images étaient d'une partie des données.
Essentiellement les images sont transmises sur deux champs. Le premier champ est le Type MIME de la valeur et le deuxième champ est codé en Base64 chaîne de caractères contenant le contenu de l'image.
Étape 1: Convertir votre image en Base64. (Notre code passe toujours
ImageFormat.Png
à cette méthode pour rendre le Type MIME facile)Étape 2: Passer de l'image et le Type MIME pour le rapport.
Étape 3: Dans le rapport, définissez les propriétés suivantes sur l'image (sans les guillemets):
=Parameters!ReportLogoMimeType.Value
"=System.Convert.FromBase64String(Parameters!ReportLogo.Value)
"Piège pour les jeunes joueurs:
Souvent, les images horribles et comme ils ont été mis à l'échelle, même si vous êtes de passage dans une image qui semble être la "bonne taille". C'est parce que les rapports sont rendus pour l'impression (300 dpi) et pas de l'écran (généralement 72 ou 92 dpi). La solution est d'envoyer une image sur 3 fois trop grand, il l'est de taille correcte dans le rapport, et de changer le "
Sizing
" de propriété sur l'image pour l' "FitProportional
".