Creazione di sottomoduli ripetibili e di sottomoduli che si estendono su più pagine

Anche se è possibile posizionare un sottomodulo in un punto qualsiasi della pagina, se si unisce ad esso un'elevata quantità di dati il sottomodulo potrebbe espandersi oltre il bordo inferiore della pagina visualizzata. Per risolvere questo problema è possibile selezionare l'opzione Consenti interruzioni pagina nel contenuto, di modo che il server interrompa il sottomodulo al centro, oppure deselezionare l'opzione per spostare tutto il sottomodulo all'inizio della pagina successiva. Spostando la rappresentazione di un sottomodulo nella pagina successiva, tutti i sottomoduli nidificati verranno visualizzati nella stessa pagina. Se non si seleziona l'opzione Consenti interruzioni di pagina all'interno del contenuto, sarà probabilmente necessario creare un sottomodulo overflow iniziale e un sottomodulo overflow finale (Vedere Informazioni sugli overflow iniziali e finali.)

Quando vengono uniti i dati, il contenuto di un sottomodulo viene posizionato dal server solo all'interno dei bordi delle aree contenuto. Se è necessario unire un’elevata quantità di dati a uno degli oggetti di un sottomodulo, il sottomodulo stesso potrebbe ricoprire più pagine di modulo. Durante la compilazione di una pagina di modulo il server esegue automaticamente il rendering di un'altra pagina identica e continua a posizionare il sottomodulo nella nuova pagina, a meno che il flusso non venga espressamente indirizzato a un'altra area contenuto o pagina master. Quando uno stesso modulo contiene più di un'area contenuto o una pagina master, è possibile specificare se il sottomodulo debba essere collocato in una particolare area contenuto o posizionato secondo una specifica pagina master.

Creazione di un sottomodulo ripetibile

  1. Nella palette Gerarchia, selezionare il sottomodulo principale del sottomodulo che si desidera ripetere. (Vedere Informazioni sui sottomoduli.)

  2. Nella palette Oggetto, fare clic sulla scheda Sottomodulo e selezionare Flusso dall'elenco Contenuto.

  3. Selezionare il sottomodulo da ripetere.

  4. Nella palette Oggetto fare clic sulla scheda Sottomodulo e selezionare Posizionato o Flusso dall'elenco Contenuto.

  5. Fare clic sulla scheda Binding e selezionare Ripeti sottomodulo per ogni elemento dati.

  6. Per specificare il numero minimo di ripetizioni, selezionare Conteggio min e digitare un numero nella casella associata. Se questa opzione viene impostata a 0 e al momento dell'unione di dati non vi sono dati per gli oggetti del sottomodulo, il sottomodulo non sarà posizionato per il rendering del modulo.

  7. Per specificare il numero massimo di ripetizioni, selezionare Massimo e digitare un numero nella casella associata. Se non si specifica un valore nella casella Massimo, il numero di ripetizioni sarà illimitato.

  8. Per specificare un numero prefissato per le ripetizioni del sottomodulo indipendentemente dalla quantità di dati, selezionare l'opzione Conteggio iniziale, quindi digitare il numero di ripetizioni desiderato nella casella associata. Se l'opzione è impostata e non è disponibile alcun dato o sono disponibili dati inferiori al valore di Conteggio iniziale, le istanze vuote del sottomodulo saranno ancora presenti nel modulo.

    Nota: Il valore nella casella Conteggio iniziale deve essere compreso tra i valori Conteggio min. e Massimo. Se il valore di Conteggio min. non è specificato, o è pari a 0, il valore predefinito di Conteggio iniziale è 0.

Per specificare un sottomodulo che si estende su più pagine

I sottomoduli possono essere posizionati in un punto qualsiasi all'interno di una struttura del modulo. Tuttavia, quando si incorpora un'elevata quantità di dati, il sottomodulo potrebbe espandersi oltre il bordo inferiore della pagina finale.

Per risolvere il problema, è possibile impostare un'interruzione di pagina a metà del sottomodulo o si può fare in modo che l'intero sottomodulo venga rappresentato all'inizio della pagina successiva. Spostando la rappresentazione di un sottomodulo nella pagina successiva, tutti i sottomoduli nidificati verranno visualizzati nella stessa pagina.

Durante l'unione dei dati, il contenuto di un sottomodulo viene posizionato soltanto all'interno dei confini delle aree contenuto. Se si deve unire una quantità di dati relativamente elevata a uno degli oggetti contenuti in un sottomodulo, il sottomodulo stesso potrebbe ricoprire più pagine di modulo.

Quando una pagina del modulo viene compilata, viene creata automaticamente una pagina aggiuntiva identica. Il sottomodulo continua ad essere inserito sulla nuova pagina a meno che il flusso non sia stato diretto esplicitamente a un'area contenuto o a una pagina master differente. Quando uno stesso modulo contiene più di un'area contenuto o una pagina master, è possibile specificare se il sottomodulo debba essere collocato in una particolare area contenuto o posizionato secondo una specifica pagina master.

Attivazione di un sottomodulo che si estende su più pagine

 Nella palette Oggetto, fare clic sulla scheda Sottomodulo e selezionare Consenti interruzioni di pagina all'interno del contenuto.

deselezionando questa opzione, gli oggetti del sottomodulo verranno mantenuti tutti all'interno della stessa pagina.

Informazioni sugli overflow iniziali e finali

Poiché la lunghezza di un modulo con layout flessibile varia in base alla quantità di dati uniti, i moduli di questo tipo si estendono spesso su più pagine. L'uso di sottomoduli overflow iniziali e finali è un sistema efficace per iniziare e terminare i sottomoduli che si ripetono per diverse pagine. Come overflow iniziale o finale è possibile utilizzare un qualsiasi sottomodulo configurato per posizionare il contenuto. Ad esempio, nel modulo di esempio Ordine di acquisto, il sottomodulo dettaglio è configurato per posizionare il contenuto e per ripetersi con ogni elemento di dati. Quando il modulo è unito ai dati, se la prima pagine dispone di uno spazio insufficiente a visualizzare tutte le occorrenze del sottomodulo dettaglio si aggiungerà una nuova pagina e i dati continueranno a riversarsi nell'area contenuto successiva.

Quando si lavora con dati che si estendono su più pagine, è possibile che sia necessario riportare in ciascuna nuova pagina testo come “Continua dalla pagina precedente”, oppure elementi di formattazione specifici, come una riga di intestazione delle colonne che contiene le etichette descrittive per ogni colonna di dati. Riportando le righe di intestazione delle colonne in ogni pagina successiva si semplifica notevolmente la lettura del modulo finale da parte degli utenti. A questo scopo, è possibile creare un sottomodulo overflow iniziale che funga da riga di intestazione delle colonne per ogni pagina aggiuntiva. Nel modulo di ordine di acquisto, ad esempio, il sottomodulo detailHeader è selezionato come overflow iniziale. Di conseguenza, viene eseguito il rendering di una copia del sottomodulo detailHeader nella parte superiore di ogni nuova pagina, nello spazio precedente la prima occorrenza del sottomodulo dettaglio.

Allo stesso modo, può essere necessario includere dati dopo l'ultima occorrenza del sottomodulo ripetibile, alla fine di tutte le pagine tranne l'ultima. È ad esempio possibile che sia necessario inserire un testo come “Continua alla pagina successiva” nella parte inferiore di queste pagine: a questo scopo, così come si era creato un sottomodulo overflow iniziale, sarà possibile creare un sottomodulo overflow finale per il sottomodulo ripetibile.

Quando un sottomodulo si estende nella pagina successiva, il server esegue le operazioni seguenti:

  • Posiziona l'overflow finale nella pagina corrente.

  • Posiziona l'overflow iniziale nella pagina successiva.

  • Riversa il sottomodulo espandibile e ciò che resta degli oggetti ripetuti nella nuova pagina

Un overflow iniziale è un tipo speciale di sottomodulo posizionato visualizzato nella parte superiore della pagina successiva tutte le volte che si verifica un overflow della pagina.

Gli overflow iniziali sono simili alla riga di intestazione in una tabella standard. La riga del titolo è riportata all'inizio della tabella e contiene un'etichetta descrittiva per ogni colonna della tabella. La tabella può essere formattata in modo tale che, quando prosegue oltre la prima pagina, la riga del titolo venga ripetuta all'inizio della nuova pagina. Così facendo, la tabella risulta più semplice da capire per il lettore che scorre le pagine.

Un sottomodulo overflow iniziale si comporta in modo analogo. Quando si imposta un dato sottomodulo come overflow iniziale per un sottomodulo che si ripete, il sottomodulo impostato come overflow iniziale sarà sempre visualizzato prima del sottomodulo ripetibile, all'inizio della pagina corrente e di ogni pagina successiva.

Per l'unione dei dati, il sottomodulo ripetibile viene aggiunto il numero di volte necessarie. Una volta terminato lo spazio nella prima pagina, viene aggiunta una nuova pagina e i dati continuano nelle pagine successive fino al loro esaurimento. Il sottomodulo overflow iniziale sarà visualizzato una sola volta all'inizio di ogni pagina.

È possibile esaminare un esempio di uso di un sottomodulo overflow iniziale con layout adattabile in base alla quantità di dati nella struttura del modulo di esempio inclusa assieme a Designer. Il file di esempio Purchase Order.xdp è memorizzato nella cartella Samples all'interno della directory d'installazione di Designer. Nell'esempio, il sottomodulo denominato detailHeader funge da overflow iniziale per il sottomodulo ripetibile denominato dettaglio.

I reggilibri iniziali sono sottomoduli visualizzati prima di un sottomodulo ripetibile. Se si definisce un sottomodulo con pari livello immediatamente prima di un sottomodulo ripetibile e lo si specifica come overflow iniziale, lo si definisce come reggilibro iniziale e come overflow iniziale.

Un overflow iniziale e finale viene visualizzato nella parte inferiore della pagina successiva quando si verifica un overflow della pagina. Per includere informazioni visualizzate solo una volta, dopo che tutti i dati sono stati posizionati, utilizzare un overflow finale.

I reggilibri iniziali e finali sono sottomoduli visualizzati immediatamente sotto un sottomodulo ripetibile. Se si definisce un sottomodulo appena al di sotto di un sottomodulo ripetibile e lo si specifica come overflow iniziale e finale, lo si definisce come reggilibro iniziale e finale e come overflow iniziale e finale.

Creazione e assegnazione di overflow iniziali e finali

Un overflow iniziale o finale è un sottomodulo posizionato che può essere assegnato a un qualsiasi sottomodulo ripetibile. In genere, si crea prima il sottomodulo che deve essere utilizzato come overflow iniziale o finale, poi si assegna l'overflow iniziale/finale a un sottomodulo ripetibile e si definiscono le proprietà di overflow.

Se l'overflow iniziale viene trattato anch'esso come un reggilibro iniziale, viene posizionato nella palette Gerarchia immediatamente sopra il sottomodulo. Se l'overflow iniziale e finale viene trattato anch'esso come un reggilibro iniziale e finale, viene posizionato nella palette Gerarchia immediatamente sotto il sottomodulo.

Creazione di un sottomodulo overflow iniziale o finale

  1. Creare una struttura del modulo con tutti i sottomoduli necessari.

  2. Nella struttura del modulo, individuare il sottomodulo da utilizzare come overflow iniziale e/o come overflow finale, selezionare il sottomodulo ed eseguire le seguenti operazioni:

    • Individuare la scheda Sottomodulo nella palette Oggetto. Assicurarsi che nell'elenco Contenuto sia selezionata la voce Posizionato, Nella palette Oggetto, fare clic sulla scheda Sottomodulo e selezionare Posizionato nell'elenco Contenuto.

    • Individuare la scheda Binding nella palette Oggetto. Nella palette Oggetto, fare clic sulla scheda Binding e selezionare Ripeti sottomodulo per ogni elemento dati, per far sì che gli elementi iniziali e finali vengano visualizzati per più di un overflow. I reggilibri iniziali e finali non vengono considerati rispetto a questo numero.

Applicazione di un overflow iniziale o finale a un sottomodulo

  1. Selezionare il sottomodulo o i sottomoduli che si desidera ripetere.

  2. Nella palette Oggetto, fare clic sulla scheda Binding e selezionare l'opzione Ripeti sottomodulo per ogni elemento dati per impostare il sottomodulo da ripetere.

  3. Nella palette Oggetto, fare clic sulla scheda Impaginazione, quindi, nella casella Overflow, specificare un'area contenuto o una pagina in cui posizionare i sottomoduli overflow nel modulo."]

  4. Se si desidera specificare un overflow iniziale, nell'elenco Overflow iniziale, selezionare il sottomodulo che si desidera utilizzare come sottomodulo di overflow iniziale per il sottomodulo ripetibile corrente. In alternativa, selezionare Nuovo dall'elenco Overflow iniziale per creare e assegnare un nuovo sottomodulo di overflow iniziale.

  5. Se si desidera specificare un overflow finale, nell'elenco Overflow finale, selezionare il sottomodulo che si desidera utilizzare come sottomodulo di overflow finale per il sottomodulo ripetibile corrente. In alternativa, selezionare Nuovo dall'elenco Overflow finale per creare e assegnare un nuovo sottomodulo di overflow finale.

    Nota: Non è necessario definire sia un overflow iniziale che un overflow finale. Sono soltanto i requisiti del modulo specifico a determinare se sia necessario impostare uno dei due sottomoduli, entrambi i sottomoduli, o se non debbano essere impostati affatto.