Personalizzare la barra multifunzione in Access 2007 - guida introduttiva (Parte 1) |
![]() |
![]() |
![]() |
Scritto da Cinzia Pagani |
Mercoledì 19 Novembre 2008 01:00 |
La barra multifunzione introdotta in Office 2007 è sicuramente la novità più d’impatto di questa suite. In questa guida vedremo come è possibile personalizzare la barra nelle nostre applicazioni Access.
Personalizzare la barra multifunzione significa creare un file XML che è conforme ad uno schema predefinito. In Access 2007 ci sono due modi per personalizzare la barra multifunzione (o ribbon):
1.Creare una tabella di sistema USysRibbons contenente i campi
2. Usare il metodo LoadCustomUI dell’oggetto Application , questo è anche l’unico metodo utilizzabile nei progetti ADP. Per scrivere il codice XML del Ribbon è consigliabile procurarsi Visual Studio 2005 o 2008 Express che grazie all’Intellisense ci suggeriscono proprietà e metodi supportati da ciascun tag. Poiché in XML è importante la distinzione maiuscole/minuscole l’intellisense ci aiuterà a costruire un XML formalmente corretto.
Per far partire Access con la barra standard basta avviare il DB tenendo premuto il tasto Shift. All’interno della barra potete usare le icone che sono usate in tutte le applicazioni Office, quindi non solo quelle presenti in Access, oppure delle immagini personalizzate a vostra scelta. Per trovare facilmente il nome dell’immagine Office da associare al vostro pulsante è possibile usare questo trucco: Menu Office – Opzioni di Applicazione – Personalizzazione – rilasciate il mouse sopra l’icona di cui volete conoscere il nome e comparirà una finestrella dove l’ultimo elemento tra parentesi tonde è il nome dell’immagine. In alternativa è possibile scaricare questo file con la lista di tutte le icone Una barra multifunzione è tipicamente costituita da un insieme di schede <tabs> Ogni scheda <tab> è costituita da uno o più gruppi <group>
</tab>
Quando una scheda appare in un particolare “contesto” si parla di scheda contestuale
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="myNameSpace"> All’interno di un gruppo possono esserci vari elementi come:
Tutta la programmazione del ribbon avviene attraverso l’utilizzo di procedure di CallBack. All’atto della definizione del ribbon dichiaro i nomi delle procedure che dovranno essere eseguite allo scatenarsi di un particolare evento o che impostano alcune proprietà dell’oggetto. Ogni oggetto che compone il ribbon dispone di un suo insieme di “eventi” e”proprietà” che scatenano la procedura di callback. Evento OnLoad<customUI xmlns=http://schemas... onLoad=“onRibbonLoad”> La procedura scatenata dall’evento onLoad dell’elemento customUI è molto importante perché ci consente di ottenere un puntatore al ribbon personalizzato, attraverso il quale potremo invalidare dei controlli durante l’esecuzione dell’applicazione, al fine di farli rispecchiare la situazione “corrente” che potrebbe essere diversa rispetto a quando il ribbon è stato caricato. Global g_ribbonInv as IRibbonUI Public Sub onRibbonLoad (theRibbon As IRibbonUI) Set g_ribbonInv = theRibbon End Sub
A livello del tag customUI è possibile definire anche la funzione che si occuperà del caricamento delle immagini a livello globale in tutto il ribbon, anziché definirla a livello del singolo oggetto. Es. Supponendo che le immagini si trovino in una cartella Immagini nello stesso percorso del db: Sub LoadImage(ImageName as string,Byref Image) Dim strPath as String strPath = CurrentProject.Path & “\immagini\” & imageName
Set Image=LoadPicture(strPath) End sub
L’elemento <RibbonUI> dispone di una sola proprietà: startFromScratch =True/False Se impostata a true le schede standard vengono nascoste, il pulsante Office viene ridotto e così anche la Quick Access ToolBar Tutti gli oggetti hanno una proprietà che consente di individuarli in maniera univoca, che può essere una di queste tre:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="myNameSpace"> <button idQ="x:myButton" …="" />
</customUI> Evento OnAction Questa procedura viene eseguita quando l’utente clicca sull’oggetto e prende diversi parametri a seconda dell’oggetto a cui si riferisce. Button Sub OnAction(control As IRibbonControl)
Dropdown Sub OnAction(control As IRibbonControl, selectedId As String, selectedIndex As Integer) Gallery Sub OnAction(control As IRibbonControl, selectedId As String, selectedIndex As Integer) CheckBox Sub OnAction(control As IRibbonControl, pressed As Boolean)
ToggleButton - Sub OnAction(control As IRibbonControl, pressed As Boolean)
Evento OnChangeQuesta procedura viene eseguita sulla selezione di un elemento o dalla modifica di una casella di testo, si applica a: • ComboBox • EditBox Sub OnChange(control As IRibbonControl, text As String)
Altre procedure di callback• getEnabled – Sub GetEnabled(control As IRibbonControl, ByRef enabled) • getDescription – Sub GetDescription(control As IRibbonControl, ByRef description) • getVisible – Sub GetVisible(control As IRibbonControl, ByRef visible) • getImage – Sub GetImage(control As IRibbonControl, ByRef image) • getLabel – Sub GetLabel(control As IRibbonControl, ByRef label) • getSize – sub GetSize(control As IRibbonControl, ByRef size) • getScreentip – Sub GetScreentip(control As IRibbonControl, ByRef screentip) • getSupertip – Sub GetSupertip(control As IRibbonControl, ByRef screentip) Evento getItemCountSi aplica a comboBox, dropDown, gallery e permette di impostare il numero di elementi che costituiscono l’oggetto – Sub GetItemCount(control As IRibbonControl, ByRef count) Evento getItemLabelSi aplica a comboBox, dropDown e gallery e consente di impostare ogni singola etichetta degli elementi Sub GetItemLabel(control As IRibbonControl, index As Integer, ByRef label)
OfficeMenu e Quick Access ToolbarE’ possibile personalizzare anche il menu Office e la Quick Access Toolbar, utilizzando i tag: <officeMenu> e <qat> figli del tag <ribbon> Es: <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" > <ribbon startFromScratch="true" > <officeMenu> <button idMso="FileNewDatabase" visible="false"/> <splitButton idMso="FileSaveAsMenuAccess" visible="false"/> <button idMso="FileOpenDatabase" visible="false"/> <button idMso="FileCompactAndRepairDatabase"/> </officeMenu> <qat > <documentControls> <button idMso="FilePrintQuick" /> <button idMso="FilePrintPreview"/> <button idMso="FileCompactAndRepairDatabase"/> </documentControls>
</qat> </ribbon> </customUI> StrumentiEsistono diversi tools che consentono di personalizzare la barra multifunzione, che generano il codice XML in modo “visuale”: • Ribbon Creator (Gunter Avenius MVP) – http://www.accessribbon.de/en/index.php • Ribbon Customizer (Patrick Schmid MVP) – http://pschmid.net/office2007/ribboncustomizer/support.php Se invece decidete di cimentarvi con l’XML, queste risorse vi saranno senz’altro utili:
|
Ultimo aggiornamento Sabato 19 Settembre 2009 21:03 |