Vreport pasar parametros al informe


([N4] spereira) #1

Buenas tardes:
Quería pasar parametros a un informe para poder ocultar una imagen en la cabecera.
Alguien me podria enseñar un ejemplo o explicar

  1. En la línea PARAMETROS EN FORMATO como los escribo??
  2. En la condición para imprimir como llamo al parametro??

Muchas gracias.

Un ejemplo grafico me vendria cojonudo :stuck_out_tongue:


([N4] PedroN) #2

En vDevelop:
En la salida por ejemplo (PROCESO_PRT):
If (SALIDA)=“1”)
Informe Externo: Previsualizar informe…

Te permite la asignación de parámetros. Debes indicarle el parámetro/s que serán fruto de una función o variable.

En vReport:
Haces referencia en el Script: $P{Parámetro}

Si no te arreglas en el Tutor de Velneo vReport encontrarás un informe “FACTURAS_CLIENTE_PAR (Informe de facturas agrupadas por cliente con % sobre el total de facturas)” que seguramente resolverá tu duda.

Un saludo,


([N4] spereira) #3

Me respondo:
Imaginando que el parametros que quiero pasar es “PDF” (para imprimir logos en este caso)

Primero en Informe Externo: Imprimir Informe para declarar los parametros se escribiria “PDF:1”

y ahora en el vreport en el informe, para poner la condición directamente $P{PDF}, sin entrar en el editor de formulas, si entras al aceptar la condición no funcionara ya que te dara error.

Un saludo.


([N4] gontorre) #4

Buenos días

Ando peleándome con los parámetros en vReport y tampoco consigo que me funcione. Quiero pasar una cadena de texto al informe. En el campo de los parámetros pongo: “BANCO:”+DATOS_BANCO, donde DATOS_BANCO es la cadena que quiero mostrar.

En el informe pongo $P{BANCO} y me muestra SyntaxError: Parse error

Si al pasar el parámetro pongo “BANCO:prueba” me dice que no encuentra la variable prueba.

En cambio, si paso el parámetro “BANCO:9”, si que me escribe el 9 en el informe.

He intentado buscar el tutor de vReport pero no lo encuentro.

La verdad es que ando bastante perdido

Un saludo

Gonzalo Torre


([N4] velavisual) #5

@gongorre

Open Apps vReport

Ejemplo informe con parámetros a partir del minuto 40 más o menos


([N4] gontorre) #6

Buenas tardes

He mirado el video y estoy pasando el parámetro de la misma forma. La única diferencia es que en el ejemplo pasan como parámetro un número y yo estoy pasando una cadena de texto. He preobado a pasarla con comillas y no hay forma.

Si el parámetro que paso es un número, funciona, si es una cadena de texto, no.


([N4] PedroN) #7

Hola gontorre.
Sólo se me ocurre, según lo que cuentas que el problema esté en la sintaxis de vReport.
Si se trata de una cadena estás poniendo “$P{PARAMETRO}” en el script de vReport?. Las comillas también forman parte de la sintaxis.
A ver si es eso.
Saludos,


([N4] gontorre) #8

Pues eso exactamente me han contestado en soporte. Aparte de eso la cadena que pasaba como parámetro incluía \n y eso parece que no se lo traga el vReport.

Gracias


([N3] pacosatu) #9

Hola Gonzalo:

Como dice PedroN es cuestión de poner las comillas cuando corresponda en los Scripts de VReport.

Por ejemplo:
En el siguiente comando de Velneo tenemos un parámetro de tipo String CTIPO_REGISTRO y el resto de tipo Booleano.

Informe externo: Previsualizar informe(Fichero,CPATH_INFORME,“TIPO_REGISTRO:” + CTIPO_REGISTRO + “|” + “LIMP_ARCHIVO:” + LIMP_ARCHIVO + “|” +“LIMP_ASIGNADO:” + LIMP_ASIGNADO + “|” + “LIMP_ASUNTO:” + LIMP_ASUNTO + “|” + “LIMP_ENTIDAD:” + LIMP_ENTIDAD + “|” + “LIMP_FCOMISION:” + LIMP_FCOMISION + “|” + “LIMP_FECHA:” + LIMP_FECHA + “|” + “LIMP_NOTAS:” + LIMP_NOTAS + “|” + “LIMP_REFERENCIA:” + LIMP_REFERENCIA + “|” + “LIMP_REGISTRO:” + LIMP_REGISTRO + “|” + “LIMP_TIPODOC:” + LIMP_TIPODOC)

En VReport queremos poner el siguiente Título para el Informe:
***** Lista de Registros de <<aquí va el parámetro CTIPO_REGISTRO>> *****
El parámetro CTIPO_REGISTRO puede valer “E” o “S”.

Insertamos un campo de tipo Script con la expresión JavaScript siguiente (ver imagen adjunta):


if ("$P{TIPO_REGISTRO}" == "E") {"Entrada"}
   else {"Salida"}

El lío es entender cómo VReport interpreta esta expresión (como siempre explicado pésimamente en el micro-manual).

  • La expresión debe ser compatible con JavaScript
  • El motor de VReport sustituye $P{TIPO_REGISTRO} por su valor (por ejemplo E) quedando “E” == “E”.
    Por esta razón debes añadir las comillas, para que la comparación sea entre Strings
  • Cuando el parámetro sea Numérico no es necesario poner comillas, por ejem: $P{TIPO_REGISTRO} == 1 quedando 1 == 1

Cuando usamos el parámetro para condiciones de impresión, ponemos simplemente $P{LIMP_REGISTRO} (ver imagen adjunta).

Saludos
Paco Satué





([N4] gontorre) #10

Perfectamente explicado Paco, como siempre.

Ya lo tengo funcionando. Creo que había puesto comillas en todos sitios menos donde tenía que ponerlas.

Un saludo y gracias a todos