BUILDING A USER INTERFACE Using CRYSTAL REPORTS COME UN’APPLICAZIONE COMUNICA CON L’UTENTE? • Problema comune a tutte le applicazioni informatiche • Forse meglio prima chiedersi….. • COSA COMUNICA? • I DATI TIPOLOGIE DI DATO COMUNICATO • INPUT/OUTPUT • Configurazioni – CRUD • OUTPUT • Analisi dati • Log Tecnici • Monitoraggio QUALI CARATTERISTICHE? • EFFICACE • Mostrare tutti i dati che servono • CONCISA • Solo quel che serve • CHIARA • Si deve capire cosa sto facendo (tooltip, icone) • RESPONSIVA • Non far aspettare l’utente (meglio una progress che una clessidra) • FAMILIARE • Usare quel che l’utente si aspetta (uno slider e non una combo per un controllo volume • ACCATTIVANTE • Esteticamente gradevole • FORGIVING • Gestione degli errori chiara (NO «errore di runtime 112321») INTERFACCE DI CONFIGURAZIONE • EDIT IN GRIGLIA • PRO: MOLTO CONCISA • CONTRO: DIFFICILE DA PROGRAMMARE E SPESSO DA USARE INTERFACCE DI CONFIGURAZIONE • EDIT SU LISTA • PRO: Più facile da programmare: la lista è in lettura • CONTRO: più lungo l’input per l’utente INTERFACCIA DI CONTROLLO • Pannello di controllo • PRO: molto immediata • CONTRO: poco scalabile (non posso mostrare troppi dati) INTERFACCIA REPORT • PRO: posso mostrare molti dati in varie forme(grafici+testo), scalabile, drillabile, stampabile, integrabile • CONTRO: sola lettura, più complessa da realizzare CRYSTAL REPORTS • Tool di reportistica • Si connette direttamente a DB • Permette di creare report anche piuttosto complessi • È una delle soluzioni sul mercato, ma è quella che ha avuto più diffusione • Può essere richiamato da c# e integrato in applicazioni c# • Alcuni elementi sono controintuitivi PASSAGGI PER CREARE UN REPORT • IMPOSTARE L’ORIGINE DATI • Selezionare le tabelle/viste da usare • Organizzare il diagramma relazionale • Creare il report • Scegliere i campi da mostrare • Organizzare le sezioni • L’eventuale raggruppamento • Aggiungere i grafici IMPOSTARE LA CONNESSIONE • USARE OLEDB(ADO) con driver SQL server native client Selezionare le tabelle • Posso attaccarmi anche a una vista o a store (anche parametriche!) Organizzare il diagramma relazionale Selezionare i campi Il wizard… • Modo veloce per ottenere qualcosa • Spesso il risultato lascia a desiderare…. ESERCITAZIONE • Creiamo un report vuoto • Connettiamoci al nostro DB • Usiamo il wizard per ottenere un primo report Due modalità di visualizzazione • STRUTTURA • ANTEPRIMA STRUTTURA DI UN REPORT • Sezioni • Gruppi • Dettaglio • Sono sezioni pensate per la stampa! Aggiunta di campi al report • Drag and drop da treeview a destra • Il risultato cambia a seconda della sezione Gli «esperti» • Esperto Sezione • Esperto Gruppo • Esperto Ordinamento • Esperto Modello Formato Campo • Varie opzioni di formattazione USO DI FORMULE • Utili per creare campi derivati • Disponibili funzioni condizionali • Disponibili operatori vari e funzioni CAMPI SPECIALI • Numero pagina • Utente che lancia il report • Pagine totali • ecc ALCUNE CONSIDERAZIONI FINALI • Spesso è conveniente creare un’unica vista o tabella (o anche Stored proc) a origine dei dati • Non commettere l’errore di mettere la logica di funzionamento un po’ nel report e un po’ nel db ESERCITAZIONE • Creiamo un report che ci mostri il totale energia prodotta diviso per impianto e mese • Un grafico opportuno che mostri la percentuale di energia prodotta dai vari pannelli in relazione al totale • Come sopra in relazione al mese • Discutere le scelte fatte