Vídeo - Criando Ribbons - parte 3 (
English Version
)
Chegamos na parte mais empolgante da programação de ribbons que é a de alteramos os controles de forma dinâmica. Podemos ocultar, desabilitar, inserir imagens, trocar nomes e muito mais. Isto é feito através dos atributos get's (obter).
Vejamos a lista abaixo dos atributos gets do controle button (botão):
getDescription
getEnabled
getImage
getKeytip
getLabel
getScreentip
getShowImage
getShowLabel
getSize
getSupertip
getVisible
Cenário 1 - Imagine que um aplicativo seja acessado por diversos usuários e que cada usuário tenha permissão distinta de acesso. O João não pode ter acesso ao formulário de clientes, já o Carlos tem permissão de acesso. Para esta situação podemos programar o botão da ribbon, que abre o formulário de clientes, de modo que se torne visível apenas para o Carlos. Configuramos este botão com o atributo getVisible, chamando uma determinada função. Esta função irá passar para o getVisible o valor true ou false, determinando o estado do botão (visível ou invisível) em função do usuário logado.
Escrita exemplo do botão que abre o formulário de clientes:
<button id = "btClientes" label = "Clientes" getVisible = "fncGetVisible" onAction = "fncOnAction" />
Agora, veja um exemplo bem simples da função fncGetVisible:
Public Sub fncGetVisible(control As IRibbonControl, ByRef visible)
Select Case control.id
Case "btClientes"
'Trata o botão clientes
if usuário = "joão" then
visible = false
else
visible = true
end if
End Select
End Sub
Observe que se o usuário logado for o João, o argumento visible assumirá o valor false e se forem outros usuários, o argumento assumirá o valor true.
Supondo então que o usuário logado seja o João, a função entregará ao atributo getVisible o valor false , tornando o botão invisível.
<button id = "btClientes" label = "Clientes" getVisible = "false" onAction = "fncOnAction" />
Cenário 2 - Suponha que um aplicativo esteja sendo projetado para os idiomas português e inglês, cujo os nomes dos botões da ribbon devam ser carregados em função do idioma selecionado. Neste cenário usaremos o getlabel.
Escrita exemplo do botão com o atributo getLabel:
<button id = "btClientes" getVisible = "fncGetVisible"
getLabel = "fncGetLabel" onAction = "fncOnAction" />
A função fncGetLabel :
Public Sub fncGetLabel(control As IRibbonControl, ByRef label)
Select Case control.id
Case "btClientes"
'Trata o botão clientes
if idioma = "português" then
label = "Clientes"
elseif idioma = "Inglês" then
label = "Customers"
end if
End Select
End Sub
Se a língua selecionada for a inglesa, a função passará para o getlabel, o valor "Customers".
<button id = "btClientes" getVisible = "fncGetVisible"
getLabel = "Customers" onAction = "fncOnAction" />
Cenário 3 - É muito comum também carregarmos os botões com nosso próprio banco de imagens. Esta questão será abordada na quarta aula, onde vou ensinar mais de uma forma de carregamento, inclusive a de como carregar imagens PNG.
Quando a ribbon é carregada pela primeira vez é avaliado cada um dos gets empregados e os seus valores são carregados, conforme as funções de cada um dos atributos.
Como se faz para os get's serem revalidados depois da ribbon carregada ?
A ribbon tem dois métodos chamados de Invalidate e InvalidateControl. O Invalidate revalida todos os controles de uma ribbon, enquanto que o método InvalidateControl revalida o controle que você especificar.
Agora, faça de conta que você queira, num determinado evento, revalidar o estado de dois botões (clientes e fornecedores) de uma ribbon carregada. Basta informar o atributo id do controle a ser revalidado.
objRibbon.invalidateControl ("btClientes")
objRibbon.invalidateControl ("btFornecedores")
Para se ter acesso aos métodos Invalidate e InvalidateControl é necessário efetuarmos algumas configurações. A primeira delas é a de referenciarmos a classe "Microsoft Office 12.0 Object Library" que eu demonstro na parte dois, da vídeo-aula.
A segunda configuração é passarmos a ribbon para o cache através de uma variável. Veja o código abaixo que deve ser criado num módulo global:
Option Compare Database Public objRibbon As IRibbonUI Public Sub fncRibbon(ribbon As IRibbonUI)
On Error Resume Next '---------------------------------------------- 'objRibbon servirá para realizarmos alterações 'na ribbon em tempo de execução '---------------------------------------------- Set objRibbon = ribbon
End Sub
Para completar é preciso passar a ribbon para a variável objRibbon , chamando pela função fncRibbon. Isto é feito pela atributo onLoad da tag customUI. Veja o trecho da xml:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="fncRibbon">
...
...
</customUI>
Observe os métodos disponíveis pela variável objRibbon:

O arquivo exemplo desta vídeo-aula está disponível para quem adquirir o
MontaRibbons
Vídeo-aula
Nesta vídeo-aula você terá uma breve apresentação dos atributos get's. Irá acompanhar, em detalhes, como configurar as ribbons para a troca dinâmica de idiomas. Aprenderá também como ocultar/desabilitar os controles da ribbon, em função do usúario logado.
Como EXIBIR a vídeo-aula em tela cheia?
1. clique na seta executar da tela abaixo
para iniciar a exibição do vídeo;
2. dê dois cliques rápidos na tela, quando o vídeo começar a ser
exibido.
|
Introdução: As presentes Vídeos-aulas apresentam uma visão estrutural básica sobre ribbons e pretendem abrir a sua mente para o entendimento do que é possível ser feito com esta fácil programação. |
Links |
Temas abordados |
|---|---|
| Todas as informações necessárias para você adquirir esta incrível ferramenta. | |
|
Breve apresentação do MontaRibbons Noção estrutural da xml empregada Como desabilitar toda a faixa superior do Acess Usando imagens da galeria do Office Usando controles internos do Office Personalizando a barra de ferramentas de acesso rápido
Personalizando o Botão Office
Como criar uma ribbon personalizada
|
|
|
Como montar o controle splitButton
Como montar o controle menu
Diferenças entre os controles splitButton e menu
Exportando as ribbons para os seus aplicativos
Como dar funcionalidade aos botões da ribbon
|
|
| Uso de imagens externas (GIF, JPEG, PNG e ICO) | |
| Uso de imagens externas (GIF, JPEG, PNG e ICO) armazenadas em tabela local | |
|
2 comentários Luís Augusto 5/2/2010 07:39:38 Bom dia Avelino, me sinto na obrigação de relatar a minha satisfação em ter adquirido o Monta Ribbons, o controle das Ribbons agregou grande valor ao meu pequeno projeto, dando a ele aparência profissional e confiabilidade pois consigo alterar com facilidade a caracteristica da ribbon, agradeço também ao suporte recebido. Antonio 26/6/2010 13:42:59 Boa tarde !!! Como faço para adquiri o Monta Ribbons No aguardo |