20251118 EjercicioJSON_PDF_3_ParyVar - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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
es
00:27:19
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
00:28:43
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