VB La stampa con Crystal Report
Una lista semplice semplice

Per creare un nuovo report una volta lanciato l'ambiente di sviluppo di CR si deve scegliere il tipo di tabulato,in questa occasione:
FILE >NUOVO>ESPERTO STANDART

quando appare la dialog box si deve premere File di dati e quindi scegliere il database che contiene le tabelle che servono. Eliminate le tabelle che non servono per il report, successivamente selezionate dalle tabelle i campi che volete facciano parte del report.
Ora premete ANTEPRIMA REPORT per avere una prima visione.La vista può essere ingrandita per una più dettagliata visione . Fate click sulla scheda denominata DESIGN e procedete a formattare le colonne  con i font, i colori  e linee. Tutte le colonne possono venir liberamente spostate, le intestazioni più chiare rispetto a quelle di default sono costituite dai nomi dei campi.
E' possibile ordinare i record se ad es. il database contiene dei  nomi di persone è possibile ordinarli in ordine alfabetico crescente. Ecco come procedere:

Selezionate REPORT>ORDINA RECORD poi dalla lista Campi Report evidenziate il campo Nome quindi premete aggiungi il campo Nome viene così aggiunto alla lista Campi di ordinamento quindi selezionate Crescente nel frame denominato ORDINE.
Ora date un titolo al tabulato.   Posizionatevi  all'interno della sezione TITOLO poi scegliete INSERISCI >Campo di testo , digitate un titolo che piu vi piace ad es. nel  nostro caso   Lista amici e assegnate le caratteristiche che preferite al font.
Lanciate l'anteprima e se il risultato vi soddisfa salvate il report con un nome che servirà poi per essere richiamato dal programma VB.

La stampa delle etichette

Per la creazione delle etichette si procede pressapoco come per la lista vista prima.
Dal  menù selezionate in ordine FILE>NUOVO>ESPERTO ETICHETTA.Per selezionare le tabelle e i campi fate come per la lista. La scheda numero 4 della tabella contiene invece varie informazioni specifiche come l'elenco dei formati commerciali standart pronti per essere usati e le caselle di input per immettere i valori personalizzati.
Il layut del report può venire ritoccare manualmente con gli attributi, i colori, le immagini e così via.
Come sempre il lavoro finisce con la generazione e il salvataggio sul disco di un report file .RPT standart.

Creare campi calcolati

Per creare un campo calcolato si deve inserire un campo di tipo formula nel report: si aprirà una finestra con le opzioni possibili per il calcolo(campi,operatori,ecc..), nella formula si possono inserire anche espressioni complesse e condizionali tipo:

if {tabella.ID}=20 then {tabella.qta} * {tabella.prezzo}else 0

CR e le password in un MDB

Per fornire automaticamente la password di un MDB si usa la proprietà Connet del controllo CR in questo modo:

CrystalReports1.Connet = "PWD = miapassword"

Date e CR

Se si vuole per es. che un report consideri solo i record che hanno un campo Data compreso tra due date si puoò usare la proprietà del controllo CR SelectionFormula insieme alla funzione Date del CR esempio:

Crystal1.SelectionFormula = " {TABELLA.MiaData}   > = Date (1998,1,1)" & "{TABELLA.MiaData} <= Date (1998,1,31)"

è chiaro che al posto di 1998,1,1 si dovrà sostituire l'anno , mese e giono della variabile che si usa per la selezione es.

data1 è la prima variabile data dell'intervallo

Crystal1.SelectionFormula ="{TABELLA.MiaData}>=Date(" & Year(data1) & ", " &Month(data1) &  "," & day(data1) & ") And "..........ecc..

Problemi di VB con più controlli report

La versione 5 di VB a causa di uno dei tanti bug, restituisce spesso un'errore nel caso che un progetto chiami più di un controllo Report di CR.La soluzione è però semplice basta utilizzare un solo controllo Report magari posizionato in un form che si carica al lancio del programma subito si rende invisibile.Ogni volta che si vuole stampare un report occorre riferirsi sempre a quel form ed a quel controllo Report.

Selezionare i record da stampare

Se si vogliono stampare solo alcuni record in base ad un criterio di selezione si può usare la proprietà del controllo CR SelectionFormula infatti essa è una proprietà che ci permette di creare un filtro "al volo" simile ad una clausola SQL WHERE.

Crystal1.SelectionFormula = " { TABELLA.Prezzo }> = 200000"