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