Passage de paramètre dans un Rapport RDLC
Salut à tous,
Je souhaite réaliser la partie Reporting dans une application C# pour cela, je me suis pencher vers Microsoft ReportViewer.
Dans la fenêtre de mon application, l'utilisateur dispose d'un ComboBox qui lui permettra de choisir la date de péremption d'un produit. voici le code :
Code:
1 2 3 4 5 6 7 8 9
|
int Limiteinf = 0;
int Limitesup = 0;
switch (comboBox1.Text)
{
case "Moins de 3 mois": Limiteinf = 0; Limitesup = 3; break;
case "Entre 03 et 06 mois": Limiteinf = 3; Limitesup = 6; break;
case "Entre 06 et 12 mois": Limiteinf = 6; Limitesup = 12;break;
} |
Donc, je veux afficher le Rapport selon le choix de l'utilisateur en prenant les paramètres Limiteinf et Limitesup.
J'ai établie ensuite la requête de mon DataSet en prenant en compte les 2 paramètres comme ceci :
Code:
1 2
|
SELECT * FROM PRODUITS WHERE (DATEDIFF(MONTH, Date_Peremption, GetDate()) BETWEEN @LimiteMin AND @LimiteMax) |
J'ai tout d'abord crée mon rapport .rdlc en ajoutant un nouvel élément "Report"à mon Projet et j'ai attribuer deux Paramètres à mon rapport le 1er étant LimiteMin et le deuxième LimiteMax tous les deux de type int.
ensuite je suis aller dans la Form où il ya le bouton "imprimer Rapport" et j'ai mis ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
int Limiteinf = 0;
int Limitesup = 0;
switch (comboBox1.Text)
{
case "Moins de 3 mois": Limiteinf = 0; Limitesup = 3; break;
case "Entre 03 et 06 mois": Limiteinf = 3; Limitesup = 6; break;
case "Entre 06 et 12 mois": Limiteinf = 6; Limitesup = 12;break;
}
EtatSelonDuree etat = new EtatSelonDuree(Limiteinf, Limitesup);
etat.ShowDialog(); |
Et après je suis aller à la Form que j'ai appelé EtatSelonDuree et j'ai mis le Rapport .rdlc que j'ai crée précédemment et j'ai mis ce code là pour récupérer les paramètres de l'utilisateur et c'est là où je bloque !!
voilà le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
int LimiteMin, LimiteMax;
public EtatSelonDuree(int _Limiteinf, int _Limitesup)
{
InitializeComponent();
this.LimiteMin = _Limiteinf;
this.LimiteMax = _Limitesup;
Chargement();
}
private void Chargement()
{
ReportParameter lim1 = new ReportParameter("@LimiteMin",LimiteMin);
ReportParameter lim2 = new ReportParameter("@LimiteMax",LimiteMax);
reportViewer1.LocalReport.SetParameters(lim1); // je n'ai pas su comment faire pour passer les paramètres au rapport
} |
:triste:
Voilà, j'ai mis toutes mes étapes en espérant être clair ;)
Ma question est comment passer les paramètres choisis par l'utilisateur et les prendre en compte dans ma requête et ainsi afficher le rapport approprié.
Merci d'avance.