Para crear cada ficha se utiliza la siguiente etiqueta: <tab id=»ficha02″ label=»FICHA02″ visible=»true»> </tab> En donde tab id=”ficha02” indica un id único en todo el código xml necesario para crear cada cinta de opciones. Label=”FICHA02” indica el nombre que el usuario final vera en la pantalla de Access. Se recomienda q este nombre sea el mismo q el nombre de tab Id Visible=”true” muestra u oculta la ficha. Hasta aquí el código debe estar asi: <customUI xmlns=»http://schemas.microsoft.com/office/2006/01/customui»> <tabs> <tab id=»shortcutsID» label=»SHORTCUTS» visible=»true»> </tab> <tab id=»ficha02″ label=»FICHA02″ visible=»true»> </tab> <tab id=»ficha03″ label=»FICHA03″ visible=»true»> </tab> </tabs> </customUI> |
La siguiente etiqueta es:<group id=»aplicacion» label=» APPLICATION»></group>Este etiqueta agrupa botones o menues y su nombre se visualiza debajo de la cinta de opciones, en la siguiente imagen se muestra en círculos rojos el nombre de cada grupo. |
Para obtener el nombre de las imágenes Microsoft tiene un libro de Excel en este momento no tengo dicho link pero lo subi a mi skydrive el link es: http://cid-c8c51ba9513ed58a.office.live.com/self.aspx/P%c3%bablico/Office2007IconsGallery.xlsm aclaro este libro de Excel contiene macros pero son de Microsoft no son mias no tienen ningún riesgo. Este libro el nombre de las imágenes de las aplicaciones de office para ver el nombre te vas a la ficha Developer, haces clic en cada galería y dentro de cada galería están todas las imágenes de Office hace un clic en cada imagen y aparece una ventana o cuadro de dialogo con el nombre de cada imagen. Este nombre debe escribirse dentro de la etiqueta imageMso=»QueryAppend». Debe escribirse igual como se muestra en la ventana imageMso, respetando mayúsculas y minúsculas. |
Este proceso nos limita a q solo podemos utilizar las imágenes de office en otras palabras solo las imágenes de estas 9 galerias en el libro Office2007IconsGallery.xlsm.
Para poder utilizar nuestras imágenes o imágenes q no estén en estas galerías debemos utilizar la siguiente función:
Function ObtenerPicture(control As IRibbonControl, ByRef image)
Select Case control.Id
Case «idBoton»
Set image = LoadPicture(CurrentProject.Path & «\nombredelpicture.jpg»)
End Select
End Function
En donde:
Cada case el nombre que se agrego en cada id de cada etiqueta (button ID=”ACR”).
Por ejemplo agregaremos un botón a la cinta opciones asi:
<button id=»logo»
size=»large»
label=»Ria Envia»
getImage=»ObtenerPicture»
onAction=»accion»
screentip=»Logo de la Empresa»
supertip=»Este es el identificador de la Empresa q está utilizando esta aplicacion»
/>
Analizando este código podemos ver q la línea de código imageMso=»ChartShowData» cambio a getImage=»onGetImages»; arriba en negrita, en donde getImage indica q se debe leer una función y ObtenerPicture es el nombre de la función q ya creamos anteriormente q devuelve una imagen. El resultado es el siguiente:
El primer botón tiene una imagen propia de la empresa (getImage=»ObtenerPicture») y el otro botón tiene una imagen prediseñada de Office (imageMso=»ChartShowData»).
Para darle acción a cada botón la forma más fácil q yo conozco es crear macros y asignarlas a la etiqueta OnAction de cada botón.
Ejemplo se crea una macro con diferentes opciones o con submacros o un depositario para macros asi:
Después a cada boton en la etiqueta OnAction se le coloca en nombre de la macro y de la submacro asi:
OnAction= “MacroPrincipal.submacro”
OnAction = “MenuRibbon.country”
<button id=»acr»
size=»large»
label=»ACR»
imageMso=»ChartShowData»
onAction=» MenuRibbon.ACR»
screentip=»UPDATE ACR»
supertip=»Open and update basic information to ACR according title 31 information»
/>
Para crear un menú de la siguiente forma
El código es:
<menu id=»MyMenu» size=»large» imageMso=»TabOrder» label=»Stadistics» itemSize=»normal»>
<menu id=»AVGID» label=»AVERAGE» itemSize=»normal»>
<button id=»avgbysender»
label=»Average by Sender Name»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYSENDERN»/>
<button id=»avgbysenderadd»
label=»Average by Sender Address»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYSENDERAD»/>
<button id=»avgbybenef»
label=»Average by Paying Country»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYCOUNTRY»/>
</menu>
</menu>
Las indicaciones para las etiquetas son las mismas q ya se explicaron anteriormente a diferencia de la etiquteta itemSize=»normal» o itemSize=»large» q mostrara los iconos de diferente tamaño.
El resultado será el siquiente:
El código desarrollado hasta aquí es el siguiente:
<customUI xmlns=»http://schemas.microsoft.com/office/2006/01/customui»>
<ribbon startFromScratch=»true»>
<tabs>
<tab id=»shortcutsID» label=»SHORTCUTS» visible=»true»>
<group id=»aplicacion» label=» APPLICATION»>
<button id=»logo» size=»large»
label=»Ria Envia»
getImage=»onGetImages»
onAction=»accion»
screentip=»Logo de la Empresa»
supertip=»Este es el identificardor de la Empresa q esta utilizando esta aplicacion» />
<button id=»acr»
size=»large»
label=»ACR»
imageMso=»ChartShowData»
onAction=»nombreDeMacroOfuncion»
screentip=»UPDATE ACR»
supertip=»Open and update basic information to ACR according title 31 information»
/>
<menu id=»MyMenu» size=»large» imageMso=»TabOrder» label=»Stadistics» itemSize=»normal»>
<menu id=»AVGID» label=»AVERAGE» itemSize=»normal»>
<button id=»avgbysender»
label=»Average by Sender Name»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYSENDERN»/>
<button id=»avgbysenderadd»
label=»Average by Sender Address»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYSENDERAD»/>
<button id=»avgbybenef»
label=»Average by Paying Country»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYCOUNTRY»/>
</menu>
</menu>
</group>
</tab>
<tab id=»ficha02″ label=»FICHA02″ visible=»true»>
</tab>
<tab id=»ficha03″ label=»FICHA03″ visible=»true»>
</tab>
</tabs>
</ribbon>
</customUI>
Para un resultado mas estetico se pueden utilizar una par de etiquetas:
<box id=»myBox1_v» boxStyle=»vertical»>
Lo mas relevante de esta etiqueta es q permite ordenar de forma horizontal o vertical los botones para lograr este efecto se cambia el valor de la etiqueta boxStyle=”horizontal” o boxStyle=”vertical”.
Otra etiqueta es: <separator id=»MySeparator01″/> esta etiqueta crea un separado entre una y otra etiqueta de tipo box. Estas dos etiquetas se utilizan después de la etiqueta GROUP y antes de la etiqueta BUTTON
el código es el siguiente:
<group id=»aplicacion» label=» APPLICATION»>
<box id=»myBox1″ boxStyle=»vertical»>
Botones
</box>
<separator id=»MySeparator01″/>
<box id=»myBox2″ boxStyle=»vertical»>
</box>
La cinta de opciones lucira asi:
El único cambio q se visualiza es una línea entre los botones y el menú para ver una diferencia notable deberíamos tener mas botones y no de tamaño large. A continuación muestro una cinta de Opciones o Ribbon de otra aplicación q desarrolle en donde podremos ver la diferencia de utilizar la etiqueta BOX y SEPARATOR. Véase botones Department, Status y Job Titles
Etiqueta box con el valor BoxStyle=”horizontal” | Etiqueta box con el valor BoxStyle=”vertical” |
Otro ejemplo de menú con el atributo itemSize=”large” :
Hasta aquí tenemos la información suficiente para crear una barra de opciones. De aquí en adelante se explican detalles para mejorar la aplicación.
El siguiente código oculta la cinta de opciones de Access y solo muestra nuestra cinta de opciones
<ribbon startFromScratch=»true»>
Q se digita después de la etiqueta <customUI xmlns …
También el siguiente código es necsario para ocultar la ficha CREATE de la cinta de opciones de access
<tab idMso=»TabCreate» visible=»false» />
Se digita después de la etiqueta <tabs>
Con el siguiente código se habilitan y deshabilitan la opción del menú de Office:
Este código se digita después de la etiqueta <ribbon startFromScratch=»true»> esto deshabilita las opciones avanzada q solo deberían estar habilitadas para el desarrollador y deja solo las herramientas necesarias a mi criterio para el usuario final:
La etiqueta
<commands>
<command idMso=»ApplicationOptionsDialog» enabled=»true»/>
</commands>
Habilita o deshabilita el boton Access Options ver imagen anterior solo es necesario cambiar el valor enable=”false”, este boton es mejor deshabilitarlo cuando tenemos usuarios finales q se creen usuarios avanzados y después de joder, perdón des configurar la aplicación nos llaman diciendo q no saben por q se arruino el sistema. Este código se debe digitar antes de la etiqueta <ribbon startFromScratch=»true»>
IMPORTANTE:
Para activar la ficha Developer o Programador en Excel: http://www.youtube.com/watch?hl=es&v=BrvUV3hqdf4
EL CODIGO FINAL SERA:
<customUI xmlns=»http://schemas.microsoft.com/office/2006/01/customui»>
<commands>
<command idMso=»ApplicationOptionsDialog» enabled=»true»/>
</commands>
<ribbon startFromScratch=»true»>
<officeMenu>
<button idMso=»FileBackupDatabase» visible=»true»/>
<button idMso=»FileCompactAndRepairDatabase» visible=»true»/>
<button idMso=»FileNewDatabase» visible=»false»/>
<splitButton idMso=»FileSaveAsMenuAccess» visible=»false»/>
</officeMenu>
<tabs>
<tab idMso=»TabCreate» visible=»false» />
<tab id=»shortcutsID» label=»SHORTCUTS» visible=»true»>
<group id=»aplicacion» label=» APPLICATION»>
<box id=»myBox1_v» boxStyle=»vertical»>
<button id=»logo» size=»large» label=»Ria Envia» getImage=»onGetImages» onAction=»accion»
screentip=»Logo de la Empresa» supertip=»Este es el identificardor de la Empresa q esta utilizando esta aplicacion» />
<button id=»acr»
size=»large»
label=»ACR»
imageMso=»ChartShowData»
onAction=»nombreDeMacroOfuncion»
screentip=»UPDATE ACR»
supertip=»Open and update basic information to ACR according title 31 information»
/>
</box>
<separator id=»MySeparator01″/>
<box id=»myBox2_v» boxStyle=»vertical»>
<menu id=»MyMenu» size=»large» imageMso=»TabOrder» label=»Stadistics» itemSize=»normal»>
<menu id=»AVGID» label=»AVERAGE» itemSize=»normal»>
<button id=»avgbysender»
label=»Average by Sender Name»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYSENDERN»/>
<button id=»avgbysenderadd»
label=»Average by Sender Address»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYSENDERAD»/>
<button id=»avgbybenef»
label=»Average by Paying Country»
imageMso=»FilePrepareMenu»
onAction=»menuRibbon.BYCOUNTRY»/>
</menu>
</menu>
</box>
</group>
</tab>
<tab id=»ficha02″ label=»FICHA02″ visible=»true»>
</tab>
<tab id=»ficha03″ label=»FICHA03″ visible=»true»>
</tab>
</tabs>
</ribbon>
</customUI>
Existen mas objetos, etiquetas, otras formas de llamar funciones y demás objetos de access q se pueden utilizar en una cinta de Opciones pero con estos es mas que suficiente para crear un sistema de menues y accesos directos (botones) para q el usuario final tenga acceso a las diferentes funciones de la base de datos.
Aclaro que esta es solo una forma de crear Ribbon y he tratado de hacerlo de una forma sencilla, si tenes alguna pregunta publicala en este articulo y con gusto te contesto.
Actualizacion de este Articulo: http://wp.me/p16zEv-19