Erstellen eines rdlc-Berichts mit mehreren Tabellen (1: n-Beziehung)

8

Also, ich bin neu bei rdlc (und berichte eigentlich überhaupt). Ich habe eine Tabelle, die eine Eins-zu-viele-Beziehung mit einer anderen Tabelle hat, und ich versuche, sie in einem RDLC-Bericht als mehrere Tabellen für jedes Element darzustellen.

Hinweis: Die Tabellen werden ursprünglich mit Entity Framework-Code zuerst erstellt .

Hier sind die zwei Tabellen (und die Eltern) :

Nun, normalerweise, wenn ich nur die [Quotation] und einige [QuotationItem] s habe, würde ich einfach die Informationen von [Quotation] oben im Bericht hinzufügen, und die Informationen von jedem [QuotationItem] wären in einer Reihe in einer Tabelle (Tablix) dargestellt.

Das Problem ist : Jedes [QuotationItem] auch hat viele von [QuotationItemQuantity] (derzeit drei), und sie müssen auch dargestellt werden.

Also sollte mein Bericht in etwa so aussehen:

Aber ich merke, wie man mehrere Tabellen (oder eine Liste und Tabellen) für jedes Element (QuotationItem) anzeigt. Ich habe verschachtelte Tabellen und Tabellen innerhalb einer Liste versucht, aber das scheint nicht erlaubt zu sein (ich bekomme "Detail-Mitglieder können nur statische innere Mitglieder enthalten" Fehler).

Ich habe über Unterberichte gelesen und denke, dass dies der richtige Weg sein könnte, aber ich bin mir nicht sicher, wie man in diesem Fall Unterberichte verwendet oder ob dies tatsächlich der richtige Ansatz ist.

Hinweis: Wie bereits erwähnt, hat jedes QuotationItem aktuell 3 Mengen, die sich aber in Zukunft ändern könnten, also wäre es toll, wenn die Spalten dynamisch sein könnten, dies ist jedoch an dieser Stelle nicht erforderlich.

Irgendwelche Vorschläge?

    
Ahmed Abdelhameed 17.02.2018, 17:26
quelle

1 Antwort

6

Nun, ich hatte gehofft (und tue es immer noch), eine elegantere Lösung zu bekommen anstatt dieser hässlichen (die ich für den Moment benutzen musste), aber sie tut, was sie eigentlich soll.

Ich poste es, da es jemandem mit einem ähnlichen Problem helfen könnte. Folgendes habe ich getan:

Vorbereiten der Daten:

  • Ein Dummy-DataSet mit dem VS-Designer erstellt und eine DataTable hinzugefügt.
  • Alle erforderlichen Spalten aus beiden Tabellen wurden in diese DataTable eingefügt.
  • DataSet als Datenquelle für den Bericht hinzugefügt.
  • Um die eigentlichen Daten zu übergeben, würde ich eine DataTable mit der gleichen Struktur wie die entworfene füllen und sie dann an den Bericht übergeben, etwa wie folgt:

    %Vor%

Entwerfen des Berichts:

  • Im RDLC-Bericht wurde nur eine Tabelle (Tablix) erstellt, und die Zellenrahmen wurden so gestaltet, dass sie wie 3 Tabellen aussehen, indem die Grenzen der unerwünschten Zellen zwischen den "Tabellen" entfernt werden:
  • Die Felder aus dem Dummy-DataSet wurden zu den entsprechenden Zellen in der ersten Tabelle (die Mengeninfo) und über der Tabelle (die Angebotspositionsinfo) hinzugefügt.
  • Für die zweite und dritte "Tabelle" wurden einfach Ausdrücke verwendet, um die Berechnungen basierend auf den Werten aus der ersten Tabelle durchzuführen.

Hinweis: Einige Felder / Variablennamen wurden sowohl in der Frage als auch in der Antwort geändert, aber die Idee bleibt gleich.

    
Ahmed Abdelhameed 22.02.2018 05:59
quelle