Modalità Visualizzazione Stampa
copia linkTrascrizione
Abbiamo sempre parlato di operazione di stampa, ma se ricordate vi avevo accennato che non esiste la modalità di stampa diretta, cioè del risultato che venga immediatamente inviato a una stampante. Al posto di una stampa diretta possiamo utilizzare due modalità di visualizzazione:
Una volta effettuato il download del file PDF al client, non avremo nessun controllo sul plugin browser, atto, appunto, alla visualizzazione del file. Quindi, per questo motivo, non potremo inviare immediatamente il contenuto verso una determinata stampante.
Tornando al progetto YouB&B, nella videata Appartamenti è presente il Libro Appartamenti. Vorremmo lasciare all’utente la possibilità di scegliere se visualizzare il risultato come Anteprima Screen o come File PDF. Non prevediamo di agganciare il libro al pannello, ma andiamo ad implementare una toolbar con due comandi: uno per la stampa screen e uno per la stampa Pdf.
Cominciamo con doppio clic nell’albero sulla videata Appartamenti, così da mostrarla in anteprima. Successivamente, sempre nell’albero di progetto, sempre sulla videata Appartamenti, tasto destro, Aggiungi Command Set.
(Vi ricordo, l’oggetto Commandset consente la creazione di toolbar personalizzate da agganciare ai pannelli.)
Assegniamo come identificativo Toolbar Appartamenti e togliamo il flag, eventualmente, se fosse presente, il flag Menu e lasciamo solo il flag toolbar. Attenzione che, impostando il flag Menu, i comandi elencati nella toolbar verrebbero replicati anche nel menu principale dell’applicazione. Confermo.
Passiamo ad aggiungere, ora, i due comandi alla Toolbar Appartamenti: tasto destro, Aggiungi Comando. Al primo comando assegniamo come nome, come identificativo, la voce: Stampa Screen. Ma, come titolo, cioè, quello che verrà poi effettivamente mostrato: Elenco a Video. Confermiamo e procediamo con l’inserimento di un altro comando denominato. Quindi, Toolbar Appartamenti, tasto destro, Aggiungi Comando. Questa volta, il nostro comando è relativo al PDF, quindi si chiamerà Stampa PDF e come titolo, cambiamo e mettiamo Elenco PDF.
Ovviamente, non basta aggiungere un oggetto commandSet ad una videata per vederlo comparire, o meglio, per vedere comparire i comandi in interfaccia: è necessario anche decidere dove il commandSet deve essere agganciato. Nel nostro caso, agganciamo il commandSet alla toolbar principale del pannello. Quindi, trasciniamo dall’Albero di progetto la Toolbar Appartamenti sulla toolbar di pannello già presente e rilasciamo.
Siamo ora pronti per agganciare le procedure a questi due comandi. Noi iniziamo con la procedura per Stampa su Screen, quindi: comando Stampa Screen, tasto destro, Aggiungi procedura.
Ricordiamoci: questo è un libro in versione DO, quindi per la stampa potremmo trasferire la collection presente nel pannello al Report del Libro, quindi eseguire l’istruzione di stampa. Con questa modalità il framework non ricaricherà i dati dal database nella fase di stampa, perché li preleva dal pannello. Iniziamo con la scrittura del codice.
Dichiaro una variabile di tipo:
IDCollection, la chiamo CollPannello ed è di tipo Classe Appartamento. Questa variabile non è uguale a Null, ma è uguale alla collection presente nel pannello: il pannello si chiama Appartamenti.collection.
Controlliamo che la collection sia istanziata:
Controlliamo anche che la collection contenga qualcosa, perché, se non c’è niente da stampare, è inutile che stampiamo. Quindi:
Ora possiamo agganciare. Possiamo agganciare la collection del pannello al Report. Espando il Libro Elenco Appartamenti e qui trova posto il Report Appartamenti:
Ovviamente, possiamo eseguire questa istruzione, perché applicabile per Master Query di tipo DO.
Ora passiamo a decidere la modalità di visualizzazione del Libro, la modalità di realizzazione del libro, precisamente:
Alla voce printDestination noi potremo scegliere la voce SCREEN. Con questa istruzione decideremo, quindi, la prima modalità, appunto: la modalità SCREEN.
Ora proseguiamo e procediamo con la Stampa:
Ecco, questo metodo richiede 2 parametri, precisamente: la pagina di inizio e di fine stampa. Nel caso desiderassimo stampare tutte le pagine, la scrittura dovrà essere la seguente:
Questa istruzione, cioè inserendo come fine pagina il valore -1, il sistema intenderà che vogliamo stampare tutte le pagine.
L’istruzione PRINT, che abbiamo appena scritto, nella versione Screen mostrerà direttamente in interfaccia un’anteprima di stampa. L’utente potrà sfogliare le pagine avanti e indietro, potrà richiedere la creazione del file Pdf, per poter poi realmente stampare i dati.
Testiamo. Testiamo compilando la nostra applicazione e anche mandandola in esecuzione. Vi ricordo, dal menu Modifica, possiamo scegliere la voce Compila progetto, oppure il tasto funzione F5.
Ecco, sicuramente la compilazione sarà bloccata da messaggi di Warning. Sono messaggi da confermare, presenti nell’area messaggi. Attenzione, questi non sono errori, ma sono dei semplici avvisi. Cioè, il framework ci segnala una limitazione di stampa, relativa ai sottoreport e precisamente: il contenuto delle sezioni di tipo Intestazione pagina e Piede pagina sarà stampato solo sul primo foglio e non sui fogli successivi. Nel nostro caso, per esempio, nel Libro Appartamenti, abbiamo il sottoreport dei prezzi. Benissimo, se, questo elenco prezzi, sarà a cavallo di 2 pagine: la zona delle etichette sarà stampata solo sul primo foglio e non sarà riportata sul secondo.
Diciamo che non abbiamo altre scelte, se non accettare i messaggi di Warning, e precisamente: tasto destro, Nascondi messaggio per questo oggetto. Ripeto l’operazione per tutti i warning presenti.
Ora non dovremmo avere altri inghippi e quindi potremmo procedere con la fase di compilazione e successiva esecuzione.
- Modalità Screen: il framework prepara l’intero libro per essere “renderizzato” come contenuto HTML. Le box saranno trasformate in tag DIV, con all’interno tag SPAN etc. Diciamo che questo rendering consentirà di mostrare un’anteprima di stampa all’interno della videata dell’applicazione.
- Modalità PDF: il framework prepara l’intero libero per essere “renderizzato” come contenuto PDF, con l’effettiva creazione di un file PDF. La visualizzazione di tale file prevede diversi passaggi, perchè: il file dovrà essere scaricato dal server al client, il Browser dovrà possedere il plugin PDF e, solo a quel punto, l’utente potrà vedere il file. Ovviamente, all’interno di una nuova scheda browser e non come parte integrante dell’applicazione.
Una volta effettuato il download del file PDF al client, non avremo nessun controllo sul plugin browser, atto, appunto, alla visualizzazione del file. Quindi, per questo motivo, non potremo inviare immediatamente il contenuto verso una determinata stampante.
Tornando al progetto YouB&B, nella videata Appartamenti è presente il Libro Appartamenti. Vorremmo lasciare all’utente la possibilità di scegliere se visualizzare il risultato come Anteprima Screen o come File PDF. Non prevediamo di agganciare il libro al pannello, ma andiamo ad implementare una toolbar con due comandi: uno per la stampa screen e uno per la stampa Pdf.
Cominciamo con doppio clic nell’albero sulla videata Appartamenti, così da mostrarla in anteprima. Successivamente, sempre nell’albero di progetto, sempre sulla videata Appartamenti, tasto destro, Aggiungi Command Set.
(Vi ricordo, l’oggetto Commandset consente la creazione di toolbar personalizzate da agganciare ai pannelli.)
Assegniamo come identificativo Toolbar Appartamenti e togliamo il flag, eventualmente, se fosse presente, il flag Menu e lasciamo solo il flag toolbar. Attenzione che, impostando il flag Menu, i comandi elencati nella toolbar verrebbero replicati anche nel menu principale dell’applicazione. Confermo.
Passiamo ad aggiungere, ora, i due comandi alla Toolbar Appartamenti: tasto destro, Aggiungi Comando. Al primo comando assegniamo come nome, come identificativo, la voce: Stampa Screen. Ma, come titolo, cioè, quello che verrà poi effettivamente mostrato: Elenco a Video. Confermiamo e procediamo con l’inserimento di un altro comando denominato. Quindi, Toolbar Appartamenti, tasto destro, Aggiungi Comando. Questa volta, il nostro comando è relativo al PDF, quindi si chiamerà Stampa PDF e come titolo, cambiamo e mettiamo Elenco PDF.
Ovviamente, non basta aggiungere un oggetto commandSet ad una videata per vederlo comparire, o meglio, per vedere comparire i comandi in interfaccia: è necessario anche decidere dove il commandSet deve essere agganciato. Nel nostro caso, agganciamo il commandSet alla toolbar principale del pannello. Quindi, trasciniamo dall’Albero di progetto la Toolbar Appartamenti sulla toolbar di pannello già presente e rilasciamo.
Siamo ora pronti per agganciare le procedure a questi due comandi. Noi iniziamo con la procedura per Stampa su Screen, quindi: comando Stampa Screen, tasto destro, Aggiungi procedura.
Ricordiamoci: questo è un libro in versione DO, quindi per la stampa potremmo trasferire la collection presente nel pannello al Report del Libro, quindi eseguire l’istruzione di stampa. Con questa modalità il framework non ricaricherà i dati dal database nella fase di stampa, perché li preleva dal pannello. Iniziamo con la scrittura del codice.
Dichiaro una variabile di tipo:
IDCollection CollPannello of Appartamento = Appartamenti.collection
Controlliamo che la collection sia istanziata:
If (CollPannello != null)
Controlliamo anche che la collection contenga qualcosa, perché, se non c’è niente da stampare, è inutile che stampiamo. Quindi:
If (CollPannello.count != 0)
Ora possiamo agganciare. Possiamo agganciare la collection del pannello al Report. Espando il Libro Elenco Appartamenti e qui trova posto il Report Appartamenti:
ElencoAppartamenti.ReportAppartamenti.SetCollection(CollPannello)
Ora passiamo a decidere la modalità di visualizzazione del Libro, la modalità di realizzazione del libro, precisamente:
ElencoAppartamenti.printDestination = SCREEN
Ora proseguiamo e procediamo con la Stampa:
ElencoAppartamenti.print
Ecco, questo metodo richiede 2 parametri, precisamente: la pagina di inizio e di fine stampa. Nel caso desiderassimo stampare tutte le pagine, la scrittura dovrà essere la seguente:
ElencoAppartamenti.print da pagina 1 a pagina -1
L’istruzione PRINT, che abbiamo appena scritto, nella versione Screen mostrerà direttamente in interfaccia un’anteprima di stampa. L’utente potrà sfogliare le pagine avanti e indietro, potrà richiedere la creazione del file Pdf, per poter poi realmente stampare i dati.
Testiamo. Testiamo compilando la nostra applicazione e anche mandandola in esecuzione. Vi ricordo, dal menu Modifica, possiamo scegliere la voce Compila progetto, oppure il tasto funzione F5.
Ecco, sicuramente la compilazione sarà bloccata da messaggi di Warning. Sono messaggi da confermare, presenti nell’area messaggi. Attenzione, questi non sono errori, ma sono dei semplici avvisi. Cioè, il framework ci segnala una limitazione di stampa, relativa ai sottoreport e precisamente: il contenuto delle sezioni di tipo Intestazione pagina e Piede pagina sarà stampato solo sul primo foglio e non sui fogli successivi. Nel nostro caso, per esempio, nel Libro Appartamenti, abbiamo il sottoreport dei prezzi. Benissimo, se, questo elenco prezzi, sarà a cavallo di 2 pagine: la zona delle etichette sarà stampata solo sul primo foglio e non sarà riportata sul secondo.
Diciamo che non abbiamo altre scelte, se non accettare i messaggi di Warning, e precisamente: tasto destro, Nascondi messaggio per questo oggetto. Ripeto l’operazione per tutti i warning presenti.
Ora non dovremmo avere altri inghippi e quindi potremmo procedere con la fase di compilazione e successiva esecuzione.
Applicazione YouB&B compilata, utilizziamo la voce di menu Offerte e quindi Appartamenti. Questo è l’elenco degli appartamenti che abbiamo in archivio: richiediamo la stampa con il pulsante Elenco a Video.
Ecco che il pannello Appartamenti viene nascosto, per fare posto all’Anteprima di Stampa: la toolbar del Libro contiene i pulsanti di navigazione e il pulsante Stampa, per richiedere la creazione del file PDF corrispondente. E’ presente anche il pulsante Collassa, per nascondere l’anteprima e tornare alla visualizzazione del pannello.
Il pulsante Stampa dell’Anteprima, crea un file PDF e ne effettua l’invio verso il client. Il browser, ricevendo un file gestibile con i propri plugin, procede con l’apertura di una nuova scheda: attiva il plugin e visualizza il documento PDF. Ovviamente tutto questo funziona se l’utente ha disattivato il blocco popup, normalmente impostato nei browser.
Ultima modifica: 21/11/2022 / Validità: da 21.0.8100