将参数传递给C#中的水晶报表
我一直试图让它工作一段时间,我见过的所有示例代码都没有做我正在做的事情。
我有一个程序,它返回我传递数据表的报告的pdf。 这工作正常,除了我想传递几个其他参数(表的日期范围,统计等),我只是无法让它工作。 我的代码基本上是这样的。
ReportDocument myDataReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); myDataReport.Load(@"C:LayoutsReport.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;
我在rpt文档中添加了参数字段,我需要在c#中更改xsd文件中的任何内容,还是我错过了一些完全不同的东西?
非常感谢,安迪。
所有参数代码都可以替换为……
// Set datasource first myDataReport.SetDataSource(...) // Assign Paramters after set datasource myDataReport.SetParameterValue("MyParameter", "Hello");
我不记得在设置数据源和参数时订单是否重要。 也许先尝试设置数据源。 xsd / datasource与晶体参数无关。
UPDATE1
SetParameterValue在数据源yignation之后,您将收到错误“Missing parameters values”。
上述就是C#学习教程:将参数传递给C#中的水晶报表分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
ReportDocument cryRpt = new ReportDocument(); TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); ConnectionInfo crConnectionInfo = new ConnectionInfo(); Tables CrTables; string path = "C:/reportpath/report.rpt"; cryRpt.Load(path); cryRpt.SetParameterValue("MyDate2", str2); cryRpt.SetParameterValue("MyDate", str1); crConnectionInfo.ServerName = "server"; crConnectionInfo.DatabaseName = "DataBase"; crConnectionInfo.UserID = "user"; crConnectionInfo.Password = "password"; CrTables = cryRpt.Database.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) { crtableLogoninfo = CrTable.LogOnInfo; crtableLogoninfo.ConnectionInfo = crConnectionInfo; CrTable.ApplyLogOnInfo(crtableLogoninfo); } crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh();
//create object of crystal report. CrystalReport1 objRpt = new CrystalReport1(); objRpt.SetDataSource(ds); ParameterFields pfield = new ParameterFields(); ParameterField ptitle = new ParameterField(); ParameterDiscreteValue pvalue = new ParameterDiscreteValue(); ptitle.ParameterFieldName = "date"; pvalue.Value = txtcolor.Text; ptitle.CurrentValues.Add(pvalue); pfield.Add(ptitle); crystalReportViewer1.ParameterFieldInfo = pfield; crystalReportViewer1.ReportSource = objRpt; crystalReportViewer1.Refresh();
rptTeacherTimeTable ttReport = new rptTeacherTimeTable(); DataTable dt = new DataTable(); dt = ObjclsT_TimeTable.GetTimeTableByClass(ClassID); objReport = ttReport; objReport.SetDataSource(dt); objReport.SetParameterValue("RTitle", "Class Time Table"); objReport.SetParameterValue("STitle", "Teacher Time Table"); reportViewer.crystalReportViewer1.ReportSource = objReport; reportViewer.crystalReportViewer1.Show(); reportViewer.Show();
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/989534.html