0

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

        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;

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

4

1 回答 1

3

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

我有:-

CrystalReportSource1.ReportDocument.SetParameterValue(fieldNo, fieldValue);

从哪里来fieldNo的迭代:-

CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields

这似乎适用于我的报告。

顺便说一句,不同的版本对 fieldValue 的类型有不同程度的挑剔。

正如克雷格所说,您需要设置子报表参数,尽管您同样需要确保设置链接参数的值。

您可以通过以下方式检测链接参数:-

bool linked = CrystalReportSource1.ReportDocument.DataDefinition.ParameterFields[fieldNo].IsLinked();
于 2012-05-16T16:36:43.283 回答