Ich versuche ReportViewer zu verwenden, um einen Bericht mit einem Dataset zu erstellen, das aus einer Datagridview gefüllt wurde. Ich kann das Dataset auffüllen, aber wenn ich den Bericht ausführe, wird nur die erste Zeile angezeigt. Ich habe unzählige Stunden damit verbracht, zu suchen, und nichts scheint zu funktionieren.VS 2013 ReportViewer zeigt nur die erste Zeile an
- Ich habe sicher = Erster machen (...) aus meinem Bericht Feldausdruck entfernt wurde
- Ich denke, das Problem etwas mit dem XML für die Datenmenge zu tun, aber ich bin nicht sehr vertraut mit ihm.
- Dies ist nur ein Beispiel, sobald ich das herausgefunden habe, kann ich mein Wissen auf mein aktuelles Projekt übertragen.
Hier ist, was ich habe:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
dgv.Columns.Add("FirstName", "First Name")
dgv.Columns.Add("LastName", "Last Name")
dgv.Rows.Add("John", "Smith")
dgv.Rows.Add("Jane", "Doe")
createData()
End Sub
Private Sub createData()
Dim dt As New DataTable("namesTable")
dt.Columns.Add("FirstName")
dt.Columns.Add("LastName")
For Each row As DataGridViewRow In dgv.Rows
dt.Rows.Add(row.Cells(0).Value, row.Cells(1).Value)
MsgBox(row.Cells(0).Value & " " & row.Cells(1).Value)
Next
MsgBox(dt.Rows.Count)
DataSet1.Tables.Add(dt)
MsgBox(DataSet1.GetXml)
Dim DSReport As New ReportDataSource()
DSReport.Name = "DataSet1"
DSReport.Value = DataSet1.Tables("namesTable")
ReportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
ReportViewer.LocalReport.ReportEmbeddedResource = "Report1.rdlc"
ReportViewer.LocalReport.DataSources.Clear()
ReportViewer.LocalReport.DataSources.Add(DSReport)
ReportViewer.LocalReport.Refresh()
ReportViewer.RefreshReport()
End Sub
Als ich zum dt Zugabe bin, meine MsgBox Nachricht zeigt mir, richtig, meine beiden Namen. Die MsgBox dt count ist 2, also meine zwei Namen hinzugefügt.
Der Datensatz XML zeigt das, was ich denke, das Problem ist, aber ich weiß nicht, wie es zu beheben:
Der Bericht zeigt dann:
Danke für jede Hilfe, das macht mich verrückt.
Danke!
Es muss zuerst von dem, was ich verstehe, konvertiert werden. Ich probierte es trotzdem und erhielt die Nachricht "Wert des Typs 'WindowsApplication1.DataSet1' kann nicht in 'Microsoft.Reporting.WinForms.ReportDataSource' umgewandelt werden. – Tim
Ich habe etwas Code aus einem Arbeitsprogramm hinzugefügt, es sollte Ihnen nahe kommen, aber Sie werden wahrscheinlich Ich muss es anpassen. – Chuck
Danke, Chuck. "DataBind" existiert nicht für mich, was hast du dafür importiert, wenn überhaupt? Wenn ich nur den DataBind kommentiere, läuft es, aber der ReportViewer ist komplett leer. Wenn ich RefreshReport hinzufüge() Am Ende des Codes sagt es mir, dass die Datenquelleninstanz für die Datenquelle DataSet1 nicht geliefert wurde. – Tim