Crystal Reports soppressione di intestazione di gruppo formula non funziona
-
27-09-2019 - |
Domanda
Ho un rapporto che i gruppi di due codici, Li chiameremo Parent
e Child
.
Nella parte superiore di ogni pagina, nella pagina di intestazione, voglio stampare il Genitore.
Ci sono un certo numero di colonne nel rapporto, e quando le pause di gruppo, voglio visualizzare il nuovo nome del bambino, così come le intestazioni delle colonne di nuovo. Il rapporto dovrebbe essere simile a questo:
Parent Name
Child Name
Col1 Col2 Col3 Col4 Col5 Col6
XXXX XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX
Child Total: XXXX
Child Name
Col1 Col2 Col3 Col4 Col5 Col6
XXXX XXXX XXXX XXXX XXXX XXXX
Se un gruppo figlio avvolge intorno alla nuova pagina, però, voglio ri-visualizzare il nome del bambino e le didascalie delle colonne prima di visualizzare nuovamente i dati.
Per fare questo, ho creato una pagina di intestazione che contiene i seguenti oggetti:
Parent Name
Child Name
Col1 Col2 Col3 Col4 Col5 Col6
nell'intestazione della pagina è un RowReset
variabile che contiene la seguente formula:
WhilePrintingRecords;
Shared numberVar nRowCount := 0
Quindi, in ogni riga dettaglio, così come il gruppo 1 e gruppo piè piede pagina 2 sezioni, Ho la seguente formula RowIncrement
:
WhilePrintingRecords;
Shared numberVar nRowCount := nRowCount + 1;
Infine, in ogni 2 sezione Intestazione di gruppo, ho la seguente formula soppressione condizionale:
WhilePrintingRecords;
Shared numberVar nRowCount;
IF (PageNumber <> 1) AND (nRowCount = 0 OR nRowCount = 0.00) THEN
True
ELSE
False
Che cosa questo tentativo da fare è sopprimere l'intestazione di gruppo Bambino se siamo su una marca nuova pagina, e nessun record di dettaglio sono ancora stati stampati, per evitare che il seguente accada:
Parent Name ---+
Child Name +-- Page header
Col1 Col2 Col3 Col4 Col5 Col6 ---+
Child Name ---+-- Group header 2
Col1 Col2 Col3 Col4 Col5 Col6 ---+
Per qualche motivo non riesco a capire, di circa 40 pagine nel rapporto, ottengo esattamente questo però; un record di intestazione di pagina, seguita da un colpo di testa 2 record di gruppo. Se creo una formula che contiene la formula di soppressione condizionale, visualizza TRUE
, ma l'intestazione di gruppo continua a non sopprimere.
Se mi rompo il codice in modo che controlla solo uno dei condizionali (sia PageNumber <> 1
o nRowCount = 0
) poi l'intestazione di gruppo 2 Sopprime correttamente.
Ho anche provato questo per rompere le cose:
WhilePrintingRecords;
Shared numberVar nRowCount;
booleanVar bSuppress:= False;
IF PageNumber <> 1 THEN bSuppress:= True;
IF (bSuppress) THEN (IF nRowCount = 0 THEN True ELSE False);
È anche display True
quando è visualizzata sullo schermo, ma non riesce a sopprimere l'intestazione del gruppo.
Cosa diavolo sto facendo male qui? C'è un approccio migliore ho potuto prendere?
Soluzione
Suggerisco di mettere il campo 'Genitore' nell'intestazione del gruppo del proprio gruppo, piuttosto che nell'intestazione della pagina. Poi, in entrambi i gruppi principali e secondari, selezionare l'opzione "Ripeti intestazione di gruppo casella di controllo ogni pagina' Su in scatola le opzioni del gruppo di dialogo.