No vídeo de hoje, vamos demonstrar em como aplicar um filtro em um browse de cadastro padrão através de uma tecla de atalho.
A dúvida de hoje, nos perguntaram, se seria possível filtrar um browse de cadastro, utilizando uma tecla de atalho.
Pensando nisso, montamos esse exemplo, onde demonstramos em como criar um atalho na tela de pedido de compras e depois aplicar um filtro ao acionar esse atalho.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function MT120BRW Ponto de entrada para adicionar outras opções no menu do Pedido de Compras @type Function @author Atilio @since 26/01/2024 @see https://tdn.totvs.com/pages/releaseview.action?pageId=6085467 /*/ User Function MT120BRW() Local aArea := FWGetArea() //Adiciona atalho para filtrar o browse SetKey(VK_F7, {|| u_zVid0086()}) FWRestArea(aArea) Return /*/{Protheus.doc} zVid0086 Função para abrir uma tela de filtro para escolher o fornecedor @type user function @author Atilio @since 26/01/2024 /*/ User Function zVid0086() Local lOk := .F. Local cQry := "" Local cFiltro := "1 == 1" Local oBrowse //Somente se não tiver dentro da tela de pedido If ! FWIsInCallStack("A120Pedido") //Monta a busca de fornecedores que não estão bloqueados cQry += " SELECT " + CRLF cQry += " A2_COD, " + CRLF cQry += " A2_NOME, " + CRLF cQry += " A2_NREDUZ, " + CRLF cQry += " A2_CGC " + CRLF cQry += " FROM " + CRLF cQry += " " + RetSQLName("SA2") + " SA2 " + CRLF cQry += " WHERE " + CRLF cQry += " A2_FILIAL = '" + FWxFilial("SA2") + "' " + CRLF cQry += " AND A2_MSBLQL != '1' " + CRLF cQry += " AND SA2.D_E_L_E_T_ = ' ' " + CRLF //Chama a tela, pesquisando fornecedores lOk := u_zConsSQL(cQry, "A2_COD", "", "A2_COD") //Se a tela foi confirmada If lOk //Se tem fornecedor escolhido, filtra o browse If ! Empty(__cRetorno) cFiltro := " C7_FORNECE == '" + __cRetorno + "' " EndIf EndIf EndIf //Atualizando a grid do browse oBrowse := GetObjBrow() oBrowse:CleanFilter() oBrowse:SetFilterDefault(cFiltro) oBrowse:Refresh() Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Boa tarde Daniel,
Parabéns pelo trabalho ao longo desses anos. Uma sugestão para o blog, se não estiver escrito nada sobre ainda. É possível abir a tabela de orçamento serviços, AB3, já filtrada para exibir somente os orçamentos do usuário/vendedor logado no sistema, sem perder a possíbilidade de criar filtros personalizados para o browser/Usuário? Porque ao usar o ponto de entrada AT400FIL perde-se o filtro padrão Protheus.
Bom dia Helder, tudo joia?
Opa, obrigado pelo carinho e feedback, é muita bondade sua.
Então, fizemos um exemplo, é um pouco antigo (o fonte é de 2015), mas pode ser que esteja funcionando, talvez tenha que adaptar uma coisa ou outra.
Nesse fonte, como que funciona, ele pega o usuário logado, e busca a SA3 vinculada. Feito isso, é adicionado um filtro nas tabelas do sistema.
Segue o link com o fonte de exemplo: https://terminaldeinformacao.com/2022/05/18/como-filtrar-cadastros-antes-do-usuario-abrir-a-tela/
Tenha uma ótima e abençoada terça feira.
Um grande abraço.