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
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.
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
So,
habs jetzt. Das mehrspaltige Layout war die Lösung. Vielen Dank nochmal.
Grüße, GKA