Alterar Select de uma Consulta em Tempo de Execução

É possível alterar um select de uma consulta que foi criada, por uma condição em um formulário que está consulta está sendo usado?

Exemplo:

Tenho uma consulta X, que está sendo usada em um formulário, neste formulário tenho um parâmetro na tela, e queria que se este parâmetro estiver marcado na tela, seja adicionado mais uma condição no where da consulta, e se o parâmetro desmarcado essa condição não apareça na consulta.

Olá @nielson.santos

Sim, é possível.

Existe no LATROMI uma pré-condição para execução das Queries, onde é possível modificar o comando SQL antes dele ser executado.

Essas condições são um pouto limitadas mas acho que você vai conseguir utilizar.

Segue um exemplo:

  1. Adicione na Consulta um parâmetro numérico chamado “condicao”.
  2. Alimente este parâmetro no formulário conforme a condição que você deseja tratar.
  3. Modifique o comando SQL da Consulta da seguinte maneira:
    SELECT
       t.campo1,
       t.campo2,
       t.campo3,
    FROM tabela t
    WHERE t.data > '2019-01-01'
    --#IF {?PARAM condicao} = 1
    AND t.cliente = '123456'
    --#ELSE
    AND t.fornecedor = '123456'
    --#ENDIF
    

Quando for passado o valor “1” no parâmetro “condicao”, será filtrado cliente, senão o fornecedor.

2 curtidas

Deu certinho @daniel.giacomelli, obrigado.