Introduzione

Rispetto alle stampe da interfaccia , scrivere le proprie risorse di stampa offre più flessibilità ed espressività allo sviluppatore, permettendo di creare stampe complesse monopagina o multipagina completamente personalizzate sia da un punto di vista grafico che da un punto di vista dei dati che si devono rappresentare.

Questo approccio richiede allo sviluppatore di implementare un modulo risorsa di stampa (html_res), utilizzando descrittori Genropy specifici per le stampe .

In sintesi, lo sviluppatore definisce la stampa usando una sintassi analoga a quella della creazione delle webpages o a quella del model, semplicemente utilizzando gli elementi layout, row, cell. Il meccanismo di rendering della stampa genererà poi il codice HTML andando a inserire i dati correttamente formattati dentro alle opportune celle della stampa e a calcolare per sottrazione le misure assolute di tutti gli elementi «elastici», ovvero privi di dimensione. Questo fa sì che una stampa definita in Python con Genropy, generi un codice HTML «quotato», ovvero in cui ogni elemento ha misure assolute, calcolate automaticamente e misurate in millimetri.

Questo tipo di risorsa di stampa viene definito nelle risorse di una table di un package e suppone di ricevere un record principale di tale table.

Ciò fa sì che questo tipo di risorsa sia tanto adatto alle rappresentazioni monopagina di schede complesse o etichette rappresentanti un singolo record, quanto a documenti multipagina di tipo testata/riga come fatture, ordini o bolle con più righe. È anche valido per rappresentare scadenzari, estratti conto o altri documenti in cui si deve mostrare una collezione di righe riferite ad un record primario.

In aggiunta al modulo di risorsa di stampa, occorre definire anche una risorsa action di stampa (print) da associare alla prima. Questa ha la funzione di rendere la stampa eseguibile richiedendo eventuali parametri all’utente al momento dell’esecuzione e di leggere dal database i dati che verranno poi rappresentati nella stampa.