2016-08-08 54 views
0

Ich habe eine aspx Webformular, dass in es vb Code ist liest Dateien, die RDL aus einem Verzeichnis und dann listet sie als eine Taste oder Hyper-Link sagen, usw. „Berichte über lokale Host-Berichtsserver sind“Asp.Net, VB, SQL Server Reporting Services ... dynamisch generierte Berichte aus dem Verzeichnis, das im Berichts-Viewer beim Klicken angezeigt wird?

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 

und ein anderer, der einen Reportviewer hat. Wenn ich auf einen Bericht geklickt habe, wie kann ich den Namen/Wert an den Viewer senden und dorthin umleiten?

Vielen Dank

EDIT: Ich habe das Klicken Umleitung auf den Betrachter mit einer Schnur zu machen und haben die Zuschauer die Zeichenfolge verwenden, aber mit wie viel jemals Variation ive es immer noch versucht, Fehler, die

Der Pfad des Artikels 'salesreport.rdl' ist nicht gültig. Der vollständige Pfad muss weniger als 260 Zeichen lang sein. Andere Einschränkungen gelten. Wenn sich der Berichtsserver im einheitlichen Modus befindet, muss der Pfad mit einem Schrägstrich beginnen. (RsInvalidItemPath)

Dies ist der Betrachter Code

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 

Antwort

0

Sie könnten die folgende versuchen.

  1. Erstellen Sie eine neue Seite namens ReportViewer.aspx, die Ihr ReportViewer-Steuerelement hostet, das den Namen der .RDL-Datei als Abfragezeichenfolge erhält.
  2. Zeigen Sie in der ersten ASPX-Seite für jede angezeigte Verknüpfung die NavigateURL-Eigenschaft auf die ReportViewer.aspx-Seite und übergeben Sie den Namen der RDL-Datei als QueryString.

Hoffnung, die

Dank hilft, Prawin

+0

vielen Dank für die Beantwortung, Prawin..i war nicht ganz sicher, was Sie gemeint, aber ich versuchte, wie ich verstanden, durch, wenn sie auf das Klicken auf Link es speichert den angezeigten Namen zu einem String und sendet es auf die Seite mit dem Betrachter, aber ich wurde dort stumm, weitere Hilfe? sehr geschätzt, Freund – minguscoltrane

+0

vergaß, Sie @ Prawin zu erwähnen – minguscoltrane