Realizzare report con Reportico e PHP

Reportico è progetto open source il cui scopo è realizzare una piattaforma web per la creazione ed esecuzione di report. Nonostante l’apparenza poco intuitiva (e poco curata esteticamente), permette di realizzare molto velocemente svariati tipi di report, sfornandoli nei formati più celebri come HTML e PDF, ma anche CSV, XML e JSON. Quest’ultima possibilità apre Reportico all’integrazione con applicazioni gestionali più ampie e complesse.

Installazione

I requisiti principali, come riportato sulla documentazione, sono molto semplici, è sufficiente infatti:

  • un web server: Apache 1.3 e 2 sono gli unici “certificati”, ma dovrebbe funzionare correttamente anche sugli altri;
  • PHP 5.x;
  • un database: MySql è sicuramente quello maggiormente supportato;
  • librerie GD2 se si vogliono creare grafici.

Dopo aver scaricato la distribuzione dal sito, l’installazione è davvero immediata e si riduce a:

  • estrarre i contenuti dell’archivio in una directory accessibile dal web server;
  • accedere tramite browser;
  • impostare la password di amministrazione.

Per aiutarci a prendere confidenza con l’ambiente di sviluppo, Reportico fornisce dei comodi tutorial pre-installati; questi comprendono, oltre ai report d’esempio, anche alcune tabelle con relativi dati, che utilizzeremo anche nei nostri esempi.

Per configurare i dati di test procediamo in questo modo:

  • creiamo lo schema reportico_tutorials su MySql;
  • accedere come Administrator;
  • cliccare su Configure Tutorials;
  • Database Name: reportico_tutorials;
  • username e password MySql.

Cliccando su Go i dati verranno salvati. Fatto ciò, torniamo sulla schermata principale cliccando su Project Menu, ed eseguiamo il comando Run Project Report Suit selezionando la voce tutorials. Da qui cliccando su Generate The Tutorial Database si arriva nella schermata successiva, dove è pre-selezionato il comando Create tables. Cliccare su Go per avviare il processo di creazione.

Creazione di un report

Ora che abbiamo dei dati d’esempio non ci resta che esplorare l’ambiente di sviluppo, creando un nuovo progetto:

  • dalla pagina di amministrazione, cliccare su Create a New Project;
  • Project Name: inserire mioprogetto. Questo è il nome della directory che verrà creata in /projects, quindi dovrebbe avere un nome compatibile con il file system sottostante;
  • Project Title: Mio Progetto;
  • Database Name: reportico_tutorials (lo stesso dei tutorial);
  • username e password MySql.

Tornando sul Project Menu creiamo un nuovo report scegliendo mioprogetto con il comando Create Report in Project, e inseriamo questi dati:

  • Report file: prestiti_per_categoria.xml;
  • cliccare Save;
  • Report Title: “Prestiti per categoria”;
  • cliccare su Ok (a destra);
  • cliccare sul tab Query Details;
  • inserire questo SQL:
    SELECT c.cat_code cat_code, c.cat_desc cat_desc, count(1) as count_loans
    FROM reptut_category c
      join reptut_film f on c.cat_code = f.cat_code
      join reptut_loan l on f.film_id = l.film_id
    WHERE 1 = 1
    GROUP BY c.cat_code
    ORDER BY count_loans desc
  • cliccare su Ok;
  • clic su tab Query Columns;
  • campo cat_code impostare Justification a “center” e inserire “Codice” in Column Title;
  • campo cat_desc: in Column Title inserire “Categoria”;
  • campo count_loans impostare Justification a “right” e inserire “n. prestiti” in Column Title;
  • clic su Go.

Ora possiamo eseguire il report, cliccando Run Report e scegliendo un formato di output. Ecco come si presenta l’output HTML:

 

Nonostante l’interfaccia sia anni luce dall’usabilità di strumenti più potenti come Jasper Reports o altre alternative commerciali, siamo riusciti a realizzare il nostro esempio molto velocemente!

Abbiamo accennato alla possibilità di inserire grafici, ecco come fare:

  • tornare su Design Report;
  • tab Output, poi tab Groups;
  • cliccare su Add, poi su Group 0;
  • selezionare REPORT_BODY, poi clic Ok;
  • clic su tab Graphs, clic su Add;
  • clic su Graph 0;
  • Title: Prestiti per categoria;
  • Column for X Labels: cat_desc;
  • clic Ok;
  • clic su tab Plots, poi Add;
  • clic su Plot 0;
  • Column To Plot: count_loans;
  • Plot Style: Pie 3D;
  • clic Ok.

Attenzione: ricordatevi di cliccare “Ok” ogni volta che passate da un tab all’altro, altrimenti le modifiche non verranno salvate!

Eseguendo di nuovo il report, sotto la tabella vista sopra verrà aggiunto anche un grafico:

 

Sviluppi

Nonostante l’interfaccia “migliorabile” (è un eufemismo) Reportico può rappresentare una facile ed economica alternativa a sistemi più famosi, che spesso sovradimensionati rispetto alle proprie reali necessità. Inoltre possiede caratteristiche molto interessanti come la possibilità di creare form per filtrare i dati, oppure il già citato output in JSON che farà felici molti sviluppatori Javascript.

Links