|
..Chi controlla il presente controlla il passato. George Orwell
|
|
|
|
|
OpenOffice & MySql - La Mediateca
By
Filippo Cerulo - Soft.Com Sas
19 settembre 2005
|
 |
|
Filosofie a confronto Quando si parla di interfacce utente ognuno ha una opinione diversa dagli altri, e le discussioni si sprecano. C'è chi ad esempio ritiene che, per un programma gestionale, il mouse sia solo di impaccio e la tastiera rende il lavoro migliore; c'è chi preferisce avere il desktop ingombro di icone e programmi, chi sceglie la pulizia assoluta e quindi focalizza un compito alla volta. Siccome il nostro argomento sono i Database, fortunatamente c'è poco da scegliere: tabella o scheda ? Se scegliamo un archivio qualsiasi, la vista a tabella (tabellare, nella terminologia di OOo) è simile a quella di un foglio elettronico, con a video una lista di records (cioè righe) e la possibilità di scorrere l'archivio di molti records alla volta. La vista a scheda (a righe o a colonne), più tradizionalmente, mostra appunto una scheda alla volta ed i campi sono sistemati sul video in modo da facilitare l'immissione dei dati. Scegliere una o l'altra modalità di interazione con l'utente dipende, appunto, dai gusti personali, ed anche dalla quantità e qualità dei dati da gestire. La tabella consente di avere a schermo un numero elevato di records, e facilita gli spostamenti nell'Archivio e l'individuazione di specifici records, se ad esempio l'archivio è ordinato. La scheda rende agevole l'immissione e la variazione dei dati di un singolo record. Io uso solo la vista tabellare se i record da gestire sono pochi; invece, come vedremo, una combinazione tra le due per archivi complessi. Ma andiamo con ordine. Il Formulario Cominceremo col creare dei piccoli moduli per la gestione delle tabelle "di contorno" del nostro Database, cioè tbargomenti e tbsupporti. Nonostante si potrebbe facilmente "popolare" di dati queste tabelle, vista la loro semplice struttura, direttamente dal pannello delle sorgenti (che si attiva, lo ricordo, con la pressione del tasto F4), costruiremo dei formulari appositi per esse. Dovremo aver già creato delle "ricerche" per le due tabelle, secondo quanto già spiegato nei paragrafi precedenti. In particolare, le due ricerche comprenderanno solo i campi Id e Descrizione, e saranno ordinate appunto per Descrizione. Il "formulario" è un documento di OOo (testo o foglio elettronico) collegato ad una sorgente dati; attraverso un formulario è possibile visualizzare e modificare le tabelle che fanno parte del nostro DataBase. In OOo esiste una funzione di auto composizione dei formulari, ma qui preferiremo la procedura manuale, che è anche più didattica. Cominciamo con un documento di testo vuoto, e visualizziamo con F4 le sorgenti dati. Per prima cosa visualizziamo la barra mobile per le funzioni del formulario, richiamabile con il pulsante presente nella barra degli strumenti sulla sinistra della finestra di OpenOffice.  Fig. 8 Formulario
Questa barra mobile comprende tutti gli strumenti dedicati alla gestione dell'interfaccia verso le sorgenti dati, e durante il lavoro è opportuno che rimanga visualizzata.  Fig. 9 Formulario
Non vogliamo in questa fase aiuti automatici, quindi disattiviamo il "pilota" (ultimo pulsante a destra della seconda riga). Siccome intendiamo usare un'interfaccia di tipo tabellare, scegliamo lo strumento "Campo di controllo Tabella" (che è l'ultimo a destra sulla prima riga) e tracciamo un bel rettangolo sul nostro foglio bianco. Otterremo più o meno questo:  Fig. 10 Formulario
Bene, abbiamo creato la base per la nostra tabella. Siamo in modalità "bozza" e ciò è anche indicato dall'attivazione dell'apposito pulsante sulla barra delle funzioni del formulario:  Fig. 11 Formulario In modalità "bozza" è possibile cambiare l'aspetto e le caratteristiche del nostro documento. Ogni elemento del formulario ha delle "proprietà" che possono essere modificate secondo le nostre necessità. Ad esempio, selezionando la tabella creata, col tasto destro del mouse possiamo scegliere la voce "formulario..." per stabilire per prima cosa quali dati vogliamo gestire. Nella finestra delle proprietà, nella tab "Generale" assegnamo il nome del formulario ("argomenti"); nella tab "dati" dobbiamo specificare i parametri di collegamento come in figura:  Fig. 11 Formulario Quindi: sorgente dati "Mediateca", Tipo di contenuto "ricerca", contenuto "rh_argomenti" (che è il nome della ricerca). Bene, ora dobbiamo "popolare" la nostra tabella, quindi posizioniamo il cursore sul bordo superiore della tabella stessa e col tasto destro del mouse scegliamo "Inserisci colonna" e quindi "campo di testo". Siccome ci servono due colonne, ripetiamo l'operazione due volte, ottenendo questo risultato:  Fig. 12 Formulario Dobbiamo ora "personalizzare" le colonne, cioè fare in modo che contangano i dati che ci servono. Selezioniamo "colonna1" ed ancora col tasto destro del mouse scegliamo la voce "Colonna...". In questo modo si apre la finestra delle proprietà della colonna. Il primo campo da visualizzare per la nostra tabella è l'identificatore, valore numerico intero assegnato dal motore di Db, quindi nel Tab "Generale" possiamo immettere questi valori:  Fig. 13 Formulario Quindi: Nome della colonna "Id", Titolo visualizzato "Id", Abilitato "No", Sola lettura "Sì". Questi due ultimi valori fanno in modo che il campo non sia modificabile. Se volete informazioni sulle altre opzioni presenti, la pressione del tasto F1 vi porta all'ottima guida in linea di OOo. Nella Tab "Dati" dobbiamo indicare quale campo desideriamo sia visualizzato sulla colonna, quindi nel Campo di Dati selezioniamo ArgId dalla casella a discesa.  Fig. 14 Formulario Passiamo ora alla colonna di descrizione. Quindi Colonna2, tasto destro, "Colonna..." ed impostiamo, nella tab "Generale", nome "Descrizione", Titolo "Descrizione", Abilitato "Sì", Sola Lettura "No", perché il campo deve essere modificabile. Nella Tab "Dati", Campo di Dati "ArgDes". Siccome la colonna di Descrizione è un po' stretta, allarghiamola trascinandola per il bordo, proprio come faremmo con una colonna di un foglio elettronico. Dovremmo avere:  Fig. 15 Formulario Benissimo, siamo alla fine, una bella pressione sul pulsante "bozza", et voilà:  Fig. 16 Formulario Abbiamo creato il nostro primo formulario. Tutto qui ? Ma non è la stessa cosa del pannello destro delle sorgenti dati ?? In effetti così sembra, ma NON E' AFFATTO la stessa cosa. Ci sono molte importanti differenze, e ne cito ora solo due, tanto per cominciare. Primo, i formulari sono completamente personalizzabili per quanto riguarda la formattazione, e questa non viene persa una volta chiuso il documento. Secondo, in un formulario si possono specificare una serie di parametri (come il "sola lettura") che nel pannello destro delle sorgenti dati non sono applicabili. Tips Date uno sguardo alla colonna "Id" del nostro formulario. Abbiamo definito l'Id come un intero ad incremento automatico. Allora, perché alcuni numeri (ad es. 11) non compaiono ? Perché se si cancella una riga, il numero assegnato non viene più riutilizzato; quindi se cancello il record 11, il motore riparte dal 12. Tornando in modalità "bozza", è possibile variare molti parametri relativi alla visualizzazione dei dati, quindi possiamo abbellire il formulario secondo i nostri gusti. Trattandosi di un documento di testo, ad inizio pagina possiamo anche assegnare un bel titolo, magari "Tabella degli Argomenti", e salvare il documento. Non ci resta che preparare un bel formulario anche per la Tabella "Supporti", che dovrebbe apparire, alla fine, più o meno così:  Fig. 17 Formulario In questo caso ho usato il pilota automatico, che è raggiungibile alla voce File -> Pilota Automatico -> Formulario; questa auto composizione rende abbastanza lineare la creazione di formulari non molto complessi, e può essere usata senza problemi se si ha fretta. Inoltre nulla vieta di modificare in seguito i formulari generati dall'auto composizione secondo le nostre preferenze. Tips Il passaggio dalla modalità di modifica della struttura del formulario alla modalità dei gestione dei dati avviene sempre con la pressione del pulsante "bozza". E' l'equivalente del passaggio in Ms Access da vista "struttura" a vista "scheda", per quelli di voi che hanno confidenza col prodotto Microsoft. Forse è il caso di ricapitolare i vari passaggi che ci hanno portato fin qui: - Abbiamo creato la struttura dei nostri archivi con MySqlCC, nell'Archivio Mediateca
- Abbiamo generato un DSN (Data Source Name) per la gestione dell'archivio tramite ODBC
- Abbiamo collegato OOo con il DSN mediante una "sorgente dati"
- Abbiamo creato due "ricerche" relative alle tabelle tbargomenti e tbsupporti, scartando il campo di tipo "timestamp" ed ordinate per Descrizione (rh_argomenti e rh_supporti)
- infine abbiamo creato due documenti di testo forniti di "formulario" per la gestione delle due tabelle.
Il Formulario per la Mediateca Siamo arrivati al momento di costruire il modulo di gestione del nostro archivio principale, cioè tbmedia. Per spiegare meglio le varie possibilità disponibili, potremmo usare due tipi di formulario diversi: il primo più semplice, basato su una struttura a tabella simile a quelle già viste. Il secondo più complesso, che mostrerebbe una struttura mista scheda / tabella, più adatta all'immissione dei dati. In questa pubblicazione descriveremo solo il primo, rimandando gli approfondimenti alla seconda parte. Cominciamo col creare una nuova ricerca (r_media) che sarà la base del nostro formulario. Includiamo ovviamente solo i campi che ci interessano, quindi :  Fig. 18 Formulario Abbiamo scelto di ordinare la ricerca per descrizione, e di includere anche il campo MId (la chiave primaria). A rigore questo campo (intero ad incremento automatico) non era necessario, però se non si include la chiave primaria le ricerche di OOo risultano di sola lettura, cioè non si possono modificare i dati. I Campi MTs (cioè il timestamp) e MNote in questa fase non ci interessano. Creata la ricerca, in un nuovo documento di testo vuoto generiamo il formulario seguendo le procedure che abbiamo già visto (manualmente o col pilota automatico, fate voi). Dovremmo ottenere più o meno questo risultato:  Fig. 19 Formulario Per un corretto funzionamento del formulario è necessario impostare,nelle proprietà delle colonne "Tipo Supporto", "Argomento", "Prezzo", la proprietà "Valore Standard" a zero (0), per fare in modo che venga assegnato in automatico un valore. La Colonna "Prezzo" è stata definita come "Campo Formattato", modo da poter prevedere l'indicazione del simbolo dell'euro. Comunque ancora non ci siamo. Infatti immettere a mano il valore numerico di corrispondenza per la Tabella "Tipo Supporto" e "Argomento" certo non è accettabile. Sarebbe meglio usare una bella casella a discesa, da cui selezionare in campo che ci interessa. Dobbiamo perciò cambiare ancora qualcosa. Torniamo in modo "bozza", selezioniamo ad esempio la colonna "Argomento" e con il tasto destro del mouse scegliamo "Sostituisci con..." e poi "Casella di riepilogo". Sempre col tasto destro selezioniamo "Colonna..." e nella tab dati impostiamo questi valori:  Fig. 20 Formulario Con questa impostazione, stiamo dicendo ad OOo che desideriamo compilare il Campo Dati "ArgId" attraverso il riferimento ad una ricerca ("rh_argomenti"), ed il campo collegato (cioè il valore da trasferire al campo dati) è il SECONDO della ricerca (cioè, appunto, ArgId). Infatti i campi della ricerca che desideriamo collegare sono numerati a partire da zero, e quindi 0 rappresenta "ArgDes". In verità questa impostazione non è molto logica, ed anche un po' limitata, perché ad esempio nella casella a discesa potrò mostrare sempre solo una colonna. La regola è dunque che, a seconda del valore impostato in "campo collegato", nella casella a discesa sarà mostrata la colonna A SINISTRA del campo scelto, cominciando a contare le colonne da zero. Per cui siccome nella mia ricerca ho solo due colonne "ArgDes" ed "ArgId", sarà mostrata "ArgDes" e sarà trasferito il valore di "ArgId", cioè appunto quello che volevamo ottenere. Adesso dovrebbe essere anche chiaro perché abbiamo posizionato ArgDes come prima colonna della ricerca. Questo meccanismo non è molto ben spiegato nella guida in linea, e si ci arriva con un po' di tentativi. Ricordatevi anche di salvare il documento dopo aver fatto le modifiche, in caso contrario le caselle a discesa sembreranno non funzionare bene. Comunque alla fine tutto si risolve, e, applicando la stessa procedura anche a "Tipo Supporto", avremo  Fig. 21 Formulario Abbiamo costruito un formulario per la nostra mediateca che: - è ordinato per descrizione, quindi la ricerca di un titolo è agevole
- ci permette di caricare i dati in modo comodo, con caselle a discesa per i campi che fanno riferimenti ad altre tabelle
- è facilmente navigabile
Possiamo, anche in questo caso, scrivere un bel titolo per il documento (ad es. MEDIATECA) e salvare. Se desideriamo che il documento di testo non sia modificabile, cioè vogliamo che l'utente si limiti ad interagire col database, la soluzione migliore è assegnare, da sistema operativo, l'attributo di "sola lettura" al file. In questo modo i dati del formulario saranno accessibili, ma tutto il resto (compresa la possibilità di passare in modo bozza) risulterà bloccato. Tips ATTENZIONE: un bug in OOo fa "sparire" a volte i valori contenuti nelle caselle a discesa, sia quando si cambia lo ZOOM, sia quando si riapre il documento. Si tratta di un bug molto fastidioso, che si risolve utilizzando il pulsante "aggiorna" nella barra degli strumenti del Database, posizionata in basso. Fig. 22 Formulario Questa barra è del tutto simile a quella che compare nelle schede di Ms Access, e serve a navigare nell'archivio. L'ultimo pulsante sulla destra permette anche l'immissione immediata di un nuovo record. Quella più interessante è, però, la barra dei pulsanti che compare alla base della finestra di OpenOffice quando usiamo il formulario. Fig. 23 Formulario Oltre ai pulsanti già visti, questa barra offre una serie di altre possibilità. In primo luogo il pulsante "aggiorna", che permette di "ricaricare" i dati del formulario, e ci è utile quando OOo non mostra, come abbiamo visto, le nostre caselle a discesa. Poi i pulsanti di ordinamento, non molto sfruttati: con i formulari basati su ricerche ordinate, infatti, non funzionano. Il più utile è senz'altro quello di "Filtro Automatico", che permette di selezionare molto velocemente i dati sulla base del contenuto di un campo. Funziona così: basta portare il cursore sul campo che contiene il valore da selezionare, e premere il pulsante. Ad esempio, se voglio selezionare tutti i CD Audio del mio archivio, posiziono il cursore sul campo "supporto" in una riga che contiene "Cd Audio" ed applico il filtro automatico. OOo mi mostrerà tutti e solo i Cd Audio. Per tornare alla situazione precedente, basta usare il pulsante "Rimuovi filtro/ordine", che si trova tre posizioni più a destra. Questa barra prevede molte altre possibilità, e vi consiglio di approfondire l'argomento con l'aiuto della Guida di OpenOffice.
|
|
|
|
| |
| JavaPortal è ideato da: |
 |

Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati sotto licenza Creative Commons
|
|
|