Exemplo AddFilter com FwMarkBrowse

Boa tarde!

Gostaria de saber se alguém possui algum exemplo do método AddFilter da classe FwMarkBrowse.

Preciso criar um filtro onde a propriedade lFilterAsk seja igual a .T., isso é, o usuário irá informar o conteúdo do filtro no momento da execução.

Como configurar quais campos da tabela serão informados para o usuário filtrar? No meu caso, serão dois campos de tabela temporária: TMP_COD e TMP_LOJA.

Agradeço pela ajuda.

Você diz aquele filtro padrão do protheus que tem no canto superior direito?

Camarada, demorei pra achar sua pergunta para descobrir que não foi respondida :'(. Não teve jeito, tive que me virar nas gambiarra. Não sei se funciona com FWMarkBrowse mas com a FWMbrowse funcionou direitinho. Consegui este código tornando a variável do browse privada e pegando o array de filtros via depuração, ou seja, basta você criar manualmente o filtro que quiser e depois utilizar sua função informada no método SetIniWindow para visualizar como foi salvo o filtro no padrão do protheus, e então copiar tudo para o seu código ;)

Obs: Estou utilizando em tabela temporária, e mesmo assim não tive problemas.


Private oBrowse

//Filtro de expressão exibido quando você cria seu filtro manualmente
oBrowse:AddFilter("Descricao Contem", '"%TMP_DESC0%" $ UPPER(TMP_DESC)',,.F.,,.T.)

//Bloco de código que é executado na inicialização da janela do browse
oBrowse:SetIniWindow({||UpdBrw()})

//Sua função para alterar o filtro do browse durante a execução 
//Está feito na mão mas acredito que você pode facilitar a programação pela função FWFilter
Static Function UpdBrw()
Local aFiltroDes := {  {"TMP_DESC","FIELD","DESCRICAO Contém a expressão '%TMP_DESC0%'",'"%TMP_DESC0%" $ UPPER(TMP_DESC)',"UPPER(TMP_DESC) LIKE '%%TMP_DESC0%%'"},;
                       {"..","OPERATOR","","",""},;
                       {"%TMP_DESC0%","EXPRESSION","","","",.F.};
                    } 
IF oBrowse:OFWFILTER:AFILTER != nil .AND. Len(oBrowse:OFWFILTER:AFILTER) > 0 .AND. type("oBrowse:OFWFILTER:AFILTER[1][3]") == "C" .AND. EMPTY(oBrowse:OFWFILTER:AFILTER[1][3])

    oBrowse:OFWFILTER:AFILTER[1][3]:= aFiltroDes[1][5]//"UPPER(TMP_DESC) LIKE '%%TMP_DESC0%%'"
    oBrowse:OFWFILTER:AFILTER[1][4]:= aFiltroDes 
ENDIF

Return .T.

Bom dia, Anderson! Na versão mais recente da Lib eu vi que ao MarkBrowse já possibilita a criação de filtros, anteriormente quando o mesmo era baseada em tabela temporária o botão não era habilitado. Usando essa Lib acabou que não tive mais que forçar a criação de filtros no browse. Mas obrigado pela ajuda. :slight_smile: