Asp.Net, VB, SQL Server Reporting Services..从目录中动态生成的报告要在单击时在报告查看器上查看?

Posted

技术标签:

【中文标题】Asp.Net, VB, SQL Server Reporting Services..从目录中动态生成的报告要在单击时在报告查看器上查看?【英文标题】:Asp.Net, VB, SQL Server Reporting Services..dynamically generated reports from directory to be viewed on report viewer on click? 【发布时间】:2016-08-08 17:45:07 【问题描述】:

我有一个 aspx 网络表单,它的 vb 代码从目录中读取 .rdl 文件,然后将它们列为按钮或超链接等。“报告在本地主机报告服务器上”

 Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim FileLocation As DirectoryInfo = _
New DirectoryInfo("C:\inetpub\wwwroot\Reports")

Dim fi As FileInfo() = FileLocation.GetFiles("*.rdl")

For Each name As FileInfo In fi
    ' Dim i As Integer
    Dim listed As New LinkButton
    ' listed.Attributes("CssClass") = "a"
    ' listed.Attributes("Class") = "a"
    listed.Attributes("id") = "listed"
    listed.Text = (name.Name)

    mine.Controls.Add(listed)
    'mine.Innerhtml = ""
    'i = i + 1
Next
End Sub

还有一个有报告查看器的。单击报告时,如何将名称/值发送给查看器并重定向到它?

非常感谢

编辑:我必须使用字符串将点击重定向到查看器并让查看器使用该字符串,但是我尝试了多少变化仍然会出错

“salesreport.rdl”项的路径无效。完整路径的长度必须少于 260 个字符;其他限制适用。如果报表服务器处于本机模式,则路径必须以斜杠开头。 (rsInvalidItemPath)

这是查看器代码

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        ' Retrieve parameter from Route "Reports/reportName"
        Dim reportName = Picks.Selecty

        'Page.Title = reportName

        ReportViewer1.ProcessingMode = ProcessingMode.Remote
        Dim serverReport As ServerReport
        ServerReport = ReportViewer1.ServerReport
        serverReport.ReportServerUrl = New Uri("http://localhost/reportserver/")
        serverReport.ReportPath = reportName
        ' reportName
        ' 
        ' add parameters here
        'Dim param As New ReportParameter("name", "value")
        'serverReport.SetParameters(param)

        serverReport.Refresh()

    End If
End Sub

【问题讨论】:

【参考方案1】:

您可以尝试以下方法。

    创建一个新页面,例如 ReportViewer.aspx,该页面托管您的 ReportViewer 控件,该控件接收 .RDL 文件的名称作为查询字符串。 在第一个 .aspx 页面中,对于您显示的每个链接,将 NavigateURL 属性指向 ReportViewer.aspx 页面并将 .RDL 文件的名称作为 QueryString 传递。

希望有帮助

谢谢, 大虾

【讨论】:

非常感谢您的回答,Prawin..我不太确定您的意思,但我按照我的理解尝试了,通过单击链接时它将显示的名称存储为字符串并发送它到查看器的页面,但我被绊倒了,还有什么帮助吗?非常感谢,朋友 忘了提到你@Prawin

以上是关于Asp.Net, VB, SQL Server Reporting Services..从目录中动态生成的报告要在单击时在报告查看器上查看?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 表中创建图像列并使用 VB 在 ASP.NET 中检索它

SQL Server 中的存储过程未使用 VB.Net 编码填充 ASP.Net 下拉列表

Asp.Net, VB, SQL Server Reporting Services..从目录中动态生成的报告要在单击时在报告查看器上查看?

从 vb.net 中的 datetime sql server 类型操作日期和时间

ASP.NET - MS-ACCESS - VB.NET - SQL 语句错误

在 SQL/VB/Asp.Net 中更新日期