Box di Riversamento
copia linkTrascrizione
Concentriamoci di nuovo sulla Pagina Mastro e analizziamo nuovi aspetti: potremmo avere la necessità di produrre dei documenti il cui aspetto grafico non segua una impaginazione classica di un libro o di un testo. Ad esempio se volessimo ottenere su ogni pagina un banner posizionato al centro verticalmente come dovremmo impostare la Pagina Mastro? L’immagine che state vedendo in questo momento ha proprio questa logica: cioè in mezzo all’elenco dei nominativi compare, non in sovrapposizione al testo, un logo, un'immagine banner, un logo. Quindi come possiamo realizzare questo effetto?
Per iniziare dovremmo diminuire l’altezza della Box chiamata Corpo Pagina, quindi sono posizionato sulla Pagina Mastro e posso selezionare la Box Corpo Pagina. Il ridimensionamento ovviamente avviene con le maniglie di ridimensionamento: io stringo leggermente e cerco di alzare un po’. Ora che abbiamo spazio, dobbiamo introdurre due nuovi oggetti box: un oggetto per il banner e un oggetto per il testo inferiore.
Come si creano gli oggetti Box? Gli oggetti Box si creano utilizzando la toolbar superiore. Innanzitutto dobbiamo fare clic in un’area bianca della zona di progettazione e poi guardare la toolbar di progettazione dove sono presenti ben 4 pulsanti utili alla creazione di Box con contenuto: l’icona pulsante A identifica l’inserimento di un oggetto box contenente del testo, l’icona pulsante IMMAGINE identifica invece l’inserimento di un oggetto Box contenente una immagine. Quindi un pulsante che effettua solo l’inserimento dell’oggetto Box? Non Esiste!!! anche perché effettivamente non serve.
Di solito si utilizza l’icona pulsante A così da aggiungere l’oggetto Box con contenuto testuale e successivamente si elimina l’oggetto testo, ovviamente nel caso non servisse. Procediamo così anche noi, facciamo clic sul pulsante dell’icona A nell’area toolbar, il cursore assume la forma di croce, disegniamo l’area rettangolare che dovrà contenere il nostro banner e al rilascio assegnamo un identificativo Banner e confermiamo.
Possiamo notare che è stato aggiunto un oggetto Box contenente del testo. In effetti la scritta Banner è visibile in questo momento in anteprima.Anche nell’albero di progetto, se notare, l’oggetto Etichetta Banner può essere espanso: indica questa espansione un contenuto aggiuntivo. Un oggetto Box che possiede un contenuto testuale utilizza un oggetto denominato SPAN dalla logica identica all’oggetto Span dell’HTML. Quindi vuol dire che più oggetti Span all’interno della stessa Box formeranno il contenuto totale della box.
In questo caso, però, non abbiamo creato la box per contenere del testo, ma per contenere in teoria una immagine: quindi l’oggetto Span creato automaticamente sarà da eliminare. Molto semplice: un clic nell’albero di progetto sull’oggetto Span, quindi l tasto CANC sulla tastiera.
Ecco, è ancora presto per capire quale oggetto servirà per mostrare un’immagine. Per ora proseguiamo inserendo l’altra box nella parte inferiore, quella che dovrà contenere la continuazione del testo dalla box superiore. Utilizziamo sempre il pulsante icona presente sulla toolbar di progettazione (vi ricordo, prima un clic nell’area bianca, quindi non ci devono essere elementi selezionati, poi utilizziamo il pulsante icona A presente sulla toolbar di progettazione) disegniamo una nuova area rettangolare e questa volta assegniamo come identificativo la scritta Corpo 2. Anche in questo caso, noterete, è stato creato l’oggetto Box con all’interno uno Span.
In questo momento, la situazione che si è creata potrebbe anche sembrarci corretta, in quanto la box inferiore che dovrebbe contenere del testo, contiene effettivamente del testo, contiene la scritta Corpo 2. Il nostro scopo, però, non è quello di mostrare un testo statico, bensì testo dinamico, diverso su ogni pagina… Quindi anche in questo caso andremo ad eliminare l’oggetto Span contenuto nella box. Seleziono nell’albero di progetto l’oggetto Span Corpo 2 e a questo punto con la tastiera, CANC, vado ad eliminare.
Un aspetto dovrebbe cominciare ad essere chiaro, cioè: tutti gli oggetti Span contenti testo, presenti sulla pagina Mastro, stampano effettivamente il testo statico, ma stampano questo testo statico su ogni foglio. Se volessimo quindi far comparire il medesimo testo su tutte le pagine del nostro libro, allora il sistema sarebbe proprio questo, cioè creare sulla pagina mastro una box con uno span con il testo all’interno.
Analizzando ora la pagina Mastro troviamo la pagina composta da 5 oggetti Box: il motore di stampa con quale logica decide in quali oggetti box il testo dinamico dovrà comparire e soprattutto quale sarà la sequenza delle box? Per chiarire meglio ci chiediamo: ma quando è conclusa la stampa, per esempio, sulla box Corpo Pagina, il motore di stampa, come decide di proseguire sulla box Corpo 2 e non sulla box Banner? Cioè, segue una logica della disposizione verticale delle box? Sicuramente no, altrimenti avremmo molte limitazioni sulla stampa dei report. Il motore di stampa procede in questo modo: è richiesta la stampa di informazioni recuperate dal database, ad esempio 200 record, il motore inizia creando il primo foglio di stampa con le caratteristiche della pagina Mastro, posiziona il testo all’interno della box, prevista come contenitore di dati e prosegue sino al suo riempimento verticale.
Nel nostro esempio, quindi, si inizia con il riempimento della box denominata Corpo Pagina (capiremo dopo perché proprio da questa) e si prosegue sino al suo completamento. A questo punto il motore di stampa verifica se esistono altri record da stampare ed in caso affermativo si cerca la box collegata a Corpo Pagina.
Esiste, dunque, un sistema di connessione tra le box e, nel caso in cui, la box sia collegata a se stessa, il motore crea un successivo foglio di stampa e ricomincia il riempimento.
Se nella pagina Mastro è presente un solo oggetto Box, il problema non si pone, ma se avremo più oggetti box sarà necessario creare e controllare i collegamenti tra gli oggetti per un corretto riversamento del testo. Vi consiglio di effettuare questo controllo con uno zoom applicato all’anteprima di progettazione, in modo tale da vedere l’intera pagina. Per applicare lo Zoom nell’area di progettazione facciamo clic con il tasto Destro del mouse nell’area di progettazione, scegliamo la voce Zoom e quindi quindi applichiamo un Adatta pagina.
Attiviamo ora la visualizzazione dei collegamenti tra le box: nell’anteprima di progettazione facciamo clic con il tasto destro del mouse e scegliamo la voce Mostra collegamenti.
Come potrete notare, è comparsa una linea di colore blu dal bordo inferiore della box Corpo pagina verso il bordo superiore della stessa. Questo sta ad indicare che al riempimento della box, il motore di stampa proseguirà verso la stessa box, ma essendo già completamente riempita di testo, verrà creato un nuovo foglio di stampa, cioè si andrà alla nuova pagina, così da ottenere una box totalmente vuota e pronta a ricevere il nuovo testo. Questo processo si ripete sino all’esaurimento dei record da stampare.
Per iniziare dovremmo diminuire l’altezza della Box chiamata Corpo Pagina, quindi sono posizionato sulla Pagina Mastro e posso selezionare la Box Corpo Pagina. Il ridimensionamento ovviamente avviene con le maniglie di ridimensionamento: io stringo leggermente e cerco di alzare un po’. Ora che abbiamo spazio, dobbiamo introdurre due nuovi oggetti box: un oggetto per il banner e un oggetto per il testo inferiore.
Come si creano gli oggetti Box? Gli oggetti Box si creano utilizzando la toolbar superiore. Innanzitutto dobbiamo fare clic in un’area bianca della zona di progettazione e poi guardare la toolbar di progettazione dove sono presenti ben 4 pulsanti utili alla creazione di Box con contenuto: l’icona pulsante A identifica l’inserimento di un oggetto box contenente del testo, l’icona pulsante IMMAGINE identifica invece l’inserimento di un oggetto Box contenente una immagine. Quindi un pulsante che effettua solo l’inserimento dell’oggetto Box? Non Esiste!!! anche perché effettivamente non serve.
Di solito si utilizza l’icona pulsante A così da aggiungere l’oggetto Box con contenuto testuale e successivamente si elimina l’oggetto testo, ovviamente nel caso non servisse. Procediamo così anche noi, facciamo clic sul pulsante dell’icona A nell’area toolbar, il cursore assume la forma di croce, disegniamo l’area rettangolare che dovrà contenere il nostro banner e al rilascio assegnamo un identificativo Banner e confermiamo.
Possiamo notare che è stato aggiunto un oggetto Box contenente del testo. In effetti la scritta Banner è visibile in questo momento in anteprima.Anche nell’albero di progetto, se notare, l’oggetto Etichetta Banner può essere espanso: indica questa espansione un contenuto aggiuntivo. Un oggetto Box che possiede un contenuto testuale utilizza un oggetto denominato SPAN dalla logica identica all’oggetto Span dell’HTML. Quindi vuol dire che più oggetti Span all’interno della stessa Box formeranno il contenuto totale della box.
In questo caso, però, non abbiamo creato la box per contenere del testo, ma per contenere in teoria una immagine: quindi l’oggetto Span creato automaticamente sarà da eliminare. Molto semplice: un clic nell’albero di progetto sull’oggetto Span, quindi l tasto CANC sulla tastiera.
Ecco, è ancora presto per capire quale oggetto servirà per mostrare un’immagine. Per ora proseguiamo inserendo l’altra box nella parte inferiore, quella che dovrà contenere la continuazione del testo dalla box superiore. Utilizziamo sempre il pulsante icona presente sulla toolbar di progettazione (vi ricordo, prima un clic nell’area bianca, quindi non ci devono essere elementi selezionati, poi utilizziamo il pulsante icona A presente sulla toolbar di progettazione) disegniamo una nuova area rettangolare e questa volta assegniamo come identificativo la scritta Corpo 2. Anche in questo caso, noterete, è stato creato l’oggetto Box con all’interno uno Span.
In questo momento, la situazione che si è creata potrebbe anche sembrarci corretta, in quanto la box inferiore che dovrebbe contenere del testo, contiene effettivamente del testo, contiene la scritta Corpo 2. Il nostro scopo, però, non è quello di mostrare un testo statico, bensì testo dinamico, diverso su ogni pagina… Quindi anche in questo caso andremo ad eliminare l’oggetto Span contenuto nella box. Seleziono nell’albero di progetto l’oggetto Span Corpo 2 e a questo punto con la tastiera, CANC, vado ad eliminare.
Un aspetto dovrebbe cominciare ad essere chiaro, cioè: tutti gli oggetti Span contenti testo, presenti sulla pagina Mastro, stampano effettivamente il testo statico, ma stampano questo testo statico su ogni foglio. Se volessimo quindi far comparire il medesimo testo su tutte le pagine del nostro libro, allora il sistema sarebbe proprio questo, cioè creare sulla pagina mastro una box con uno span con il testo all’interno.
Analizzando ora la pagina Mastro troviamo la pagina composta da 5 oggetti Box: il motore di stampa con quale logica decide in quali oggetti box il testo dinamico dovrà comparire e soprattutto quale sarà la sequenza delle box? Per chiarire meglio ci chiediamo: ma quando è conclusa la stampa, per esempio, sulla box Corpo Pagina, il motore di stampa, come decide di proseguire sulla box Corpo 2 e non sulla box Banner? Cioè, segue una logica della disposizione verticale delle box? Sicuramente no, altrimenti avremmo molte limitazioni sulla stampa dei report. Il motore di stampa procede in questo modo: è richiesta la stampa di informazioni recuperate dal database, ad esempio 200 record, il motore inizia creando il primo foglio di stampa con le caratteristiche della pagina Mastro, posiziona il testo all’interno della box, prevista come contenitore di dati e prosegue sino al suo riempimento verticale.
Nel nostro esempio, quindi, si inizia con il riempimento della box denominata Corpo Pagina (capiremo dopo perché proprio da questa) e si prosegue sino al suo completamento. A questo punto il motore di stampa verifica se esistono altri record da stampare ed in caso affermativo si cerca la box collegata a Corpo Pagina.
Esiste, dunque, un sistema di connessione tra le box e, nel caso in cui, la box sia collegata a se stessa, il motore crea un successivo foglio di stampa e ricomincia il riempimento.
Se nella pagina Mastro è presente un solo oggetto Box, il problema non si pone, ma se avremo più oggetti box sarà necessario creare e controllare i collegamenti tra gli oggetti per un corretto riversamento del testo. Vi consiglio di effettuare questo controllo con uno zoom applicato all’anteprima di progettazione, in modo tale da vedere l’intera pagina. Per applicare lo Zoom nell’area di progettazione facciamo clic con il tasto Destro del mouse nell’area di progettazione, scegliamo la voce Zoom e quindi quindi applichiamo un Adatta pagina.
Attiviamo ora la visualizzazione dei collegamenti tra le box: nell’anteprima di progettazione facciamo clic con il tasto destro del mouse e scegliamo la voce Mostra collegamenti.
Come potrete notare, è comparsa una linea di colore blu dal bordo inferiore della box Corpo pagina verso il bordo superiore della stessa. Questo sta ad indicare che al riempimento della box, il motore di stampa proseguirà verso la stessa box, ma essendo già completamente riempita di testo, verrà creato un nuovo foglio di stampa, cioè si andrà alla nuova pagina, così da ottenere una box totalmente vuota e pronta a ricevere il nuovo testo. Questo processo si ripete sino all’esaurimento dei record da stampare.
La box quindi denominata Corpo 2, non viene proprio presa in considerazione, come la box Banner, quindi rimarrà sempre bianca, a meno che non si modifichi il comportamento in modo tale che, al termine del riempimento della box Corpo pagina, il motore prosegua con il riempimento della box Corpo 2. Per applicare e definire questo comportamento utilizziamo l’albero di progetto, il mouse e la tastiera: dovremo trascinare la box Corpo Pagina sulla box Corpo 2 con il tasto SHIFT sulla tastiera premuto. Proviamo, trasciniamo Corpo Pagina sulla etichetta Corpo 2 con il tasto SHIFT premuto. Ecco che già in anteprima si nota una linea di collegamento tra le due box: tra la box Corpo pagina e la box Corpo 2.
Tutto sistemato? Bè, non ancora, in quanto, al riempimento della box Corpo 2, il motore di stampa interromperà il processo, non essendoci nessuna connessione con altre box. E’ quindi sempre necessario impostare il comportamento chiamato Nuova Pagina, cioè quando sarà completa la box Corpo 2 dovremo tornare a stampare sulla box Corpo Pagina di un nuovo foglio. Quindi dobbiamo applicare con mouse e con la tastiera anche questo comportamento, trascinando la box Corpo 2 sulla box Corpo Pagina. Ovviamente l’operazione sempre con il tasto SHIFT premuto. Così abbiamo definito la continuità tra le pagine che il motore di stampa ci richiede.
Quello che abbiamo visto è un piccolo esempio di personalizzazione della Pagina Mastro, ma che fa comprendere come sia possibile avere anche Pagine Mastro complesse, ad esempio con lo stile di impaginazione di un quotidiano: il gioco dei collegamenti tra le box aiuterà a portare le informazioni di stampa nei punti desiderati del nostro foglio.
Ultima modifica: 16/06/2021 / Validità: da 21.0.8100