Formulários e relatórios "zebrados"
Programar para dar uma aparência "zebrada" a um relatório é relativamente fácil, mas manipular essa aparência em formulário é complicado. Você utiliza uma API ou uma "Formatação Condicional". Isso no Access 2007 foi resolvido e sem nenhuma linha de programação, bastando alterar duas linhas na lista de propriedades. veja na figura abaixo:

No exemplo, mantive a cor do fundo branca e selecionei cinza para a cor de fundo alternativa. Veja como ficou:

Você pode manipular essa configuração através de um novo evento,
chamado "Ao pintar", incorporado na seção detalhe de formulários e
de relatórios. 
Com o evento "Ao Pintar", podemos ir muito além do que "zebrar" formulários ou relatórios. Veja, neste meu exemplo, quero destacar valores maiores do que 1 mil reais, pintando a faixa de azul. Observe o código:
Private Sub Detalhe_Paint() '---------------------------------- 'Alterando cor da faixa '---------------------------------- If Me!ValorVerba > 1000 Then '--------------------------------------------------- 'Pinta tanto a faixa alternativa como a faixa normal '--------------------------------------------------- Me.Detalhe.AlternateBackColor = RGB(132, 161, 198) ' azul Me.Detalhe.BackColor = RGB(132, 161, 198) 'azul Else '---------------------------------------------------------- 'Se for menor do que 1000, pinta nos padrões estabelecidos, 'ou seja, branco para faixa normal e cinza para a 'faixa alternativa '---------------------------------------------------------- Me.Detalhe.BackColor = RGB(255, 255, 255) 'Branco Me.Detalhe.AlternateBackColor = RGB(236, 236, 236) 'cinza claro End If
End Sub
Como resultado do código aplicado, temos:
Podemos aproveitar para manipular a cor da fonte. Neste
exemplo, o valor que tiver superior a 1 mil reais ficará em
vermelho. Veja como ficou a alteração do código:
Private Sub Detalhe_Paint() '------------------------------- 'Alterando cor do texto '------------------------------- If Me!ValorVerba > 1000 Then Me!ValorVerba.ForeColor = 255 'vermelho Else Me!ValorVerba.ForeColor = 0 'preto End If '---------------------------------- 'Alterando cor da faixa '---------------------------------- If Me!ValorVerba > 1000 Then '--------------------------------------------------- 'Pinta tanto a faixa alternativa como a faixa normal '--------------------------------------------------- Me.Detalhe.AlternateBackColor = RGB(132, 161, 198) ' azul Me.Detalhe.BackColor = RGB(132, 161, 198) 'azul Else '--------------------------------------------------------- 'Se for menor do que 1000, pinta nos padrões estabelecidos, 'ou seja, branco para faixa normal e cinza para a 'faixa alternativa '--------------------------------------------------------- Me.Detalhe.BackColor = RGB(255, 255, 255) 'Branco Me.Detalhe.AlternateBackColor = RGB(236, 236, 236) 'cinza claro End If
End Sub
Como resultado temos:
Nos relatórios funciona da mesma maneira. Agora é só usar a sua criatividade!
Os dez artigos mais visitados
MontaRibbons v3.1 - Assistente completo para criar ribbons no Access
Utilizando Classe no Access - Introdução
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Criando Ribbons parte 1 - Conhecendo a estrutura Xml
Vídeo - Segurança máxima, usando o OPEN
DVD - Coletânea de artigos, vídeos e exemplos do site
Vídeo - Manutenção e Sistema de Backup com Barra de Progresso
Vinculando tabelas com barra de progresso ( front-end x back-end )
Vídeo - Criando Ribbons parte 4 - Imagens externas em pasta local
Gerar relatórios em pdf e enviar por email
|
4 comentário(s) Mauro Fuzetto 3/5/2009 02:54:46 Muito valiosos as capturas de tela para quem está começando como eu. Já havia visto o recurso de zebrar as linhas de formulários mas nunca usei, de modo que agora tenho uma idéia mais precisa de como implementar. Além disso, para mim foi novidade a possibilidade de determinar a cor de uma linha baseado ou de mudar a formatação do texto baseado em certo valor. Gostei também da alternância entre captura de tela e código. Quando já se está familiarizado com certas funções e maneiras de se fazer algo via VBA talvez a captura não seja tão importante; mas daà é ensinar para quem já sabe. Para quem está começando ou num nÃvel intermediário (meu caso) poder visualizar o efeito do que se estpa dizendo é valiosÃssimo. Sem contar que economiza a escrita de um bom número de parágrafos meramente descritivos. Obrigado por compartilhar o que você sabe. Antonio João 9/7/2009 17:25:47 Caro Sampaio, Antes de mais nada, obrigado por compartihar sempre seu conhecimento com todos nos mortais, voce e mesmo uma pessoa abençoada, sou seu fã a muitos anos, sonho um dia ter pelo menos uns 30% por cento do seu conhecimento e esforço, eu nao tenho a mesma capacidade de apreendizado tal qual voce pois ja estou perto dos 60 anos e nem sempre a cabeça ajuda, mas sou fussão, tento apreender de todas a maneiras e graças a pessoas como voce acabo sobrevivendo um pouco nesta vida tao concorrida, te escrevi tudo isto para voce sentir o quanto e importante a sua ajuda no sentido de nos orientar, entao deixo aqui meus agradecimentos e minha sincera admiração pelo seu trabalho prestado a todos que usam e recorrem do seu conhecimento, um abraço. Avelino Sampaio 10/7/2009 14:19:35 Fico muito lisonjeado. O jeito de retribuir é caprichando ainda mais. Grato João Ricardo 29/8/2009 23:26:31 Muito obrigado Avelino. Estou pesquisando aqui depois de ter acessado sua ajuda no Fórum do Orkut. Valeu mesmo. É mais simples do que eu pensava e mais util do que podia imaginar. Abraços |