Créer une fiche détailler d'un produit avec microsoft report mais voici l'erreur

Signaler
Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020
-
Messages postés
2245
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
20 octobre 2020
-
Bonsoir tout le monde

Donc voila je souhaite crée une fiche détaillée d'un produit sur mon programme visual basic win form C# avec le miscro soft Report Parameter donc voici mon code :


FrmRpt.RPAfficher.LocalReport.ReportEmbeddedResource = "GestionDeStock.RAP.RP_Produit.rdlc";
ReportParameter PCat = new ReportParameter("RP_Categorie", Nom_Categorie);
ReportParameter PMarque = new ReportParameter("RP_Marque", Product.Nom_Produit);
ReportParameter PCouleur = new ReportParameter("RP_Couleur", Product.Couleur_Produit);
ReportParameter PTaille = new ReportParameter("RP_Taille", Product.Taille_Produit.ToString());
ReportParameter PQuantite = new ReportParameter("RP_Quantite", Product.Quatite_Produit.ToString());
ReportParameter PPrix = new ReportParameter("RP_Prix", Product.Prix_Produit.ToString());

string ImageString = Convert.ToBase64String(Product.Image_Produit);
ReportParameter PImage = new ReportParameter("RP_Image", ImageString);

FrmRpt.RPAfficher.LocalReport.SetParameters(new ReportParameter[] { PCat, PMarque, PCouleur, PTaille, PQuantite, PPrix, PImage });

FrmRpt.RPAfficher.RefreshReport();
FrmRpt.ShowDialog();


Donc le truque c'est que je me suis taper 06h à le vérifier et réécrire j'arrive pas a trouver l'erreur, quand je lance ce code, sa me souligne cette ligne :

  FrmRpt.RPAfficher.LocalReport.SetParameters(new ReportParameter[] { PCat, PMarque, PCouleur, PTaille, PQuantite, PPrix, PImage });



l'erreur afficher c'est la suivante :

Exception non gérée :

11 réponses

Messages postés
14881
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 octobre 2020
446
Bonjour

Tout d’abord, tu as essayé d’utiliser la coloration syntaxique, mais pas correctement. Voici un petit tuto sur leur bonne utilisation https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu as un peu de temps pour modifier ton message.

Ensuite, copier coller le message d’erreur serait une aide pour nous, car la capture d’écran n’est pas très lisible.
Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020

Premièrement merci pour votre réponse,

donc j'ai ajouté un try catch à mon code pour avoir une idée plus claire :

le catch m'a affiché l'erreur suivante "une erreur s'est produite lors de traitement de rapport local "

voici mon code :

  try
                    {
                        FrmRpt.RPAfficher.LocalReport.ReportEmbeddedResource = "GestionDeStock.RAP.RP_Produit.rdlc";
                        ReportParameter PCat = new ReportParameter("RP_Categorie", Nom_Categorie);
                        ReportParameter PMarque = new ReportParameter("RP_Marque", Product.Nom_Produit);
                        ReportParameter PCouleur = new ReportParameter("RP_Couleur", Product.Couleur_Produit);
                        ReportParameter PTaille = new ReportParameter("RP_Taille", Product.Taille_Produit.ToString());
                        ReportParameter PQuantite = new ReportParameter("RP_Quantite", Product.Quatite_Produit.ToString());
                        ReportParameter PPrix = new ReportParameter("RP_Prix", Product.Prix_Produit.ToString());

                        string ImageString = Convert.ToBase64String(Product.Image_Produit);
                        ReportParameter PImage = new ReportParameter("RP_Image", ImageString);

                        FrmRpt.RPAfficher.LocalReport.SetParameters(new ReportParameter[] { PCat, PMarque, PCouleur, PTaille, PQuantite, PPrix, PImage });
                        FrmRpt.RPAfficher.RefreshReport();
                        FrmRpt.ShowDialog();
                    }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }




voici mon explorateur de solution pour vérifier la première ligne de mon code :
FrmRpt.RPAfficher.LocalReport.ReportEmbeddedResource = "GestionDeStock.RAP.RP_Produit.rdlc";



et voici mon RP_Produit :



et voici l'erreur qu'il m'affiche avant d'utiliser le try catch :


Merci bcp pour votre aide
Messages postés
14881
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 octobre 2020
446
Ta capture d'écran est toujours aussi peu lisible, cependant j'ai cru distinguer NullReferenceException.
Ce que tu as copié collé du catch n'a rien à voir.

Autant avec un nullReferenceException, j'avais une chance de t'aider autant là....

PS pas besoin d'un try catch pour copier coller un message d'erreur, il suffit de le copier dans la fenêtre qui s'affiche.



Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020

Ok, merci beaucoup et désolé si je suis lourd, je suis débutant, voici un copié collé de l'erreur sans le try catch :


Microsoft.Reporting.WinForms.LocalProcessingException : 'Une erreur s'est produite lors du traitement du rapport local.'

NullReferenceException : La référence d'objet n'est pas définie à une instance d'un objet.

Cette exception a été levée à l'origine dans cette pile des appels :
[Code externe]



et quand je fais afficher détaille sa m'affiche ça :

Messages postés
14881
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 octobre 2020
446
Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020

j'ai toujours pas trouver :(
Messages postés
14881
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 octobre 2020
446
Ha en ouvrant tes images dans un nouvel onglet, c'est plus lisible.

C'est écrit "La définition du rapport "RP_Produit" n'est pas spécifiée".

Dans ton rapport, il doit y a avoir un champ ou une propriété qui s'appelle "RP_Produit" que tu n'as pas renseigné.
De cette façon, je suppose
ReportParameter PCat = new ReportParameter("RP_Categorie", Nom_Categorie);


Ce qui expliquerait, le NullReferenceException.

PS tu l'aurais compris, je n'ai jamais utilisé cet outil, je ne fais que spéculer.
Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020

Justement moi je pense que le problème vient de la ligne suivante :

FrmRpt.RPAfficher.LocalReport.ReportEmbeddedResource = "GestionDeStock.RAP.RP_Produit.rdlc";


Mais dans la vidéo tutoriel sa marchais nikel
Messages postés
14881
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 octobre 2020
446
Et oui, les vidéos c'est pas du tout adapté à la programmation...
Avec un tuto pdf tu aurais pu copier coller le code au moins.
A priori, il y en a pleins
https://lite.qwant.com/?q=reportViewer+tutoriel&client=opensearch
Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020

Bonsoir, donc voila ce que j'ai fais : j'ai installé flamework 4.8 je l'ai mis à jour dans le visual basic et maintenant sa m'affiche l'erreur suivante :

System.IO.FileLoadException : 'Impossible de charger le fichier ou l'assembly 'Microsoft.ReportViewer.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' ou une de ses dépendances. La définition trouvée du manifeste de l'assembly ne correspond pas à la référence de l'assembly. (Exception de HRESULT : 0x80131040)'



et sa me souligne la ligne suivante :
this.RPAfficher = new Microsoft.Reporting.WinForms.ReportViewer();

mais dans un fichier C# qui n'est pas le mien son titre : Form_Reporte_Designer
Messages postés
2245
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
20 octobre 2020
115
Bonjour
Petite correction en passant : pourquoi parles-tu de Visual Basic alors que tu programmes en C# ?
Voir ton message précédent : "Bonsoir, donc voila ce que j'ai fais : j'ai installé flamework 4.8 je l'ai mis à jour dans le visual basic et maintenant sa m'affiche l'erreur suivante "

Tu es sous Visual Studio et il supporte les langages C# et Visual Basic principalement .
Messages postés
22
Date d'inscription
mardi 24 septembre 2013
Statut
Membre
Dernière intervention
22 mai 2020

J'ai réglé ce problème on supprimant le microsoft reportviewer commun, donc voici les erreurs qu'il m'affiche avec un catch ex.message, ex.innermessage ex.innermessage.innermessage :

première erreur : une erreur s'est produite lors du traitement de rapport local
deuxième erreur : La définition du rapport <Rapport_List_Produit> N'est pas spécifié
troisième erreur : la référence d'objet n'est définie à une instance d'un objet

voila