将值传递给Crystal报表

时间:2012-05-16 16:13:40

标签: c# asp.net .net crystal-reports

我无法根据以下代码加载此报告:

        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;

它只是说“你要求的报告需要更多信息。”我传递了报告所需的必要参数以及用户名,密码,服务器和数据库。任何建议都会有帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

我正在自己做这件事,所以我分享你的痛苦。

我有: -

CrystalReportSource1.ReportDocument.SetParameterValue(fieldNo, fieldValue);

fieldNo来自迭代: -

CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields

这对我的报告似乎有用。

BTW不同版本的fieldValue类型具有不同程度的挑剔。

正如Craig所说,你需要设置子报告参数,尽管你需要确保设置链接参数的值。

您可以使用以下方法检测链接的参数: -

bool linked = CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields[fieldNo].IsLinked();