Consulta Padrão Personalizada (F3)

Blog Advpl - Share knowledge

Consulta Padrão Personalizada (F3)

10 de março de 2016 Configurador Dicas Funções Geral 6

Sei que já devem ter visto na web, exemplos de consulta padrão personalizada, mas segue uma contribuição nossa mostrando como é simples de se fazer.

Para quem está começando e não sabe o que é uma consulta padrão, ela é aquela tela que ao pressionarmos a tecla F3 do teclado sobre um determinado campo, seja no enchoice ou no getdados, aparece uma tela para que você possa pesquisar uma determinada informação e esta retornar o resultado para o campo solicitante.

Consulta em campo da enchoice Consulta em campo numa getdados
consultapadraoenchoice consultapadraogetdados

 

consultapadraopersonalizada

A idéia aqui é fazer uma consulta padrão genérica que sirva para qualquer rotina.

Irei criar um arquivo fonte chamado funcoes.prw, neste arquivo irei jogar todas as funções que forem genéricas.

Dentro do meu arquivo fontes.prw, irei criar as funções FiltroF3(), FiltroF3P() e FiltroF3R()

A função FiltroF3() será responsável para a criação da tela

A função FiltroF3P() será responsável para pesquisar o conteúdo no grid da tela

E a função FiltroF3R() será responsável para retornar o resultado para o campo que acionou a consulta.

FiltroF3R() – Função para retornar o que foi selecionado para o campo que chamou a consulta

Agora que a função principal está pronta, dentro do fonte funcoes.prw ou dentro do fonte de sua rotina customizada, criamos uma função para acionar a consulta padrão e está ser adicionada na tabela SXB – Consulta Padrão do Protheus.

Para inserir na tabela SXB – Consulta padrão, você entra no “Configurador” vá para Banco de Dados \ Dicionário\ Base de Dados

Na tela que abrir, localize o menu “Consultas Padrão”

consultapadraoconfiguradorSelecione o tipo de “Consulta Específica”, eu deixo o nome da consulta o mesmo nome da função.

consultapadrao1

A tabela eu coloco a tabela correspondente, e na expressão o nome da minha função, não se esqueça de colocar “U_” mais o nome da função, como mostra a imagem abaixo:consultapadrao2

O retorno é o campo que será retornado.

Código fonte: copiar

 

 

6 comentários

  1. mentor disse:

    Excelente publicação! São estes tipos de trabalhos que ainda me fazem acreditar que em pessoas sérias no mercado! Clique aqui para ajudas em programação em ADVPL

  2. ulisses.rodolfo disse:

    Executei a rotina na versão 12.1.7 do exemplo, mas estou tendo erro de array of bounds no Campo aCpoRet[1] quando seleciono o item que desejo. teria alguma ideia do que poderia ser?

    • Olá, eu uso esta rotina na 11, mas ao validar na 12 realmente ela tem problema, tenho duas sugestões, validar a versão do protheus, se for 11 executa se 12 pula a linha

  3. Jorez disse:

    Boa tarde,

    Tentei utilizar esta rotina e fiz algumas mudanças para atender uma necessidade, porém, ao tentar retornar o valor, o erro “variable does not exist RAL5002 on GETF3RET(MSGETDAD.PRW)” é apresentado, onde RAL5002 é o valor que deve preencher o campo na aCols dos itens do Pedido de Venda.

    Já viram este comportamento antes?

    Obrigado!

Deixe uma resposta