2012-04-05 12 views
1

Ich habe einen Bericht Struktur, die ähnlich wie dieseAnzeige Seitenkopf in bestimmten Sektionen - Crystal Report

Report Header 
    --Cross Tab 
Page Header 
    --Header 
Group Header1 
    --Cross Tab 
Group Header2 
    --Details 

Ich versuche, den Seitenkopf auf den Seiten nur anzuzeigen, in den Group2 Start. Ich habe die Seitenüberschrift in nur 1. Seite überspringen.

Ist es in Crystal Bericht möglich?

Dank

bearbeiten

Dies ist, wie Bericht zur Zeit wie

enter image description here

+0

Sie möchten also den Seitenkopf auf allen Seiten ausblenden, auf denen GH2 angezeigt wird oder nur dort, wo der GH2 auf eine zweite Seite läuft? – Ryan

+0

@Ryan: Nur auf den Seiten wo GH2 zeigt –

Antwort

0

Wenn Sie Abschnitt auf der ersten Seite nur müssen unterdrücken die page-Header sieht, Fügen Sie diesen Text der Bedingung-Unterdrückung-Formel der Seitenkopfzeile hinzu:

+0

Danke für die Antwort, aber ich denke, Sie haben die Frage nicht richtig gelesen :) Ich habe es bereits auf der ersten Seite verstecken. Aber ich muss das gleiche für andere Seiten tun, die keine ** Group2 ** Daten enthalten. –

1

Das ist nur mein Bauchgefühl, aber ich denke nicht, dass dies ohne einige andere Änderungen am Bericht möglich ist. Crystal bestimmt nicht die Platzierung von Abschnitten bis zum letzten Durchlauf. Dies ist auch der letzte, den Sie Formeln erzwingen können, um auszuwerten, aber dann werden die Berichtskopfunterdrückungsformeln vor Formeln in GH2 auswerten. Mit anderen Worten: Solange auf der Seite Abschnitte mit variablen Größen gedruckt werden, kann Crystal während des Seitenkopfdrucks nicht erkennen, ob auf dieser Seite ein GH2 angezeigt wird oder nicht.

Die einzigen Lösungen, die ich denken kann, sind präventiv behandeln es für jedes mögliche Seitenlayout. Eine Möglichkeit besteht beispielsweise darin, die GH2 so einzustellen, dass sie immer auf einer neuen Seite beginnt (über "Neue Seite davor") und selektiv Seitenköpfe unterdrückt, die zwischen einer GH1 und einer GH2 liegen (über eine boolesche Variable, die auf "whileprintingrecords" gesetzt ist). in GH1 und unset in GH2). Es gibt jedoch wahrscheinlich andere, sauberere Wege, dies zu tun.

EDIT: Was ist die Motivation dafür (Seitenlayout-Details wären hilfreich)? Es gibt wahrscheinlich einen Weg, um dieses genaue Problem nicht zu lösen.

+0

Tatsächlich Header enthält die Spaltenüberschriften für die Details, die unter Group2 fallen. Gruppe1 enthält einen ** Kreuztabellen ** Bericht und ich möchte keine Spaltenüberschriften über der Kreuztabelle anzeigen –

+0

@huMptyduMpty In diesem Fall würde ich einfach eine zweite GH2b einfügen und die Details in diesen Abschnitt verschieben. Verschieben Sie dann die Spaltenüberschriften in GH2a. Es besteht die Möglichkeit, dass die Überschriften mehr als einmal pro Seite angezeigt werden, aber das ist kein Problem. – Ryan

+0

Ya Ich habe es versucht, aber da es viele Daten enthält, verschwendet es zu viele Seiten, egal wie ich die Frage mit Bild aktualisiert habe, wo Sie ein besseres Verständnis über das Szenario haben. –

0

Ich musste etwas Ähnliches machen, aber es brauchte ein wenig Fummelei, um Crystal dazu zu bringen, das zu tun, was man wollte.

Meine grundlegende Herausforderung bestand darin, zu Beginn jedes "Abschnitts" eines Berichts einen "großen" Seitenkopf anzuzeigen und dann für alle anderen Seiten zu einem einzeiligen Seitenkopf zu wechseln.

PHa hat den großen Header. Im Abschnitt Expert, klicken Sie auf den bedingten Unterdrückt, fügen Sie den folgenden Code ein:

Shared numbervar big_header; 
big_header = 0; //suppress if big_header is off 

PHB hat den einen Zeilenkopf. Im Abschnitt Expert, klicken Sie auf den bedingten Unterdrückt, fügen Sie den folgenden Code ein:

Shared numbervar big_header; 
big_header = 1; //suppress if big_header is on 

Für jeden Bericht Abschnitt erstellen ein Paar Formeln (Sie können sie nicht wiederverwenden können, müssen Sie für jedes ein neues Paar machen), eins, um big_header auf 1 zu setzen, und eins, um es auf 0 zurückzusetzen.

shared numbervar big_header; 
big_header := 1; //turn on big_header 


shared numbervar big_header; 
big_header := 0; //turn off big_header 

Platz derjenige, der in einem ansonsten leeren Detailabschnitt antörnt big_header (oder eine Gruppe - sollten, arbeiten nicht getestet), formatieren Sie die Formel unterdrückt werden, formatieren Sie den Abschnitt eine neue Seite zu haben, bevor wenn es nicht die erste im Bericht ist (Register "Paging") und den leeren Abschnitt unterdrückt.

Im nächsten Detail (Gruppe) Abschnitt (der Zeug auf dem Bericht anzeigen sollte), legen Sie die Formel, die Big_header abstellt. Formatieren Sie die zu unterdrückende Formel erneut.

Bei Bedarf wiederholen. (Meine "Turn the big_header on" -Formel legt auch eine Zeichenfolge fest, die in der gemeinsamen Fußzeile verwendet wird.)

Hoffe, das hilft!