Saltar navegación

20251118 EjercicioJSON_PDF_3_ParyVar - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 18 de noviembre de 2025 por Raquel G.

8 visualizaciones

Descargar la transcripción

Venga, pues a ver, vamos a hacer nuestra plantilla. Nuevo Jasper Report. A ver, Juan, céntrate. Esto es el paso imprescindible para personalizar el informe. 00:00:00
Y yo aquí hago tantos campos como variables tenga en Java. Luego ya hago las sentencias que llenan datos con la plantilla y se acabó. 00:00:16
Sí, el campo tiene que llamar igual que la variable 00:00:30
donde está la fuente de datos 00:00:33
Bueno, pues entonces 00:00:34
vamos a ponerle una 00:00:37
plantillita, ya que queríais 00:00:38
A mí me da una duda, porque por ejemplo, estadística 00:00:41
en el proyecto era un objeto 00:00:43
y aquí para el objeto 00:00:45
A ver, pero es que yo había sacado 00:00:47
un datos informe aparte 00:00:49
y ahí lo había construido con la variable sueltas 00:00:51
que no haría falta, porque al 00:00:53
textfield le podría haber llamado 00:00:55
formula1.corredores.com 00:00:56
punto estadística y me lo coge 00:00:59
siguiendo el punto, pero no nos estamos 00:01:01
metiendo ni en detalle ni en complicaciones 00:01:04
si uno se mete en el Jasper Report, pues ve que 00:01:05
tiene millones de posibilidades 00:01:07
pero estamos haciendo una 00:01:09
overview 00:01:11
por encima para luego que uno pueda arrancar 00:01:12
y hacer cosas, una overview 00:01:15
venga, pues nos gusta la florecita 00:01:17
es que no hay ninguna mona 00:01:20
venga, da igual, la florecita 00:01:22
el coffee 00:01:23
a ver si nos despertamos 00:01:26
Venga, la plantilla de Kofi nos gusta 00:01:27
Que vamos a quitarle casi todo 00:01:30
Y la llamo 00:01:31
Listado 00:01:34
Ala 00:01:37
Enhorabuena 00:01:40
Enhorabuena 00:01:43
Lo que acabas de hacer 00:01:46
Ala 00:01:47
Y él ya me ofrece un montón de cosas 00:01:49
De las cuales yo voy a quitar 00:01:51
Un montón 00:01:53
Esto va a ser 00:01:54
Fórmula 1 00:01:56
Aquí 00:01:58
Seleccionamos la etiqueta esta 00:02:00
Y vamos a 00:02:03
Cambiar su texto 00:02:05
¿Vale? 00:02:06
Y voy a quitar todo lo que me sobre para que no me quede 00:02:16
Una plantilla muy 00:02:18
Ya tengo 00:02:19
El 1 no se ve 00:02:22
Hago esto más grande para que se vea 00:02:24
El Loren Ibsen 00:02:28
Que es esta, es la lista de corredores, no sé qué 00:02:29
Fuera, fuera el Loren Ibsen 00:02:31
El dibujito 00:02:33
el grano de café nos gusta, lo dejamos 00:02:35
vale, en el 00:02:37
subtítulo, en el subtítulo 00:02:39
por ejemplo a mí aquí me puede interesar 00:02:41
poner temporada 00:02:43
24-25, 25-26 00:02:45
pero claro, esto puede ser 00:02:47
un dato variable 00:02:49
fórmula 1 es 00:02:51
un campo estático, ahí se queda 00:02:53
si yo quiero cambiarlo, tengo que venirme 00:02:55
otra vez a la plantilla 00:02:57
para cambiarlo, pero aquí 00:02:59
el temporada, pues yo 00:03:01
este informe 00:03:03
lo voy a generar en temporadas distintas 00:03:04
y no me apetece venir aquí cada vez 00:03:07
a cambiar el número de temporada 00:03:09
entonces lo puedo poner como un dato que se llene 00:03:10
desde Java, un dato variable 00:03:13
que se llene desde Java 00:03:15
pero este es un dato único 00:03:16
porque es una variable que es el nombre 00:03:19
de temporada, no es como los campos 00:03:21
los $fill que son 00:03:23
listado de corredores, listado de equipos 00:03:25
entonces yo pongo el $fill pero luego hay 00:03:27
muchas instancias de cada uno 00:03:29
entonces ese es un concepto 00:03:30
El campo, el field, es un campo de mi plantilla 00:03:33
que se va a replicar tantas veces 00:03:38
como luego instancias tenga. 00:03:42
Y de ahí vienen las columnas del informe. 00:03:44
De ahí vienen las columnas. 00:03:46
Pero este no responde a esa idea. 00:03:47
Este es un valor único, mi temporada, 25-26. 00:03:50
Vale, que no se va a replicar mil veces. 00:03:54
Es un valor único. 00:03:56
Pues entonces esto se llama de otra manera, 00:03:57
que se llama parámetro. 00:03:59
vale, pues entonces aquí en lugar de poner un texto estático 00:04:00
yo no quiero un texto estático aquí 00:04:03
sino que voy a crearme un parámetro 00:04:05
pues venga, me voy a crear un parámetro 00:04:07
me voy a parámetros 00:04:09
que él ya tiene algunos por defecto 00:04:10
que yo puedo usar 00:04:13
pasamos de ellos, aunque podríais explorar 00:04:14
lo que son, me voy a crear 00:04:17
un parámetro, vale 00:04:19
lo selecciono aquí 00:04:20
y para cambiar sus 00:04:23
datos y cositas 00:04:24
pues me voy aquí una vez seleccionado 00:04:27
object. ¿Cómo quiero que se 00:04:29
llame? Hombre, 00:04:30
este va a ser el nombre que tenga 00:04:33
luego 00:04:35
en el código. Para mí ter1 es un poco 00:04:35
feo. Pues venga, vamos a llamarlo 00:04:38
temporada. 00:04:41
No, porque no es un texto 00:04:45
estático, cambia en función 00:04:46
de lo que haya en la variable que se llame así 00:04:48
en Java. Ahora lo vemos. 00:04:51
¿Cómo va a tener? ¿25 o 26? 00:04:54
Pues un string y ya está. 25 barra 00:04:57
26 de tipo stream, aunque podría ser 00:04:58
número o cualquier otra cosa 00:05:01
vale, pues ya tengo 00:05:02
mi parámetro, mi parámetro 00:05:04
está creado, igual que los fields 00:05:06
lo decido 00:05:08
yo donde lo coloco, pues lo voy a 00:05:11
colocar aquí en el título, debajo de 00:05:12
fórmula 1, pues lo llevo 00:05:14
ahí 00:05:17
ahí lo llevo 00:05:17
y para que no quede tan pequeñito, lo selecciono 00:05:22
me voy aquí 00:05:24
y en 00:05:25
aquí, en la pestañita text 00:05:27
Textfield en todos los objetos, no solo en los textfields, sino en todos los demás, es donde me aparecen cosas relacionadas con el tipo de letra, todo. 00:05:30
Pues venga, vamos a hacerlo un poco más grande. 00:05:41
Temporada y que sea negrilla, por lo menos. 00:05:48
Venga, pues hala. 00:05:51
Y que aparezca ahí centrado. 00:05:53
Hala, ya está. 00:05:56
Ya tengo mi título con esto 00:05:57
Que voy a tener que rellenar del informe 00:06:01
Ya veremos como lo relleno 00:06:04
Ahora ya, mis campos 00:06:05
Campos 00:06:08
Equipo, corredor y puntos 00:06:09
Eran, verdad 00:06:12
Equipo, corredor y puntos 00:06:13
Pues me voy a fills y los creo 00:06:15
Parámetros ya están 00:06:17
Fills 00:06:19
Pues venga 00:06:20
Nuevo 00:06:22
Campo 00:06:24
Ahí seleccionado 00:06:26
Me voy aquí a object, equipo, que es string, vale, ahora nuevo campo corredor, que es string también, y nuevo campo puntos, que este lo tendré en la aplicación como entero, supongo, voy a comprobarlo, porque estos campos venían de aquí, de datos informe. 00:06:30
Equipo, corredor y puntos 00:07:01
Efectivamente era int 00:07:03
Pues entonces en mi plantilla 00:07:04
Equipo, corredor 00:07:08
Esto va a ser int 00:07:09
Vale, ¿dónde las coloco? 00:07:11
Pues en el detail 00:07:16
Debería colocarlo 00:07:17
A ver, la banda de detalle 00:07:19
Me voy aquí 00:07:22
Está aquí 00:07:23
Está 00:07:25
Enana, es esta 00:07:27
La de detalle o cuál es 00:07:29
Esto es un marco que tiene puesto en la banda de detalle 00:07:30
Un marquito 00:07:36
Entonces 00:07:37
Voy a hacer un poco más grande esto 00:07:39
La banda de detalle 00:07:42
Le voy a quitar el marco ese 00:07:48
Vale, esta es mi banda de detalle 00:07:49
Pues me voy a llevar ahí los tres campos 00:07:52
El de equipo 00:07:54
Corredor 00:08:00
Y puntos 00:08:03
Vale 00:08:06
Vale, entonces, me ha creado él en la cabecera de las columnas estas tres, voy a ponerlas estas tres, equipo, corredor y puntos, al menos en negrita y mayúscula, para que la cabecera de la columna se vea un poquito mejor. 00:08:07
Pues venga, equipo, equipo y negrita, corredor lo mismo, mayúscula y negrita y puntos lo mismo y negrita. 00:08:27
Bueno, ¿qué más cosas tiene esta plantilla? Fijaos, está usando aquí un campo en el pie que yo lo puedo quitar, pero en realidad interesa. Está usando una variable que ahora vamos a crear nosotros otra. 00:09:09
una variable que ya 00:09:31
instancia directa 00:09:33
es decir, desde aquí 00:09:36
desde el informe 00:09:38
en campos que se llaman variables 00:09:40
puedes invocar código Java directamente 00:09:41
y el resultado de ese código 00:09:43
se plantará ahí 00:09:45
bueno, pues el aquí 00:09:46
en el pie de la página, en el pie del informe 00:09:49
aquí en el pie 00:09:52
ha creado una variable 00:09:53
ahora vamos a crear nosotros otra para meter 00:09:55
nuestro propio código, ha creado una variable 00:09:57
y en esa variable ha invocado 00:09:59
a este código y el resultado 00:10:01
se va a plantar ahí 00:10:03
ese código en Java ya sabemos lo que hace 00:10:05
es crearte la fecha actual 00:10:07
bueno, pues ¿qué me va a aparecer en el pie 00:10:09
de página? la fecha actual, la fecha del 00:10:11
informe, ¿me interesa que esté ahí? pues sí, es bonita 00:10:13
pues ahora, la dejamos 00:10:15
y aquí 00:10:17
también 00:10:19
me ha metido, en el pie de 00:10:20
página, me ha metido 00:10:23
estas dos cositas 00:10:26
que son lo mismo 00:10:27
aquí 00:10:29
Y me ha metido una variable que tiene ya configurada, que es el número de páginas, ¿vale? 00:10:31
Me ha metido este string, la página no sé cuántos de número de páginas. 00:10:45
Entonces, estos son dos variables, ¿vale? 00:10:53
Dos variables que él ha metido. 00:10:57
Entonces, vamos a hacer nosotros una variable para meter cosas. 00:11:00
Por ejemplo, bueno, primero vamos a probar este informe. 00:11:02
a ver si nos gusta como queda 00:11:07
y luego ya le añadimos una cosita 00:11:09
metiendo una variable 00:11:10
entre el 00:11:11
que el parámetro es para una información 00:11:18
que no aparece muchas veces 00:11:20
que no se replica 00:11:23
es decir, equipo 00:11:24
hay un montón de equipos 00:11:26
va a aparecer tantos de estos 00:11:27
como equipos tengas 00:11:30
corredor, hay un montón de corredores 00:11:31
va a aparecer tantos de estos como corredores tengas 00:11:34
en el informe solo pones un $fill 00:11:36
Pero al ser fill 00:11:38
Se sobreentiende que si tú le das 20 00:11:40
Se replica 20 veces 00:11:43
El parámetro es para un dato concreto 00:11:44
Pues un título 00:11:47
Que tú quieras poner, el nombre del que lo creo 00:11:49
Un dato concreto 00:11:51
Vale, pues vamos a hacer 00:11:52
Este informe 00:11:55
Antes de meternos haciendo una variable 00:11:56
Para entenderlo un poco más, bueno, vamos a compilarlo 00:11:58
A ver si esto compilará 00:12:01
Con lo que hemos hecho 00:12:03
Vale, no tiene errores de compilación 00:12:05
Entonces 00:12:16
Yo ahora ya me puedo sacar mi Jasper 00:12:16
Pero ojo 00:12:19
Esto tenía un dibujito 00:12:20
Que es este 00:12:23
Entonces me lo tengo que llevar también 00:12:24
Porque la plantilla tira del dibujito 00:12:26
Entonces este dibujito 00:12:28
Será 00:12:30
El Coffee Stain PNG 00:12:32
Este de aquí, imagino 00:12:35
Ah, no, el Coffee Stain es el fondo 00:12:36
Vale, pues entonces 00:12:40
Me tengo 00:12:42
Esta es 00:12:42
Y el Coffee Stain está de fondo 00:12:44
Entonces me tengo que llevar los dos 00:12:47
El Coffee y el Coffee Stain 00:12:48
Entonces me tengo que llevar listado 00:12:50
Jasper 00:12:52
El Coffee JPG y el Coffee Stain 00:12:53
Y yo creo que ya no hay más gráficos 00:12:56
Ni más nada que use 00:12:59
Todo esto 00:13:00
Me lo llevo 00:13:02
Aquí a mis informes 00:13:04
informes 00:13:06
que está aquí 00:13:12
paste, vale 00:13:14
voy a revisar 00:13:19
solamente una cosa en la plantilla 00:13:21
porque claro, yo lo he puesto directamente 00:13:23
las imágenes 00:13:25
las he puesto a la altura de la plantilla 00:13:27
vamos a ver si en la plantilla 00:13:29
directamente en el jrxml 00:13:31
tira de la 00:13:33
ubicación donde está la propia plantilla 00:13:35
o se va a una subcarpeta 00:13:38
vamos a mirar un momentito 00:13:39
Vamos a revisar la fuente 00:13:41
A ver, vamos a revisar la fuente 00:13:43
Pues aquí me declara los tres fields 00:13:45
Muy bien 00:13:48
Equipo, corredor y puntos 00:13:49
Integer 00:13:52
Los dibujitos, vamos a ver donde los tiene declarados 00:13:53
Fórmula 1 00:13:56
El coffee 00:13:59
Vale, no los mete 00:14:00
En ninguna ruta específica 00:14:02
Están tal cual 00:14:05
Coffee stain 00:14:05
Este es el parámetro temporada que acabo de meter 00:14:07
y el cofi.jpg está aquí 00:14:10
vale, como no nos mete 00:14:12
ninguna ruta específica 00:14:15
lo pongo a la misma altura que la plantilla 00:14:16
pero a ver, podría yo hacerme otra 00:14:19
subcarpeta, informes o lo que sea 00:14:20
entonces aquí tendría que poner la ruta 00:14:22
donde yo he guardado esas imágenes 00:14:24
en mi proyecto 00:14:26
¿vale? pero lo más sencillo 00:14:27
de todo, si están 00:14:30
en la misma ruta que la propia plantilla 00:14:32
en la misma ruta, se queda así 00:14:35
y si no, tengo que poner la ruta 00:14:36
ahí, vale, pero está en la misma 00:14:38
ruta, lo dejo ahí, vale, pues 00:14:40
ahora vamos a ver si con esta plantilla 00:14:42
me genera 00:14:44
el listado, porque 00:14:46
no sé yo lo que hemos 00:14:48
hecho aquí, venga, vamos a 00:14:50
empezar de cero 00:14:54
¿qué ha pasado? 00:14:55
vale, pues 00:15:10
venga 00:15:12
espera 00:15:13
abrir, a ver si la plantilla 00:15:24
Está bien o está mal 00:15:28
Algo ha hecho 00:15:31
No sabemos el qué 00:15:33
Esta no es 00:15:34
BTA 00:15:43
No he copiado la plantilla nueva 00:15:52
Vamos a ver 00:16:05
Si es que ya os digo que las grabaciones 00:16:06
Aquí son, no sé cuando se 00:16:09
Yo creo, la detuve cuando no 00:16:11
Generó bien el PDF 00:16:13
Ahí la detuve 00:16:14
Yo me había puesto aquí este parámetro 00:16:15
Y aquí, cuando yo genero 00:16:18
la plantilla con el field report, recordad 00:16:21
que le dábamos 00:16:23
los datos, la plantilla 00:16:24
y yo aquí decía 00:16:29
aquí un null, por ahora 00:16:30
un null, pues ahí es donde metemos 00:16:32
todos los parámetros que 00:16:35
yo quiera inyectar en la plantilla 00:16:36
todos los parámetros, ahí es donde 00:16:38
los metemos, y como creo 00:16:40
los parámetros, pues mis parámetros van a ser 00:16:42
un map con 00:16:44
el nombre del parámetro 00:16:45
y lo que yo quiera meter al parámetro 00:16:48
yo solamente he hecho 00:16:50
un parámetro pero podría haber hecho muchos 00:16:56
pues todos los parámetros que yo haga 00:16:58
van a ir a ese map 00:17:00
pues venga, voy a meter 00:17:01
un parámetro 00:17:07
parámetros 00:17:11
punto put 00:17:15
con clave temporada 00:17:17
porque así creo que se llamaba en mi plantilla 00:17:20
creo que 00:17:22
en mi plantilla se llamaba temporada 00:17:24
efectivamente 00:17:26
voy a 00:17:27
meter un parámetro temporada 00:17:29
y que voy a meter ahí 00:17:31
lo que me dé la gana, eso lo puedo haber leído 00:17:32
de una base de datos de donde fuera 00:17:35
yo que si 00:17:37
voy a poner ahí 25, 26 00:17:37
pero bueno, este dato yo lo habré leído 00:17:41
de donde sea 00:17:43
vale, entonces podría así 00:17:44
meter un montón de parámetros más 00:17:47
que son datos que van a aparecer una sola vez en el informe 00:17:49
entonces el informe 00:17:52
va a meter este dato 00:17:54
va a meter este dato donde esté 00:17:55
el parámetro que se llame temporada 00:17:57
que en mi caso es ahí 00:17:59
Donde esté el parámetro que se llama temporada 00:18:01
Bueno, pues entonces 00:18:03
Como ahora ya sí que tengo una lista de parámetros 00:18:05
Esto ya no es nulo 00:18:08
El relleno del informe va 00:18:10
Plantilla, los campos y los parámetros 00:18:11
Parámetros 00:18:14
Vale 00:18:20
Y ya está 00:18:21
Ahora ya sí que sí, voy a probar 00:18:22
La aplicación, a ver si ahora me encuentro 00:18:25
Los dibujitos 00:18:28
Venga 00:18:29
Claro, porque se meten ahí 00:18:45
Venga 00:18:50
Vámonos aquí 00:18:51
Subimos archivo 00:18:53
Algo ha hecho 00:18:58
Vamos a ver 00:19:01
Ahora 00:19:04
Ahora ya sí 00:19:05
¿Veis? Parámetro 00:19:06
Lo que yo le he metido desde código 00:19:08
Y solo aparece una vez 00:19:10
Lo que yo le he metido 00:19:11
Todo esto 00:19:13
Y la plantilla que yo le he puesto 00:19:14
Entonces aquí lo único 00:19:16
Que esto 00:19:19
Lo he puesto en el raíz 00:19:20
De la aplicación, es un poco feo 00:19:22
Tendría que ponerlo en otro sitio 00:19:24
Y editar la plantilla, mi jrxml 00:19:25
Y poner ahí la ruta donde lo he puesto 00:19:28
Claro, aquí 00:19:30
El tema es que aquí en mi plantilla 00:19:34
Esto está puesto 00:19:36
Sin ruta 00:19:38
con lo cual él lo busca en la raíz 00:19:39
de la aplicación 00:19:42
entonces al llevar yo los dibujitos a la raíz 00:19:43
de la aplicación lo ha encontrado 00:19:46
que están en otra ruta como gráficos 00:19:47
pues tendría que poner ahí la ruta relativa 00:19:50
desde el raíz a donde esté 00:19:52
ahí en mi caso informes 00:19:53
colgaba directamente con poner ahí 00:19:56
informes barra esto ya estaría 00:19:57
porque informes me colgaba directamente 00:19:59
desde 00:20:01
bueno pues ala 00:20:02
ya sabemos como meter 00:20:05
parámetros y fijar 00:20:08
veis efectivamente 00:20:10
esto es 00:20:11
no quiero preguntar nada 00:20:14
vale 00:20:20
entonces aquí me ha ejecutado el código 00:20:27
new till date 00:20:29
me ha sacado esto 00:20:30
y aquí me ha metido lo otro que estaba en la plantilla 00:20:31
entonces 00:20:35
vamos otra vez a la 00:20:37
a la plantilla 00:20:41
Espera, vamos a 00:20:42
Suponer que le metemos más corredores 00:20:45
Para que salgan más páginas 00:20:47
Vamos a hacer el JSON con más corredores 00:20:48
Para que salgan más páginas 00:20:51
Y así vemos un poco mejor lo de las variables 00:20:52
A ver 00:20:55
Mi... estaba grabando ahora 00:20:57
¿No? Sí 00:20:59
Vale, mi JSON que estaba por aquí 00:21:00
Del que yo estoy tirando 00:21:03
Le vamos a meter 00:21:04
Unos cuantos de estos más 00:21:06
Este corredor acaba aquí 00:21:08
Vale, ya le he metido un montón más de corredores 00:21:18
Vale, ahora ya yo creo que me dará para unas cuantas páginas más 00:21:31
Vale, voy a volver a ejecutar la aplicación 00:21:40
Vámonos otra vez, selecciono 00:21:50
Subo el archivo, descargo 00:21:56
Vale, ahora tiene dos páginas 00:22:02
Y ahora, página 1 de 2 00:22:12
Página 2 de 2 00:22:16
Como veis, lo que se ponga en las columnas, en el column detail, se replica también. 00:22:18
Equipo, corredor, puntos aparece en la siguiente página. 00:22:27
Equipo, corredor, puntos. 00:22:30
El parámetro no, el parámetro aparece solo una vez, solo una vez. 00:22:31
Bueno, si le ponemos parámetros, ya no parece nada. 00:22:36
Bueno, pero son otros parámetros distintos. 00:22:39
Vale, pues vamos a suponer que nosotros queremos añadir aquí, por ejemplo, 00:22:41
que eso es una cosa típica en los listados 00:22:44
nuestros de raíces para evaluar 00:22:47
que me aparezca en el pie de página 00:22:49
también 00:22:51
el nombre 00:22:51
del último de cada página 00:22:55
el nombre del último 00:22:57
para así yo saber 00:22:59
si me han cortado algo en la página 00:23:01
yo que sé, lo que fuera 00:23:03
entonces aquí que hay que remeter una variable 00:23:04
y esa variable que me haga 00:23:07
un código, que sea sacar 00:23:09
del campo 00:23:10
nombre, pues sacar por ejemplo 00:23:12
el nombre de pila, lo que fuera 00:23:14
entonces vamos a meter una variable 00:23:16
más en nuestro informe 00:23:18
no es un campo sin más 00:23:20
porque no es un dato que yo inserto 00:23:22
sino es 00:23:25
una cosa, un código con el que 00:23:26
yo proceso datos que ya están 00:23:29
luego tenemos parámetro 00:23:30
un dato que aparece único una vez 00:23:32
y lo meto en mi map de parámetros 00:23:34
en mi map de parámetros, dato que aparece 00:23:37
único una vez, campos, los fill 00:23:38
directamente variables de la aplicación 00:23:41
directamente con el mismo nombre 00:23:44
aparecen tantas veces 00:23:46
como instancias tenga de eso 00:23:48
y luego variables 00:23:50
datos para mi informe 00:23:52
pero que vienen de procesar 00:23:54
campos 00:23:56
de procesar variables 00:23:58
admiten cierto código 00:24:00
pues venga, vamos a meter aquí 00:24:02
una variable que me meta 00:24:04
algo relacionado con campos que ya hay 00:24:06
luego tendré que hacer 00:24:09
un pequeño procesamiento. Entonces, esa variable 00:24:10
no es un dato 00:24:12
que yo cojo, sino es un 00:24:14
código que voy a hacer aquí que trabaje 00:24:16
con datos que ya hay. 00:24:18
¿Vale? 00:24:21
Pues vamos a crear aquí en nuestra plantilla, 00:24:22
vamos a crear una variable. 00:24:25
Vale, pues las variables 00:24:29
me voy 00:24:30
aquí y las creo 00:24:34
aquí en variables. 00:24:36
Tiene algunas 00:24:41
ya hechas por defecto. 00:24:42
El número de página, 00:24:43
una serie de cosas. 00:24:46
Me voy a crear una variable. 00:24:49
Crear una variable. 00:24:51
Vale. 00:24:52
Ya está creada. 00:24:54
La llamo como me dé la gana, 00:24:55
porque esto no es un campo de Java. 00:24:57
No es una variable de Java. 00:25:01
Es una variable interna del informe 00:25:03
que va a procesar información. 00:25:05
A ver. 00:25:08
Pues venga, mi variable 00:25:09
hay seleccionada, me voy a object, le voy a cambiar el nombre 00:25:11
porque variable 1 es muy feo, pues yo que sé 00:25:15
nombre que va a aparecer en el pie, vale, nombre que quiero que aparezca 00:25:17
en el pie de cada página, nombre pie de página 00:25:23
vale, que va a tener un string 00:25:27
vale, muy bien, y ahora aquí 00:25:30
en expresión le pongo 00:25:37
Lo que yo quiero que aparezca 00:25:40
Pues quiero que aparezca 00:25:42
El nombre de pila 00:25:44
Del corredor 00:25:46
¿De cuál? Ahora veremos 00:25:48
El nombre del corredor 00:25:50
Es el dólar field, ¿verdad? 00:25:52
Dólar 00:25:55
Dólar 00:25:55
Corredor 00:25:59
Vale, pues dólar 00:26:01
Corredor, bueno, es más fácil 00:26:04
Dólar, sí, tienes razón 00:26:06
si yo lo edito aquí me es más fácil 00:26:08
que escribirlo ahí yo creo 00:26:13
si le doy ahí 00:26:14
vale 00:26:16
el dólar corredor 00:26:17
pues que es todo el nombre 00:26:20
me voy a quedar con 00:26:22
esto solamente para invocar 00:26:24
código java 00:26:27
con el substring me quiero quedar 00:26:28
con 00:26:31
el nombre solo 00:26:32
Entonces me tengo que quedar con el substring que va desde 0 hasta donde me aparece el espacio por primera vez y donde me aparece el espacio por primera vez, pues en el index of, si vuelvo a poner $F corredor y ahora este es mi string, me quedo con index of espacio. 00:26:36
vale, entonces 00:27:10
esto 00:27:17
la posición 00:27:21
de todo el string 00:27:24
$corredor donde me aparece el primer espacio 00:27:25
pues me voy a quedar 00:27:28
con el substring que va hasta ahí 00:27:30
hasta 00:27:32
el anterior, ese primer espacio 00:27:34
vale, pues por hacer un mínimo 00:27:35
procesamiento, entonces esto se supone 00:27:38
que saca de todo el nombre del 00:27:40
corredor, saca el nombre de pila 00:27:42
Pues este es el procesamiento que va a hacer la variable 00:27:43
Pero podría hacer cualquier otro código Java 00:27:47
Y ese código Java lo hace 00:27:49
Sobre campos del informe 00:27:51
Luego es una forma de meter código Java 00:27:53
Que me procesa campos del informe 00:27:55
Para sacarme otros resultados 00:27:58
Procesados 00:27:59
Por ejemplo este 00:28:00
Vale, no sé si 00:28:01
Y ahora 00:28:03
¿Dónde coloco la variable? 00:28:08
La variable está 00:28:13
caracterizada ya 00:28:14
la vamos a colocar pues aquí en el pie 00:28:15
de página también, entonces yo 00:28:18
la arrastro, mi variable 00:28:20
la voy a arrastrar aquí 00:28:22
bueno, no al 00:28:24
column footer 00:28:29
no, venga aquí 00:28:31
que se vea, vale 00:28:33
ahí la arrastro 00:28:35
y ahora 00:28:38
importante, y esto es lo más importante 00:28:41
de las 00:28:43
de las variables 00:28:46
qué es y cuándo 00:28:48
la evalúas, esto es lo más importante 00:28:51
porque 00:28:53
yo aquí he hecho un 00:28:54
procesamiento sobre el campo 00:28:56
nombre del corredor, pero claro 00:28:59
nombre de corredor, tengo un montón 00:29:01
sobre qué nombre de corredor 00:29:03
actúa, sobre qué nombre de corredor actúa 00:29:05
sobre el primero, sobre el 00:29:07
segundo, sobre el último, pues depende 00:29:09
del momento 00:29:11
en el que yo le diga 00:29:13
evalúate variable 00:29:15
Si le digo que lo evalúe al final del informe, el campo corredor va a ser el último. 00:29:16
Pero si le digo que lo informe en el momento de crearse, como se va a crear una vez por cada pie, pues se va a evaluar para el final de cada página. 00:29:24
Entonces, dependiendo del momento en el que se evalúe la variable, el campo corredor va a ser uno o va a ser otro. 00:29:34
Pues yo aquí puedo elegir. 00:29:42
now significa en el momento de hacer la variable 00:29:43
es cuando lo procesas 00:29:47
report significa 00:29:49
al final del informe 00:29:51
con lo cual si es al final del informe 00:29:53
todos tendrían el mismo nombre que es el del último 00:29:55
todos 00:29:57
si es página al final de cada página 00:29:58
vamos a ponerle now 00:30:01
que es en el momento de evaluar la variable 00:30:03
a ver que nos sale 00:30:05
vale 00:30:07
esto sería cada vez que ejecutas una página 00:30:08
que sería lo mismo 00:30:13
que now en este caso 00:30:15
porque la variable se ejecuta al final de la página 00:30:17
con lo cual en este caso now y página 00:30:20
tendrían el mismo efecto 00:30:22
vamos a ponerle 00:30:24
now 00:30:26
si es con la opción report 00:30:26
no, pero es page, estoy diciendo page 00:30:36
page sería la misma 00:30:42
que now en este caso 00:30:44
Porque la variable 00:30:45
Solamente hay una por página y al final 00:30:47
Vale 00:30:49
Vamos a ver aquí que nos sale 00:30:51
Si hemos hecho bien el procesamiento 00:30:53
Y todo 00:30:55
Vamos a compilar esto antes que nada 00:30:56
Vale 00:30:59
Substream 00:31:05
Lo estoy usando mal porque substream 00:31:07
El primer parámetro no tienes que ponerlo 00:31:09
Por cuando 00:31:11
Verdad porque se asume por defecto 00:31:13
Que es cero, creo 00:31:15
Substream lo estoy usando mal 00:31:16
Es un error de compilación 00:31:18
De Java, vamos, lo que me está diciendo 00:31:22
Uy, ¿dónde me voy yo? 00:31:23
Entonces 00:31:26
Me voy a mi variable 00:31:26
¿Cómo se usaba substring? 00:31:29
Que alguien me lo diga 00:31:33
Me voy a mi variable 00:31:35
Expresión 00:31:37
Ah, es que es con minúscula 00:31:39
¿Cómo que es con minúscula? 00:31:41
O sea, string es con minúscula 00:31:43
Ah, vale 00:31:44
Y solo tiene un 00:31:47
Porque el 0 es por defecto 00:31:48
Puede tener, o sea, tiene varias posibilidades 00:31:51
Pero en este caso fue un sub-sequence 00:31:54
No, no, no 00:31:55
Porque yo creo que esta me vale 00:31:58
Sub-string 00:31:59
Y se me queda hasta ahí 00:32:01
Yo creo que esto ya me valdría 00:32:02
Pero bueno, vamos a probarlo 00:32:04
A ver si hemos acertado 00:32:07
Sí, vale, ahora ya se ha puesto bien el código 00:32:09
Vale 00:32:12
Pues venga 00:32:13
Ahora ya me llevo 00:32:15
Mi informe 00:32:17
Listado Jasper 00:32:18
Que está aquí 00:32:23
Copy 00:32:27
A informes 00:32:28
Paste 00:32:35
Vale, a ver si he hecho bien la variable 00:32:39
Venga, lo hago todo 00:32:44
De cero 00:33:05
¿Dónde está mi variable? 00:33:05
No se me ve ahí 00:33:37
A ver si 00:33:38
Vale 00:33:39
Bueno, pues con esto 00:33:44
Ahora ya, sí que sí 00:33:47
Vale, con esto ahora ya 00:33:49
Sí que sí 00:33:54
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Segundo Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
8
Fecha:
18 de noviembre de 2025 - 14:03
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
33′ 56″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
161.83 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid