c# - 在 C# 中将参数传递给 Crystal Reports

标签 c# crystal-reports

一段时间以来,我一直在努力让它发挥作用,但我看到的所有示例代码都不完全符合我的要求。

我有一个程序可以返回我向其传递数据表的报告的 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/

相关文章:

c# - 从 VS2008 C# 迁移到 VS2010 之前需要考虑的事项

c# - C#中如何使用全局变量?

c# - XML + LINQ 是否会在 C# 中为大量数据提供良好的性能?

sql - 如何在多列中计算一个变量

c# - 打开选定文件的默认应用程序(MSWord、Adobe 等)

c# - 处理切换用户的系统事件

crystal-reports - Crystal 报表中的条件计数()

crystal-reports - Crystal 报表,在特定字符上换行文本

c# - 如何在 Crystal 报表中以编程方式编辑标签?

crystal-reports - 在 Crystal 报告中如何按字母对行进行编号