我无法根据以下代码加载此报告:
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;
它只是说“你要求的报告需要更多信息。”我传递了报告所需的必要参数以及用户名,密码,服务器和数据库。任何建议都会有帮助。谢谢!
答案 0 :(得分:3)
我正在自己做这件事,所以我分享你的痛苦。
我有: -
CrystalReportSource1.ReportDocument.SetParameterValue(fieldNo, fieldValue);
fieldNo
来自迭代: -
CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields
这对我的报告似乎有用。
BTW不同版本的fieldValue类型具有不同程度的挑剔。
正如Craig所说,你需要设置子报告参数,尽管你需要确保不设置链接参数的值。
您可以使用以下方法检测链接的参数: -
bool linked = CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields[fieldNo].IsLinked();