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. exemplo3_tela_mvc_legendaPara o uso de legendas no Browse utilizamos o método AddLegend, que possui a seguinte sintaxe:

AddLegend( <cRegra>, <cCor>, <cDescrição> )
Exemplo:
//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: 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:
SetFilterDefault ( <filtro> )
Exemplo para filtrar apenas os registros não bloqueados:
//Adiciona um filtro ao browse
oBrowse:SetFilterDefault( "ZZ8->ZZ8_BLQ==' ' .OR. ZZ8->ZZ8_BLQ=='2'" )
exemplo3_tela_mvc_filtro É possível também incluir no filtro, funções, variáveis e macros.
//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