2009-07-18 8 views
2

J'ai besoin d'aide pour ajouter dynamiquement un logo d'image dans ReportViewer. Je reçois cette image de db, le convertir en base64, et je dois l'ajouter dans ReportViewer ... Ce code suivant:Comment ajouter dynamiquement un logo d'image aux paramètres ReportViewer?

rpViewer.LocalReport.EnableExternalImages = true; 

     Company _company = db.Companys.Where(c => c.codCompany == c.codCompany).Single(); 

     //first step 
     byte[] img = _company.imagem.ToArray(); // i get image from db 
     MemoryStream _ms = new MemoryStream(img); 

     string logo = Convert.ToBase64String(img); //convert to base64 

     // 2 step 
     List<ReportParameter> lstReportParams = new List<ReportParameter>();//Create params 
     lstReportParams.Add(new ReportParameter("Logo", logo)); 
     lstReportParams.Add(new ReportParameter("LogoMimeType", "image/png")); 

     // Doesn't work here (see error below) 
     this.rpViewer.LocalReport.SetParameters(lstReportParams); 

     this.rpViewer.RefreshReport(); 

L'erreur:

{"An error occurred during local report processing."}
{"An attempt was made to set a report parameter 'Logo' that is not defined in this report."}

En RLDC:

MIMEType =Parameters!LogoMimeType.value 
Value ="System.Convert.FromBase64String(Parameters!Logo.Value)" 

Pourquoi cela ne fonctionne-t-il pas?

Pourquoi ne reconnaît pas le paramètre?

Je peux charger cette image dans ReportViewer.

Répondre

1

Le message d'erreur indique que vous n'avez pas défini le paramètre de rapport Logo. Ce paramètre de rapport est-il défini?

Vous pouvez également être en cours d'exécution dans des problèmes avec la taille des paramètres que vous envoyez dans.

Nous avons eu un problème similaire, avec un rapport nécessaire pour afficher des images différentes. Dans notre cas, il y avait seulement environ 10 images. La manière dont nous l'avons résolu consistait à placer toutes les images sur le rapport, puis à les rendre visibles ou non en fonction d'un paramètre.

+0

Salut, Je dois juste prendre une photo en db qui est le logo de l'entreprise et le montrer dans le rapport. Ce paramètre dans RLDC est-il correct? MIMEType = Paramètres! LogoMimeType.value Valeur Value = "System.Convert.FromBase64String (Paramètres! Logo.Value)" Merci .. – user95542

2

Votre fichier RDLC doit avoir le paramètre Logo créé afin que votre liste de paramètres soit reconnue par votre rapport.

Vous devrez éditer votre fichier RDLC et créer un paramètre. Vous pouvez le faire en ouvrant le fichier RDLC dans Visual Studio, puis cliquez sur Rapport dans le menu Fichier et sélectionnez Paramètres du rapport.

Questions connexes