Asp.Net将XSD绑定到Reportviewer控件

时间:2019-04-23 14:06:15

标签: vb.net xsd reportviewer objectdatasource

我有一个已有10多年历史的ASP.net VB.Net网站,该网站是我继承的,并且我正尝试从WebSite更新到Web应用程序。其中一个页面是报告页面,该页面基于下拉选择加载Reportviewer控件,但是在运行时我收到以下错误:“报告处理期间发生错误。 找不到在ObjectDataSource的TypeName属性中指定的类型。”

我已经搜索了几天的最佳时间,并且根据我从Typed dataset not recognized when moved to another project中发现的信息,我们设法重新生成了XSD。我还按照其他人的建议将XSD属性“构建操作”修改为“内容”,并将“自定义工具”设置为“ MSDataSetGenerator”,但错误消息仍然存在。

已经生成了XSD,我可以看到该类并创建它的实例,并且从消息中很明显,没有找到ObjectDataSource的TypeName(空白),但是我真的不确定它是什么。除了名称空间和数据表名称外,它们都应生成为“ Reports.dtAprdParmsDateAprdDataTable”

基本代码想法是将XSD数据集映射到ObjectDataSource,然后将其用作ReportDataSource的燃料:

    Dim myObjDataSource As New ObjectDataSource()
    myObjDataSource.SelectMethod = "GetData"
    myObjDataSource.OldValuesParameterFormatString = "original_{0}"
    myObjDataSource.TypeName = "Reports.dtAprdParmsDateAprdDataTable"

    myObjDataSource.SelectParameters.Add("FiscalStartDate", TypeCode.DateTime, myFiscalYear.StartDate.ToString("MM/dd/yyyy"))
    myObjDataSource.SelectParameters.Add("FiscalEndDate", TypeCode.DateTime, myFiscalYear.EndDate.ToString("MM/dd/yyyy"))

    'FilterRows
    myObjDataSource.FilterExpression = myUser.GetListRowFilter
    If myObjDataSource.FilterExpression = "" Then
        myObjDataSource.FilterExpression = GetReportViewerRowListFilter()
    ElseIf Not GetReportViewerRowListFilter() = "" Then
        myObjDataSource.FilterExpression = myObjDataSource.FilterExpression & " AND " & GetReportViewerRowListFilter()
    End If

    ReportViewer1.ProcessingMode = ProcessingMode.Local
    ReportViewer1.LocalReport.ReportPath = "Report01.rdlc"
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("Reports_dtAprdParmsDateAprd", myObjDataSource))

    ReportViewer1.LocalReport.Refresh()

   'I am able to declare the newly generated XSD no problems
    Dim report As New Reports.dtAprdParmsDateAprdDataTable()

有人知道如何解决吗?我很高兴用较新的功能替换这些功能,但是由于该功能已经存在并且一直在起作用,因此感觉应该很简单。

0 个答案:

没有答案