BUILDING A USER INTERFACE Using CRYSTAL REPORTS
COME UNAPPLICAZIONE COMUNICA CON LUTENTE? 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 lutente (meglio una progress che una clessidra) FAMILIARE Usare quel che lutente si aspetta (uno slider e non una combo per un controllo volume ACCATTIVANTE Esteticamente gradevole FORGIVING Gestione degli errori chiara (NO «errore di runtime »)
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 linput per lutente
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 LORIGINE DATI Selezionare le tabelle/viste da usare Organizzare il diagramma relazionale Creare il report Scegliere i campi da mostrare Organizzare le sezioni Leventuale raggruppamento Aggiungere i grafici
IMPOSTARE LA CONNESSIONE USARE OLEDB(ADO) con driver SQL server native client
Posso attaccarmi anche a una vista o a store (anche parametriche!) Selezionare le tabelle
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 ununica vista o tabella (o anche Stored proc) a origine dei dati Non commettere lerrore 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