首页 > 解决方案 > 无法将参数传递给 Telerik 报告

问题描述

我正在尝试将字符串值传递给 Winforms 项目中的 Telerik 报告。该值在报表查看器的 Load 事件中正确设置。但是我无法在报表的 NeedDataSource 事件中获取参数值。显示错误“System.Collections.Generic.KeyNotFoundException: 'The given key was not present in the dictionary.'”。

报告查看器加载事件。

Public Class WorkOrderWithPricesReportViewer

Public Property o As OrderInfo

Private Sub ReportViewer1_Load(sender As Object, e As EventArgs) Handles ReportViewer1.Load

    Dim typeReportSource As New Telerik.Reporting.TypeReportSource
    typeReportSource.TypeName = GetType(WorkOrderHeader).AssemblyQualifiedName

    Dim pOrderID As New Telerik.Reporting.Parameter
    pOrderID.Value = o.orderID
    typeReportSource.Parameters.Add(pOrderID)

    ReportViewer1.ReportSource = typeReportSource
    ReportViewer1.RefreshReport()

End Sub

结束类

报告中的 NeedDataSource 事件。尝试将参数值放入 _wohOrderID 时发生错误

Partial Public Class WorkOrderHeader
Inherits Telerik.Reporting.Report

Private _wohOrderID As String

Public Sub New()
    InitializeComponent()

End Sub

Private Sub WorkOrderHeader_NeedDataSource(sender As Object, e As EventArgs) Handles Me.NeedDataSource

    Dim wohReport As Telerik.Reporting.Processing.Report = DirectCast(sender, Telerik.Reporting.Processing.Report)

    _wohOrderID = wohReport.Parameters("pOrderID").Value.ToString

谢谢你的帮助。

标签: vb.netwinformstelerik

解决方案


必须将该参数添加到报表属性窗口中的 ReportParameters 属性中。我以编程方式添加了它,但也必须将它添加到报告属性窗口中。似乎多余,但无论如何,它有效。问题已解决。谢谢,赫西。

在此处输入图像描述

在此处输入图像描述


推荐阅读