3 Stimmen

Wie füge ich einer Matrix in SQL Reporting Services eine Fußzeile hinzu, die die Zeilenzahl anzeigt?

Ich habe eine Matrix in meinem Bericht, die einen Datensatz anzeigt, der eine Zeile für jede Person in einem Unternehmen enthält:

Company     Position   Name
-------     --------   -----
Acme Inc.   CEO        Bob
Acme Inc.   COO        Alice
Beta Corp.  CEO        Frank
Beta Corp.  CTO        Rob
Beta Corp.  COO        Bill
(etc)

Die Matrix hat eine Spaltengruppierung für Position und eine Zeilengruppierung für Unternehmen. Der endgültige Bericht sieht wie folgt aus:

  Company        CEO      CTO     COO
-----------------------------------------
| Acme Inc.   |  Bob              Alice |
| Beta Corp   |  Frank    Rob     Bill  |
| Foo, Inc.   |           Paul          |
| Bar Corp    |  Mary                   |

Ich möchte eine Fußzeile am unteren Ende der Matrix hinzufügen, die die Anzahl der CEOs, CTOs usw. angibt.

-------------------------------------
People in role | 3         2        2

Wie kann ich dies in SQL Reporting Services 2005 tun? Leider scheinen die Matrix-Steuerelemente in SSRS 2005 keine Fußzeilen zu unterstützen, wie es bei den Tabellen-Steuerelementen der Fall ist. Ich denke, die Lösung wird einige Tricks mit Zeilengruppen beinhalten, aber ich weiß nicht genug über das Matrix-Steuerelement, um es herauszufinden.

3voto

NakedBrunch Punkte 47125

Klicken Sie in der Entwurfsansicht mit der rechten Maustaste auf die Zelle "Firma" und wählen Sie Summe hinzufügen-->Nach.

Es wird eine neue Zeile als Fußzeile mit "Total" in der Zelle ganz links hinzugefügt. Geben Sie rechts von totalm in der Titelspalte den folgenden Ausdruck ein:

=COUNT(Fields!Name.Value)

Zeigen Sie den Bericht in der Vorschau an, und die Summen werden genau so angezeigt, wie Sie es wünschen.

Update

Die obige Antwort bezieht sich auf SSRS 2008. Da Sie SSRS 2005 verwenden, sehen Sie sich Technik Nr. 5 unter dem folgenden Link an: http://www.simple-talk.com/sql/reporting-services/advanced-matrix-reporting-techniques/

2voto

Rakesh Punkte 214

Die einfachste Lösung, die ich finden konnte, war

\=SUMME(iif(Felder!Name.Wert<>"",1,0))

wobei Fields!Name das Datenfeld in Matrix ist.


Bitte markieren Sie dies als Antwort, wenn Sie dies hilfreich finden

1voto

indusz Punkte 26

Können Sie versuchen, die InScope-Funktion zu verwenden?

Zum Beispiel,

=IIF(InScope("nameOfColumnGrouping"), Sum(yourField.Value), do something)

Möglicherweise müssen Sie auch den Anwendungsbereich der Summenfunktion festlegen.

Zum Beispiel,

=IIF(InScope("nameOfColumnGrouping"), Sum(yourField.Value,"datasetName/groupName"), do something)

Ich hoffe, das hilft!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X