【问题标题】:MS ReportViewer WinForms Excel Export ErrorMS ReportViewer WinForms Excel 导出错误
【发布时间】:2014-12-04 21:55:03
【问题描述】:

我的 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()...

【问题讨论】:

    标签: c# winforms visual-studio-2012 reporting-services


    【解决方案1】:

    这可能类似于this question,它给出了相同的错误,除了它是一个名为 index 的参数,它在 HTML 渲染中失败,但对所有其他渲染器都有效。

    在这种情况下发生的情况是,我将 SSRS 2005 报告升级到 SSRS 2008,但在转换过程中出现了一些偏差。 SSRS 现在认为你有一个文本框或负长度的东西。当它谈到一个称为长度的参数时,它并不意味着您的报告参数之一,而是一个参数,它是 XML 的一部分,在内部用于调整您的报告对象的大小。您的报告可能看起来不错,但代码中出现了问题。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-30
        • 2020-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-01
        相关资源
        最近更新 更多