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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top