Report infinito e oltre

by Luca Baldini on 16 settembre 2014

Una delle funzionalità della versione 13.1 di Instant Developer di cui non abbiamo ancora parlato è quella che permette di realizzare report a lunghezza infinita. Voglio cogliere l’occasione di questo post per raccontarvi di cosa si tratta.

Non è la prima volta che vi parlo del sistema di reportistica di InDe. Come molti di voi sanno già, questo modulo permette di creare stampe in PDF e anche di visualizzare i dati a video in qualunque forma. E’ possibile creare fatture, cataloghi con immagini, oppure semplici videogiochi come vi raccontavo già all’inizio dell’anno.

Negli ultimi tempi alcuni di voi mi hanno fatto una domanda ricorrente: “Nel mio database ho circa 100.000 righe e vorrei fare un report che possa mostrarle tutte. Come posso fare?”. Era una domanda molto interessante perché sottintendeva una limitazione presente nel sistema di reportistica. Il modulo dei report funzionava così: prima il sistema caricava tutti i dati e poi preparava le pagine man mano che l’utente le richiedeva, in modalità differenziale. Il fatto di dover caricare tutti i dati all’apertura del report era una limitazione, perché poteva richiedere troppo tempo o troppa memoria, ma pensando alla soluzione ho notato che poteva essere ottenuta se avessi avuto modo di usare il caricamento ritardato delle collection anche nei report.

Ed è proprio questa la modifica che ho implementato nella versione 13.1. L’idea è semplice: basta creare una collection e indicare che potrà contenere, per esempio, 100.000 righe. A questo punto, se la collection viene fornita al report e questo viene mostrato in anteprima, il sistema chiederà al programmatore di fornire i documenti mancanti man mano che ne ha necessità. Con questo sistema si possono fare applicazioni come Twitter o Facebook, dove la pagina cresce all’infinito e i dati vengono caricati quando l’utente chiede di vederli.

Con questo sistema è anche possibile saltare in avanti di molte pagine senza bisogno di caricare tutti i documenti intermedi. Per esempio, se l’utente salta dalla pagina 10 alla pagina 100 il sistema sa che le pagine dalla 11 alla 99 non sono ancora necessarie, quindi non richiede tutti i documenti intermedi ma “lascia dei buchi”. In questo modo viene ridotta al minimo l’occupazione di memoria. Se poi l’utente va a pagina 50 il sistema richiede i documenti mancanti necessari per mostrare quella pagina.

E’ giunto il momento di farvi vedere cosa si può fare con questa nuova funzionalità. Cliccate qui, aprite il file Movies.idp con Instant Developer 13.1 e guardate cosa si riesce a fare. Che ne pensate?

Avete già in programma applicazioni a interfaccia infinita?

  •    L'interfaccia infinita ad oggi è un must! Useremo presto questa feature.
  •    Tecnica interessante, ma ancora non è capitata l'occasione.
  •    Non mi interessano le interfacce "alla facebook", meglio UI più consolidate.
  •    Non so, non ci avevo mai pensato.

Image: sffoutpost

{ 1 comment… read it below or add one }

1 Mauro Marini 19 settembre 2014 alle 20:39

Su dispositivo mobile è veramente bello e utile! Grazie per la segnalazione e per il progetto dimostrativo.

Leave a Comment

Previous post:

Next post: