我一直试图让它工作一段时间,我见过的所有示例代码都不是我正在做的事情.
我有一个程序,它返回我传递数据表的报告的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;
Run Code Online (Sandbox Code Playgroud)
我在rpt文档中添加了参数字段,我需要在c#中更改xsd文件中的任何内容,还是我错过了一些完全不同的东西?
非常感谢,安迪.
dot*_*joe 30
所有参数代码都可以替换为......
// Set datasource first
myDataReport.SetDataSource(...)
// Assign Paramters after set datasource
myDataReport.SetParameterValue("MyParameter", "Hello");
Run Code Online (Sandbox Code Playgroud)
我不记得在设置数据源和参数时订单是否重要.也许先尝试设置数据源.xsd/datasource与晶体参数无关.
UPDATE1
SetParameterValue在数据源asignation之后,您将收到错误"Missing parameters values".