¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como realizar o filtro (Suprimir) de uma tabela por meio de um parâmetro com ID de linhas a serem exibidas

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Olá!!!


Estou tentando realizar o filtro (Suprimir) de uma tabela usando um parâmetro, este parâmetro contém os IDs das linhas que desejo mostrar. Inicialmente, estava passando isso como parâmetro:

{HistoricoPagos.Id}<> 995 e {HistoricoPagos.Id}<> 1200 (Desta forma, apenas duas linhas seriam mostradas)

Mas indicava que o resultado desta fórmula deve ser um valor booleano; então pensei em criar uma fórmula no Crystal para gerar a instrução, mas ainda assim dá erro.

O parâmetro que estou passando neste caso é 995,1200.

Local stringvar listagem;

Local stringvar novoId;

Local stringvar filtro;

filtro:= '{HistoricoPagos.Id}';

listagem:= {?Parametro1};

faça

(

se InStr(listagem, ',')-1 = -1 então

novoId:= listagem

senão

novoId:= '<>' + Left(listagem, InStr(listagem, ',')-1);

se Length(filtro) = 0 então

filtro:= filtro + novoId

senão

filtro:= filtro + 'e {HistoricoPagos.Id}<>' + novoId;

se InStr(listagem, ",")-1 = -1 então

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

O problema é que a declaração deve ser validada como booleana, mas por ser uma string, está gerando um erro. Ao exibir a cadeia resultante, está correta; no entanto, se eu a digitar manualmente, funciona corretamente.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Em seguida, teste seu exemplo colocando os parênteses.

({HistoricoPago.id} <> 920) e ({HistoricoPago.id} <> 1200)

Se isso não funcionar, iremos revisar o erro apresentado no IN.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado Alejandro, mas também tentei desta forma.

{HistoricoPagos.id} em ({?Parametro1})

No entanto, ele exibe a mensagem "aqui é necessário um intervalo de números".

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Pelo que vejo no teu exemplo, parece que estás faltando parênteses entre cada "and".

No entanto, acredito que isso pode ser resolvido de forma mais simples utilizando a função In.

{HistoricoPago.Id} IN (995,1200)

para mostrar apenas os 2 registros com esses IDs, ou como no teu exemplo que diz para serem diferentes, então utilize

{HistoricoPago.Id} NOT IN (995,1200)

Parece que dessa forma você não precisaria dessa função, pois já está enviando a lista separada por ","

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?