MVC – Criando tela de browsers com Legenda e Filtro
Seguindo o mesmo exemplo postado em Criando tela em MVC separando por grupos e inserindo novos botões, iremos mostrar como inserir legendas e filtro para ser exibido no Browse.
Para o uso de legendas no Browse utilizamos o método AddLegend, que possui a seguinte sintaxe:
1 |
AddLegend( <cRegra>, <cCor>, <cDescrição> ) |
Exemplo:
1 2 3 |
//LEGENDA oBrowse:AddLegend( "ZZ8->ZZ8_BLQ==' ' .OR. ZZ8->ZZ8_BLQ=='2'", "GREEN") oBrowse:AddLegend( "ZZ8->ZZ8_BLQ=='1'", "RED") |
Ou seja, para os registros que estiverem com o conteúdo vazio ou 2 no campo ZZ8_BLQ, ficaram como verde, pois o numero 2 = Não, e todos os registros que tiverem o conteúdo com 1, significa Sim.
cRegra: é a expressão em AdvPL para definir a legenda.
cCor : é o parâmetro que define a cor de cada item da legenda.
São possíveis os seguintes valores:
- GREEN – Para a cor Verde
- RED – Para a cor Vermelha
- YELLOW – Para a cor Amarela
- ORANGE – Para a cor Laranja
- BLUE – Para a cor Azul
- GRAY – Para a cor Cinza
- BROWN – Para a cor Marrom
- BLACK – Para a cor Preta
- PINK – Para a cor Rosa
- WHITE – Para a cor Branca
cDescrição: a que será exibida para cada item da legenda
Observação
Cada uma das legendas se tornará automaticamente uma opção de filtro.
Cuidado ao montar as regras da legenda. Se houverem regras conflitantes será exibida a legenda correspondente à 1ª regra que for satisfeita.
Simples não?
[divider]
Usando filtros
Se quisermos definir um filtro para o Browse utilizamos o método SetFilterDefault, que possui a seguinte sintaxe:
1 |
SetFilterDefault ( <filtro> ) |
Exemplo para filtrar apenas os registros não bloqueados:
1 2 |
//Adiciona um filtro ao browse oBrowse:SetFilterDefault( "ZZ8->ZZ8_BLQ==' ' .OR. ZZ8->ZZ8_BLQ=='2'" ) |
É possível também incluir no filtro, funções, variáveis e macros.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//1 oBrowse:SetFilterDefault( "FNM_CODSOL == '" + cCodUsr + "' .Or. FNM_CODAPR == '" + cCodUsr + "'" ) //2 If !Empty( cFiltro ) oBrowse:SetFilterDefault( cFiltro ) EndIf //3 oBrowse:SetFilterDefault("@"+DLA150Qry()) //4 oBrowse:SetFilterDefault('C5_STATUS $ "7|8"') //5 oBrowse:SetFilterDefault("") |
A expressão de filtro é em AdvPL. O filtro definido na aplicação não anula a possibilidade do usuário fazer seus próprios filtros. Os filtros feitos pelo usuário serão aplicados em conjunto com o definido na aplicação (condição de AND).
Observação
O filtro da aplicação não poderá ser desabilitado pelo usuário