none
SQL-Reporting Services Problem RRS feed

  • Frage

  • Hallo,

    ich habe eine kleine Tabelle mit ID, Nachname, Vorname, Datum, etc. Jetzt will ich die Reporting Services bemühen und eine Report z. B. über einen Monat auswählen. Die Auswahl des Zeitraums wird über zwei DatePicker auf der Form gesetzt. Das wäre dann "Datum von:" und "Datum bis:"

    Das dazugehörige Dataset hat folgende Query:
    Code:
    SELECT     id, Nachname, Vorname, Fachbereich, Dauer, Datum
    FROM stat11patienten
    WHERE (Datum BETWEEN @DatumVon AND @DatumBis)
    Unter den Berichtsparametern habe ich:
    DatumVon --> Datentyp: DateTime --> Mehrwertig
    DatumBis --> Datentyp: DateTime --> Mehrwertig

    In den Tabelleneigenschaften habe ich als Filter:
    =Fields!Datum.Value = =Parameters!DatumVon.Value
    =Fields!Datum.Value = =Parameters!DatumBis.Value

    Der VB-Code in der Form:
    Code:
    Imports Microsoft.Reporting.WinForms
    Public Class Form2

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'TODO: Diese Codezeile lädt Daten in die Tabelle "statambpatDataSet1.stat11patienten". Sie können sie bei Bedarf verschieben oder entfernen.
    'Me.stat11patientenTableAdapter.Fill(Me.statambpatDataSet1.stat11patienten)
    Me.ReportViewer1.RefreshReport()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    setParameters()

    End Sub

    Private Sub setParameters()

    Dim prms() As ReportParameter = {New ReportParameter("DatumVon", DateTimePicker1.Text), New ReportParameter("DatumBis", DateTimePicker2.Text)}
    ReportViewer1.LocalReport.SetParameters(prms)
    Me.ReportViewer1.RefreshReport()

    End Sub
    End Class
    Wenn ich nun das Programm aufrufe, kriege ich leider nur die Überschriften der Spalten angezeigt.

    Ich denke das liegt daran, das ich das Fill des DataTables auskommentiert habe. Wenn ich die Kommentierung entferne, kriege ich folgende Fehlermeldungen:
    Für den Parameter "DatumBis" von "Public Overridable Overloads Function Fill(dataTable As statambpatDataSet1.stat11patientenDataTable, DatumVon As Date, DatumBis As Date) As Integer" wurde kein Argument angegeben

    Fehlermeldung ebenso für DatumVon.

    Wie komme ich zu einem sauberen Bericht?

    Gruß
    Mull
    Samstag, 4. April 2009 09:39

Antworten

  • Ohne einen Abruf der Daten via Fill gibt es nunmal keine Daten, die angezeigt werden können.

    Da Du in der SQL Anweisung wie im Bericht einen Bereich (@DatumBis) verwendest,
    mußt Du diesen an den Bericht übergeben.

    Auch für das Fill müssen beide Parameter angegeben werden, da sonst Abfrage einen
    Fehler erzeugt. Wenn Du die Abfrage im DataSet Designer erstellst, so erhälst Du eine
    eigene FillBy-Methode, die die beiden Parameter als Übergabe akzeptiert.

    Wenn Du in einem speziellen Falle nur einen Tag abrufen willst, so verwende für für
    DatumVon wie DatumBis das gleiche Datum.

    Gruß Elmar
    • Als Antwort markiert mullfreak Samstag, 11. April 2009 18:10
    Dienstag, 7. April 2009 09:10
    Beantworter