【问题标题】:Crystal Reports- Export report causing "Missing Parameter Values"Crystal Reports - 导出报表导致“缺少参数值”
【发布时间】:2012-02-15 03:18:06
【问题描述】:

我正在尝试导出报告,但每次运行代码以在 Crystalreportviewer 中导出水晶报告时,我都会收到一条错误消息,提示“缺少参数值”。我查看了许多来源,但没有找到解决方案。我知道所有参数都填好了,因为没有导出代码,网站运行得很好。

导出代码

Try
            Dim CrExportOptions As CrystalDecisions.Shared.ExportOptions
            Dim CrDiskFileDestinationOptions As New  _
            CrystalDecisions.Shared.DiskFileDestinationOptions()
            Dim CrFormatTypeOptions As New CrystalDecisions.Shared.PdfRtfWordFormatOptions()
            CrDiskFileDestinationOptions.DiskFileName = _
                                        "c:\crystalExport.pdf"
            CrExportOptions = oRpt.ExportOptions
            With CrExportOptions
                .ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile
                .ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat
                .DestinationOptions = CrDiskFileDestinationOptions
                .FormatOptions = CrFormatTypeOptions
            End With
            oRpt.Export()
        Catch ex As Exception
            Response.Write(ex.ToString)
        End Try

还有:

  'Try
        '    oRpt.ExportToHttpResponse([Shared].ExportFormatType.PortableDocFormat, Response, True, "ExportedReport")
        'Catch ex As Exception
        '    Response.Write(ex.ToString)
        'End Try

任何帮助都会很棒。

【问题讨论】:

    标签: asp.net vb.net parameters crystal-reports export


    【解决方案1】:

    这是由 2 个原因引起的。 或者,您没有传递(从程序中)您在报告中创建的必需参数。 或者,您将参数传递给报表,但尚未在报表中创建它。

    【讨论】:

    • 但不导出参数在报告中被很好地推送。而且我还有一个参数检查器来确保它们被填充。
    【解决方案2】:

    为了解决我自己的问题,我发现代码实际上是导出水晶报表的实例,而我是在提供源后将参数放入水晶报表查看器中。相反,我将参数直接提供到实例中,该实例作为数据源推送到 Crystalreportviewer 中。

    :)

    【讨论】:

      【解决方案3】:

      在我的例子中,有一个子报告没有正确链接到主报告。

      检查子报表的所有参数是否与主报表链接。

      干杯;

      【讨论】:

        【解决方案4】:
        1. 必须设置所需参数

        2. 设置 rpt.SetDataSource(dt) 即使 DataTable 记录数为 0:

               DataTable dt = new DataTable();
               dt.Load(data);
               if (dt?.Rows != null)
               {
                 rpt.SetDataSource(dt);
                 return true;
               }
          

        【讨论】:

          猜你喜欢
          • 2016-02-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多