2010-10-27 5 views
16

Ist es möglich, eine Zeile zu einer SSRS 2008 Matrix hinzuzufügen, die alle Spalten der Matrix umfasst?Kann in SSRS 2008 eine Zeile erstellt werden, die alle Spalten einer Matrix umfasst?

Dieses rohe Diagramm zeigt in etwa, was ich suche:

visual example of the matrix layout I'm looking for

Die Grundidee ist, dass jede Position eine Person ist, und jede Spalte ist ein Feld, in einen für die betreffende Person Form. Die Felder selbst sind dynamisch (und als Spaltengruppen in der Matrix implementiert). Zusätzliche Spaltengruppen sind enthalten, um nichtdynamische Formularfelder anzuhängen, z. B. wann der Datensatz eingegeben wurde und wer ihn eingegeben hat. Unter dem Datensatz jeder Person befindet sich ein Kommentarfeld, das alle darüber liegenden Formularfelder umfassen sollte.

Im Moment habe ich die Matrix in einem anderen Tablix eingebettet, mit dem Namen und Feldern in der Matrix und den Kommentaren in der übergeordneten Tablix. Dies funktioniert für die Daten (jede Instanz der Matrix endet als eine Zeile), aber der Header wiederholt sich zu oft (einmal pro Person), weil er an die Matrix angehängt ist. Der einzige Gedanke, den ich habe, um dies zu beheben, ist, eine andere Matrix in der Eltern-Tablix mit der gleichen Gruppierung zu erstellen und sie zum Anzeigen der Header zu verwenden ... Aber das erfordert eine Menge manueller Synchronisation, um die beiden Matrizen zu behalten gleich.

Edit: Das Hauptproblem hier ist, ist die zweite Zeilenspanne mehrspaltige Gruppen.

Antwort

4

[Bearbeiten]

Nach mehreren Versuchen, werde ich sagen, dass dies in SSRS nicht möglich ist. Das Beste, was ich mir vorstellen kann, ist ein Gruppenfuß, der die Spalten 1,2 und 3 umspannt, aber nicht die Spalte Benutzer.

[Original-Antwort]

Ich habe vor kurzem etwas ähnlich.

Erstens, welches Werkzeug verwenden Sie, um SSRS-Berichte zu erstellen? (I verwendet SQL Server Business Intelligence Development Studio)

  • Sie wollen es eine Reihe Gruppe erstellen (gruppiert auf Person)

  • Anfügen einer Reihe auf den Tisch in "Design" Ansicht (Rechtsklick , "Zeile einfügen -> innerhalb der Gruppe - darunter").

  • Fügen Sie der Zeile einen Ausdruck hinzu, der den Wert für Ihre Spalte "Kommentar" (= Fields! Comment.Value) abruft.

Lassen Sie mich wissen, ob das hilft ...

+0

Ich benutze Visual Studio 2008. Die Matrix hat bereits eine Zeilengruppe auf dem Personenfeld ... Meinen Sie, eine andere irgendwie hinzuzufügen? Wenn ich eine neue Zeile hinzufüge, wird im Designer eine Zelle für jede Spaltengruppe angezeigt. Ich möchte, dass es für alle eine Zelle gibt. – AaronSieb

+0

Markieren Sie alle Zellen in der Zeile, klicken Sie mit der rechten Maustaste und klicken Sie auf "Zusammenführen". – TexasViking

+2

Leider scheint die Option Zellen zusammenführen nicht verfügbar zu sein, wenn ich Zellen aus mehreren Spaltengruppen ausgewählt habe. Ich brauche eine Zelle, die mehrere Spaltengruppen umfasst ... Das scheint hier das Hauptproblem zu sein. – AaronSieb

4

Versuchen in Sie Spaltengruppe "header" mit einer Gruppierung Ausdruck (1 = 1) hinzuzufügen. Dann muss ein Detailfeld definiert werden. Wenn Sie die andere Gruppe mit korrekten Daten definieren, wird die "Kopfzeile" über alle Details Spalten erstrecken. Abhängig von anderen Optionen müssen Sie möglicherweise eine Fusion durchführen.

10

Hier ist, was Sie tun können:

  1. Wählen Sie die Spalte Gruppieren Sie oben und der rechten Maustaste hinzufügen möchten, und wählen Sie Gruppe hinzufügen ... Geordnete Gruppe ...
  2. Gruppe die Säule durch etwas, das die Daten nicht aggregiert. Sie müssen ein Feld aus Ihrer Datenmenge auswählen, um es zu gruppieren, sodass eine überlappende Spaltengruppierung erstellt wird.
  3. Überprüfen Sie die Add Gruppenkopf Box

Sie jetzt etwas Ähnliches wie diese sehen sollte:

Matrix with columns

Jetzt müssen Sie nur noch die Value1 Feld bewegen und es Header über unter der neue Spalte rechts über den Matrix-Teilern. Sobald dies erledigt ist, löschen Sie einfach die nicht gruppierte Spalte, in die Sie Value1 kopiert haben und wählen Sie Delete columns only checkbox.

Ihre fertige Produkt sollte wie folgt aussehen:

enter image description here

+1

Ich glaube, die Frage war, wie bekomme ich einen Header für jede Zeilengruppe, anstatt eine Zusammenfassung stat über alle Zeilen. –

4

Es ist möglich, - Und die oben genannten Antworten sind Teil-Antworten ein wichtiger Schritt auszulassen: Zusammenführen der Zellen des Kindes Reihe.

Zuerst mit der rechten Maustaste auf Ihren gruppiert Reihe, dann Insert Row -> Inside Group - Below wählen und Sie werden zwei Reihen mit den Zellen auf den Säulen erhalten Ausrichten

Zweitens ctrl alle Zellen in der neuen Zeile klicken (dh Zeile ohne Klicken Sie mit der rechten Maustaste auf eine der markierten Zellen und wählen Sie Merge Cells.

Jetzt haben Sie den Tisch, den Sie mögen. So fügen Sie der neuen Zeile einen Wert hinzu: Klicken Sie zuerst mit der rechten Maustaste auf die neue Zelle (mehrere Spalten), wählen Sie Create Placeholder, und fügen Sie das gewünschte Datasetelement dem Platzhalter hinzu.

+0

Danke - das ist die beste Lösung. Arbeitete wie Charme! –

0

Der einfachste Weg, dies zu tun, ist ein Tablix mit nur einer Spalte und Ihre Zeilengruppierung zu erstellen. Dann erstellen Sie zwei Zeilen innerhalb dieser Gruppe. In der ersten Zeile innerhalb der Gruppe fügen Sie eine Matrix ein, die Sie dann nach Ihren Wünschen gruppieren können.

Ich hatte gerade ein ähnliches Problem, und das war meine Lösung.

Ich knallte meinen Kopf für eine lange Zeit an die Wand, bis ich erkannte, dass die Lösung meines Problems nicht darin bestand, "eine Zelle über mehrere Spaltengruppen zu verteilen", sondern "eine Zelle in mehrere Spaltengruppen aufzuteilen".

Verwandte Themen