Announcement

Collapse
No announcement yet.

Bericht dynamisch erstellen

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

  • Bericht dynamisch erstellen

    Ich habe ein Problem bei der Erstellung von Berichten.

    Ich möchte einen Bericht dynamisch erstellen lassen. Dass heißt ich möchte den Commandtext, also die Abfrage, ändern.

    Wie kann ich das machen?

    Vielen Dank im voraus...

  • #2
    Code:
    CommandText = "Neuer Wert"
    Ich glaube Du solltest Dein Problem etwas ausführlicher beschreiben.
    Ich kann mir nicht vorstellen was Du überhaupt machst bzw. haben möchtest.

    Comment


    • #3
      Und nicht nur ausführlicher beschreiben was du willst sondern was du hast. Insbesondere welchen Reporter du benutzt, gibt ja nicht nur einen.

      Comment


      • #4
        Ja stimmt, sorry.

        Also ich habe einen Bericht mit dem Berichtassistenten erstellt. Dieser funktioniert auch wunderbar.
        Den Bericht füge ich mittels MicrosoftReportViewer ein.

        Nun möchte ich aber den Report dynamisch erstllen lassen.

        Ich habe eine Nutzertabelle in einer SQL-Server Datenbank. Diese wird in dem Bericht ausgegeben.
        Jetzt möchte ich zum Beispiel in dem Bericht nur die Nutzer mit "ID > 10" ausgeben lassen. Dazu müssteich ja den Commandtext des Querys ändern oder?

        Hier is der betreffende Ausschnitt aus der *.rdlc-Datei des Berichtes:
        Code:
        <Query>
                <DataSourceName>testBPMConnectionString</DataSourceName>
                <CommandText>SELECT id, name, vorname, email, telefon FROM dbo.nutzer</CommandText>
                <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
              </Query>
        Ich möchte nicht jedes mal einen neuen Bericht erstellen müssen.
        Zuletzt editiert von SKiZ1; 15.09.2009, 11:20. Reason: Schreibfehler

        Comment


        • #5
          Du könntest natürlich deinem Report ein passendes DataSet verpassen auf das du dann bei der Erstellung zugreifst. Hier ein kleines Beispiel:

          Code:
          List<DataItems> dataList = LoadDataListByQuery(query);
          ReportDataSource repDataSource = new ReportDataSource("DataItems", dataList);
          ReportViewer viewer = new ReportViewer();
          viewer.LocalReport.DataSources.Add(repDataSource);
          viewer.LocalReport.ReportEmbeddedResource = "Report.rdlc";
          Ich hoffe ich habe zumindest dein Problem soweit richtig verstanden....

          Comment


          • #6
            Jetzt möchte ich zum Beispiel in dem Bericht nur die Nutzer mit "ID > 10" ausgeben lassen. Dazu müssteich ja den Commandtext des Querys ändern oder?
            Dafür wurden (vor langer Zeit) parametrisierte Abfragen entwickelt. Erstell so eine Abfrage und übergib dem Bericht den Parameter (hier: 10) und fertig.


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

            Comment


            • #7
              vielen dank .. das hat mir echt weitergeholfen.

              ist es eigentlich auch möglich einen bericht mit einer arraylist oder hashtable "füttern"?

              so könnte ich das problem eleganter lösen

              Comment

              Working...
              X