Laden...

Report (rdlc) Tabelle dynamisch nach rechts erweitern

Erstellt von GKA vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.282 Views
G
GKA Themenstarter:in
5 Beiträge seit 2010
vor 13 Jahren
Report (rdlc) Tabelle dynamisch nach rechts erweitern

Hallo Community,

nach langer Suche ohne Ergebniss möchte ich mein Glück für einem Lösungsansatz hier versuchen und hoffe auf eure Hilfe.

Ich habe einen Bericht, welcher mir für n Kategorien die Anzahl von n Produkten Ausgibt, wobei sich die Anzahl auf die Produkte in der jeweiligen Kategorie bezieht. Die Ausgabe Erfolgt in einer Tabelle, welche aus 3 Datenbereichen für Kategorie, Anzahl und Produkt besteht. Die Ausgabe ist so Gruppiert, dass für jedes Produkt die Anzahl pro Kategorie ausgegeben wird. Dies muss so sein, da ich für jede Kategorie die Anzahl der verfügbaren Produkte benötige, auch wenn die Anzahl der Produkte in einer Kategorie 0 ist. Da es sich pro Tabelle lediglich um 3 daten handelt, ist diese natürlich klein und würde, bzw. soll 9 mal auf eine Seite passen.

Nun mein Problem. Microsoft ReportViewer, bzw. der Bericht, erweitert den Datenbereich der Tabelle automatisch nach unten und verschwendet dadurch sehr viel Platz. Ich möchte also einstellen, das die Tabelle zuerst nach rechts und dann nach unten weiter geführt wird.

Die Datenbindung erfolgt natürlich durch ein DataSet, welches folgende Spalten bereit hält:
Datum(Tag_ID)
Kategorie
Anzahl
Produkt

Vielen Dank und Grüße, GKA

3.728 Beiträge seit 2005
vor 13 Jahren
Mehrspaltiges Layout

Hallo GKA,

Du kannst ein mehrspaltiges Layout einrichten. Das verhält sich dann ähnlich wie eine Tageszeitung. Alleringds würden Deine Kategorieen zuerst nach unten und dann - wenn die Spalte voll ist, nach rechts aufgefüllt.

Falls das für Deine Zwecke auch reicht: TechNet: Writing Multi column reports

Ansonsten musst Du Dir mit einem Trick behelfen. Du musst Die Daten so vorformatieren (z.B. per SQL), dass für jede Spalte eigene Felder im DataSet vorhanden sind. Dann kannst Du ein normales Report Table Control verwenden und die Spalten dort so anlegen und binden, wie Du es möchtest.

Wenn Deine Datenstruktur z.B. momentan so aussieht:

Kategorie
Produkt
Anzahl (SUM via GROUP BY)

... dann müsstest Du das in etwa so umformatieren

Kategorie1
Produkt1
Anzahl1 (SUM via GROUP BY)
Kategorie2
Produkt2
Anzahl2 (SUM via GROUP BY)
Kategorie3
Produkt3
Anzahl3 (SUM via GROUP BY)

Wenn SQL nicht zur Debatte steht, kannst Du auch vor den Bericht eine Präprozessor-Methode hängen, welche die Daten per C#-Code mit ein paar Schleifchen auf die 3 spaltige Datenstruktur umformatiert.

G
GKA Themenstarter:in
5 Beiträge seit 2010
vor 13 Jahren

Hallo Rainbird,

vielen Dank für deine Antwort. Mit dem Ansatz, die SQL Query so zu verändern, dass ich im Prinzip noch drei Unterkategrien schaffe, um drei Tabellen bedienen zu können, hatte ich auch schon geliebäugelt. Jedoch denke ich es gibt noch eine bessere Variante. Die mit dem mehrspaltigen Layout klingt zumindest sehr nach dem was ich Suche, da mir egal ist ob die Tabelle zuerst nach unten und dann nach rechts oder umgekehrt gefüllt wird, solange die gesamte Seite genutzt wird. Ich werde mich jetzt mal intensiv damit ausseinander setzten und dann mal weiter schauen. Also nochmal vielen Dank für deine Antwort.

Grüße, GKA

G
GKA Themenstarter:in
5 Beiträge seit 2010
vor 13 Jahren

So,

habs jetzt. Das mehrspaltige Layout war die Lösung. Vielen Dank nochmal.

Grüße, GKA