Pegando o filtro aplicado em um alias com DbFilter – Maratona AdvPL e TL++ 123

Nesse vídeo demonstraremos a utilização da função DbFilter que serve para buscar um filtro aplicado em algum alias.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe123
Retorna o filtro aplicado em um alias
@type Function
@author Atilio
@since 14/12/2022
@see https://tdn.totvs.com/display/tec/DBFilter
@obs 

    Função DbFilter
    Parâmetros
        Não tem parâmetros
    Retorno
        + cExp        , Caractere        , Expressão do filtro na tabela

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe123()
    Local aArea      := FWGetArea()
    Local cFiltro    := ""
    Local cFiltroBus := ""

    //Mostrando a tela de filtro
    DbSelectArea('SA1')
    cFiltro := BuildExpr('SA1')
    
    //Se tiver filtro, usa o DbSetFilter para filtrar a tabela
    If ! Empty(cFiltro)
        SA1->(DbSetFilter({|| &(cFiltro)}, cFiltro))
        
    //Senão, limpa qualquer filtragem
    Else
        SA1->(DbClearFilter())
    Endif

    //Busca agora o filtro aplicado na tabela e exibe em tela
    cFiltroBus := SA1->(DbFilter())
    FWAlertInfo("Filtro aplicado: " + cFiltroBus, "Teste DbFilter")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação