vReport: condición visibilidad


([N2] overBCN) #1

Buenos días,

Me estoy peleando con los informes personalizados “vReport”, y no doy con la fórmula para poder condicionar la visibilidad de algunos campos determinados.

En las propiedades del campo, en “Imprimir solo si la fórmula script es verdadera”, le he puesto la fórmula de varias formas, pero no hay manera:

$D{Movimientos.TIP_LIN}==“A”

$D{TIP_LIN}==“A”

$F{TIP_LIN}==“A”

El campo de la tabla “Movimientos” es TIP_LIN y debe ser igual a A. Lo he estado mirando en el manual, apartado referencia en expresiones, y creo que es correcto. También lo he probado de incluir en "“Formato condicional”, pero nada de nada.

Alguien sabe como hacerlo?

Saludos


([N1] wikan) #2

$D{#TIP_LIN}==”A”

Creo que te falta la almohadilla, a mi me funciona


([N2] overBCN) #3

Hola Manuel, si, también lo he probado así, con almohadilla, y no funciona


([N1] aztecmexico) #4

Hola Luis,

En el manual en una nota en la página 63, después del cuadro indica lo siguiente:

“NOTA: si una expresión contiene una referencia insertada de tipo texto/cadena, serán necesarias las comillas al comienzo y al final de la misma. Por ejemplo: $D{ds.lastname}==“Smith”. No necesitamos comillas para valores numéricos, por ejemplo, $D{price}==750.0 es la sintaxis correcta.”

Ya lo probé y si funciona, en este caso son la almohadilla, pero tambien es necesario poner entre comillas la primera parte de la expresión “$D{#EMP.NAME}”==“Esteban Mc Curry”

Saludos

 

Martin Ibarra.


([N2] overBCN) #5

Gracias Martín, ya lo tengo solucionado, es como tu dices, añadiendo el ID del origen de los datos, paso fórmula final.

“$D{Movimientos.#TIP_LIN}”==“A”

Un saludo.


([N1] oscar.santana) #6

Y para el caso que necesitemos una negación… Por ejemplo que Imprima cuando sea diferente de vacío?


([N4] velavisual) #7

@Oscar

No estoy muy puesto con los informes pero, si necesitas una negación o una confirmación como condición, creo que puede usar algo así:
Haz la prueba y comentas…

$D{Choose(IsEmpty(#NOMBRE_CAMPO), 0, 1)

Así creo que debería funcionarte, comprobando si el campo en cuestión está vacío.


([N1] oscar.santana) #8

Hola @Antonio y todos.
Efectivamente así funciona perfectamente, hice la consulta a Soporte porque estaba algo urgido y esa fue su respuesta, pero también les hice la sugerencia que en el manual colocaran que se podían usar las funciones estandar que tenemos en el editor de fórmulas. Dado que al no tener eso tan claro, pues yo busqué por google cómo hacerlo con el estandar EMACSCRIPT… Así que efectivamente así funciona, el único detalle es que en el ejemplo que puso Antonio habría que cerrar el } $D{Choose(IsEmpty(#NOMBRE_CAMPO), 0, 1)}

También les propuse para una futura versión que coloquen en esos sitios un editor de fórmulas.

Saludos y gracias a todos.


([N4] ortsricardo-2) #9

Perdon por la molestia, pero quieres exponerles el siguiente caso. Tengo la version 7.12 todavia y cuando intento hacer un informe con vReport, las secciones tienen condiciones de visibilidad mediante un script. En este caso tengo una tabla PTD_ALM con dos subtablas distintas, PTD_CAL_RSM y TAR_CAL_PSO, con ellas defino dos detalles con dos agrupamientos, ambos por el campo PTD_ALM, que existe en ambas tablas. Con ello genero dos cabezas de agrupamiento, una para cada seccion de detalle, y se trata que se imprima una seccion o otra en funcion de un campo booleano llamdo PTD_ALM.CAL. La cuestion es que no se como indicar en una seccion que se imprima cuando PTD_ALM.CAL es verdadero y en la otra cuando es falso. Todas las combinaciones de formas de escribirlo me han fallado desde
$D{#PTD_ALM.CAL}==0 y $D{#PTD_ALM.CAL}==1
$D{choose(#PTD_ALM.CAL,1, 0 )}==0, Y $D{choose(#PTD_ALM.CAL, 1, 0 )}==1

he probado todas las combinaciones posibles, y no hay forma. Alguien tiene algo diseñado que funcione correctamente…

Gracias y disculpad las molestias.