Corso su QualiWare Form Designer Docente: ing. Pier Alberto Guidotti Product Manager QualiWare Modulistica personalizzata Le aziende richiedono sempre più spesso la gestione di flussi di workflow personalizzati basati non su file ma su moduli (form). A questa esigenza attualmente si risponde scrivendo codice (su QualiWare o su altri sistemi come Sharepoint, Lotus Notes, ecc.). Questo significa non solo costi aggiuntivi, ma soprattutto tempi lunghi per la creazione o la modifica. Ora possiamo consentire ai nostri clienti di creare e gestire i propri form con la stessa facilità con la quale possono creare nuove categorie documentali, gestendoli poi con la stessa logica dei documenti (workflow). Il tutto con continuando ad utilizzare una piattaforma stabile e di facile utilizzo come QualiWare, e senza dovere acquisire sistemi complessi come SharePoint e/o Lotus Notes, con i relativi costi di licenza e di gestione. QualiWare Form Designer E’ una tecnologia innovativa messa a punto da Analysis per consentire ad utenti non esperti di configurare facilmente sia le maschere di richiesta dati per i nuovi documenti (fino ad oggi si era costretti a definire manualmente ciascun campo “custom”) sia veri e propri moduli di raccolta dati, gestiti con la stessa logica dei documenti. QualiWare Form Designer: caratteristiche Possibilità di progettare con facilità in ambiente grafico qualsiasi tipo di modulo di raccolta dati (più semplice di Access!) Utilizzo delle modalità operative tipiche della gestione documentale di QualiWare (nessuna formazione aggiuntiva per gli utenti) Basso TCO (Total Cost of Ownership) Com’era prima La configurazione dei campi custom (fino a 10) avveniva in modalità non grafica. Com’è ora La configurazione dei campi custom avviene ora in modalità grafica Com’è ora La configurazione dei campi custom avviene ora in modalità grafica File o form? Accanto alla classica gestione di file vi è ora la possibilità di gestire moduli dove i contenuti vengono unicamente inseriti tramite il form progettato tramite il FD. Viene comunque generato un file che rappresenta la stampa del modulo, ma esso non è editabile e l’utente può inserire i dati solamente attraverso l’interfaccia creata con il FD. Il modello di stampa può essere creato con Word, Excel o Crystal Reports. File o form? File o form? L’ambiente grafico Tavolozza dei componenti L’ambiente grafico Questa tavolozza contiene tutti i possibili tipi di oggetto che possono essere inseriti nel form. E’ sufficiente cliccare sul tipo di oggetto selezionato e successivamente cliccare sul form nel punto in cui si vuole inserirlo. L’ambiente grafico Area di progettazione del form L’ambiente grafico Griglia delle proprietà dell’oggetto L’ambiente grafico Strumenti di allineamento e dimensionamento L’ambiente grafico Pulsante per il test immediato del form Proprietà comuni degli oggetti Colori Font Proprietà comuni degli oggetti IndiceTab: consente di definire l’ordine di tabulazione degli oggetti Proprietà comuni degli oggetti (Nome): Definisce il nome dell’oggetto. E’ importante perché è il nome col quale nella gestione degli eventi ci si riferirà all’oggetto per modificarne o leggerne il valore. Non può contenere spazi Proprietà comuni degli oggetti Campo: Definisce il nome del campo della tabella DOCUMENT nel quale il valore dell’oggetto verrà memorizzato. Sono disponibili i seguenti campi: -CUSTOM1-25: campi di testo max 254 caratteri -CUSTOM26-30: campi di testo di lunghezza illimitata -FLAG1-40: campi logici -DATE1-20: campi data -NUMBER1-20: campi numerici Proprietà comuni degli oggetti Descrizione campo: Definisce la descrizione del campo che comparirà nell’indice e nei menu di Word ed Excel. E’ da non confondere con il nome del campo. Proprietà comuni degli oggetti SolaLettura: Se True significa che il campo non sarà modificabile. Proprietà comuni degli oggetti Fascicola: Se True significa che il campo verrà utilizzato per la fascicolazione automatica. Proprietà comuni degli oggetti Richiesto: Se True significa che il campo è obbligatorio, e nel caso non venga compilato dall’utente il sistema ritornerà un messaggio d’errore impedendo il salvataggio dei dati. Proprietà comuni degli oggetti MostraNellIndice: Se True significa che il campo verrà mostrato nell’indice dei documenti Proprietà comuni degli oggetti RuoliAbilitati: Indica quali ruoli del workflow sono abilitati alla compilazione del campo. I ruoli si specificano tramite una serie di caselle di scelta che si aprono in automatico sulla freccia. Proprietà comuni degli oggetti RuoliVisualizzatori: Indica quali ruoli del workflow possono visualizzare il campo. I ruoli si specificano tramite una serie di caselle di scelta che si aprono in automatico sulla freccia. Proprietà comuni degli oggetti SuggerimentoRapido: Consente di specificare il testo che si presenta all’utente quando si posiziona col mouse sul campo. Proprietà comuni degli oggetti ValorePredefinito: E’ il valore che il campo contiene di default quando si crea un nuovo modulo. Etichetta di testo Testo: Rappresenta il testo che verrà visualizzato. BottoniRadio Gruppo: Rappresenta il gruppo cui il BottoneRadio appartiene. Più BottoniRadio appartenenti allo stesso gruppo rappresentano opzioni differenti dello stesso campo, e per questo devono avere lo stesso campo collegato e la stessa descrizione campo. BottoniRadio ValoreOpzione: Rappresenta il valore che verrà scritto nel campo quando il BottoneRadio è selezionato. Liste di ricerca (caselle di testo e caselle a discesa) QueryLista: Consente di definire una query che rappresenta l’elenco dei valori fra i quali è possibile scegliere il valore da inserire nel campo. Liste di ricerca (caselle di testo e caselle a discesa) Si può scegliere fra query già pronte per agganciarsi alle anagrafiche, oppure definirla liberamente. E’ anche possibile comporre la lista specificandone i valori e separandoli con un ‘;’ Liste di ricerca (caselle di testo e caselle a discesa) VincolatoAllaLista: Se ‘True’ indica che il valore del campo potrà essere inserito solamente scegliendolo dalla lista (l’utente non potrà quindi inserire un valore digitato a piacere). Eventi In QWFD è possibile inserire frammenti di codice che vengono eseguiti in risposta ad eventi particolari. Sia il form che i singoli oggetti hanno eventi associati che possono essere gestiti. Eventi sul form CambiaForm Evento attivato al cambiamento del valore di un qualsiasi campo del form. Può essere utilizzato per: modificare i valori di uno o più campi in base al valore inserito in uno o più campi fornire all’utente messaggi di avviso in base al valore inserito in uno o più campi. Eventi sul form Caricamento Evento attivato al caricamento di un form (si esso esistente o nuovo). Può essere utilizzato per: assegnare valori a campi che non corrispondono a campi del database ma sono la combinazione di uno o più di essi (campi calcolati) Eventi sul form Salva Evento attivato al salvataggio del form Può essere utilizzato per: validare i dati: è possibile infatti inibire il salvataggio nel caso i dati inseriti non rispettino regole specifiche che possono essere inserite nel codice di gestione dell’evento, il quale dovrà ritornare il valore “false” nel caso il salvataggio debba essere inibito. Eventi sugli oggetti Cambia Evento attivato al cambiamento del valore nel campo Può essere utilizzato per: assegnare altri campi in base al valore inserito nel campo verificare la validità del valore inserito dando eventualmente un messaggio all’utente Codice di gestione degli eventi Il codice di gestione degli eventi utilizza i linguaggi di programmazione con i quali QualiWare è stato sviluppato, che sono: dBL (dBase) per la versione client/server Visual Basic per la versione Web Esempio di gestore evento dBL Il seguente frammento di codice gestisce l’evento “Cambia” di un campo nel quale viene inserito il codice di un cliente. Si vogliono riempire in automatico i campi “Indirizzo” e “Località”, attingendo le informazioni dall’anagrafica. if not empty(this.value) q=new table() q.session=form.dmd.ref.SESSION1 q.database=form.dmd.ref.DB q.sql="select * from CLIFOR where CODICE=:CODICE" q.params["CODICE"]=this.value q.active=true if q.rowset.first() this.parent.RAGSOC.value=q.rowset.fields["RAGSOC"].value this.parent.INDIRIZZO.value=q.rowset.fields["VIA"].value this.parent.LOCALITA.value=q.rowset.fields["CAP"].value+" "+q.rowset.fields["CITTA"].value+" ("+q.rowset.fields["PROV"].value+") "+q.rowset.fields["NAZIONE"].value endif q.active=false endif Esempio di gestore evento dBL Questo frammento di codice gestisce l’evento “Cambia” di un campo nel quale viene inserito il numero di un DDT scelto da una lista. All’inserimento del valore, viene riempito in automatico il campo “Quantita” con la somma delle quantità contenute nelle righe del DDT specificato. q=new table() q.database=form.dmd.ref.DB q.sql="select sum(QT) from DOCTRASP join RIDOCTRA on doctrasp.NUMDOC=ridoctra.NUMDOC where str(doctrasp.NUMDOC)=:NUMDOC" q.params["NUMDOC"]=left(this.value,10) q.requestlive=false q.active=true if q.rowset.first() this.parent.QUANTITA.value=q.rowset.fields[1].value endif q.active=false Stampa del form I campi inseriti in un form possono essere utilizzati all’interno di modelli di documento (nel caso di gestione a file) o di modelli di stampa (nel caso di gestione a form). I modelli di stampa sono realizzabili con Word, Excel o Crystal Reports. Nel caso si utilizzino Word o Excel, analogamente a quanto accade per i modelli, i campi possono essere riportati all’interno del file utilizzando il menu “Campi” presente nella barra degli strumenti aggiuntiva di QualiWare. I campi vengono riportati nel menu con la descrizione inserita durante la fase di progettazione del form all’interno della proprietà “DescrizioneCampo”. Stampa del form Riutilizzo dei form progettati E’ possibile riutilizzare i form progettati esportandoli e poi reimportandoli in un’altra categoria o in un altro database. Le funzioni di Esportazione/importazione sono disponibili nel menu “File” dell’ambiente di progettazione. QualiWare Form Designer: esempi di applicazione 8D-Report Infortunio e quasi-infortunio Richieste d’acquisto Certificazione di Conformità Help-Desk …. Libreria di form sul forum Esempi, suggerimenti, e una libreria di form pronti per l’uso verranno inseriti sul forum: http://service.qualiware.it/forum