将值传递给水晶报表 [英] Passing Values to a Crystal Report
问题描述
我不能够基于以下code本报告加载:
I am not able to load this report based on the following code:
ReportDocument crystalReport = new ReportDocument();
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "Param";
paramDiscreteValue.Value = TextBox1.Text.ToString();
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo = paramFields;
crystalReport.Load(Server.MapPath("CrystalReport.rpt"));
crystalReport.SetDatabaseLogon("username","password","servername","db");
CrystalReportViewer1.ReportSource = crystalReport;
它只是说您所请求的报告需要进一步的信息。我传递给它的报告要求,以及用户名,PW,服务器和数据库所需的参数。任何建议将帮助。谢谢!
It just says "The report you requested requires further information." I am passing it the necessary parameters that the report requires as well as the username,pw,server, and db. Any suggestions would help. Thanks!
推荐答案
我在做这个自己的中间,让我分担你的痛苦。
I'm in the middle of doing this myself, so I share your pain.
我有: -
CrystalReportSource1.ReportDocument.SetParameterValue(fieldNo, fieldValue);
其中, fieldNo
有来自迭代: -
CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields
这似乎为我的报告工作。
Which seems to work for my reports.
BTW不同的版本有不同的过fieldValue方法的类型pickiness的水平。
BTW Different versions have varying levels of pickiness over the type of fieldValue.
克雷格说,你需要设置参数报表,但同样你需要确保你的不要设置链接参数的值。
As Craig says, you need to set subreport parameters, although equally you need to make sure you don't set the value of linked parameters.
您可以检测链接paramters有: -
You can detect linked paramters with:-
bool linked = CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields[fieldNo].IsLinked();
这篇关于将值传递给水晶报表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!