sábado, 30 de septiembre de 2023

IReport query con where IN o creando un sql dinamico

Hola , de tiempo q escribo, pero me había olvidado estos super tips o funcionalidades en los parametros del query de ireport/jasperreeports, aqui vamos:

1) En SQL es muy util el operador de comparación IN en un where, por ejemplo:

select * from mitabla where campo1 IN ('a','x','z')

en ireport el SQL query con el parametro seria de la siguiente forma:

select * from mitabla where $X{IN,campo1,parLetras}

donde parLetras debe ser de tipo java.util.Collection, pongo el código jrxml `para un mejor ejemplo:

<parameter name="parLetras" class="java.util.Collection">
<defaultValueExpression><![CDATA[java.util.Arrays.asList("a")]]></defaultValueExpression>

2) Que sucedería si por algun motivo no puedes construir el IN de la forma anterior y lo unico que quieres/puedes es pasarle un String que contenga los valores del IN, por ejemplo:

String parLetras ="'a','x','z'";

entonces, jasperreports nos da el parametro $P!
en ireport el SQL query con el parametro seria de la siguiente forma:

select * from mitabla where campo1 IN ($P!{parLetras})

el $P! pone el texto tal cual en el query, no solo en where sino donde uds quieran,
tal es asi que se podria hacer lo siguiente:

String parMiQuery = "select * from mitabla where campo1 IN ('a','x','z')";

y en ireport el SQL query con el parametro seria:

$P!{parMiQuery}

sí!! solo eso, nada mas, porque usará el exto tal cual en el query de jasperreports.


Espero hayan entendido y les ayude

Mas info en: https://community.jaspersoft.com/questions/516502/x-and-p

Bytes

miércoles, 23 de noviembre de 2022

Crear una tabla "On-the fly" en un Query MySQL/MariaDB

 Holaa... antes lo hice en PostgreSQL (https://inkahack.blogspot.com/2012/12/crar-una-tabla-on-fly-en-un-query.html), pero ahora tambien vi que se puede en MySQL > 8.0.19 y MariaDB > 10.3

SELECT 1 AS x ,2 AS y
UNION 
VALUES (3,4),(5,6);


Bytes




martes, 20 de septiembre de 2022

Jbutton Icono centrado y texto debajo

 Se agrega el icono deseado,

Se cambia las siguientes propiedades del Jbutton:

  1. HorizontalTextposition: CENTER
  2. VerticalTextposition: BOTTOM
Es todo. 

Bytes