2009-01-26 5 views
16

Ich arbeite an einem SQL Reporting Services-Bericht (in VS.Net 2005) der eine Anzahl verschiedener Daten in einer Matrix anzeigt. Die Spalten zählen auf die Anzahl der Kunden in einem bestimmten Set. Also habe ich mehrere Spalten wie diese: "1 Arbeitgeber", "2-9 Arbeitgeber", "10-19 Arbeitgeber" und so weiter.Wie spezifiziert man eine Reihenfolge für die Spalten in einer Matrix?

Das Problem, das ich habe, ist, dass SQL Reporting Services die Spalten in der Matrix alphabetisch sortiert. Also habe ich die Spalte "10-19" nach der Spalte "1 Arbeitgeber", aber vor der "2-9".

Gibt es eine Möglichkeit, das zu beheben? Oder vielleicht ein Trick, um die Bezeichnungen der Spalten so zu ändern, dass sie richtig sortieren?

Danke.

+0

Vielen Dank für diese Frage ein paar Monate, bevor ich die gleiche Frage zu stellen brauchte! – Pulsehead

Antwort

18

Wir machen eine Menge SSRS-Berichte und das war immer ein Problem mit MDX. Hier ist ein Weg, wir tun es:

Set Sortierung im Gruppierung und Sortierung Eigenschaften durch diesen Ausdruck zu sortieren:

=iif(Fields!DataSetField.Value = "ColumnName", "zzz", Fields!DataSetField.Value) 

Wo „zzz“ könnte eine Zahl sein oder was auch immer Sie es brauchen zu sein, um die Sortierung zu helfen und wählen Sie dann Richtung als entweder aufsteigende oder absteigende Basis auf diesem Ausdruck.

1

Ich hatte ein ähnliches Problem, aber fand keine Lösung mit einer Matrix in der Zeit - also habe ich eine Tabelle verwendet - und legte die benötigte Logik der Matrix in meine SQL-Anweisungen. Es ist nicht das Beste, aber es funktioniert - es ist schnell genug und es dauert nicht lange zu schreiben.

4

Dies kann ein bisschen verschachtelt sein, aber wir hatten ein ähnliches Problem und keine Möglichkeit, die SQL zu ändern. Wir haben ein berechnetes Feld im Dataset erstellt, das für jede Spalte eine Zahl zurückgibt und die Gruppe nach dieser Nummer sortiert.

0

Ich ging in MATRIX -> EIGENSCHAFTEN -> GRUPPEN. Dann "bewegte" ich die GROUP, die ich nach UP in der Liste sortieren wollte. Ich ging zu PREVIEW, und es hat perfekt funktioniert. Es hielt sogar meine Spaltenreihenfolge gleich.

+2

Warum glaubst du, dass dies das Problem des Posters lösen wird? Sein Problem war, dass das Sortieren alphabetisch funktioniert. –

0

Gehen Sie zu Gruppe bearbeiten - Sortieren - Ändern Sie die Richtung für den Ausdruck absteigend.

+3

Warum glaubst du, dass dies das Problem des Posters lösen wird? Sein Problem war, dass das Sortieren alphabetisch funktioniert. –

17

Dies kann auch durch Hinzufügen einer neuen Spalte zur Abfrage der Sortierreihenfolge erfolgen. Klicken Sie dann mit der rechten Maustaste auf die Spaltengruppe in der Matrix und wählen Sie die Gruppeneigenschaften aus. Auf der linken Seite wählen Sie die Sortierung. Von hier aus können Sie anstelle der Spaltenüberschrift eine andere Spalte angeben, nach der sortiert werden soll. Keine benutzerdefinierte Formel benötigt.

+2

Dies ist die beste Lösung. Ich wünschte, ich könnte es akzeptieren, also würde es hier an die Spitze der Liste gehen. –

+0

Dies ist die beste nützliche Lösung. –

0

Für unterschiedliche numerische Reihenfolge eines Tablix verwenden Sie folgende Codezeile im Ausdruck.

= Running (CountDistinct („YourTableName“), Graf, „YourTableName“)