Menu

REPORTS

Werner Haselsteiner

Untertabellen einpflegen

Auf msdn - HP steht deutlich : Ein Report kann nur auf 1 Dataset zugreifen
-> Sprich unsere Anforderung ist nur mit Tabellen nicht erfüllbar

Es sind zusätzliche Subreports nötig.
-> Siehe Beispiel "ReportsApplication1"

Subreport einbinden

Subreport erstellen

  1. Ganz normal Bericht mit z.B.: Tabellen erstellen
  2. ** Parameter Anlegen für Filterung der Daten **
    • im Beispiel: "MainId"
  3. ** Filter für die Daten definieren **
    • (unter Gruppeneigenschaft)

Mainreport erstellen

  1. Unterbericht einbinden mit "Unterbericht" aus Toolbox
  2. Eigenschaften ->
    • Allgemein -> "Diesen Bericht als Unterbericht verwenden:" -> Namen eingeben
      • sollte eigenlich mit Durchsuchen gehen, geht bei mir aber nicht...?
    • Parameter -> Hinzufügen
      • Name = Parametername des SubReport (sollte eigentlich auch zum auswählen gehn, bei mir aber nicht -> eintipseln)
      • Wert = Linkwert aus dem Datensatz des Mainreports

Im Reportviewer einbinden

Das ganze funktioniert erst, wenn im Viewer (im Form) der SubreportProcessingEventHandler codiert ist.
-> Muss auch manuell hinzugefügt werden, weils unterm Ereigniss-Menü bei mir zumindest nicht geht...

public Form1()
{   InitializeComponent();

    reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(repView1SubreportProcessingEventHandler);
}


void repView1SubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e)
{
    e.DataSources.Add(new ReportDataSource("DataSet1", this.TestSubBindingSource));
}

In diesem Fall greift die Sub-ReportDataSource auf das Databinding des Forms zurück, hier kann auch die Datenquelle direkt eingetragen werden...

Die Datenquelle des Main-Report ist in InitializeComponent(); vom Autogenerator zugewiesen.

Der Name "DataSet1" muss mit dem Datenquellennamen im Report übereinstimmen...

Siehe auch

http://msdn.microsoft.com/de-de/library/microsoft.reporting.winforms.localreport.subreportprocessing%28v=VS.90%29.aspx