J'ai essayé de faire fonctionner cela pendant un certain temps, et tout le code d'exemple que j'ai vu ne fait pas tout à fait ce que je fais.Passer des paramètres à des rapports de cristal en C#
J'ai un programme qui retourne un pdf d'un rapport que je passe une table de données. Cela fonctionne bien, sauf que je voudrais lui passer quelques autres paramètres (la plage de dates de la table, les statistiques, etc) et je ne peux tout simplement pas le faire fonctionner. Mon code ressemble à ceci.
ReportDocument myDataReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
myDataReport.Load(@"C:\Layouts\Report.rpt");
ParameterField myParam = new ParameterField();
ParameterDiscreteValue myDiscreteValue = new ParameterDiscreteValue();
myParam.ParameterFieldName = "MyParameter";
myDiscreteValue.Value = "Hello";
myParam.CurrentValues.Add(myDiscreteValue);
myDataReport.ParameterFields.Add(myParam);
myDataReport.SetDataSource(myDataTable);
Stream returnData = myDataReport.ExportToStream(PortableDocFormat);
myDataReport.Close();
return returnData;
J'ai ajouté le champ de paramètre dans le document rpt en cristal, dois-je changer quoi que ce soit dans le fichier xsd en C#, ou suis-je manque quelque chose de complètement différent?
Merci beaucoup, Andy.
Eh oui c'est tout! Je pense que j'ai essayé cette ligne auparavant, mais j'avais la source de données au mauvais endroit comme vous l'avez indiqué. Fonctionne maintenant compeletly, merci! –
@Andrew. Pourriez-vous me dire où avez-vous passé l'appel à dataSource? – Unlimited071
Mettez SetParameterValue APRÈS l'apposition de la source de données – Apocatastasis