Laden...

DataSet in ReportViewer ausgeben

Erstellt von Estorik vor 11 Jahren Letzter Beitrag vor 11 Jahren 6.137 Views
E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren
DataSet in ReportViewer ausgeben

Hallo Leute,

ich habe ein Problem mit der Ausgabe eines DataSets im ReportViewer Steuerelement. Dats DataSet enhält definitiv Daten(hab ich überprüft) nur zeigt mir der ReportViewer nichts an, obwohl ich ihm das DataSet übergeben habe.

Hier mal mein Code dazu...


           DB_Connector con = new DB_Connector(centralDataPath, "Difference");

           rpvDifferenceViewer.ProcessingMode = ProcessingMode.Local;

           LocalReport lc = rpvDifferenceViewer.LocalReport;

           ReportDataSource src = new ReportDataSource("Result", con.getCompleteTableContentFromDataBase());
           rpvDifferenceViewer.LocalReport.DataSources.Add(src);

           rpvDifferenceViewer.RefreshReport();


Hab ich dort einen Fehler? oder warum funktioniert das nicht.

Die Funktionsnamen sollte ich ein wenig überarbeiten ;P

Gruß

Esto

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Estorik,

stimmt der Name der ReportDataSource mit jenem vom DataSet überein? Wenn ich mich recht erinnere, so müssen diese zusammenstimmen, sonst kann das DS nicht verarbeitet werden.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Hi gfoidl,

danke für die schnelle Antwort! Ich hab die Namen angepasst, doch leider macht er noch immer nichts. Er gibt aber auch keine Fehlermeldung oder irgendwas aus...

Gruß

Esto

2.891 Beiträge seit 2004
vor 11 Jahren
6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Estorik,

ich hab deinen Code mit jenem aus Mehrere Informationen (Bild, Tabelle) auf einer (Report/PDF/Web-)Seite darstellen verglichen und da fällt auf, dass deinem Bericht die Berichtsdefinition nicht zugewiesen wird. Machst du das auf eine andere Weise?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Öhhhm ne hab ich bisher nicht gemacht... 😃 Dann wird da der Fehler liegen... Ich arbeite das erste mal mit dem Ding 😃

Danke dir...

3.825 Beiträge seit 2006
vor 11 Jahren

Ein Beispiel für Anzeige von Daten aus einem Dataset findest Du auf :

http://www.gotreportviewer.com/

Und viele Beispiele mehr ...

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Aller besten Dank Leute.... 😃

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Mal ne Frage zum Verständnis!

Wenn ich dem ReportViewer doch eine Tabelle eines DataSets gebe, ist doch die Struktur des Reports definiert. Warum muss ich noch eine Berichtsdefinition (.rdlc) einbinden?

irgendwie steig ich da nicht durch...

Also sind die Schritte folgendermaßen???

  1. Den ReportViewer auf die Form ziehen
  2. Als Datenquelle des ReportViewers die Berichtsdatei (.rdlc) wählen
  3. Als Datenquelle für den Bericht(.rdlc) das entsprechende DataSet wählen.
  4. Den Bericht in den Viewer kippen?

Und wie den Bericht dynamisch im code je nach DataSet generieren?

Ich versteh das Ding net so ganz... 😃

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Estorik,

doch eine Tabelle eines DataSets gebe, ist doch die Struktur des Reports definiert

überhaupt nicht. Das sind nur die Daten, aber wie diesen angezeigt werden sollen (Textboxen, Diagramme, Positionierung) ist durch die Tabelle nicht angegeben. Dazu ist die Berichtsdefinition nötig.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Hmm ja stimmt irgendwie logisch. Hab wahrscheinlich grad ein Brett vor dem Kopf.

Aber der Ablauf ist richtig?

  1. Den ReportViewer auf die Form ziehen
  2. Als Datenquelle des ReportViewers die Berichtsdatei (.rdlc) wählen
  3. Als Datenquelle für den Bericht(.rdlc) das entsprechende DataSet wählen.
  4. Den Bericht in den Viewer kippen?

Kann ich dem Bericht jedes x-beliebige Steuerelement übergeben?

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Estorik,

der Ablauf passt.

Kann ich dem Bericht jedes x-beliebige Steuerelement übergeben?

Was meinst du denn damit? Lies dir mal oben den Link von BerndFm durch, mir scheint du weißt nicht was du da tust, zumindest verstehe ich diese Frage so. Beachte bitte vorsorglich [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Hmm bezüglich dieses ReportViewers hast du sicherlich recht... 😃 Ich hatte für einen kurzen Moment gedacht ich kann alle Steuerelemente in diesem Report verwenden.... 😛 Ich werd kein Freund von dem Ding 😃

E
Estorik Themenstarter:in
53 Beiträge seit 2010
vor 11 Jahren

Also ich habs jetzt endlich geschafft....

Ich habe im (.rdlc) File direkt eine selbstgebastelte Klasse als Datenquelle übergeben und es läuft jetzt perfekt.

Hier mal mein Test Code...


           Item a = new Item("DateiName 1", 1, 4, "Dies ist der Zelleninhalt 1");
           Item b = new Item("DateiName 2", 2, 5, "Dies ist der Zelleninhalt 2");
                   
           List<Item> diff = new List<Item>();
           
           diff.Add(a);
           diff.Add(b);
          
           rpvDifferenceViewer.ProcessingMode = ProcessingMode.Local;

           rpvDifferenceViewer.LocalReport.ReportPath = "xxx\\Report1.rdlc";
           rpvDifferenceViewer.LocalReport.DataSources.Add(new ReportDataSource("Different", diff));
           rpvDifferenceViewer.RefreshReport();

Und hier meine (Test) Klasse Item...


 public class Item
{
        public string FileName { get; set; }
        public int RowNumber { get; set; }
        public int ColNumber { get; set; }
        public string Content { get; set; }

        public Item(string fileName, int rowNumber, int colNumber, string content)
        {
            FileName = fileName;
            RowNumber = rowNumber;
            ColNumber = colNumber;
            Content = content;
        }
}

Und ich hab gedacht das Ding treibt mich in den Wahnsinn... 😃

Danke nochmal für die tatkräfitige Unterstützung...:)

Gruß

Esto