Abri Formulário Filtrado



  • Boa noite, tenho formulário Cadastro Sinistro onde um dos campos é o CPF, criei um outro form para consulta através do campo CPF,onde o alvo é o Cadastro Sinistro. Estou tentando utilizar a função " Abri Formulário Filtrado", onde ela abre o formulário indicado no 1º parâmetro filtrando pelo 2º parâmetro.

    Parâmetros:
    1. Formulário que será aberto.
    2. Texto(Letras) indicando o filtro a ser feito

    No 1º parâmetro tudo certo, mas no 2º não consegui compreender como faço esse filtro do tipo letras.

    Se alguém puder me esclarecer como utilizar "Letras" para filtrar ficarei muito grato,


  • campo=valor

    Observações:
    1. O campo passado no filtro tem que ser igual ao campo da tabela associada ao formulário que vai ser aberto.
    2. No filtro não podem haver espaços.
    3. Caso o banco utilizado seja SQL Server e o tipo de dado do filtro seja varchar, deve ser utilizado aspas simples no filtro.
    4. Caso o filtro seja uma chave estrangeira que relaciona a outra entidade, deverá ser utilizado o filtro tabela.campo=valor (Junção de tabelas).

    exemplo: aco_codigo=1 ou fr_acao.aco_codigo=1


  • Desculpe, mas não sei se entendi direito...

    ... quando você diz " campo=valor", quer dizer que a consulta é fixa? tipo não muda o parâmetro, por exemplo: se o filtro for 123 sempre irá filtrar por 123?

    Porque nesse form de consulta eu criei um campo texto onde o usuário digita o CPF que deseja buscar, clica no botão para abrir o registro no form Cadastro de Sinistro referente ao CPF digitado no form consulta.

    Testei colocando o nome do campo do formulário alvo (Cadastro de Sinistro):

    SEG_CAD_CPF_VITIMA=aqui digitei o CPF

    Funcionou que foi uma beleza. Mas preciso que ele busque o que foi digitado na caixa de texto.

    Grato,


  • Use a função concatenar. Código, no exemplo é um parâmetro de entrada que recebe o valor de um componente caixa de texto do formulário.
    [65_exemplo.jpg](/assets/uploads/files/65_exemplo.jpg)


  • Blz Leonardo, no 1º parâmetro codigo= e codigo (azul), referem-se ao campo do form de destino a ser filtrado e campo que alimenta o parâmetro de entrada respectivamente. Está correto?

    No meu caso o campo do cpf no form que quero filtrar é SEG_CAD_CPF_VITIMA e nome do maker como MakerEdit3. Quando utilizo SEG_CAD_CPF_VITIMA= o form é aberto mas em branco, quando utilizo MakerEdit3 retorna um erro " column makeredit3 does not existe.
    [257_20.jpg](/assets/uploads/files/257_20.jpg)


  • SEG_CAD_CPF_VITIMA= (variavel com o valor do cpf)
    [65_exemplo.rar](/assets/uploads/files/65_exemplo.rar)


  • Boa tarde Leonardo,

    havia testado dessa forma, quando clico no botão, ele abre o form Cadastro de Sinistro só quem sem nenhum registro, limpo.


  • Use o Depurador do Maker para debugar o fluxo, provavelmente alguma variável está recebendo algum valro errado.


  • Boa tarde Felipe, a busca pelo nome está funcionando, mas só se no campo busca, o nome for idêntico ao que está cadastrado, gostaria de buscar "Maria" e retornasse os registros onde existem "Maria". Tem como?


  • Nesse caso o filtro não seria igual (=), e sim contendo. Use o comando "like" ou "ilike"na sua pesquisa:

    select ... where nome like '%Maria%'
    ou
    select ... where nome ilike '%Maria%'

    O "like" exige que o texto passado seja idêntico ao existente no banco e o "ilike" desconsidera maiúsculo e caracteres especiais, o usuário poderia pesquisar por "maria" (tudo em minúsculo), por exemplo.


  • Obrigado pela explicação, vou testar agora mesmo. Dou o retorno logo em seguida.

Log in to reply