Announcement

Collapse
No announcement yet.

Reporting Services Datenquelleninstanz

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Reporting Services Datenquelleninstanz

    Hallo,

    ich versuche mich seit Stunden an meinen ersten Bericht mit MS Reporting Service als lokalen Bericht in VB.NET (2010). Ich habe meine Fingerkuppen schon wundgegoogled und entsprechende Literatur gewälzt. Ich bekomme es einfach nicht hin.
    Folgende Anforderung:
    Ein Formular (Form1) soll geöffnet werden. Darin enthalten ein Reportviewer Steuerelement (Reportviewer1).
    Nun soll ein Bericht aufgerufen werden, der die Daten eines zur Laufzeit erstellten Datasets (ds1) mit einer Datentabelle („Adressen“) in Tabellenform ausgibt.
    Den Bericht habe ich entworfen und eine Tabelle eingefügt. Dabei werde ich nach einem Dataset gefragt, wo ich Dataset1 auswähle und Datatable1 als „verfügbare Dataset“ auswähle. Dieses Dataset und die Datatable habe ich vorher manuell angelegt (Projekt/Neues Element hinzufügen …)
    Folgender Code für Form1:
    Code:
    Public Class Form1
    
        Public conn As New SqlConnection
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conndata.ConnectionString = strConnectionstring
    
            'Try
            '    conndata.Open()
    
            'Catch ex As Exception
            '    MsgBox(ex.Message.ToString)
    
            'End Try
    
            Dim cmd As New SqlCommand("SELECT * from Adressen", conn)
            Dim ds As New DataSet()
            Dim da As New SqlDataAdapter(cmd)
    
            da.Fill(ds, "Personen")
            ds.WriteXml("Personen.xml", XmlWriteMode.WriteSchema)
    
            Dim nwds As New DataSet1
    
            nwds.ReadXml("Personen.xml")
    
            Dim mybs As New BindingSource
    
            mybs.DataSource = nwds
            mybs.DataMember = "DataTable1"
    
            Dim rds1 As New ReportDataSource("Dataset1_DataTable1")
    
            rds1.Value = mybs
            ReportViewer1.LocalReport.DataSources.Add(rds1)
    
    
            ReportViewer1.LocalReport.ReportPath = "Report1.rdlc"
    
    
    
            Me.ReportViewer1.RefreshReport()
        End Sub
    End Class

    Beim Debuggen öffnet das Formular und ein leerer Reportviewer erscheint mit folgender Fehlermeldung:

    “Für die Dataset1-Datenquelle wurde keine Datenquelleninstanz angegeben.”
    Ich hoffe, mir kann dabei jemand helfen.

    Das mit dem xml Schema (s.o.) habe ich auch noch nicht verstanden. Ich habe den Code aus dem Buch "Datenbankprogrammierung mit Visual Basic 2005" versucht, an meine Anforderung anzupassen.

    Marco

  • #2
    Hallo,

    gib deinem DataSet den Namen den der Bericht erwartet. -> "DataSet1"


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Vielen Dank für die schnelle Antwort. Habe folgende Zeile geänert:

      Code:
       Dim rds1 As New ReportDataSource("Dataset1")
      Ist es das, was Du meinst?

      Anschließend bekomme ich eine Fehlermeldung:

      "Fehler bei der lokalen Berichtsverarbeitung. Fehler bei der BErichtsverarbeitung. Dataset1"

      Comment


      • #4
        Hallo,

        bei mir ist es schon ein Zeit lang her dass ich meinen letzten Bericht erstellt habe, daher kann ich dir leider keine fachkundige Auskunft geben.

        Die Anlaufadresse dazu ist GotReportViewer. Unter "Report design in a nutshell" sollten die Hinweise sein die du brauchst.


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Vielen Dank für den Link.

          Es hilft mir an anderer Stelle sehr weiter, aber leider nicht bei meinem aktuellen Problem. Vielleicht hat jemand ja noch ne Lösung?

          Comment


          • #6
            Habs geschafft

            Habs gefunden.
            Für alle, die in ähnliches problem haben:

            Es lag in dem Namen der Datatable es muss heißen. Den ganzen XML Kram hab ich rausgelöscht. Hab eh nicht vertsanden, wofür ich den brauche ...

            Außerdem ganz wichtig: Gross-/Kleinschreibung beim Namen von dataset und datatable beachten!!!

            Code:
             da.Fill(ds, "DataTable1")
            Das hat mich aber Nerven gekostet ... Dabei war es so einfach!

            Comment


            • #7
              Hallo,

              daher auch in meiner 1. Antwort
              Originally posted by gfoidl
              gib deinem DataSet den Namen den der Bericht erwartet.



              mfG Gü
              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

              Comment

              Working...
              X