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.