MS ReportViewer WinForms Excel 导出错误

本文关键字:出错 错误 Excel ReportViewer WinForms MS | 更新日期: 2023-09-27 18:33:07

我的C# VS2012应用程序中有一个报告rdlc文件。该报告在应用程序中正常显示,也可以将其导出为MS Word或PDF。但 Excel 导出失败并显示错误:"本地报表处理期间出错。长度不能小于零。参数名称:长度'

我没有任何名为长度的自定义参数。

这是生成报告的代码。我添加了一些自定义参数来添加页脚信息。知道可能导致问题的原因吗?或者如何进行故障排除?

private void frmReportViewer_Load(object sender, EventArgs e)
    {
        this.DataTable1BindingSource.DataSource = ReportData();
        RunStat thisRun = SurveyTools.RunStatistics(runID);
        string avgSpeed = thisRun.AverageSpeed.ToString("N2");
        List<ReportParameter> myParams = new List<ReportParameter>();
        myParams.Add(new ReportParameter("PLDistance", thisRun.RunDistance.ToString("N0")));
        myParams.Add(new ReportParameter("RunHours", thisRun.RunHours.ToString("N2")));
        myParams.Add(new ReportParameter("AvgSpeed", avgSpeed));
        rptView.LocalReport.SetParameters(myParams);
        rptView.SetDisplayMode(DisplayMode.PrintLayout);
        this.rptView.RefreshReport();
    }
    private DataTable ReportData()...

MS ReportViewer WinForms Excel 导出错误

这可能与这个问题类似,后者给出了相同的错误,只是它是一个称为 index 的参数,它在 HTML 渲染时失败,但适用于所有其他渲染器。

在这种情况下,我已将 SSRS 2005 报告升级到 SSRS 2008,并且在转换中出现了一些错误。SSRS 现在认为你有一个文本框或长度为负的内容。当它谈到名为 length 的参数时,它不是指报表参数之一,而是指作为内部用于调整报表对象大小的 XML 一部分的参数。您的报告可能看起来不错,但代码中出现了问题。

这是一个重新定位报表对象并调整报表对象大小的过程,直到找到导致错误的报表对象。

我最终创建了两个报告。一个用于导出到 PDF,其中包含所有漂亮的页眉和页脚测试。另一个明确用于导出到 Excel。我从Excel版本中删除了所有页脚文本框。它工作正常。

相关文章: