HY! J'ai une application de formulaire dans visual studio 2010 et je souhaite créer un rapport avec l'afficheur de rapports et ajouter quelques paramètres. J'ai essayé d'ajouter des paramètres de code mais cela n'a pas fonctionné. J'ai cette erreur:
L’expression FilterExpression du tablix ‘Tablix1’ fait référence au champ ‘datastart’. Les expressions d'élément de rapport peuvent uniquement faire référence à des champs de la portée de l'ensemble de données actuel ou, s'il s'agit d'un agrégat, à la portée de l'ensemble de données spécifié . rapporte le paramètre 'datastart'.
Dans mon code, faites ceci:
private void SetReportParameters()
{
ReportParameter[] parameters = new ReportParameter[2];
parameters[0] = new ReportParameter("datastart", dateTimePickerStartRaport.Text);
parameters[1] = new ReportParameter("dataStop", dateTimePickerStopRaport.Text);
this.reportViewer1.LocalReport.SetParameters(parameters);
}
et après avoir appelé cette méthode, effectuez une actualisation de l'afficheur de rapport.
reportViewer1.RefreshReport();
Je regarde aussi d’autres forums et j’ai vu que je devais ajouter les paramètres au rapport, mais je n’ai pas réussi à savoir comment faire. J'ai également essayé d'ajouter, dans les fenêtres de propriétés du rapport, des filtres ayant une valeur
=Parameters!datastart.Value
mais cela n'a pas fonctionné non plus.
L'erreur que vous obtenez est parce que vous essayez de spécifier votre paramètre comme un champ. Dans le concepteur d'expressions, vous avez une catégorie spéciale appelée "Paramètres". De là, vous pouvez accéder à vos paramètres . La syntaxe est =Parameters![FieldName].Value
. Dans votre cas, par exemple =Parameters!datastart.Value
.
De plus, notez que les paramètres doivent être déclarés dans la fenêtre "Données du rapport" sous "Paramètres". C'est la même fenêtre que celle utilisée pour déclarer vos jeux d'enregistrements, mais il existe également une catégorie spéciale pour les paramètres. Il existe également quelques options pour le type de données et si la spécification du paramètre est obligatoire.
Ainsi, lorsque vous créez une définition de rapport (fichier rdl ou rdlc), vous devez ajouter des paramètres portant exactement le même nom. Donc, pour votre cas, vous devez ajouter les paramètres datastart
et dataStop
. Pour ce faire, cliquez simplement sur Paramètres dans la fenêtre de données du rapport, puis sur ajouter un nouveau.
Essaye ça:
ReportParameter PrmInvoiceNo = new ReportParameter("PrmInvoiceNo");
PrmInvoiceNo.Values.Add(this.InvNo.ToString());
this.reportViewer1.LocalReport.SetParameters(PrmInvoiceNo);