Bonjour chers coachs et experts de langage c#. J'ai une petite préoccupation et j'ai vraiment besoin de votre aide. Je travail sur un projet de la Gestion des écoles. et je souhaite imprimer l'emploi du temps
des cours en fonction du programme de chaque classe. J'ai crée mon rapport avec les paramètres à visualiser mais le code ne marche pas. Je reçois l'erreur : "La référence d'objet n'est pas définie à une instance d'objet."
Donc l'erreur se trouve au niveau du traitement du rapport local. Svp je veux votre aide. Je suis débutant et c'est mon deuxième projet avec c#. Merci beaucoup d'avance
Voici le code source :
private void BtnImprimer_Click(object sender, EventArgs e)
{
try
{
db = new DbGestionEcoleContext();
Entete PR = new Entete();
int idemploi = (int)DataEmploi.CurrentRow.Cells[0].Value;
var emploi = db.EmploiDuTemps.Single(s => s.ID_Emploi == idemploi);
var listdetail = db.Detail_EmploiDuTemps.Where(s => s.ID_Emploi == idemploi).ToList();
PR = db.Entetes.SingleOrDefault(s => s.ID_AnneeScolaire == emploi.ID_AnneeScolaire);
if (PR != null && listdetail.Any())
{
RAP.FML_AFFICHER frmrap = new RAP.FML_AFFICHER();
var Classe = db.Classes.Single(s => s.ID_Classe == emploi.ID_Classe);
var Annee = db.AnneeScolaires.Single(s => s.ID_AnneeScolaire == emploi.ID_AnneeScolaire);
var Entete = db.Entetes.Single(s => s.ID_AnneeScolaire == emploi.ID_AnneeScolaire);
frmrap.RAPAfficher.LocalReport.ReportEmbeddedResource = "GESTION ECOLE/RAP/Rapport_EmploiDuTemps.rdlc";
frmrap.RAPAfficher.LocalReport.DataSources.Add(new ReportDataSource("DataEmploiDuTemps", listdetail));
ReportParameter classe = new ReportParameter("Classe", Classe.Classe1);
ReportParameter anneeScolaire = new ReportParameter("AnneeScolaire", Annee.AnneeScolaire1);
ReportParameter republique = new ReportParameter("Republique", Entete.Republique);
ReportParameter ministere = new ReportParameter("Ministere", Entete.MinisterePrimaire);
string ImagePays = Convert.ToBase64String(PR.LogoPays);
string ImageEcole = Convert.ToBase64String(PR.LogoEcole);
ReportParameter PImage = new ReportParameter("ImagePays", ImagePays);
ReportParameter EImage = new ReportParameter("ImageEcole", ImageEcole);
ReportParameter date = new ReportParameter("Date", DateTime.Now.ToString());//Date du système
frmrap.RAPAfficher.LocalReport.SetParameters(new ReportParameter[] { classe,anneeScolaire,republique,ministere,PImage,EImage,date });
frmrap.RAPAfficher.RefreshReport();
frmrap.ShowDialog();
}
else
{
MessageBox.Show("Aucune donnée à imprimer.");
}
}
catch (Exception ex)
{
MessageBox.Show($"Une erreur s'est produite : {ex.Message}\n{ex.StackTrace}");
}
}
Partager