![]() |
|
|
Progetto Biblioteca REMIX OOo 3 Base v. 3.02 dicembre 2008 |
|
|
Un esempio completo con codice e macro per aprire e chiudere form, aprire report, immagini, autoexec, prestiti |
CHANGELOG
Versione attuale 3.02 (dicembre 2008)
Aggiornamenti dalla versione 3.1
In questa versione è stato aggiunto il prestito bibliotecario, completo di archivio utenti e prestiti, prestiti conclusi e ancora da concluder, libri prestabili e non prestabili perché il numero delle copie è diventato pari a 1. E' stato completato il processo di importazione ed esportazione delle macro. Sono stati aggiunti dei pulsanti al menu principale per accedere direttamente a delle maschere dove vengono mostrate e spiegate le relazioni tra le tabelle, la struttura del database, il codice delle macro, la procedura per ripristinare il codice delle macro e le istruzioni per il prestito.
Aggiornamenti dalla versione 3.0
Nella versione 3.01 è stato approfondito l'argomento delle macro, dei dialoghi, delle librerie e dei moduli. Particolare attenzione è stata posta sul problema dell'esportazione e successiva importazione delle macro. Per ogni evenienza, vengono presentati due modi alternativi (più manuali) al metodo classico.
Aggiornamenti dalla versione 2.3
Nella attuale versione 3.0 ho affrontato il problema della costruzione del menù principale, dell'inserimento di immagini nei record, della costruzione dei report, delle varie macro per gestire maschere e report inclusa la macro equivalente ad Autoexec di MS Access e della macro per chiudere l'applicazione. Inoltre è spiegato come ripristinare il codice delle macro quando si trasferisce il database da un PC all'altro.
Aggiornamenti dalla versione 2.2
Nella attuale versione 2.3 ho affrontato il problema della costruzione di una sorta di menù per poter accedere alle varie maschere o altro (report). Inoltre, per completare il progetto ho affrontato il problema dei report o rapporti o formulari che ho risolto con la "vecchia maniera" del collegamento dinamico ad uno o più fogli elettronici. Nelle prossime versioni tenterò di costruire una macro (tipo autoexec) per far aprire automaticamente una determinata maschera con un menù autonomo.
Aggiornamenti dalla versione 2.1
Ingenuamente, nella versione 2.1 le macro del progetto Biblioteca erano incorporate in una libreria del gruppo Macro Personali. Stranamente e al contrario delle macro incorporate in un documento qualsiasi di Openoffice.org 2, quando il file biblioteca.odt viene spostato su un altro computer non si porta dietro le macro incorporate e quindi ho dovuto affrontare il problema di come fare a trasportare le macro del database da un computer ad un altro.
Dopo estenuanti ricerche sul web ho trovato una soluzione. Forse non è quella canonica ma FUNZIONA!.
|
Dove
scaricare la versione italiana di OpenOffice.org 3 ?
|
|
|
|
01 Partiamo
dall'obiettivo finale |
Premessa Questa guida non è per chi inizia da zero ma non è neanche esaustiva. E' basata su un esempio mediamente avanzato nel senso che viene affrontato il problema delle tabelle con relazioni, delle sottomaschere collegate, dei campi di tipo combo, dei pulsanti, delle macro, del menu e dei report. Il minimo indispensabile per poter parlare di DATABASE e per poter competere con il rivale a codice chiuso e a pagamento MS ACCESS. Non ultimo viene introdotta un minimo di grafica. * Avvertenza - per la piena funzionalità, intesa come disponibilità dei dati alle altre applicazioni di Openoffice.org, di questo e di tutti i database è necessario registrarli nel proprio computer cliccando su Strumenti -> Opzioni -> OpenOffice.org Base -> Database -> Nuovo -> Sfoglia e poi indicare il database da registrare ed un eventuale nome per identificarlo. * Avvertenza - per poter utilizzare le macro si deve installare la libreria esterna allegata al progetto, o usare un metodo alternativo, come spiegato in seguito Chi avesse difficoltà a reperire una copia di Openoffice.org 3 può riceverla dal Centro Servizi Informativi del Comune di Campagnano di Roma in cambio di n. 2 CD ROM vuoti. mail: informatica@comunecampagnano.it Visti i continui e ripetuti crash di Openoffice.org in fase di costruzione del database vi consiglio di salvare il lavoro ogni 60 secondi e di procurarvi qualcosa per KILLARE l'applicazione come procexp per windows o xkill per GNU/linux. |
=-~°~-=
Partiamo dall'obiettivo finale : Il menu dell'archivio biblioteca | back

La maschera principale dell'archivio Biblioteca con 2 foto per ogni record

L'anteprima di stampa del Report Biblioteca

L'obiettivo finale di questo progetto (alla versione 3.02 ovvero realizzato con OOo 3 base, minor rilascio 02) è quello di creare un MENU per gestire i vari oggetti (maschere e report), una maschera per l'immissione e la ricerca di dati in un database RELAZIONALE ovvero un archivio con più tabelle collegate tra loro. La creazione di un REPORT tramite l'estensione SUN REPORT BUILDER, l'uso delle principali MACRO con relativo codice e PULSANTI inclusa la macro equivalente a AUTOEXEC di MS ACCESS e la macro per chiudere l'applicazione. E' stata anche implementata la possibilità di registrare 2 immagini per ogni record (la foto dell'autore e la foto della copertina del libro). L'archivio esemplificativo è quello di una BIBLIOTECA, il motore del database è quello proprio di Openoffice.org base ovvero HSQL.
=-~°~-=
DATABASE | back
Dopo aver scaricato ed installato la versione italiana di OpenOffice.org 3 e dopo aver aperto l'applicazione OpenOffice.org Base apparirà un pannello generale dove si può scegliere di creare un database nuovo, cliccando su avanti e poi su fine si può salvare il file con un nome tipo biblioteca nella cartella desiderata. Il file avrà la tipica estensione dei database di Openoffice.org 3 base ovvero biblioteca.odb.
Come accennato in premessa, l'opportunità di registrare il database dipende dall'uso successivo che se ne vuole fare del database. Se il database, biblioteca.odb in questo caso, dovrà essere utilizzato come fonte dati per altre applicazioni di Openoffice.org, allora si deve registrare il database, altrimenti non è necessario.
Se al momento della creazione del database non si è sicuri sull'opportunità
di registrarlo o meno, si può sempre
registrare il database in seguito passando per menu
strumenti --> opzioni --> <openoffice.org
base --> database (Nel pannello che si apre si possono aggiungere o
togliere database)

=-~°~-=
TABELLE | back
Le tabelle del database sono 6: una tabella principale LIBRI e tre secondarie collegate alla principale: AUTORE, GENERE e LINGUA. Inoltre c'è una tabella per registrare i PRESTITI dei libri e una per gli UTENTI di questa ipotetica biblioteca. La struttura, completa di chiave primaria e contatore dove necessario, delle tabelle è mostrata nella seguente figura.
|
Struttura della tabella LINGUA: |
![]() |
Struttura della tabella GENERE: |
|
|
|
|||
|
Struttura della tabella AUTORE:
|
![]() |
Struttura della tabella LIBRI:
|
![]() |
| Struttura della tabella PRESTITI: |
![]() |
Struttura della tabella UTENTI: | ![]() |
=-~°~-=
RELAZIONI | back
|
I campi correlati delle tabelle e le RELAZIONI tra la tabella principale e le tre secondarie sono mostrati in figura I tipi di relazioni sono tutte di tipo uno a molti sia verso la tabella prestiti che verso la tabella libri
|
![]() |
=-~°~-=
DATI | back
Aprire la tabella autori e immettere alcuni autori con le rispettive date e luoghi di nascita e morte (se morti)
Aprire la tabella lingua e immettere alcune lingue
Aprire la tabella genere e immettere alcuni generi
Aprire la tabella utenti e immettere alcuni utenti
NON inserire, per il momento, alcun dato nelle tabelle libri e prestiti
=-~°~-=
QUERY (RICERCHE) | back
Per ogni tabella viene creata una query (tramite procedura guidata) contenente tutti campi, ogni query ordina la tabella corrispondente per uno o più campi in maniera crescente:
| nome tabella | nome query | 1° campo ordinato | 2° campo ordinato |
| genere | Q_genere | genere | |
![]() |
|||
| lingua | Q_lingua | lingua | |
![]() |
|||
| autore | Q_autore | autore | |
![]() |
|||
| libri | Q_libri | autore | titolo |
![]() |
|||
| libri | copie_da_1_a_1 | autore | titolo |
![]() |
|||
| libri | copie_da_2_in_su | autore | titolo |
![]() |
|||
La penultima query filtrando il numero di copie = 1 serve ad indicare i libri che non sono prestabili
L'ultima query filtrando il numero di copie > 1 serve ad indicare il libri che sono prestabili
=-~°~-=
FORMS (MASCHERE - FORMULARIO) | back
| Utilizzando la "Procedura
guidata", con pochi click si creano
le maschere Q_genere,
Q_lingua e Q_autore basate sulle rispettive
Tabelle. Notare che le forms - maschere-
formulari sono nel formato tabellare (aspetto simile ad una tabella)
L'inserimento del Titolo e dell'etichetta è abbastanza intuitivo. Vedremo in seguito come creare il pulsante per chiudere la maschera
|
|
|
=-~°~-=
MASCHERA LIBRI | back
|
La maschera libri deve contenere i 5 campi genere, lingua, autore, titolo e n.copie ma in effetti si dovrà digitare solo il titolo e il numero delle copie (che dovrà anche essere aggiornato ogni volta che inizia o si conclude un prestito, in quanto le informazioni relative agli altri 3 campi sono state già registrate nelle relative tabelle. Quindi una volta digitato il titolo e il numero delle copie sarà sufficiente selezionare il valore da inserire da un apposito campo a finestra chiamato combo per gli altri campi. In questa versione ci sono due ulteriori campi di tipo immagine che vanno inseriti attivando la barra "Altri campi" premendo sull'apposito pulsante della barra "Controlli per formulario" che si attiva tramite il menu "Visualizza" --> "Barre degli Strumetni". Il pulsante che si deve attivare da questa ultima barra è "Campo di controllo immagine" Dopo aver associato il controllo immagine al campo immagine della relativa tabella, per memorizzare un'immagine in questo controllo sarà sufficiente cliccarci sopra con il tasto destro del mouse e scegliere l'immagine da registrare
|
![]() ![]() |
|
|
=-~°~-=
1° problema: Come fare se il valore da inserire nel nuovo record non è presente tra quelli disponibili nel COMBO? | back
In questo caso tramite un pulsante collegato ad una macro si aprirà la maschera basata sulla query della relativa tabella i valori della quale hanno popolato il COMBO. In questo modo si potrà aggiungere il valore mancante nella tabella e quindi nella query e quindi nel combo, previa aggiornamento della maschera con un altro pulsante di sistema.
Sequenza delle operazioni
| 1) nuovo record | 2) apro il combo genere e non trovo il valore | 3) clicco sul pulsante aggiungi un genere | 7) aggiorno la maschera principale
|
|
|
|
|
|
|
4) si attiva la macro |
5) si apre la maschera genere |
6) aggiungo il valore mancante |
|
![]() |
=-~°~-=
2° problema: Come fare se il valore da inserire nel nuovo record è solo uno di una serie di valori presenti nella tabella collegata? | back
|
Questo caso, abbastanza frequente, si risolve aggiungendo alla maschera principale una sottomaschera che contiene tutti i dati secondari relativi al campo principale che è collegato alla maschera principale. E' il caso dell'autore. Nella maschera principale c'è un combo che ci permette di selezionare univocamente un autore per nome e cognome. Però la tabella collegata AUTORE contiene altre informazioni come luogo e data di nascita ed eventuale data di morte. Il combo mostra solo il valere "nome e cognome" ma aggiungendo la sottomaschera basata sulla query e quindi sulla tabella AUTORE potremo vedere sulla maschera anche le altre informazioni. |
|
=-~°~-=
RICERCA | back
| Lo strumento di ricerca sempre disponibile perchè di sistema è
il cannocchiale che si trova in basso a
sinistra della maschera.
Cliccandolo si apre un pannello dove si può cercare qualunque cosa su qualunque campo della maschera. |
![]() |
| Un altro modo, più elegante consiste nell'inserire un "campo di controllo tabella" nella maschera. Questo campo di controllo mostra la query sulla quale è basata la maschera e quindi tutti i record. Dato che la query ordina tutti i dati in modo crescente per autore e poi per titolo è molto semplice verificare se un dato libro di un dato autore è presente nell'archivio o meno spostandosi con il cursore. E' da notare la corrispondenza del record nella tabella con il record della maschera. | ![]() |
=-~°~-=
PULSANTI e MACRO | back
|
Il primo problema (di cui sopra) è stato risolto con l'uso di
pulsanti e macro. Il pulsante si inserisce
nella maschera semplicemente cliccando sulla barra degli strumenti la seguente
immagine Ovviamente bisogna aver preparato in precedenza la macro che si desidera invocare con la pressione del mouse sul pulsante. Aprire il menu OpenOffice.org Basic Dal menu Strumenti Macro OpenOffice org Basic si può creare una nuova LIBRERIA di nome biblioteca passando per il menu Organizza macro. Poi passando per Openoffice.org basic e gestisci e poi library ed in seguito aggiungi. Questa libreria appena creata diventa interna e personale, infatti farà parte del gruppo delle "Macro personali". Le macro che dovremo scrivere per aprire le maschere o per fare altre operazioni contenute nel Module1 della libreria biblioteca. |
![]() |
Per scrivere una nuova macro si passa per gestisci e poi per nuovo, si assegna un nome e infine si scrive il codice nel linguaggio BASIC come mostrato in seguito:
=-~°~-=
MACRO, DIALOGHI, LIBRERIE E MODULI | back
Nell'installazione di Openoffice.org 3 i contenitori delle librerie delle applicazioni per Basic e Dialoghi sono localizzati in posizioni precise:
per gli utenti Windows
nella directory : C:\Documents and Settings\nomeutente\Dati Applicazioni\Openoffice.org\3\user\basic
per gli utenti GNU/Linux nella directory :
/home/nomeutente/.openoffice.org3/user/basic
In questa directory ci sono due file; script.xlc e dialog.xlc
(scritti in xml) dove le lettere lx delle
estensioni stanno per Library Container, che contengono l'indice del
codice Basic degli script e l'indice delle librerie presenti nel
sistema, rispettivamente
script.xlc
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument
1.0//EN" "libraries.dtd">
<library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink">
<library:library library:name="Standard" xlink:href="$(USER)/basic/Standard/script.xlb/"
xlink:type="simple" library:link="false"/>
</library:libraries>
dialog.xlc
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument
1.0//EN" "libraries.dtd">
<library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink">
<library:library library:name="Standard" xlink:href="$(USER)/basic/Standard/dialog.xlb/"
xlink:type="simple" library:link="false"/>
</library:libraries>
La stessa directory contiene le librerie create dall'utente. Inizialmente esiste
solo un libreria chiamata Standard. Ne file system, una libreria è rappresentata
da una directory. Il nome della directory è uguale al nome della libreria. La
directory contiene tutti i file necessari alla libreria. Nello specifico, la
libreria Standard (directory di nome Standard) contiene tre file: Module1.xba,
script.xlb e dialog.xlb
Module1.xba (la parte di estensione ba sta per basic) con il seguente
contenuto
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Module1"
script:language="StarBasic">
REM ***** BASIC *****
Sub Main
End Sub
Sub Macro1
End Sub
</script:module>
script.xlb (la parte di estensione lb sta per library) con il seguente
contenuto
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN"
"library.dtd">
<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Standard"
library:readonly="false"
library:passwordprotected="false">
<library:element library:name="Module1"/>
</library:library>
dialog.xlb (la parte di estensione lb sta per library) con il seguente
contenuto
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN"
"library.dtd">
<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Standard"
library:readonly="false"
library:passwordprotected="false"/>
Facciamo un pò di chiarezza, dal menu strumenti si accede a macro. Da macro si accesso a 4 possibilità: registrare una macro, eseguire una macro, organizzare le macro e organizzare le finestre di dialogo. Per creare, eseguire o organizzare delle macro, prima bisogna creare una libreria che automaticamente creerà il modulo Module1 che conterrà il codice in Basic vero e proprio delle macro.
L'obiettivo, come mostrato in figura, è quello di creare una nuova libreria chiamata biblioteca.
Per poter creare tale libreria si deve passare per il menu "organizza finestre di dialogo" ed in particolare per la scheda librerie e cliccare sul pulsante "nuovo", si scrive come nome libreria "biblioteca" e poi si conferma con OK

Per scrivere il codice in Basic nel Module1 della nuova libreria
biblioteca si deve passare per
strumenti --> macro -->
organizza macro -->
openoffice.org Basic --> Macro personali -->
biblioteca --> Module1 e poi cliccare su
modifica
=-~°~-=
MACRO PER APRIRE LE MASCHERE | back
|
REM ***** BASIC
***** |
il codice mostrato a sinistra è relativo alle macro per aprire le seguenti maschere: Q_libri, Q_libri1 (con foro), Q_autore, Q_genere, Q_lingua, macro, struttura, ripristino, Q_libri1_prestabili, Q_libri1_non_prestabili, istruzioni, utenti e prestiti |
|
=-~°~-= MACRO PER CHIUDERE LE MASCHERE | back
|
|
|
REM
----------------------------------------------------------------------
sub finestra_close( oEvent as object ) ThisComponent.CurrentController.Frame.close(True) end sub REM ---------------------------------------------------------------------- |
Fortunatamente per chiudere qualunque maschera è sufficiente una
unica macro Si presuppone che sia presente il codice sopra descritto |
|
=-~°~-= MACRO PER CHIUDERE LA MASCHERA MENU E USCIRE DA OOO | back
|
|
|
REM
----------------------------------------------------------------------
Sub escidaooo Dim oForms as Object, oForm as Object Dim oCtrl as Object oForms = ThisComponent.DrawPage.Forms oForm = oForms.GetByName("MainForm") 'Xray oForm oForm.ActiveConnection.flush() StarDesktop.terminate End sub REM ---------------------------------------------------------------------- |
Questa macro è differente dalle precedenti perchè oltre a chiudere la maschera MENU deve anche chiudere l'intera applicazione Openoffice.org Base |
|
=-~°~-= MACRO EQUIVALENTE AD AUTOEXEC DI MS ACCESS PER APRIRE AUTOMATICAMENTE LA MASCHERA MENU ALL'APERTURA DELL'ARCHIVIO BIBLIOTECA.ODB | back
|
|
|
REM
----------------------------------------------------------------------
Sub AutoExec On Error Goto HandleError Dim LastFrame As Object Dim NumFrames As Integer Static FormDocs As Object Dim DBDoc As Object Dim ImpName As String Dim DataSource As Object Dim Conn As Object Dim Args(1) As New com.sun.star.beans.PropertyValue Dim FormName As String Dim FormDoc As Object FormName="MENU" REM CHANGE TO YOUR FORM NAME ImpName="com.sun.star.comp.dba.ODatabaseDocument" NumFrames=StarDesktop.Frames.Count LastFrame=StarDesktop.Frames.getByIndex(NumFrames-1) If LastFrame.Frames.Count>1 Then Exit Sub End If If Not (LastFrame.Controller.Model.ImplementationName=ImpName) Then Exit Sub REM not a db doc End If DataSource=LastFrame.Controller.DataSource DBDoc=DataSource.DatabaseDocument FormDocs=DBDoc.FormDocuments Conn=DataSource.getConnection("","") REM no user/password Args(0).Name="ActiveConnection" : Args(0).Value=Conn if FormDocs.hasByName(FormName) Then FormDoc=FormDocs.loadComponentFromURL(FormName,"_self",2,Args() ) FormDoc.CurrentController.Frame.ContainerWindow.setFocus() End If HandleError: If Err<>0 Then Exit Sub End If End Sub |
Non ci sono commenti |
|
=-~°~-= MACRO PER APRIRE UN REPORT IN ANTEPRIMA DI STAMPA | back
|
|
|
REM
----------------------------------------------------------------------
sub stampa_libri( oEv as variant ) OpenReport( getReportsTC, getConnectionTC, "stampa_libri" ) end sub function getConnectionTC() as variant getConnectionTC = thisComponent.Drawpage.Forms(0).ActiveConnection end function function OpenReport( reportContainer as variant, oConnection as variant, sReportName as string) as variant Dim aProp(1) As New com.sun.star.beans.PropertyValue aProp(0).Name = "ActiveConnection" aProp(0).Value = oConnection aProp(1).Name = "OpenMode" aProp(1).Value = "open" OpenReport=reportContainer.loadComponentFromURL(sReportName,"_blank",0,aProp()) end function function getReportsTC() as variant getReportsTC = thisComponent.Parent.getReportDocuments end function REM-------------------------------------------------------------------- |
Codice utilissimo, introvabile |
=-~°~-=
ASSOCIAZIONE PULSANTI-MACRO | back
Generalmente, qualsiasi macro (con il relativo codice) va assegnato all'evento "durante l'esecuzione" del rispettivo pulsante

L'unica eccezione è la macro autoexec, la quale non può essere associata ad un evento di un pulsante ma ad un evento del database
Strumenti --> Personalizza --> Eventi --> Apri Documento

=-~°~-=
ESPORTAZIONE ED IMPORTAZIONE DELLE MACRO | back
Supponiamo di voler spostare il file bilbioteca.odb da un
computer windows a un altro computer windows o da un computer windows a
un computer Linux
o da una partizione windows a una partizione Linux dello stesso computer
o viceversa o perfino di voler o dover reinstallare Openoffice.org
Semplicemente copiando il file biblioteca.odb non vengono trasferite (copiate)
anche le macro personali che sono registrate nel modulo Module1 della libreria
biblioteca
Procedura di
esportazione/importazione manuale
Sul computer di origine, si apre Strumenti --> macro --> organizza macro -->
openoffice.org basic
si seleziona la libreria biblioteca e poi si preme il pulsante gestisci
si apre una nuova finestra con tre schede Moduli - Dialoghi - Librerie
si seleziona la libreria biblioteca della scheda librerie e si preme modifica
appare una nuova finestra con il codice di tutte le macro presenti nella
libreria
si seleziona tutto il codice, si copia in memoria e si incolla su un file di
testo esterno in ASCII chiamandolo biblioteca.txt
poi si copia il file ODB e il file biblioteca.txt sul secondo computer o seconda
partizione
si apre il file biblioteca.odb sul secondo computer,
si apre Strumenti --> macro --> organizza macro --> openoffice.org basic
nelle macro personali si noterà che non è presente la libreria biblioteca
si selezionano le macro personali e si preme il pulsante gestisci
appare una nuova finestra con tre schede, si apre la scheda libreria e si preme
il pulsante nuovo
si crea una nuova libreria di nome biblioteca
congiuntamente alla libreria biblioteca si crea anche il modulo module1
questo nuovo modulo è vuoto, ed è qui che andremo ad incollare il contenuto
precedentemente copiato
si salva, dopo aver incollato il testo e si
chiude
è tutto
in questo modo si sono importate tutte le macro personali
queste funzioneranno tutte alla condizione che siano associate ad un evento,
di solito il rilascio di un pulsante o all'apertura del documento nel caso di
autoexec
------------
Procedura di esportazione/importazione con formulario
Un'altra soluzione, alternativa, utilizzata nel database in oggetto (biblioteca.odb) è quella di copiare tutto il codice di tutte le macro e incollarlo in una maschera del database stesso. In questo modo si evita di trasportare un secondo file (il file ASCII standard1.txt) e l'utente che riceverà l'archivio (per e-mail o altro mezzo) daà autosufficiente. Infatti il codice delle macro non sarà nell'archivio delle macro ma ne sarà disponibile una copia dentro una maschera (meglio ancora se visibile da menu tramite un un pulsante).

------------
Procedura di esportazione/importazione automatica
Sul computer di origine, si apre Strumenti --> macro --> organizza macro -->
openoffice.org basic
si seleziona la libreria biblioteca e poi si preme il pulsante gestisci
si apre una nuova finestra con tre schede Moduli - Dialoghi - Librerie
si seleziona la libreria biblioteca della scheda librerie e si preme
esporta
a questo punto si può scegliere di esportare la libreria come estensione di Openoffice.org e verrà così creato il file biblioteca.oxt
oppure in formato libreria e verrà cos' creata una cartella (directory) di nome biblioteca contenente i tre file dialog.xlb, Module1.xba e script.xlb
per l'importazione o si installa l'estensione biblioteca.oxt o si installa la libreria biblioteca con la procedura analoga ma inversa (importa invece che esporta)
=-~°~-=
MASCHERA PRESTITI | back
|
La maschera prestiti deve contenere i 4 campi data del prestito, data della conclusione, utente e titolo ma in effetti si dovrà digitare solo la data del prestito quando si fa il prestito e la data di conclusione quando si conclude, in quanto le informazioni relative agli altri 2 campi sono state già registrate nelle relative tabelle. Quindi una volta digitato la prima sarà sufficiente selezionare il valore da inserire da un apposito campo a finestra chiamato combo per gli altri 2 campi. Per quanto riguarda le istruzioni per selezionare un libro prestabile (con numero di copie > 1) e come modificare il numero di copie (-1 al prestito e +1 alla conclusione) si è predisposto un pulsante che apre un'apposita finestra della quale se ne riporta il contenuto. |
![]() |
|
=-~°~-= ISTRUZIONI X PRESTITO | back CONSULTAZIONE La consultazione dei prestiti può avvenire in due modalità: sfogliando la finestra (con una registrazione per pagina) con il selettore dei record, oppure direttamente nella tabella presente nella maschera-formulario. I dati riportati nei campi con sfondo grigio chiaro in realtà non sono registrati nella tabella PRESTITI ma sono agganciati dinamicamente dalle relative tabelle UTENTI e LIBRI INIZIO PRESTITO Per fare un prestito si deve registrare la data di inizio e scegliere dal menu a tendina dei due controlli COMBO sia l'utente che vuole il prestito che il titolo del libro da prestare. Entrambi i campi sono chiavi primarie, quindi informazioni univoche, quindi non ci possono essere due utenti con lo stesso nome e cognome o due libri con lo stesso titolo. Per verificare l'elenco completo con tutte le informazioni degli utenti si può premere il tasto F4, poi tabelle e poi UTENTI. Per i libri è stato posto il vincolo per il quale non si possono prestare libri unici (con numero di copie = 1). Pertanto la scelta sarà basata sulla query copie_da_2_in_su. Per verificare l'elenco completo con tutte le informazioni dei libri prestabili si può premere il tasto F4, poi ricerche e poi copie_da_2_in_su. Appena registrato l'inizio del prestito si deve modificare il numero delle copie nella query aperta con il tasto F4 diminuendone il numero di 1 CONCLUSIONE PRESTITO La conclusione del prestito avviene semplicemente registrando la data di conclusione del prestito. Appena concluso il prestito si deve modificare il numero delle copie nella query aperta con il tasto F4 aumentandone il numero di 1 FILTRARE I PRESTITI CONCLUSI Una volta aperta la maschera dei
prestiti appariranno tutti i prestiti, sia quelli conclusi che quelli da
concludere, per filtrare i prestiti conclusi (quelli con la data di conclusione
presente) è sufficiente posizionarsi su un campo data conclusione presente e
applicare il filtro in base alla sezione. FILTRARE I PRESTITI NON CONCLUSI
Analogamente, per filtrare i prestiti ancora aperti (non conclusi) (quelli con
la data di conclusione vuota) è sufficiente posizionarsi su un campo data
conclusione vuoto e applicare il filtro in base alla selezione.
|
|
=-~°~-=
ULTIMI RITOCCHI GRAFICI | back
Nella maschera principale è stato inserito un Titolo e delle note con l'editor proprio della maschera, poi sono stati aggiunti un paio di disegni passando per STRUMENTI e poi GALLERY. Le cornici sono state prese dal menu altri campi di controllo. Il risultato finale si pò vede cliccado quì.
=-~°~-=
COSTRUIAMO UN MENU | back
|
Avendo costruito le macro per aprire e chiudere le diverse maschere, è logico e facile fare un'ulteriore macro per aprire la maschera principale (libri) e metterle tutte su una nuova maschera introduttiva che potrebbe essere chiamata MENU.
|
![]() |
|
da questo menu cliccando sul pulsante Biblioteca senza con
foto si può aprire (on top) la maschera dei libri, che può essere
chiusa con un altro pulsante appositamente predisposto. Oppure, da questa ultima
si In questo menu, in particolare ed a scopo didattico, ci sono anche dei pulsanti che aprono delle maschere contenti "il codice macro", "la Struttura del database" e le istruzioni per "ripristinare le macro" Praticamente l'archivio biblioteca.odb oltre ad essere un esempio è allo stesso tempo un tutorial quasi completo. |
|
|
=-~°~-=
REPORT | back
Per i Rapporti o Report o Formulari esiste una procedura di creazione guidata abbastanza scarna, per fortuna si può utilizzare Report Builder di SUN che si può scaricare gratuitamente come una estensione otx (sun-report-buider.oxt) da questo indirizzo http://extensions.services.openoffice.org/download/809
Per installarlo o si apre direttamente con Openoffice.org oppure tramite Openoffice.org si installa attraverso la gestione delle estensioni
La procedura per creare e/o modificare un report è abbastanza banale ed intuitiva. Con pochi click si può ottenere un sobrio report come quello che segue:

L'archivio biblioteca.odb zippato è scaricabile quì. .
scarica la versione stampabile di questo documento
Alla prossima puntata!
Centro Servizi Informativi del Comune di Campagnano di Roma informatica@comunecampagnano.it
Augusto Scatolini copyleft dicembre 2008 (tutti i rovesci sono riservati) webmaster@comunecampagnano.it
