Avalados por :

Cómo realizar el filtro (Suprimir) de una tabla mediante un parámetro con ID de filas a mostrar

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

¡¡¡Hola!!!


Estoy intentando realizar el filtro (Suprimir) de una tabla mediante un parámetro, este parámetro contiene los ID de las filas que quiero mostrar. Inicialmente pasaba esto por parámetro:

{HistoricoPagos.Id}<> 995 y {HistoricoPagos.Id}<> 1200 (De esta manera solo mostraría dos líneas)

Pero me indicaba que el resultado de esta fórmula debe ser un valor booleano; después pensé en crear una fórmula en Crystal para que me creara la sentencia pero igualmente me da error.

El parámetro que paso en este caso es 995,1200.

Local stringvar listado;

Local stringvar nuevoId;

Local stringvar filtro;

filtro:= '{HistoricoPagos.Id}';

listado:= {?Parametro1};

do

(

if InStr(listado, ',')-1 = -1 then

nuevoId:= listado

else

nuevoId:= '<>' + Left(listado, InStr(listado, ',')-1);

if Length(filtro) = 0 then

filtro:= filtro + nuevoId

else

filtro:= filtro + 'y {HistoricoPagos.Id}<>' + nuevoId;

if InStr(listado, ",")-1 = -1 then

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

4 Respuestas

0
Cargando...

El problema es que la sentencia debe validarse como booleana, pero al ser un string me da error. Al mostrar la cadena resultante, es correcta; sin embargo, si la escribo manualmente, funciona correctamente.

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

Luego, prueba tu ejemplo colocando los paréntesis.

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

Si esto no funciona, revisaremos el error presentado en el IN.

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

Gracias Alejandro, pero también he intentado de esta manera.

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

Sin embargo, me muestra el mensaje "aquí se requiere un rango de números".

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

Por lo que veo en tu ejemplo, parece que te faltan paréntesis entre cada uno de los "and".

Sin embargo, creo que se puede resolver de forma más sencilla utilizando la función In.

{HistoricoPago.Id} IN (995,1200)

para mostrar solo los 2 registros con estos ID, o como en tu ejemplo que dice que sean diferentes, entonces utiliza

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

Me parece que de esta manera no necesitarías esa función porque ya estás enviando el listado separado 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?