Creare report con il componente gb.report2

Da Gambas-it.org - Wikipedia.
Versione del 16 mar 2019 alle 08:26 di Gianluigi (Discussione | contributi) (Creata pagina con "== Introduzione == '''gb.report2''' di ''Fabien Bodard'' è un utilissimo componente che ci permette con pochi passaggi di avere un'anteprima di stampa e di stampare su file o...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Introduzione

gb.report2 di Fabien Bodard è un utilissimo componente che ci permette con pochi passaggi di avere un'anteprima di stampa e di stampare su file o carta ogni sorta di documento da noi creato con Gambas. Come si intuisce dal nome il componente è stato studiato per creare dei report dalle interrogazioni delle tabelle dei database, ma come vedremo può essere usato per quasi tutti i programmi che necessitano della stampa. Per poter comprendere a fondo come creare un buon report occorre aver ben presente come si creano le finestre dei programmi con Gambas con l'aiuto imprescindibile dei contenitori (Container) che qui hanno il prefisso Report.

Di seguito creeremo due tipi di report uno che mostra il risultato di un interrogazione, l'altro invece la stampa di un documento di testo in stile libro. Questi esempi, pur essendo abbastanza completi, non possono mostrare tutte le potenzialità del componente, vi invito pertanto a dare un'occhiata al codice sorgente del componente e ai test scritti dallo stesso Bodard dove possiamo ottenere nuovi spunti.

Nota: Nella Software farm sono presenti i progetti completi dei report qui descritti.

Progetto ReportTest

Avviamo Gambas e creiamo un progetto grafico nominandolo ReportTest (questo è il nome nella farm) o in qualunque altro modo vi aggrada. In Progetto > Proprietà > Componenti mettiamo la spunta a gb.db e a gb.report2 che si porterà dietro anche il componente gb.eval. Ora nel browser di sinistra dell'editor della IDE, se clicchiamo con il tasto desto del mouse sopra Sorgenti appare in aggiunta ai soliti, il nuovo menu Report... clicchiamoci sopra e diamo l'ok così da aggiungere il Report1 al progetto. Ripetiamo l'operazione del clic sul tasto destro per aggiungere anche un Modulo che rinomineremo MBase. Prima di creare il report andiamo ad aggiungere un pulsante alla finestra FMain e riportiamo questo codice in FMain.class:

Property Read sPathDB As String
Private $sPathDB As String

Public Sub Form_Open()

 $sPathDB = User.Home &/ Application.Name
 If Not Exist($sPathDB) Then Mkdir $sPathDB
 If MBase.CheckDB() Then
   Print ("#Unable to create database")
   Me.Close
 Endif

End

Private Function sPathDB_Read() As String

 Return $sPathDB

End

Public Sub Button1_Click()

 Report1.Preview

End