Creare un Database completo per la gestione del magazzino.
Vedremo di seguito una guida pratica su come creare un Database per la gestione del
magazzino e la rispettiva spiegazione analitica:
Innanzitutto apriamo il pacchetto di LibreOffice (oppure OpenOffice) LibreOffice
Base, ci comparirà questa schermata:
qui possiamo scegliere se creare un nuovo Database oppure aprire un Database già
esistente. Fatto ciò avremo questa seconda schermata:
Qui possiamo scegliere se registrare il Database o no; è consigliabile registrarlo per
renderlo disponibile come fonte dati per altre applicazioni di LibreOffice. Poi “Fine”.
Arrivati a questo punto diamo un nome significativo al nostro Database, salvandolo
avremo una schermata simile a questa:
Innanzitutto prima di iniziare a realizzare fisicamente il nostro Database, dobbiamo
avere uno schema ben preciso di come dobbiamo impostarlo; quindi dobbiamo sapere
a priori cosa ci può essere utile includere nel Database, di quante tabelle abbiamo
bisogno, se e quali relazioni sono presenti in esso. Avendo uno schema chiaro
ottenuto con il tradizionale metodo, quello con carta e penna, possiamo iniziare a
creare le nostre tabelle. Supponiamo di voler realizzare un Database dove andremo ad
inserire i nostri articoli, le quantità, il loro prezzo di acquisto, i vari fornitori i relativi
acquisti, ecc... Iniziamo a creare la tabella “TabArticoli” (è bene inserire il
riferimento per distinguere le tabelle, le query, le ricerche ecc...).
Per fare ciò clicchiamo su: “Crea tabella in vista struttura” ed avremo questo:
Qui dobbiamo iniziare ad inserire i campi che che ci saranno utili ed i rispettivi tipi di
campo. Iniziamo però ad inserire il campo “ID” a cui attribuiremo come tipo di
campo “Intero [INTEGER]” e modifichiamo a “si” il valore automatico. Il campo
“ID” sarà la nostra chiave primaria la quale avrà un valore univoco per ogni record
inserito. Inseriamo un altro campo “Descrizione” il quale avrà come tipo “Testo
[VARCHAR]” e salviamo con nome la tabella (possiamo rinominarla “TabArticoli”).
Proseguiamo con la creazione della tabella fornitori, quindi clicchiamo su “Crea
tabella in vista struttura” ed inseriamo i campi: “ID” con tipo di campo “intero
[INTEGER]” e valore automatico su “si”, “Ragione Sociale”, “Indirizzo”, “N.
Telefono”, “P.iva”, “Codice Fiscale”; questi ultimi avranno come tipo di campo
“Testo [VARCHAR]”. Finito salviamo la tabella con nome (la chiameremo
“TabFornitori”) ed avremo una schermata simile a questa:
Andiamo avanti con la creazione della tabella “TabAcquisti” la quale ci permetterà di
caricare le nostre fatture quindi i nostri articoli, il loro prezzo di acquisto, la data,
ecc... Andiamo su “Crea tabella in vista struttura” ed iniziamo ad inserire i seguenti
campi:
• Nome Campo
Tipo Campo
• ID
Intero [INTEGER] (Chiave primaria con valore autom.)
• IDArticolo
Intero [INTEGER] (Questo ci sarà utile per le relazioni)
• IDFornitore
Intero [INTEGER] (Questo ci sarà utile per le relazioni)
• Data
Data [DATE]
• Numero Fattura
Testo [VARCHAR]
• Prezzo
Decimale [DECIMAL] (Posizioni decimali: 2)
• Quantità
Intero [INTEGER]
• Seriale
Testo [VARCHAR]
N.B. Ai campi “IDArticolo” e “IDFornitore” abbiamo attribuito come tipo di campo
“INTEGER” in quanto saranno i campi che andremo ad usare per creare le relazioni
con le relative tabelle e le relative chiavi primarie. Infatti, come regola generale, per
creare la relazione tra due tabelle, i due campi utilizzati, dovranno essere dello stesso
tipo. Anche al campo “Numero Fattura” abbiamo attribuito un tipo di campo che
potrebbe sembrare strano, però se non mettiamo “Testo” e dovessimo inserire ad
esempio come numero di fattura 454322/A non potremmo inserirlo.
Salviamo la tabella come “TabAcquisti” ed avremo questa schermata:
Proseguiamo con la creazione della tabella clienti, quindi clicchiamo su “Crea tabella
in vista struttura” ed inseriamo i campi: “ID” con tipo di campo “intero [INTEGER]”
e valore automatico su “si”, “Ragione Sociale/Nome”, “Indirizzo”, “N. Telefono”,
“P.iva”, “Codice Fiscale”; questi ultimi avranno come tipo di campo “Testo
[VARCHAR]”. Finito salviamo la tabella con nome (la chiameremo “TabClienti”) ed
avremo una schermata simile a questa:
Andiamo avanti con la creazione della tabella “TabVendite” la quale ci permetterà di
caricare le nostre vendite quindi i nostri articoli, il loro prezzo di vendita, la data,
ecc... Andiamo su “Crea tabella in vista struttura” ed iniziamo ad inserire i seguenti
campi:
• Nome Campo
Tipo Campo
• ID
Intero [INTEGER] (Chiave primaria con valore autom.)
• IDArticolo
Intero [INTEGER] (Questo ci sarà utile per le relazioni)
• IDCliente
Intero [INTEGER] (Questo ci sarà utile per le relazioni)
• Data
Data [DATE]
• Prezzo
Decimale [DECIMAL] (Posizioni decimali: 2)
• Quantità
Intero [INTEGER]
• Seriale
Testo [VARCHAR]
N.B. Ai campi “IDArticolo” e “IDCliente” abbiamo attribuito come tipo di campo
“INTEGER” in quanto saranno i campi che andremo ad usare per creare le relazioni
con le relative tabelle e le relative chiavi primarie. Infatti, come regola generale, per
creare la relazione tra due tabelle, i due campi utilizzati, dovranno essere dello stesso
tipo. Salviamo la tabella come “TabVendite” ed avremo questa schermata:
Adesso siamo pronti a creare i nostri formulari per avere un'interfaccia più gradevole
e la visualizzazione dei soli campi che ci interesseranno. Quindi sulla colonna a
sinistra del nostro database selezioniamo “Formulari” e clicchiamo su “Usa
procedura guidata per la creazione dei formulari”. Iniziamo con il creare il
Formulario (Maschera) riferito alla tabella “TabArticoli”: alla voce “Selezionate i
campi del formulario” selezioniamo dall'elenco a tendina la voce: “Tabella: Articoli”,
mentre su “Campi disponibili” selezioniamo solo il campo “Descrizione” e lo
aggiungiamo ai Campi nel Formulario con il segno “ > ”
Fatto ciò
clicchiamo su “Avanti”, poi “Avanti” di nuovo sulla configurazione di un formulario
secondario, poi scegliamo come disporre i nostri campi nel formulario
(personalmente preferisco: “In colonna testo fisso a sinistra”); poi “Avanti” sulla
selezione del modo di inserimento dei dati. Applichiamo lo stile ed il colore,
impostiamo il nome (meglio usare lo stesso nome significativo della tabella) e fine.
Procediamo con la creazione del Formulario della tabella “Fornitori”; clicchiamo su
“Usa procedura guidata per la creazione dei formulari” ed alla voce “Selezionate i
campi del formulario” selezioniamo dall'elenco a tendina la voce: “Tabella:
Fornitori”, mentre su “Campi disponibili” selezioniamo tutti i campi eccetto il campo
“ID” e li aggiungiamo ai Campi nel Formulario con il segno “ > ”
Fatto ciò clicchiamo su “Avanti”, poi “Avanti” di nuovo sulla configurazione di un
formulario secondario, poi scegliamo come disporre i nostri campi nel formulario;
poi “Avanti” sulla selezione del modo di inserimento dei dati. Applichiamo lo stile ed
il colore, impostiamo il nome e fine.
N.B. Anche dopo la creazione del formulario possiamo modificare la disposizione
delle etichette e dei campi, il colore di sfondo ecc... Per fare ciò clicchiamo con il
tasto destro sul formulario che vogliamo modificare e click su “Modifica”. Andando
su “Formato” → “Pagina”, possiamo cambiare lo sfondo. Se vogliamo invece
modificare le dimensioni delle etichette, dei campi o la loro disposizione, basta
cliccare con il tasto destro ed andare su “Raggruppa” → “Separa”. Cosi facendo
abbiamo diviso l'etichetta dal campo, mentre se vogliamo raggrupparli di nuovo,
click sull'etichetta e tenendo premuto il tasto “SHIFT” click sul campo, tasto destro
del mouse “Raggruppa”. Invece se volessimo modificare il carattere, la dimensione
dell'etichetta, tasto destro, “Campo di controllo” su “Generale” troveremo la voce
“Carattere” che ci permetterà effettuare le modifiche a proprio piacere. Fatto ciò,
possiamo creare in entrambe le tabelle un pulsante che ci permetterà di aggiungere un
nuovo articolo oppure un nuovo fornitore; per fare questo andiamo in modalità
modifica, selezioniamo nella tabella strumenti a sinistra la voce “Pulsante”, e ne
creiamo uno sul formulario. Per modificare le proprietà, clicchiamo due volte sul
pulsante, quindi su “Didascalia” dovremo mettere il nome che andremo a
visualizzare, mentre per far fare ciò per cui lo abbiamo creato, andiamo su
“Operazione” e nell'elenco a tendina selezioniamo: “Nuovo Record”. Salviamo e
chiudiamo. Non dimentichiamo di salvare non solo le modifiche alle tabelle, ma
anche a tutto il database creato.
Adesso possiamo creare la nostra prima relazione; andiamo su “Strumenti” →
“Relazioni” ed avremo questa schermata:
Qui possiamo aggiungere le tabelle che dobbiamo mettere in relazione. In questo caso
le aggiungiamo tutte e cinque, dopodiché diamo “Chiudi”. Per creare fisicamente le
relazioni, clicchiamo con il tasto sinistro sulla chiave primaria (ID) della tabella
“Articoli” e tenendo premuto il tasto lo trasciniamo sulla voce “IDArticoli” della
tabella “Acquisti” e rilasciamo il tutto. Facciamo la stessa operazione per la tabella
“Vendite”, “Clienti” e “Fornitori”, salviamo la relazione ed il file ed avremo questo:
Procediamo con la creazione del formulario riferito alla tabella “Acquisti” e, come
vedremo, grazie alla relazione creata precedentemente, più della metà del lavoro lo
troveremo già fatto, con i vari menù già pronti, dovremo solo modificare le
impostazioni di alcuni campi. Quindi iniziamo: “Usa procedura guidata per la
creazione dei formulari” ed alla voce “Selezionate i campi del formulario”
selezioniamo dall'elenco a tendina la voce: “Tabella: Acquisti”, mentre su “Campi
disponibili” selezioniamo tutti i campi eccetto il campo “ID” e li aggiungiamo ai
Campi nel Formulario con il segno “ > ” :
Fatto ciò clicchiamo su “Avanti”, poi “Avanti” di nuovo sulla configurazione di un
formulario secondario, poi scegliamo come disporre i nostri campi nel formulario;
poi “Avanti” sulla selezione del modo di inserimento dei dati. Applichiamo lo stile ed
il colore, impostiamo il nome e fine. Quindi separiamo tutte le etichette dai campi
con la solita procedura: tasto destro del mouse sopra il campo, “Raggruppa” →
“Separa”; possiamo modificare le etichette con una descrizione a piacere cliccando
due volte sopra l'etichetta ed inserire nella “Didascalia” il termine che vogliamo
compaia nel formulario. Possiamo anche modificare la formattazione del testo
andando sotto la voce “Didascalia” su “Carattere” e modificare la grandezza del
carattere, il font, ecc... Avremo questa schermata:
Adesso andiamo a modificare le proprietà di ogni singolo campo: allora tasto destro
sul campo “Articolo” ed andiamo su: “Sostituisci con” → “Casella di riepilogo”, poi
clicchiamo due volte sul campo e alla voce “Apribile” lo modifichiamo a “si”.
Sempre nelle Proprietà del campo, andiamo alla voce “Dati” ed inseriamo su “Tipo
del contenuto della lista” → “Sql”, poi su “Contenuto elenco” andiamo su sfoglia;
nella query che si visualizza, clicchiamo sulla tabella “Articoli” → “Aggiungi” →
“Chiudi”. Fatto ciò inseriamo nella prima colonna il campo “Descrizione” mentre
nella seconda, il campo “ID” e salviamo. Ecco l'immagine che avremo:
Come risolvere il problema del contatore che inizia da 0 (zero).
Come è noto, il campo contatore (id numerico auto-incrementante) di una tabella di
LibreOffice inizia da 0 (zero), a differenza del contatore di Access che inizia da 1
(uno). Di solito questo non comporta un problema, ma a volte, ci sono dei casi nei
quali il contatore non può partire da 0. Ad esempio, se si usa il contatore di una
tabella come protocollo, questo non può partire da zero. Per fare in modo che il
contatore inizi a contare da 1 e non da zero è necessario che la tabella sia vuota, poi
con un paio di comandi SQL si converte il valore iniziale da 0 a 1. Quindi:
“Strumenti” → “SQL” → “Esegui il comando SQL”, su “Comando da eseguire”
inserire queste due righe di comando e poi “esegui”:
alter table "prova" alter column "id"
restart with 1
dove “prova” è il nome della tabella e “id” è il campo con chiave primaria. Se la
logica e la sintassi del comando sono corrette si otterrà come risposta “comando
eseguito con successo” altrimenti si riceverà un messaggio di errore.
Come registrare ed eliminare un database come sorgente di dati.
Per fare in modo se non si era specificato al momento della creazione guidata del
database, che i dati del database vengano utilizzati dagli altri programmi di
LibreOffice (come sorgente dei dati), è necessario registrarlo attraverso l'apposita
procedura, quindi aprire Base e poi:
“Strumenti” → “Opzioni” → su “LibreOffice Base” → “Database”
andando su “Nuovo”, si aprirà la finestra “File del Database” e su “Sfoglia” andiamo
a selezionare il file che vogliamo registrare. Mentre selezionando un database e su
“Elimina”, rimuoveremo il database come sorgente dati.
Come creare pulsanti di collegamento ai vari formulari (creare un menu).
Creiamo una cartella specifica per il nostro database dove andremo a salvare i files
che ci serviranno per avere il nostro piccolo e semplice menu. Quindi inseriamo il
nostro database all'interno della nostra cartella ed apriamo il formulario in modalità
modifica su cui vogliamo creare un collegamento → “Salva con nome” ed inseriamo
il nome significativo. Apriamo il file salvato (documento wrtiter) ed andiamo ad
abilitare su “Visualizza” → “Barra degli strumenti”: “Controlli per formulario” e
“Navigazione formulario”. Poi “Modo bozza on/off” per aprire navigatore formulario
tasto desto → “Formulario” → “Dati” → “Sorgente Dati”: inserire andare ad aprire il
nostro database, su “Tipo di contenuto” inserire “Tabella” mentre su “Contenuto”
inserire il nome della tabella di riferimento e salviamo. Per creare il collegamento, su
“Formulari” creiamo un “formulario in vista struttura” vuoto; inseriamo un
“Pulsante” poi tasto destro → “Campo di controllo” → “Generale” → su
“Operazione” inseriamo: “Apri documento/Pagina web”. Su “URL” andiamo a
selezionare il file precedentemente creato, salviamo ed il nostro primo collegamento
è pronto. Ripetiamo la stessa operazione per tutti i file che vogliamo inserire nel
nostro menu.
Come creare un campo calcolato in una ricerca dove non c'è corrispondenza in
tutti i record (Acquisti – Vendita = Giacenza).
Per creare un campo calcolato in una ricerca / query (i campi calcolati possono essere
creati solo con le ricerche non sui formulari come in access) dove alcuni valori non
possono essere presenti si utilizza un'istruzione di SQL: COALESCE; se in un campo
dichiarato è presente un valore, lo inserisce, se non presente inserisce un valore che
noi andremo ad impostare, così si risolve per quanto riguarda i valori non presenti.
Vediamo un esempio riferito ad una ricerca che ci permette di avere la giacenza dei
nostri articoli sottraendo alla quantità dei pezzi acquistati quelli venduti:
abbiamo due possibilità per la creazione, una è quella scritta totalmente in SQL,
mentre la seconda è fatta in modalità struttura. Il primo esempio è il seguente:
SELECT "Articoli"."Descrizione",
SUM(COALESCE("Acquisti"."Quantita",0)) - SUM(COALESCE("Vendite"."Quantita",0)) AS
"Giacenza"
FROM "Articoli"
LEFT JOIN "Acquisti" ON "Acquisti"."IDArticolo"="Articoli"."ID"
LEFT JOIN "Vendite" ON "Vendite"."IDArticolo"="Articoli"."ID"
GROUP BY "Articoli"."Descrizione"
La seconda possibilità prevede di inserire nella prima colonna il campo “Descrizione”
della tabella “Articoli” ed inserire nella funzione “Gruppo”; nella seconda colonna
inserire le seguenti istruzioni con Alias “Giacenza”:
Somma( COALESCE ( "Acquisti"."Quantita", 0 ) ) - Somma( COALESCE ( "Vendite"."Quantita",
0 ) )
Quindi avremo questa schermata:
fatto ciò, per creare il join interno (le relazioni interne della query non intaccano le
relazioni delle tabelle) si devono modificare le due relazioni in questo modo:
Dove nella voce “Campi considerati”, la prima colonna a sinistra deve essere
obbligatoriamente riferita alla tabella "Articoli" ed il campo “ID”, mentre nella
seconda colonna inseriremo la tabella “Acquisti” ed il campo “IDArticolo” con
relazione a sinistra. Stessa identica cosa per il join riferito alla tabella “Vendite”.
Guida creata da
jimjack