M.A.Engineering
|
Cos’è un’add-in ?Una add-in è una estensione di Access. In
una installazione "full" di Access, esistono una trentina di add-in.
Chiunque abbia usato Access per più di 10 minuti è incappato in una add-in:
Gestore tabelle collegate, wizards per la creazione di documenti
(Autocomposizione maschera), Generatore Espressioni, Generatore stringhe di
connessione, ecc. Qual'è il formato di una add-in? E' un
eseguibile? Una dll? Le add-in di Access97 sono dei normali file
access, con estensione mdb, mda o mde. Microsoft
Office 2000 Developer, prevede anche la creazione di add-in in formato dll. Un sottoinsieme delle add-in sono le
autocomposizioni (wizard). Un altro sottoinsieme è quello dei generatori
(builder). Tutto ciò che non è né autocomposizione ne generatore resta
add-in. Le autocomposizione creano documenti (credo
che l’autocomposizione più nota del mondo sia l’autocomposizione maschera). I generatori invece creano stringhe, usate
come pezzi di codice, valori di proprietà ecc. (il generatore espressioni ne è
un esempio). Perchè sono così largamente usate? OverviewAccess Navigator è una add-in, ma non è un wizard, perchè non crea maschere e non crea report, né un builder perchè non genera stringhe. Access Navigator è uno strato di software che si sovrappone agli elementi base di una applicazione (chiamerò ognuno di questi elementi base con il termine generico DOCUMENTO):
e fornisce tre servizi:
in cantiere (servizi che attualmente non vengono forniti, ma sui quali sto rimuginando):
Voi
scrivete i pezzi della soluzione, poi con Access Navigator li mettete
insieme
Access Navigator
2.0 è una add-in application-oriented, orientata
all'applicazione. Questo vuol dire che i servizi da essa offerti sono rivolti
all'applicazione e perciò il "beneficiario" di tali servizi è
l'utente finale, l'utente dell'applicazione scritta da voi. Chi costruisce
applicazioni, si scontra con questi problemi: 1) Organizzazione
gerarchica dei documenti: fornire un'interfaccia explorer-like per definire
folder all'interno di ognuno dei quali poter inserire uno o più documenti
(con
documento intendo fare riferimento indistintamente a tabella, query,
maschera, report, pagina html, routine e stored procedure) dell'applicazione: 2) Navigazione documentale: agganciare
un documento con un altro. Sono sulla maschera A, voglio aprire il report B
solo con i dati associati al record corrente della maschera (A). Ma anche collegare
tra loro due maschere e far in modo che allo scrolling della maschera “master”
l’altra maschera mostri solo i dati correlati. Le relazioni hanno senso solo
tra documenti di tipo tabella,query o maschera e documenti di tipo tabella,
query, maschera, report, pagina web, funzione (sub o function) o
stored-procedure. Quando ho progettato questa funzione ho pensato alle relazioni
tra tabelle. Credo che questa funzione realizzi il concetto di specificazione di
relazioni tra le varie entità dell'applicazione. Oltre alla join-condition, una
relazione tra documenti ha altre proprietà in funzione dei tipi di documenti
coinvolti nella relatione. 3) Costruzione di filtri: fornire un'interfaccia per ogni documento, per consentire agli utenti di stampare solo una parte dei dati. Attraverso la funzione The Wheremaker è possibile definire per ogni documento una o più condizione, di salvarle e di editarle. Ci tengo a sottolineare che il WhereMaker è completo nel senso che non esiste una condizione così complessa da non poter essere creata attraverso le sue funzionalità. Esempi di condizioni create con The WhereMaker sono:
4) Allo stato attuale la gestione di più
lingue è limitata alla add-in stessa, nel senso che Access Navigator è
multilingua. Prevedo a breve di estendere tale funzionalità anche alle
applicazioni da esso gestite. StartDopo aver installato Access Navigator, nel
menu Strumenti, Aggiunte è disponibile anche la voce Access Navigator ?.? - by M.A.Engineering Repository ManagerDopo aver selezionato la voce Access
Navigator ?.? by M.A.Engineering dal menu Aggiunte, nel database corrente
vengono creati i seguenti oggetti:
Il primo pulstante,
MAE,
fa partire il Repository
Manager. Questo aspetto è importantissimo è va capito bene. Tutti i
servizi offerti da Access Navigator si basano su informazioni archiviate
in un database (detto appunto repository). L'interfaccia attraverso la
quale si gestisce questo insieme di informazioni si chiama appunto repository
manager. L'elenco delle maschere, dei report, i campi
dei rispettivi record source e molto altro ancora, sono tutte informazioni che
Access Navigator si preoccupa di memorizzare in tabelle per potervi poi accedere
all'uopo. Sarebbe stato possibile usare anche le tabelle di sistema di Access (MSysObjects
e altre) ma ho preferito farne a meno per tante ragioni. Per chi è interessato alla struttura del
repository, le tabelle sono: ztMAE_Documents: Censisce i documenti di ogni applicazione, grazie all’attributo CurrentApplicationName è possibile distinguere i documenti di una applicazione da quelli di un'altra (il repository è UNICO!!! Tutte le applicazioni di una data installazione vengono gestite da una sola istanza di Access Navigator); ztMAE_DocumentFields ztMAE_Menu: Anagrafica dei menu, infatti per ogni applicazione è possibile definire diversi menu assegnabili a utenti diversi; ztMAE_Folders:
Anagrafica
dei folder del menu ad albero; ztMAE_SubFolders:
Anagrafica
ricorsiva delle parentele Folder-SubFolder; ztMAE_DocumentsFolder ztMAE_NavigatorMaster: Anagrafica delle relazioni tra documenti; ztMAE_NavigatorDetail: Dettaglio delle relazione tra i documenti; ztMAE_WhereConditionMaster:
Anagrafica dei filtri (where condition); ogni filtro fa riferimento ad un documento
ztMAE_WhereConditionDetail La gestione del repository è
AUTOMATICA. Ci pensa Access Navigator. Quando il Repository Manager parte,
verifica la presenza delle informazioni necessarie per la gestione
dell'applicazione corrente. Se il repository è vuoto o qualcosa è cambiato
dall'ultima volta che è stato eseguito, vi chiede se volete aggiornarlo. Tale
aggiornamento di fatto consiste nell'aprire in modalità struttura tutti i
documenti (o solo quelli modificati) e nella registrazione di tutte le
informazioni ritenute necessarie per la fornitura dei servizi che Access
Navigator si prefigge di fornire. Ecco come si presenta il repository manager
quando non è ancora stata definita una struttura gerarchica (menù) tra i vari
documenti dell'applicazione. Usando il pulsante
è possibile creare un menù di default. Usando i pulsanti
è possibile assegnare e/o eliminare un folder come subfolder di un altro. Con la stessa tecnica, siamo pronti per assegnare i documenti ai vari folder. continua... data ultimo aggiornamento 22/02/2001 10:22:48 |
Created: 2000 - 05 - 01Microsoft, Visual Basic, VBA and Access 97 are registered trademarks of Microsoft Corporation. All references to Visual Basic, Visual Basic for Applications (VBA), Access and Office are for products from Microsoft Corporation. |