1

我使用存储过程设计了一个水晶报告,它采用两个日期时间参数。我将这两个参数放在报表标题中,当我通过提供参数值运行报表时,它会在报表标题中使用参数值适当地显示数据。但是当我尝试在 asp .net Web 应用程序中使用此水晶报表导出为 PDF 时,我遇到了问题。我将数据集设置为 ReportDocument 对象的 SetDataSource() 函数,并且数据填充正确,但参数值未显示在报表标题中。因为它需要显示报告的日期范围。

我执行了以下代码以导出为 PDF。我没有使用任何 ReportViewer,因为我只想在新窗口中保存或打开 pdf 文件。为此,我只是在按钮单击事件中执行了以下代码,并且数据正确,但报告标题中缺少参数值。请帮忙..

    protected void btnExport_Click(object sender, EventArgs e)
    {
        ParameterDiscreteValue dateFrom = new ParameterDiscreteValue();
        dateFrom.Value = DateTime.Parse(txtDateFrom.Text.ToString());

        ParameterDiscreteValue dateTo = new ParameterDiscreteValue();
        dateTo.Value = DateTime.Parse(txtDateTo.Text.ToString());

        ReportDocument pdfReport = new ReportDocument();

        pdfReport.Load(Server.MapPath(@"rptClearingChargeBranchWiseHV.rpt"));

        reportName = "Report" + DateTime.Today.Year.ToString() +
                             DateTime.Today.Month.ToString() + DateTime.Today.Day.ToString();

        pdfReport.SetDatabaseLogon("user", "pass", "server", "DataBase");
        pdfReport.Database.Tables[0].SetDataSource(GetData().Tables[0].DefaultView);
        //GetData() return the data set
        pdfReport.SetParameterValue("@DateFrom", dateFrom);
        pdfReport.SetParameterValue("@DateTo", dateTo);

        pdfReport.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, reportName);
        Response.End();
    }
4

0 回答 0