Login
Cerca all'interno di JavaPortal
Help
Home Page Documentazione Forum Progetti Partner Pubblica!
Documentazione > Tutorial > OpenOffice & MySql - La Mediateca
Modifica Impostazioni
Hide
Best Practices
EJB
Frameworks
Howto
J2EE
J2ME and Wireless
J2SE
JSP e Servlet
Java Application Server
Java IDE/Tools
Java Media
Java Security
Java Sys Admin
Java e XML
Java e SQL
OpenSource Java
Patterns
Repository
Tesi
UML
Web Services
Slide
White Paper di jws.it
project management
Eventi
Groovy

Hai una tesi in Java?
Tesine preparate
per esami?
Pubblica tutto su
JavaPortal!

Scrivi al nostro staff


VMware ha comprato SpringSource


Publio Cornelio Tacito
Tutte le cose che ora si credono antichissime furono nuove


UTILIZZARE LOG4J


Rss Feed
Home Page
Articoli
News
Forum
Classi

  Visualizza Commenti (0) Aggiungi Commento    
Add to Shortcuts
 
Vota l'articolo
OpenOffice & MySql - La Mediateca
By Filippo Cerulo - Soft.Com Sas
19 settembre 2005

  OpenOffice & MySql - La Mediateca

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.

Qualche informazione in più

OOo ha altre interessanti caratteristiche quando adoperiamo un formulario. Innanzi tutto vi sarete accorti che il "Campo di Controllo Tabella" ha alla base una piccola barra degli strumenti.

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.

Username:
Password:
To sign up for an account, click register... Register
Hide





Powered By



Campagna Anti-IF


Skin


PARTNER
Zio Budda
HostingJava


LICENZA



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

Sitemap  © 2002-2004 Copyright Information. Privacy . Today is domenica 1 agosto 2010