Molte volte, non si ha la necessità di visualizzare sul report tutti i dati a cui Crystal Report viene collegato, ma si desidera applicare un filtro alla fonte dati, in modo da non caricare tutti i dati. Il comando per poter fare questo è il "SelectionFormula".

Di seguito un esempio:

 

 

 

CRViewer.SelectionFormula= {comando.ID} = 1 AND {comando.PeriodoDal} >= #01/01/2013 00:00:00# AND {comando.PeriodoAl} <= #31/12/2013 23:59:00#

Va tenuto conto che se si vuole filtrare un campo del DB che contiene date, bisogna usare il # (cancelletto) e ovviamente il campo del DB deve essere di tipo Data.

C'è anche un'altro metodo per filtrare i dati su un Report, ed è tramite l'utilizzo dei parametri. Questo metodo però carica tutti i dati dalla sorgente dati e poi a Report filtra i dati. Se i dati sono pochi da visualizzare non presenta molte differenze con il metodo precedente, ma se al contrario i dati sono molti, appesantisce di molto il caricamento del report, senza considerare che lavorando per parametri, ogni volta che desidero filtrare i dati, sono costretto a impostarli tutti, mentre con il metodo SelectionFormula, posso cambiare il filtro ogni volta che desidero.

Il metodo di filtrare con SelectionFormula, di adatta molto bene a prima che il report venga caricato, mentre filtrare per parametri, si adatta meglio a Report già caricato, ma voglio applicare nil filtro in un secondo momento.