2017-01-10 7 views
0

ich einen SSRS-Bericht haben, die wie folgt aussieht:SSRS Reihen in tablix außerhalb Gruppe geht zur nächsten Seite

Report Header: 
Page X of Total Page Y (based on change of Customer ID) 
Customer ID (Referring to ReportItem!CustomerID) 

Report Body: 
A tablix page break by change of group Customer ID 

Tablix Header:  Date | Price | Quantities | Description | Hidden Column Customer ID 
Tablix Details: YYYY-MM-DD | 1.00 | 500  | Blah Blah | Customer ID (used for page header referring) 
Row outside group: Empty 
Row outside Group: Sum of Price 
Row outside Group: Sum of Quantities 
Row outside group: Empty 
Row outside group: *** END OF RECORDS *** 

Report Footer: 
Company address 

der Reihe außerhalb Gruppe zur nächsten Seite, wenn der Bericht Körper für die tablix Details Gelegentlich sind voll, wodurch auf der nächsten Seite nur einige der Zeilen außerhalb der Gruppe angezeigt werden (zB * ENDE DER AUFZEICHNUNGEN *).

Dann kann das Kunden-ID-Feld im Berichtsheader den Wert von ReportItem! CustomerID nicht erhalten, die es leer lassen.

Gibt es trotzdem das leere Problem zu lösen? Oder muss die Zeile außerhalb der Gruppe an die Tablix-Details auf derselben Seite angehängt werden? Aus irgendeinem Grund kann ich die Anzahl der Zeilen pro Seite nicht begrenzen. Vielen Dank.

+0

Wird dieser Bericht für jeweils einen Kunden oder ein Vielfaches ausgeführt? – StevenWhite

+0

@StevenWhite, es läuft für mehrere Kunden gleichzeitig. Und es wird im PDF-Format exportiert. Vielen Dank. – TinySimonH

Antwort

0

Vielleicht können Sie versuchen, eine andere versteckte Kopie der endgültigen "Kundennummer" irgendwo in der Gruppe "ENDE DER AUFNAHMEN" einzutragen und dann eine IIF zu verwenden, wenn die ursprüngliche versteckte "Kundennummer" Sie nicht hat nicht auf der letzten Seite.

+0

Dieser Ansatz funktioniert auch nicht. Ich habe neben dem "ENDE DER AUFZEICHNUNGEN" eine weitere versteckte Textbox erstellt. Dann in den Seitenkopf die folgenden IIF verwenden, um die CustomerID zu erkennen: (!! IsNothing (ReportItem CustomerID.Value), ReportItem CustomerID_TABLIX_FOOTER.Value, Report CustomerID.Value) '= IIF' Aber das wird eine andere werfen error: ** Ein Ausdruck in einer Seitenkopfzeile oder -fußzeile kann sich nur auf ein Berichtselement beziehen. ** – TinySimonH

+0

@TinySimonH. Okay. Ich habe eine andere Idee. Wenn Ihre Ausgabe eine PDF-Datei ist, könnte dies funktionieren. Behalten Sie das zweite verborgene 'CustomerID' Feld, das Sie in der Zeile "ENDE DER AUFZEICHNUNGEN" erstellt haben. Verwenden Sie in Ihrer Kopfzeile 2 überlagerte Textfelder. Der eine ruft das ursprüngliche 'CustomerID'-Feld auf und der andere ruft das neue' CustomID'-Feld auf. Wenn beide 'CustomerID'-Felder gleichzeitig auf derselben Seite vorhanden sind, überlappen sich die Header-Textfelder nur mit den gleichen Daten und theoretisch werden Sie nie wissen, dass es im Header-Bereich 2 separate Textfelder gibt. :-) – Rashiki

+0

Danke! Obwohl Ihre Methode die Kunden-ID anzeigen kann, macht sie die Schrift fetter, wenn sich beide Felder überschneiden. Wie auch immer, ich werde diese gültige Antwort markieren, da dies der beste Weg ist, den Bericht zu präsentieren. Vielen Dank. – TinySimonH

0

Sie können steuern, wann die Seitenumbrüche auftreten und die Elemente zusammenhalten, aber es ist nicht sehr intuitiv. Verwenden Sie keine tatsächlichen Kopf- und Fußzeilen. Verwenden Sie einfach Textfelder, die am Anfang und am Ende der Kundendaten angezeigt werden. Zweitens müssen Sie alles in ein gruppiertes Rechteck einschließen. Dies wird nach Kunden gruppiert, wobei die Seitenumbrüche zwischen Instanzen sind.

Siehe meine Antwort here für weitere Details, wie Sie dies tun.

+0

Es hört sich an wie @ TinySimonH ist in Ordnung mit seiner Zeilengruppe Seitenumbrüche, aber wenn ich richtig verstehe, was passiert ist, dass auf der Seitenumbruch Gruppe gibt es gerade genug Kunden Daten, die dazu führen, dass eine zusätzliche, letzte Seite erstellt wird, die keine Kundendaten enthält, sondern nur seine Tablix-Fußzeilengruppenzeilen. Und da diese Tablix-Fußzeilengruppen die versteckten "Kunden-ID" -Daten nicht enthalten, auf die sich sein Header-Feld stützt, funktioniert die Logik für sein Header-Feld auf dieser letzten Seite nicht, weil er Daten aus einem Body-Feld aufruft existiert nicht auf der letzten Seite. – Rashiki

+0

@Rashiki, Sie haben völlig Recht und verstehen meine Frage vollständig. Ich versuche deine oben erwähnte Methode jetzt. – TinySimonH

+0

Ich sehe. Ich würde immer noch vorschlagen, dass Sie SSRS Filterwerte basierend auf der aktuellen Gruppierung lassen. Der Versuch, Werte in anderen Objekten zu referenzieren, ist nicht so zuverlässig. Genau wie wenn Sie eine Summe in verschiedenen Ebenen eines Pivots machen. Es macht keinen Sinn zu sagen, welche Textfelder zu Sum, wenn es bereits seinen Umfang kennt. – StevenWhite

Verwandte Themen