一段时间以来,我一直在努力让它发挥作用,但我看到的所有示例代码都不完全符合我的要求。
我有一个程序可以返回我向其传递数据表的报告的 pdf 格式。这工作正常,除了我想向它传递几个其他参数(表格的日期范围、统计信息等),但我无法让它工作。我的代码基本上是这样的。
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;
我已经在 crystal 的 rpt 文档中添加了参数字段,我是否必须更改 c# 中的 xsd 文件中的任何内容,或者我是否遗漏了一些完全不同的内容?
非常感谢,安迪。
最佳答案
所有参数代码都可以替换为...
// Set datasource first
myDataReport.SetDataSource(...)
// Assign Paramters after set datasource
myDataReport.SetParameterValue("MyParameter", "Hello");
我不记得在设置数据源和参数时顺序是否重要。也许先尝试设置数据源。 xsd/datasource 与晶体参数无关。
更新1
数据源分配后设置参数值 否则您将收到错误消息“缺少参数值。”
关于c# - 在 C# 中将参数传递给 Crystal Reports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589021/