在C#中将参数传递给水晶报表的步骤
你能告诉我在C#winforms中将参数传递给crystal Reports 13的步骤是什么?
我的代码:
//getting and set dataset to report string sql = "select * from dbo.Trading_Order"; DataRetriever dr = new DataRetriever(); dr.getValueFromCustomer(sql); DataTable dtSum = dr.getDataTable(); dsMyReprt k = new dsMyReprt(); k.Tables.Remove("dtMyTable"); dtSum.TableName = "dtMyTable"; k.Tables.Add(dtSum); CrystalReport1 myDataReport = new CrystalReport1(); //pass parameter ParameterFields paramFields = new ParameterFields(); // ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue(); ParameterField paramField = new ParameterField(); ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue(); paramField.Name = "@DTotal"; paramDiscreteValue.Value = tot; paramField.CurrentValues.Add(paramDiscreteValue); paramFields.Add(paramField); paramField = new ParameterField(); paramDiscreteValue = new ParameterDiscreteValue(); paramField.Name = "@name"; paramDiscreteValue.Value = name; paramField.CurrentValues.Add(paramDiscreteValue); paramFields.Add(paramField); crystalReportViewer1.ParameterFieldInfo = paramFields; myDataReport.SetDataSource(k); crystalReportViewer1.ReportSource = myDataReport;
获取和设置数据集部分正在工作但传递参数部分不起作用
几周以来我一直很头疼…我必须确切地说我在Crystal Reports Designer中设置了一个sql查询。 因此,我没有像你那样使用dataTable,所以你必须考虑这一点。
那么,@ campagnolo_1建议你:
ReportDocument myDataReport = new ReportDocument(); myDataReport.Load(@"C:ReportsReport.rpt"); myDataReport.SetParameterValue("MyParameter1", "Hello1"); myDataReport.SetParameterValue("MyParameter2", "Hello2"); myDataReport.SetParameterValue("MyParameter3", "Hello3");
这是简短而甜蜜的解决方案。 但是,在此之后,您必须确保在Crystal Reports设计器中创建了类型为String的MyParameter1
, MyParameter2
和MyParameter3
。
-
重要的是要提到在使用
SetParameterValue
设置参数之前必须加载报告。 -
如果参数的名称是
MyParameter1
,那么不要像这样在前面添加@
:myDataReport.SetParameterValue(“@ MyParameter1”,“Hello1”); //你的程序会崩溃
-
如果你有
The parameter is incorrect
那么你应该确保你给出的参数值的类型与参数类型完全相同。 例如,如果您将参数StartDate
作为Date类型,那么请确保您提供的值是Date类型并具有正确的日期格式。
此外,您还谈到了动态或静态领域。 在您的情况下,我认为您手动输入值,然后这是静态字段。
希望这对你有所帮助。
你现在可能已经找到了解决方案。 但这可能有所帮助。 输入作为参数传递的值。
https://www.codeproject.com/Tips/753879/Automatically-Setting-a-Parameter-from-a-Csharp-Va
为什么不这样试试并节省一些编码?
上述就是C#学习教程:在C#中将参数传递给水晶报表的步骤分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
ReportDocument myDataReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); myDataReport.Load(@"C:ReportsReport.rpt"); myDataReport.SetParameterValue("MyParameter1", "Hello1"); myDataReport.SetParameterValue("MyParameter2", "Hello2"); myDataReport.SetParameterValue("MyParameter3", "Hello3");
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/991318.html