Librerie Book 1 Librerie Book 1
Librerie Book 1

In sintesi

In questa lezione vediamo i vari parametri, funzioni e procedure definite in libreria per gli oggetti di un book.

Nota: questo video corso è stato realizzato con la versione 4 di Instant Developer. Anche se i contenuti sono ancora attuali e sono utili per imparare ad utilizzare Instant Developer, alcune affermazioni sono di fatto superate. Per i dettagli e le ultime novità sulle funzionalità illustrate vi rimandiamo alla sezione di reference che viene tenuta aggiornata giornalmente.
Video lezione

In questa lezione e nelle successive vediamo in dettaglio i vari parametri, funzioni e procedure definite in libreria per gli oggetti di un book.

Cominciamo con l'oggetto Book. Innanzitutto la funzione Me() che ritorna un numero interno che identifica univocamente il frame in cui è contenuto il book (se visibile).

Poi notiamo una lista valori Print Destinations che contiene i possibili valori della proprietà Print Destination. Questa proprietà indica al book dove occorre effettuare la stampa del book. Come vediamo nella lista valori è possibile stampare un book su schermo, su stampante o su PDF. Occorre assegnare un valore alla proprietà Print Destination prima di effettuare la stampa di un book. Questo non è necessario se un book è contenuto in un frame dato che Instant Developer assegna automaticamente il valore SCREEN alla proprietà Print Destination per i book visibili.

Poi vediamo la proprietà Output File Name che contiene il nome completo del file creato quando il book viene stampato su PDF. Se assegnamo a questa proprietà un valore prima di stampare il book il sistema creerà un file con il nome indicato. Se, invece, la propretà viene lasciata vuota prima della stampa il sistema genera un nome casuale e lo assegna alla proprietà stessa prima di stampare il book.

La funzione Web File Name() restituisce una parte della proprietà Output File Name: quella relativa al base address dell'applicazione Web. E' utile, per esempio, quando vogliamo effettuare una redirect al file PDF creato.

Is Printing indica se il book è o meno in fase di stampa su stampante o PDF.

La proprietà Printer Name contiene il nome della stampante da utilizzare quando il book viene stampato su stampante. Se viene lasciato vuoto prima della stampa del book viene scelta la stampante predefinita.

Poi seguono tre funzioni: Page Number(), Number of Pages() e Number of Pages Confirmed(). La prima restituisce il numero corrente di pagina. La seconda restituisce il numero totale di pagine conosciuto al momento della stampa. La terza restituisce True se il numero totale di pagine è quello reale o quello conosciuto al momento della stampa. Ricordiamo che il book viene stampato in modo incrementale per cui mentre viene stampata la terza pagina il sistema non sa ancora quante pagine conterrà il book. Se vogliamo utilizzare la funzione Number of Pages() è meglio selezionare il flag Precount Pages nella videata delle proprietà del book, come già visto nella lezione relativa. Se il flag è attivo il sistema prima calcola quante sono le pagine del book e poi stampa il book sul supporto specificato. In questo modo il valore restituito dalla funzione Number of Pages() sarà quello reale e la funzione Number of Pages Confirmed() sarà True.

La proprietà Hide Border permette di nascondere il bordo. La proprietà Caption contiene il titolo del frame entro cui il book è contenuto (non è possibile accedervi se il book è nascosto o contenuto in una Tabbed View). La funzione Get Name restituisce il nome del book.

Poi vediamo la procedura Print permette di stampare il book selezionando le pagine che occorre stampare. Per stampare tutto il book è possibile stampare da pagina 1 (la prima) a pagina -1 (che vuol dire fino alla fine).

Segue la procedura Refresh. Questa permette di cancellare dalla memoria alcune pagine già stampate selezionando l'intervallo di pagine mediante i due parametri. E' poi possibile ristamparle mediante la procedura Print già vista. Cerchiamo di capire l'utilità di questa procedura.

Il sistema cerca di minimizzare l'occupazione di memoria minimizzando anche il tempo di formattazione di una qualunque pagina.

Supponiamo che il sistema stia visualizzando su schermo la pagina 205 di un book. Se l'utente preme il tasto Pagina Precedente il sistema deve recuperare la pagina 204. Ora se il sistema tenesse in memoria tutte le pagine già stampate l'occupazione di memoria sarebbe notevole. Ma se il sistema non conservasse le pagine dovrebbe ristampare tutte le 204 pagine partendo dall'inizio. Tra le due possibilità ve ne è una terza che permette di essere veloci nella ristampa di una pagina senza dover ricalcolare tutto. Il sistema conserva in memoria una pagina ogni 10 conservando anche lo stato di tutto il sistema all'inizio della stampa della pagina. In questo modo quando l'utente chiede la pagina 204 il sistema vede che è già disponibile in memoria la pagina 200. Il sistema si riporta allo stato che aveva prima della stampa della pagina 200 e comincia a stampare le pagine 201, 202, 203 e 204.

La procedura Refresh permette di eliminare tali pagine memorizzate in memoria. Se chiamiamo la funzione Refresh dalla pagina 101 alla pagina 200 e l'utente preme il tasto Pagina Precedente mentre vede la pagina 205 il sistema riparte dalla pagina 100 formattando tutte le pagine fino alla pagina 205 richiesta. Quanto detto vale solo per le stampe su schermo. Per le stampe su stampante e PDF il sistema elimina una pagina appena questa è stata stampata dato che non verrà mai richiesto di tornare indietro ad una pagina già stampata.

Infine la procedura Refresh Query, che chiama automaticamente la procedura Refresh Query di tutti i reports contenuti nel book.

Vediamo alcuni esempi di utilizzo di queste proprietà. Vediamo come stampare un book su una determinata stampante. Poi vediamo come stampare su un file PDF di cui indichiamo il nome e poi effettuamo una redirect.

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum

Scrivi una domanda e premi Invio per cercare nella documentazione online. Se non trovi risposte adeguate, potrai inviarla gratuitamente all’help desk.

Cerca