Un database può essere visto come un insieme di tabelle, ogni tabella rappresenta generalmente un'entità che viene utilizzata nel database e interagisce con le altre: ad esempio i Clienti sono un'entità e saranno memorizzati in una tabella.
Ogni entità possiede diversi attributi come ad esempio Nome, Cognome, Data di Nascita, Età ecc... Ovviamente queste informazioni sono di tipi e dimensioni diverse che variano in funzione del dato che deve essere memorizzato. Il campi presenti nel database di Mon Ami 3000 possono essere di tipo Stringa, Numero, Logical, Data e Memo; per quanto riguarda i campi Stringa, Memo e Data il valore deve essere indicato tra apici: 'STRINGA'
DESCRIZIONE DELLA FUNZIONALITA'
Tramite questa finestra è possibile eseguire delle elaborazioni sui dati utilizzando il linguaggio SQL. Questo linguaggio permette di eseguire qualsiasi operazione sugli archivi, dalla ricerca alla cancellazione dei dati fino alla creazione e alla distruzione delle tabelle che compongono il database.
|
Ogni istruzione scritta tramite il linguaggio SQL è detta QUERY e, in funzione delle operazioni eseguite, assume attributi differenti; ad esempio le query di SELEZIONE permettono di estrapolare dei dati dall'archivio in base ad una serie di filtraggi e condizioni e il risultato sarà esportato in un file XML che può essere facilmente visualizzato tramite Excel. |
|
Le operazioni di cancellazione e modifica tramite query sql sono IRREVERSIBILI poichè questa funzione ha accesso diretto al database dei dati. |
Mon Ami 3000 permette di creare un elenco di query da richiamare quando necessario e, rispetto agli altri software gestionali presenti in commercio, consente all'utente di creare delle query parametrizzate che possono essere riutilizzate per fare svariate interrogazioni senza essere costretti a riscrivere l'intera query.
|
Elaborazioni SQL - Finestra principale |
Nome
Nel campo di tipo List presente in questo gruppo di campi è visibile un elenco di tutte le query presenti all'interno degli archivi; per inserire una nuova query selezionare il valore Nuova...
Nella parte destra dello stesso gruppo di campi sono presenti tre piccoli pulsanti che permettono rispettivamente di Caricare, Eliminare e Salvare la Stringa SQL specificata. Il pulsante di caricamento è abilitato solamente nel caso in cui si stia scrivendo una nuova query e permette di caricare il contenuto di un file di testo con estensione ".sql"; il nome della nuova query viene richiesto al momento del salvataggio.
Stringa SQL
In questo campo è possibile inserire la stringa SQL che si desidera eseguire. Nell'esempio mostrato in figura è riportata una query con parametri secondo la sintassi di Mon Ami 3000; all'esecuzione di questa query sarà richiesto il valore da utilizzare per eseguire l'elaborazione.
|
Rispetto agli altri software gestionali presenti in commercio Mon Ami 3000 consente di creare delle query standard dove i valori da utilizzare sono variabili e potranno essere specificati di volta in volta tramite una finestra creata dinamicamente senza dover riscrivere l'intera query con il rischio di compiere degli errori. Importante: per utilizzare questa funzione è fondamentale conoscere la struttura del database del software gestionale poichè, ogni valore specificato in una query parametrizzata, contiene riferimenti alle tabelle e ai campi contenuti nella tabella stessa. |
Query SQL semplici
In una query SQL semplice tutte le informazioni per la ricerca dei dati sono inserite direttamente nell stringa.
Esempi:
1. Tutte le informazioni di tutti i clienti.
Select *
From Controparti
Where Controp='Cliente'
2. Solo la Descrizione (DescrContr) di tutti i clienti
Select DescrContr
From Controparti
Where Controp='Cliente'
3. Tipo documento (CodDoc) e Numero (NumDoc) dei documenti emessi nel mese di Gennaio 2007
Select CodDoc, NumDoc
From Documenti
Where DataDoc >= '01/01/2007' and DataDoc <= '31/01/2007'
Query parametrizzate
Poniamo il caso che periodicamente si vuole esportare in file XML differenti vari documenti emessi in un determinato periodo, ad esempio si vogliono esportare le Fatture immediate e le Fatture differite emesse in un determinato periodo. In tal caso si devono eseguire più query semplici che devono essere modificate ogni volta oppure una sola query parametrizzata...
Esempio:
Select *
From Documenti
Where CodDoc = 'FAT' and DataDoc >= '01/01/2007'
and DataDoc <= '31/01/2007'
Select *
From Documenti
Where CodDoc = 'FDI' and DataDoc >= '01/01/2007'
and DataDoc <= '31/01/2007'
Oppure...
Select *
From Documenti
Where CodDoc = '#Tipo doc:F:TipiDocumento|CodDoc:DescrDoc#'
and DataDoc >= '#Dal:D#' and DataDoc <= '#Al:D#'
Alla pressione del tasto F8 verrà creata dinamicamente la seguente finestra:
|
Elaborazioni SQL - Richiesta parametri in query parametrizzata |
E' presente un campo per ogni parametro specificato e, per quanto riguarda il Tipo doc, è attiva anche la funzione di ricerca tramite il tasto F2.
Ogni parametro è racchiuso tra i caratteri "#" ed è composto da varie opzioni separata dal carattere ":".
La sintassi generale con cui deve essere espresso il parametro è la seguente:
#<NOMEPARAMETRO>:<TIPO>:[OPZIONE1]:[OPZIONE2]:[...]#
I valori di [OPZIONE1], [OPZIONE2], [...] variano in funzione del <TIPO> di parametro e sono rappresentate tra parentesi quadre per indicare che sono parametri FACOLTATIVI.
Tipologie di parametri
Parametro di tipo Carattere e/o Stringa
Sintassi: #<NOMEPARAMETRO>:C:[NUM.CARATTERI]#
C sta ad indicare che il parametro è una STRINGA o un CARATTERE, [NUM.CARATTERI] rappresenta la lunghezza massima della stringa che di default è 50.
Parametro di tipo Memo
Sintassi: #<NOMEPARAMETRO>:M#
I campi di tipo Memo sono stringhe di ampiezza illimitata; nelle query solitamente non si utilizzano testi per la ricerca dei valori all'interno degli archivi ma, in determinati casi, vengono utilizzati questo tipo di campi e quindi è necessario indicare questa tipologia di parametro per avere una corrispondenza tra il campo dell'archivio e quello della query.
Parametro di tipo Data
Sintassi: #<NOMEPARAMETRO>:D#
Il carattere D indica che il parametro è un valore di tipo Data; non occorre specificare altre opzioni. Quando Mon Ami 3000 individua un parametro di questo tipo crea nella finestra di inserimento dati un campo dove poter specificare la data, un text con il nome del giorno e un pulsante che permette di riportare automaticamente la data di lavoro impostata.
Parametro di tipo Logical
Sintassi: #<NOMEPARAMETRO>:L#
I valori di tipo Logical sono campi che possono assumere solamente 2 valori: Vero o Falso. Quando Mon Ami 3000 incontra questo tipo di campo nella finestra di inserimento dati viene posizionato un controllo di tipo Check.
Parametro di tipo Numero
Sintassi: #<NOMEPARAMETRO>:N:[NUM.CIFRE]:[NUM.DECIMALI]#
N sta ad indicare che il parametro è un NUMERO. L'opzione [NUM.CIFRE] indica il numero massimo di cifre comprensivo dell'eventuale separatore decimale; [NUM.DECIMALI] rappresenta il numero di decimali ed è FACOLTATIVO.
Parametro di tipo Campo
Sintassi: #<NOMEPARAMETRO>:F:[TABELLA|CAMPO]:[DESCRIZ.VALORE]:[TIPOLOGIA]>#
Questo tipo di parametro è molto particolare in quanto permette di abilitare l'uso del tasto F2 per la ricerca dei valori; questo tipo di parametro viene utilizzato solamente per la ricerca delle cosiddette Chiavi esterne.
Un esempio di questo tipo potrebbe essere relativo ai Clienti e ai Documenti emessi; tra le varie informazioni di un documento è indicato anche il codice del cliente a cui è intestato, questa è la Chiave esterna.
L'opzione [TIPOLOGIA] è fondamentale quando la chiave esterna del parametro che stiamo definendo è relativa ad una tabella al cui interno sono contenute entità di tipo differente come avviene, ad esempio, per la tabella Controparti al cui interno sono contenuti Clienti e Fornitori.
Nota: In questo caso non è necessario specificare la dimensione del parametro, tutte le caratteristiche vengono recuperate automaticamente da Mon Ami 3000 utilizzando il valore [TABELLA|CAMPO] specificato.
Esempio: Documenti emessi verso il cliente numero 00001
Query semplice
Select CodDoc, NumDoc, DataDoc
From Documenti
Where Controp='Cliente' and CodContr='00001'
Query parametrizzata
Select CodDoc, NumDoc, DataDoc
From Documenti
Where Controp = 'Cliente'
and CodContr = '#Cliente:F:Controparti|CodContr:DescrContr:Cliente#'
In questa query parametrizzata viene abilitata la ricerca del codice di un cliente dalla tabella Controparti e, una volta selezionato, ne viene mostrata la descrizione. Notare che la query richiede la condizione Controp='Cliente' e che il valore dell'opzione Tipologia coincide con il valore di Controp che è il campo della tabella che distingue il Fornitore 00001 dal Cliente 00001.
La finestra di inserimento dati generata è la seguente:
|
Query parametrizzate - Richiesta parametri (esempio 1) |
Si può ottimizzare ulteriormente la query in modo tale da poter ottenere solamente un determinato Tipo di documento; successivamente alla query sarà riportata la relativa finestra di inserimento dati.
Select CodDoc, NumDoc, DataDoc
From Documenti
Where Controp = 'Cliente'
and CodContr = '#Cliente:F:Controparti|CodContr:DescrContr:Cliente#'
and CodDoc = '#Tipo doc.:F:TipiDocumento|CodDoc:DescrDoc#'
|
Query parametrizzate - Richiesta parametri (esempio 2) |
Il risultato delle query di selezione può essere esportato nei formati XML e CSV. Questi formati sono estremamente diffusi e possono essere importati dalla maggior parte dei programmi in commercio tra cui Excel e tutti i programmi del pacchetto Microsoft Office nonchè con i software contenuti nel pacchetto Open-Source OpenOffice.
Una volta indicata la query e inseriti gli eventuali parametri per le query parametrizzate occorre premere il tasto F8 per confermare l'operazione sul database. Al termine dell'elaborazione il gestionale visualizza la finestra sottostante nella quale occorre indicare il nome e il formato del file da generare.
|
Elaborazioni SQL - Salvataggio risultati |