Stampe custom

Le stampe che andiamo a definire come classi figlie di TableScriptToHtml in quanto tali hanno molti automatismi che facilitano la creazione un modello di stampa testata/righe o di sole righe , non da ultimo il sistema di calcolo dell’altezza del documento offerto dal mainLoop.

Tuttavia è possibile trovarci nella necessità di definire una stampa totalmente personalizzata, che quindi non utilizzi questi meccanismi e ci lasci la possibilità di impaginare i dati del record primario e qualunque altro dato secondo un layout creato da zero.

Ridefinire il metodo main

In questo caso ridefinendo il metodo main ho il completo controllo della stampa partendo da zero. Questo significa che devo però anche creare io l’elemento pagina iniziale con il metodo getNewPage, e con la stessa logica dovrò creare una nuova pagina ogni qualvolta lo spazio disponibile sarà esaurito

page = self.getNewPage()

Questo metodo mi restituisce un elemento page con tutte le dimensioni e proprietà definite dai suoi attributi.

A questo punto non ho che da definire il mio layout principale e procedere con la definizione della stampa, usando tutti i

descrittori GnrHtml .

page = self.getNewPage()
main_layout = page.layout(um='mm',
                           border_width=1.3,
                           lbl_height=4)

Suggerimento

Si noti che ridefinendo il metodo main abbiamo quindi necessità di conoscere perfettamente il contenuto della stampa e il suo ingombro in altezza, al fine di calcolare correttamente il salto pagina.

Per leggere i dati invece userò i metodi di accesso ai dati di record

Per vedere nella pratica una stampa totalmente custom si rimanda all’Esempio Stampa custom: Scheda cliente