2016-10-15 3 views
1

Ich brauche eine ernsthafte Hilfe in Reportviewer.
Ich habe viele Links gesehen, viele Codes probiert, aber keine richtige Lösung gefunden. Bitte lassen Sie mich meine Zweifel verstehen und klarstellen.
Völlig verwirrt, welche Datenmenge während der Code auszuwählen und was datasource.value, was mich jedes Mal Fehler gibt ...
Laden .rdlc Bericht in Reportviewer manuell in VB.Net

ich die Schritte zeige, wie ich den Bericht erstellt und versucht, es funktioniert. Dies, weil ich vielleicht einen Fehler bei der Erstellung der Berichte gemacht habe und Sie die Leute möglicherweise fangen könnten.

Jetzt ist das Problem beschrieben, Ich habe viele .rdlc Berichterstattung mein Projekt. Was ich getan ist

Hinweis: Report enthält Formularname Reports.vb
RDLC ist Berichte sind Reports1.rdlc, Report2.rdlc, ...

1) Erstellt Bericht wie Add -> neues Element -> Berichte -> Bericht -> Report1.rdlc
Bericht Name: Dann Report1.rdlc

2) füge ich Daten-Set von hier so ...

enter image description here

3) DataSet-Eigenschaften werden geöffnet, es wird sogar der DataSource-Konfigurationsassistent geöffnet. Ich wähle gespeicherte Prozeduren aus, weil ich Daten aus meinen gespeicherten Prozeduren abrufen möchte und auf Fertig stellen geklickt habe.
Hier Datasetnamen ist BonnyDataSet

enter image description here

4) Danach habe ich Datenquelle von Dataset-Eigenschaften wählen ...
Nun, was diese verfügbare Datensätze ist hier in der letzten ... ???
Und welchen Datensatz muss ich beim Laden in ReportViewer berücksichtigen ???

enter image description here

5) Jetzt organisierte ich die Spalte durch die Datenspalten Hinzufügen von dataset1 unten ...

enter image description here

6) Nun habe ich in Form Report Reports.vb und versucht, eine viele Codes ....
Hier einige davon anzeigen.

Private Sub Reports_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Try 
      'Select Case PubRepVar 
      'Case "AccMast" 
      Dim data As New BonnyDataSet 
      Dim rds = New ReportDataSource("BonnyDataSet", data) 
      ReportViewer.LocalReport.DataSources.Clear() 
      ReportViewer.LocalReport.DataSources.Add(rds) ‘------error here 
      ReportViewer.LocalReport.ReportEmbeddedResource = "YourProjectNamespace.Report1.rdlc" 
      ReportViewer.RefreshReport() 
      'End Select 

     Catch ex As Exception 
      MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) 
     End Try 
    End Sub 

bekomme ich den Fehler wie folgt:

BC30311: Wert des Typs 'ReportDataSource' kann nicht auf 'ReportDataSource'

Ich habe keine Idee zu diesem Fehler umgewandelt werden.

Ein anderer Code, den ich ausprobiert habe, ist ReportViewer.Processing = ProcessingMode.Local

 Dim localReport As LocalReport 
     localReport = ReportViewer.LocalReport ‘-------error here 

     localReport.ReportEmbeddedResource = 
      "ReportViewerIntro.Report1.rdlc" 

     Dim dataset As New DataSet("BonnyDataSet") 

Hier zeigt Fehler wie:

BC30311: Wert des Typs 'LocalReport' kann nicht in umgewandelt werden 'LocalReport'.

Und ich versuchte viele andere, aber ich kann nicht verstehen, was das Problem ist. Mache ich etwas falsch bei der Erstellung von .rdlc-Berichten ???

Benötigt Hilfe dringend. Thanx

+0

Haben Sie 'Dim rds versucht = New ReportDataSource ("DataSet1", Daten)' –

+0

Auch sollten die Daten aufgrund der 'BonnyDataSet.AccMast_AllDetail' sein. –

+0

Nein, nicht passiert, ich habe versucht, diese Dim Daten = BonnyDataSet.AccMast_AllDetail nicht funktioniert. Nichts funktioniert. Es sagt ** Value-Typ ReportDataSource kann nicht in ReportDataSource ** konvertiert werden ... Nun, was ist das ?? @RezaAghaei – bonny

Antwort

3

sollten Sie diese Hinweise beachten:

  1. Sie haben eine compoile Zeitfehler sagen:

    BC30311: Wert des Typs 'ReportDataSource' nicht

    zu 'ReportDataSource' umgewandelt werden können

    Sie sollten also überprüfen, ob Sie die richtige Referenz für ReportDataSource verwenden und die Klasse aus verwenden korrekter Namespace. Ein häufiges Problem ist, wenn Sie Microsoft.Reporting.WebForms.dll als Referenz in einem Windows Forms-Projekt hinzugefügt und Import Microsoft.Reporting.WebForms Namespace hinzugefügt, so erhalten Sie eine solche Ausnahme.

  2. Nachdem Sie das behoben haben, sollten Sie darauf achten, dass der Name DataSet in Ihrem Bericht den gleichen Namen hat, den Sie beim Erstellen eines neuen ReportDataSource verwenden. Zum Beispiel, wenn der Name des DataSetDataSet1 ist, sollten Sie einen solchen Code verwenden:

    Dim rds = New ReportDataSource("DataSet1", data) 
    
  3. Die data, die Sie den Bericht übergeben wollen, sollten in der gleichen Struktur sein, die durch den Report verwendet wird. Zum Beispiel sollte es eine Instanz eines DataTable sein:

    TableAdapter1.Fill(Me.DataSet1, "Table1") 
    Dim rds = New ReportDataSource("DataSet1", Me.DataSet1.Table1) 
    
  4. Bei der Einstellung, die berichten, die Sie verwenden, richtig Ressourcennamen verwenden. Wenn Sie zum Beispiel ein Report1 in Wurzel Ihres Projektes und die Standard-namspace Ihres Projektes ist YourProjectNamespace dann der Ressourcenname wäre:

    ReportViewer.LocalReport.ReportEmbeddedResource = "YourProjectNamespace.Report1.rdlc" 
    

    Wenn Ihr Bericht in einem Ordner befindet, wird der Ordnername auch hinzugefügt zu seinem Ressourcennamen.

Verwandte Themen