1 00:00:00,000 --> 00:00:16,899 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. 2 00:00:16,899 --> 00:00:28,879 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ó. 3 00:00:30,000 --> 00:00:33,500 Sí, el campo tiene que llamar igual que la variable 4 00:00:33,500 --> 00:00:34,579 donde está la fuente de datos 5 00:00:34,579 --> 00:00:37,000 Bueno, pues entonces 6 00:00:37,000 --> 00:00:38,640 vamos a ponerle una 7 00:00:38,640 --> 00:00:41,140 plantillita, ya que queríais 8 00:00:41,140 --> 00:00:43,500 A mí me da una duda, porque por ejemplo, estadística 9 00:00:43,500 --> 00:00:45,420 en el proyecto era un objeto 10 00:00:45,420 --> 00:00:47,399 y aquí para el objeto 11 00:00:47,399 --> 00:00:49,479 A ver, pero es que yo había sacado 12 00:00:49,479 --> 00:00:51,020 un datos informe aparte 13 00:00:51,020 --> 00:00:53,520 y ahí lo había construido con la variable sueltas 14 00:00:53,520 --> 00:00:55,259 que no haría falta, porque al 15 00:00:55,259 --> 00:00:56,939 textfield le podría haber llamado 16 00:00:56,939 --> 00:00:59,859 formula1.corredores.com 17 00:00:59,859 --> 00:01:01,659 punto estadística y me lo coge 18 00:01:01,659 --> 00:01:04,019 siguiendo el punto, pero no nos estamos 19 00:01:04,019 --> 00:01:05,519 metiendo ni en detalle ni en complicaciones 20 00:01:05,519 --> 00:01:07,500 si uno se mete en el Jasper Report, pues ve que 21 00:01:07,500 --> 00:01:09,260 tiene millones de posibilidades 22 00:01:09,260 --> 00:01:11,000 pero estamos haciendo una 23 00:01:11,000 --> 00:01:12,239 overview 24 00:01:12,239 --> 00:01:15,819 por encima para luego que uno pueda arrancar 25 00:01:15,819 --> 00:01:17,140 y hacer cosas, una overview 26 00:01:17,140 --> 00:01:20,140 venga, pues nos gusta la florecita 27 00:01:20,140 --> 00:01:22,299 es que no hay ninguna mona 28 00:01:22,299 --> 00:01:23,739 venga, da igual, la florecita 29 00:01:23,739 --> 00:01:26,340 el coffee 30 00:01:26,340 --> 00:01:27,560 a ver si nos despertamos 31 00:01:27,560 --> 00:01:30,299 Venga, la plantilla de Kofi nos gusta 32 00:01:30,299 --> 00:01:31,680 Que vamos a quitarle casi todo 33 00:01:31,680 --> 00:01:34,000 Y la llamo 34 00:01:34,000 --> 00:01:37,180 Listado 35 00:01:37,180 --> 00:01:40,170 Ala 36 00:01:40,170 --> 00:01:43,129 Enhorabuena 37 00:01:43,129 --> 00:01:46,170 Enhorabuena 38 00:01:46,170 --> 00:01:47,409 Lo que acabas de hacer 39 00:01:47,409 --> 00:01:49,689 Ala 40 00:01:49,689 --> 00:01:51,730 Y él ya me ofrece un montón de cosas 41 00:01:51,730 --> 00:01:53,069 De las cuales yo voy a quitar 42 00:01:53,069 --> 00:01:54,129 Un montón 43 00:01:54,129 --> 00:01:56,590 Esto va a ser 44 00:01:56,590 --> 00:01:58,629 Fórmula 1 45 00:01:58,629 --> 00:02:00,170 Aquí 46 00:02:00,170 --> 00:02:03,409 Seleccionamos la etiqueta esta 47 00:02:03,409 --> 00:02:05,290 Y vamos a 48 00:02:05,290 --> 00:02:06,769 Cambiar su texto 49 00:02:06,769 --> 00:02:10,099 ¿Vale? 50 00:02:16,300 --> 00:02:18,659 Y voy a quitar todo lo que me sobre para que no me quede 51 00:02:18,659 --> 00:02:19,599 Una plantilla muy 52 00:02:19,599 --> 00:02:22,020 Ya tengo 53 00:02:22,020 --> 00:02:24,419 El 1 no se ve 54 00:02:24,419 --> 00:02:28,340 Hago esto más grande para que se vea 55 00:02:28,340 --> 00:02:29,800 El Loren Ibsen 56 00:02:29,800 --> 00:02:31,879 Que es esta, es la lista de corredores, no sé qué 57 00:02:31,879 --> 00:02:33,580 Fuera, fuera el Loren Ibsen 58 00:02:33,580 --> 00:02:35,699 El dibujito 59 00:02:35,699 --> 00:02:37,740 el grano de café nos gusta, lo dejamos 60 00:02:37,740 --> 00:02:39,539 vale, en el 61 00:02:39,539 --> 00:02:41,340 subtítulo, en el subtítulo 62 00:02:41,340 --> 00:02:43,419 por ejemplo a mí aquí me puede interesar 63 00:02:43,419 --> 00:02:45,139 poner temporada 64 00:02:45,139 --> 00:02:47,939 24-25, 25-26 65 00:02:47,939 --> 00:02:49,939 pero claro, esto puede ser 66 00:02:49,939 --> 00:02:51,719 un dato variable 67 00:02:51,719 --> 00:02:53,560 fórmula 1 es 68 00:02:53,560 --> 00:02:55,099 un campo estático, ahí se queda 69 00:02:55,099 --> 00:02:57,879 si yo quiero cambiarlo, tengo que venirme 70 00:02:57,879 --> 00:02:59,479 otra vez a la plantilla 71 00:02:59,479 --> 00:03:01,240 para cambiarlo, pero aquí 72 00:03:01,240 --> 00:03:03,599 el temporada, pues yo 73 00:03:03,599 --> 00:03:04,419 este informe 74 00:03:04,419 --> 00:03:07,419 lo voy a generar en temporadas distintas 75 00:03:07,419 --> 00:03:09,319 y no me apetece venir aquí cada vez 76 00:03:09,319 --> 00:03:10,599 a cambiar el número de temporada 77 00:03:10,599 --> 00:03:13,199 entonces lo puedo poner como un dato que se llene 78 00:03:13,199 --> 00:03:15,139 desde Java, un dato variable 79 00:03:15,139 --> 00:03:16,379 que se llene desde Java 80 00:03:16,379 --> 00:03:19,099 pero este es un dato único 81 00:03:19,099 --> 00:03:21,180 porque es una variable que es el nombre 82 00:03:21,180 --> 00:03:23,080 de temporada, no es como los campos 83 00:03:23,080 --> 00:03:25,060 los $fill que son 84 00:03:25,060 --> 00:03:27,360 listado de corredores, listado de equipos 85 00:03:27,360 --> 00:03:29,159 entonces yo pongo el $fill pero luego hay 86 00:03:29,159 --> 00:03:30,719 muchas instancias de cada uno 87 00:03:30,719 --> 00:03:33,180 entonces ese es un concepto 88 00:03:33,180 --> 00:03:38,280 El campo, el field, es un campo de mi plantilla 89 00:03:38,280 --> 00:03:42,300 que se va a replicar tantas veces 90 00:03:42,300 --> 00:03:44,039 como luego instancias tenga. 91 00:03:44,479 --> 00:03:46,400 Y de ahí vienen las columnas del informe. 92 00:03:46,479 --> 00:03:47,180 De ahí vienen las columnas. 93 00:03:47,840 --> 00:03:49,479 Pero este no responde a esa idea. 94 00:03:50,500 --> 00:03:54,039 Este es un valor único, mi temporada, 25-26. 95 00:03:54,500 --> 00:03:56,219 Vale, que no se va a replicar mil veces. 96 00:03:56,460 --> 00:03:57,280 Es un valor único. 97 00:03:57,280 --> 00:03:58,800 Pues entonces esto se llama de otra manera, 98 00:03:59,360 --> 00:04:00,240 que se llama parámetro. 99 00:04:00,240 --> 00:04:03,340 vale, pues entonces aquí en lugar de poner un texto estático 100 00:04:03,340 --> 00:04:05,020 yo no quiero un texto estático aquí 101 00:04:05,020 --> 00:04:07,020 sino que voy a crearme un parámetro 102 00:04:07,020 --> 00:04:09,419 pues venga, me voy a crear un parámetro 103 00:04:09,419 --> 00:04:10,360 me voy a parámetros 104 00:04:10,360 --> 00:04:13,219 que él ya tiene algunos por defecto 105 00:04:13,219 --> 00:04:14,280 que yo puedo usar 106 00:04:14,280 --> 00:04:17,139 pasamos de ellos, aunque podríais explorar 107 00:04:17,139 --> 00:04:19,100 lo que son, me voy a crear 108 00:04:19,100 --> 00:04:20,939 un parámetro, vale 109 00:04:20,939 --> 00:04:23,100 lo selecciono aquí 110 00:04:23,100 --> 00:04:24,939 y para cambiar sus 111 00:04:24,939 --> 00:04:27,339 datos y cositas 112 00:04:27,339 --> 00:04:29,060 pues me voy aquí una vez seleccionado 113 00:04:29,060 --> 00:04:30,939 object. ¿Cómo quiero que se 114 00:04:30,939 --> 00:04:32,459 llame? Hombre, 115 00:04:33,560 --> 00:04:35,000 este va a ser el nombre que tenga 116 00:04:35,000 --> 00:04:35,360 luego 117 00:04:35,360 --> 00:04:38,959 en el código. Para mí ter1 es un poco 118 00:04:38,959 --> 00:04:41,079 feo. Pues venga, vamos a llamarlo 119 00:04:41,079 --> 00:04:41,879 temporada. 120 00:04:45,300 --> 00:04:46,959 No, porque no es un texto 121 00:04:46,959 --> 00:04:48,259 estático, cambia en función 122 00:04:48,259 --> 00:04:51,040 de lo que haya en la variable que se llame así 123 00:04:51,040 --> 00:04:52,439 en Java. Ahora lo vemos. 124 00:04:54,779 --> 00:04:56,899 ¿Cómo va a tener? ¿25 o 26? 125 00:04:57,079 --> 00:04:58,980 Pues un string y ya está. 25 barra 126 00:04:58,980 --> 00:05:01,199 26 de tipo stream, aunque podría ser 127 00:05:01,199 --> 00:05:02,500 número o cualquier otra cosa 128 00:05:02,500 --> 00:05:04,519 vale, pues ya tengo 129 00:05:04,519 --> 00:05:06,920 mi parámetro, mi parámetro 130 00:05:06,920 --> 00:05:08,839 está creado, igual que los fields 131 00:05:08,839 --> 00:05:11,100 lo decido 132 00:05:11,100 --> 00:05:12,399 yo donde lo coloco, pues lo voy a 133 00:05:12,399 --> 00:05:14,680 colocar aquí en el título, debajo de 134 00:05:14,680 --> 00:05:17,000 fórmula 1, pues lo llevo 135 00:05:17,000 --> 00:05:17,899 ahí 136 00:05:17,899 --> 00:05:22,259 ahí lo llevo 137 00:05:22,259 --> 00:05:24,879 y para que no quede tan pequeñito, lo selecciono 138 00:05:24,879 --> 00:05:25,800 me voy aquí 139 00:05:25,800 --> 00:05:27,500 y en 140 00:05:27,500 --> 00:05:30,720 aquí, en la pestañita text 141 00:05:30,720 --> 00:05:40,160 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. 142 00:05:41,579 --> 00:05:45,220 Pues venga, vamos a hacerlo un poco más grande. 143 00:05:48,120 --> 00:05:50,699 Temporada y que sea negrilla, por lo menos. 144 00:05:51,339 --> 00:05:52,259 Venga, pues hala. 145 00:05:53,560 --> 00:05:55,560 Y que aparezca ahí centrado. 146 00:05:56,620 --> 00:05:57,500 Hala, ya está. 147 00:05:57,500 --> 00:06:01,990 Ya tengo mi título con esto 148 00:06:01,990 --> 00:06:04,189 Que voy a tener que rellenar del informe 149 00:06:04,189 --> 00:06:05,550 Ya veremos como lo relleno 150 00:06:05,550 --> 00:06:08,129 Ahora ya, mis campos 151 00:06:08,129 --> 00:06:09,709 Campos 152 00:06:09,709 --> 00:06:12,329 Equipo, corredor y puntos 153 00:06:12,329 --> 00:06:13,050 Eran, verdad 154 00:06:13,050 --> 00:06:15,230 Equipo, corredor y puntos 155 00:06:15,230 --> 00:06:17,689 Pues me voy a fills y los creo 156 00:06:17,689 --> 00:06:19,050 Parámetros ya están 157 00:06:19,050 --> 00:06:20,449 Fills 158 00:06:20,449 --> 00:06:22,410 Pues venga 159 00:06:22,410 --> 00:06:24,970 Nuevo 160 00:06:24,970 --> 00:06:26,550 Campo 161 00:06:26,550 --> 00:06:30,019 Ahí seleccionado 162 00:06:30,019 --> 00:07:01,709 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. 163 00:07:01,709 --> 00:07:03,670 Equipo, corredor y puntos 164 00:07:03,670 --> 00:07:04,889 Efectivamente era int 165 00:07:04,889 --> 00:07:08,509 Pues entonces en mi plantilla 166 00:07:08,509 --> 00:07:09,670 Equipo, corredor 167 00:07:09,670 --> 00:07:11,069 Esto va a ser int 168 00:07:11,069 --> 00:07:16,829 Vale, ¿dónde las coloco? 169 00:07:16,990 --> 00:07:17,930 Pues en el detail 170 00:07:17,930 --> 00:07:19,629 Debería colocarlo 171 00:07:19,629 --> 00:07:22,149 A ver, la banda de detalle 172 00:07:22,149 --> 00:07:23,930 Me voy aquí 173 00:07:23,930 --> 00:07:25,230 Está aquí 174 00:07:25,230 --> 00:07:27,490 Está 175 00:07:27,490 --> 00:07:29,470 Enana, es esta 176 00:07:29,470 --> 00:07:30,790 La de detalle o cuál es 177 00:07:30,790 --> 00:07:36,360 Esto es un marco que tiene puesto en la banda de detalle 178 00:07:36,360 --> 00:07:37,959 Un marquito 179 00:07:37,959 --> 00:07:39,240 Entonces 180 00:07:39,240 --> 00:07:42,100 Voy a hacer un poco más grande esto 181 00:07:42,100 --> 00:07:48,529 La banda de detalle 182 00:07:48,529 --> 00:07:49,889 Le voy a quitar el marco ese 183 00:07:49,889 --> 00:07:52,430 Vale, esta es mi banda de detalle 184 00:07:52,430 --> 00:07:54,589 Pues me voy a llevar ahí los tres campos 185 00:07:54,589 --> 00:08:00,360 El de equipo 186 00:08:00,360 --> 00:08:03,439 Corredor 187 00:08:03,439 --> 00:08:06,240 Y puntos 188 00:08:06,240 --> 00:08:07,259 Vale 189 00:08:07,259 --> 00:08:27,920 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. 190 00:08:27,920 --> 00:09:09,049 Pues venga, equipo, equipo y negrita, corredor lo mismo, mayúscula y negrita y puntos lo mismo y negrita. 191 00:09:09,049 --> 00:09:31,919 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. 192 00:09:31,919 --> 00:09:33,720 una variable que ya 193 00:09:33,720 --> 00:09:36,299 instancia directa 194 00:09:36,299 --> 00:09:38,500 es decir, desde aquí 195 00:09:38,500 --> 00:09:40,039 desde el informe 196 00:09:40,039 --> 00:09:41,679 en campos que se llaman variables 197 00:09:41,679 --> 00:09:43,740 puedes invocar código Java directamente 198 00:09:43,740 --> 00:09:45,360 y el resultado de ese código 199 00:09:45,360 --> 00:09:46,840 se plantará ahí 200 00:09:46,840 --> 00:09:49,460 bueno, pues el aquí 201 00:09:49,460 --> 00:09:52,460 en el pie de la página, en el pie del informe 202 00:09:52,460 --> 00:09:53,159 aquí en el pie 203 00:09:53,159 --> 00:09:55,620 ha creado una variable 204 00:09:55,620 --> 00:09:57,759 ahora vamos a crear nosotros otra para meter 205 00:09:57,759 --> 00:09:59,799 nuestro propio código, ha creado una variable 206 00:09:59,799 --> 00:10:01,799 y en esa variable ha invocado 207 00:10:01,799 --> 00:10:03,960 a este código y el resultado 208 00:10:03,960 --> 00:10:05,000 se va a plantar ahí 209 00:10:05,000 --> 00:10:07,539 ese código en Java ya sabemos lo que hace 210 00:10:07,539 --> 00:10:09,480 es crearte la fecha actual 211 00:10:09,480 --> 00:10:11,860 bueno, pues ¿qué me va a aparecer en el pie 212 00:10:11,860 --> 00:10:13,860 de página? la fecha actual, la fecha del 213 00:10:13,860 --> 00:10:15,919 informe, ¿me interesa que esté ahí? pues sí, es bonita 214 00:10:15,919 --> 00:10:17,679 pues ahora, la dejamos 215 00:10:17,679 --> 00:10:19,899 y aquí 216 00:10:19,899 --> 00:10:20,440 también 217 00:10:20,440 --> 00:10:23,820 me ha metido, en el pie de 218 00:10:23,820 --> 00:10:26,000 página, me ha metido 219 00:10:26,000 --> 00:10:27,620 estas dos cositas 220 00:10:27,620 --> 00:10:29,820 que son lo mismo 221 00:10:29,820 --> 00:10:31,159 aquí 222 00:10:31,159 --> 00:10:44,570 Y me ha metido una variable que tiene ya configurada, que es el número de páginas, ¿vale? 223 00:10:45,029 --> 00:10:51,870 Me ha metido este string, la página no sé cuántos de número de páginas. 224 00:10:53,110 --> 00:10:57,620 Entonces, estos son dos variables, ¿vale? 225 00:10:57,639 --> 00:10:59,179 Dos variables que él ha metido. 226 00:11:00,019 --> 00:11:02,460 Entonces, vamos a hacer nosotros una variable para meter cosas. 227 00:11:02,460 --> 00:11:07,820 Por ejemplo, bueno, primero vamos a probar este informe. 228 00:11:07,820 --> 00:11:09,419 a ver si nos gusta como queda 229 00:11:09,419 --> 00:11:10,879 y luego ya le añadimos una cosita 230 00:11:10,879 --> 00:11:11,740 metiendo una variable 231 00:11:11,740 --> 00:11:18,450 entre el 232 00:11:18,450 --> 00:11:20,970 que el parámetro es para una información 233 00:11:20,970 --> 00:11:23,490 que no aparece muchas veces 234 00:11:23,490 --> 00:11:24,350 que no se replica 235 00:11:24,350 --> 00:11:26,269 es decir, equipo 236 00:11:26,269 --> 00:11:27,710 hay un montón de equipos 237 00:11:27,710 --> 00:11:30,690 va a aparecer tantos de estos 238 00:11:30,690 --> 00:11:31,830 como equipos tengas 239 00:11:31,830 --> 00:11:34,269 corredor, hay un montón de corredores 240 00:11:34,269 --> 00:11:36,789 va a aparecer tantos de estos como corredores tengas 241 00:11:36,789 --> 00:11:38,649 en el informe solo pones un $fill 242 00:11:38,649 --> 00:11:40,529 Pero al ser fill 243 00:11:40,529 --> 00:11:43,029 Se sobreentiende que si tú le das 20 244 00:11:43,029 --> 00:11:44,529 Se replica 20 veces 245 00:11:44,529 --> 00:11:47,370 El parámetro es para un dato concreto 246 00:11:47,370 --> 00:11:49,590 Pues un título 247 00:11:49,590 --> 00:11:51,590 Que tú quieras poner, el nombre del que lo creo 248 00:11:51,590 --> 00:11:52,470 Un dato concreto 249 00:11:52,470 --> 00:11:55,470 Vale, pues vamos a hacer 250 00:11:55,470 --> 00:11:56,610 Este informe 251 00:11:56,610 --> 00:11:58,990 Antes de meternos haciendo una variable 252 00:11:58,990 --> 00:12:01,049 Para entenderlo un poco más, bueno, vamos a compilarlo 253 00:12:01,049 --> 00:12:03,370 A ver si esto compilará 254 00:12:03,370 --> 00:12:05,970 Con lo que hemos hecho 255 00:12:05,970 --> 00:12:16,059 Vale, no tiene errores de compilación 256 00:12:16,059 --> 00:12:16,639 Entonces 257 00:12:16,639 --> 00:12:19,340 Yo ahora ya me puedo sacar mi Jasper 258 00:12:19,340 --> 00:12:20,080 Pero ojo 259 00:12:20,080 --> 00:12:23,480 Esto tenía un dibujito 260 00:12:23,480 --> 00:12:24,419 Que es este 261 00:12:24,419 --> 00:12:26,720 Entonces me lo tengo que llevar también 262 00:12:26,720 --> 00:12:28,679 Porque la plantilla tira del dibujito 263 00:12:28,679 --> 00:12:30,860 Entonces este dibujito 264 00:12:30,860 --> 00:12:32,639 Será 265 00:12:32,639 --> 00:12:35,299 El Coffee Stain PNG 266 00:12:35,299 --> 00:12:36,399 Este de aquí, imagino 267 00:12:36,399 --> 00:12:40,179 Ah, no, el Coffee Stain es el fondo 268 00:12:40,179 --> 00:12:42,159 Vale, pues entonces 269 00:12:42,159 --> 00:12:42,539 Me tengo 270 00:12:42,539 --> 00:12:44,500 Esta es 271 00:12:44,500 --> 00:12:47,379 Y el Coffee Stain está de fondo 272 00:12:47,379 --> 00:12:48,559 Entonces me tengo que llevar los dos 273 00:12:48,559 --> 00:12:50,500 El Coffee y el Coffee Stain 274 00:12:50,500 --> 00:12:52,120 Entonces me tengo que llevar listado 275 00:12:52,120 --> 00:12:53,240 Jasper 276 00:12:53,240 --> 00:12:56,879 El Coffee JPG y el Coffee Stain 277 00:12:56,879 --> 00:12:59,279 Y yo creo que ya no hay más gráficos 278 00:12:59,279 --> 00:13:00,179 Ni más nada que use 279 00:13:00,179 --> 00:13:02,039 Todo esto 280 00:13:02,039 --> 00:13:04,120 Me lo llevo 281 00:13:04,120 --> 00:13:06,120 Aquí a mis informes 282 00:13:06,120 --> 00:13:12,610 informes 283 00:13:12,610 --> 00:13:14,269 que está aquí 284 00:13:14,269 --> 00:13:19,220 paste, vale 285 00:13:19,220 --> 00:13:21,940 voy a revisar 286 00:13:21,940 --> 00:13:23,379 solamente una cosa en la plantilla 287 00:13:23,379 --> 00:13:25,279 porque claro, yo lo he puesto directamente 288 00:13:25,279 --> 00:13:27,519 las imágenes 289 00:13:27,519 --> 00:13:29,820 las he puesto a la altura de la plantilla 290 00:13:29,820 --> 00:13:31,720 vamos a ver si en la plantilla 291 00:13:31,720 --> 00:13:33,899 directamente en el jrxml 292 00:13:33,899 --> 00:13:35,700 tira de la 293 00:13:35,700 --> 00:13:38,019 ubicación donde está la propia plantilla 294 00:13:38,019 --> 00:13:39,919 o se va a una subcarpeta 295 00:13:39,919 --> 00:13:41,120 vamos a mirar un momentito 296 00:13:41,120 --> 00:13:43,480 Vamos a revisar la fuente 297 00:13:43,480 --> 00:13:45,379 A ver, vamos a revisar la fuente 298 00:13:45,379 --> 00:13:48,659 Pues aquí me declara los tres fields 299 00:13:48,659 --> 00:13:49,539 Muy bien 300 00:13:49,539 --> 00:13:52,419 Equipo, corredor y puntos 301 00:13:52,419 --> 00:13:53,299 Integer 302 00:13:53,299 --> 00:13:56,539 Los dibujitos, vamos a ver donde los tiene declarados 303 00:13:56,539 --> 00:13:59,059 Fórmula 1 304 00:13:59,059 --> 00:14:00,480 El coffee 305 00:14:00,480 --> 00:14:02,580 Vale, no los mete 306 00:14:02,580 --> 00:14:05,059 En ninguna ruta específica 307 00:14:05,059 --> 00:14:05,899 Están tal cual 308 00:14:05,899 --> 00:14:07,200 Coffee stain 309 00:14:07,200 --> 00:14:10,460 Este es el parámetro temporada que acabo de meter 310 00:14:10,460 --> 00:14:12,820 y el cofi.jpg está aquí 311 00:14:12,820 --> 00:14:15,059 vale, como no nos mete 312 00:14:15,059 --> 00:14:16,500 ninguna ruta específica 313 00:14:16,500 --> 00:14:19,019 lo pongo a la misma altura que la plantilla 314 00:14:19,019 --> 00:14:20,899 pero a ver, podría yo hacerme otra 315 00:14:20,899 --> 00:14:22,759 subcarpeta, informes o lo que sea 316 00:14:22,759 --> 00:14:24,799 entonces aquí tendría que poner la ruta 317 00:14:24,799 --> 00:14:26,919 donde yo he guardado esas imágenes 318 00:14:26,919 --> 00:14:27,879 en mi proyecto 319 00:14:27,879 --> 00:14:30,940 ¿vale? pero lo más sencillo 320 00:14:30,940 --> 00:14:32,820 de todo, si están 321 00:14:32,820 --> 00:14:35,139 en la misma ruta que la propia plantilla 322 00:14:35,139 --> 00:14:36,740 en la misma ruta, se queda así 323 00:14:36,740 --> 00:14:38,960 y si no, tengo que poner la ruta 324 00:14:38,960 --> 00:14:40,919 ahí, vale, pero está en la misma 325 00:14:40,919 --> 00:14:42,799 ruta, lo dejo ahí, vale, pues 326 00:14:42,799 --> 00:14:44,440 ahora vamos a ver si con esta plantilla 327 00:14:44,440 --> 00:14:46,779 me genera 328 00:14:46,779 --> 00:14:48,940 el listado, porque 329 00:14:48,940 --> 00:14:50,779 no sé yo lo que hemos 330 00:14:50,779 --> 00:14:54,259 hecho aquí, venga, vamos a 331 00:14:54,259 --> 00:14:55,559 empezar de cero 332 00:14:55,559 --> 00:15:04,519 ¿qué ha pasado? 333 00:15:10,500 --> 00:15:12,659 vale, pues 334 00:15:12,659 --> 00:15:13,259 venga 335 00:15:13,259 --> 00:15:24,909 espera 336 00:15:24,909 --> 00:15:28,389 abrir, a ver si la plantilla 337 00:15:28,389 --> 00:15:31,309 Está bien o está mal 338 00:15:31,309 --> 00:15:33,450 Algo ha hecho 339 00:15:33,450 --> 00:15:34,289 No sabemos el qué 340 00:15:34,289 --> 00:15:43,110 Esta no es 341 00:15:43,110 --> 00:15:52,429 BTA 342 00:15:52,429 --> 00:16:05,149 No he copiado la plantilla nueva 343 00:16:05,149 --> 00:16:06,710 Vamos a ver 344 00:16:06,710 --> 00:16:09,669 Si es que ya os digo que las grabaciones 345 00:16:09,669 --> 00:16:11,169 Aquí son, no sé cuando se 346 00:16:11,169 --> 00:16:13,549 Yo creo, la detuve cuando no 347 00:16:13,549 --> 00:16:14,830 Generó bien el PDF 348 00:16:14,830 --> 00:16:15,750 Ahí la detuve 349 00:16:15,750 --> 00:16:18,850 Yo me había puesto aquí este parámetro 350 00:16:18,850 --> 00:16:21,509 Y aquí, cuando yo genero 351 00:16:21,509 --> 00:16:23,509 la plantilla con el field report, recordad 352 00:16:23,509 --> 00:16:24,289 que le dábamos 353 00:16:24,289 --> 00:16:29,100 los datos, la plantilla 354 00:16:29,100 --> 00:16:30,519 y yo aquí decía 355 00:16:30,519 --> 00:16:32,659 aquí un null, por ahora 356 00:16:32,659 --> 00:16:35,080 un null, pues ahí es donde metemos 357 00:16:35,080 --> 00:16:36,740 todos los parámetros que 358 00:16:36,740 --> 00:16:38,759 yo quiera inyectar en la plantilla 359 00:16:38,759 --> 00:16:40,700 todos los parámetros, ahí es donde 360 00:16:40,700 --> 00:16:42,620 los metemos, y como creo 361 00:16:42,620 --> 00:16:44,659 los parámetros, pues mis parámetros van a ser 362 00:16:44,659 --> 00:16:45,600 un map con 363 00:16:45,600 --> 00:16:48,019 el nombre del parámetro 364 00:16:48,019 --> 00:16:50,960 y lo que yo quiera meter al parámetro 365 00:16:50,960 --> 00:16:56,240 yo solamente he hecho 366 00:16:56,240 --> 00:16:58,100 un parámetro pero podría haber hecho muchos 367 00:16:58,100 --> 00:17:00,299 pues todos los parámetros que yo haga 368 00:17:00,299 --> 00:17:01,179 van a ir a ese map 369 00:17:01,179 --> 00:17:07,960 pues venga, voy a meter 370 00:17:07,960 --> 00:17:11,960 un parámetro 371 00:17:11,960 --> 00:17:15,660 parámetros 372 00:17:15,660 --> 00:17:17,339 punto put 373 00:17:17,339 --> 00:17:20,359 con clave temporada 374 00:17:20,359 --> 00:17:22,900 porque así creo que se llamaba en mi plantilla 375 00:17:22,900 --> 00:17:24,539 creo que 376 00:17:24,539 --> 00:17:26,559 en mi plantilla se llamaba temporada 377 00:17:26,559 --> 00:17:27,200 efectivamente 378 00:17:27,200 --> 00:17:29,779 voy a 379 00:17:29,779 --> 00:17:31,960 meter un parámetro temporada 380 00:17:31,960 --> 00:17:32,980 y que voy a meter ahí 381 00:17:32,980 --> 00:17:35,779 lo que me dé la gana, eso lo puedo haber leído 382 00:17:35,779 --> 00:17:37,420 de una base de datos de donde fuera 383 00:17:37,420 --> 00:17:37,980 yo que si 384 00:17:37,980 --> 00:17:41,720 voy a poner ahí 25, 26 385 00:17:41,720 --> 00:17:43,599 pero bueno, este dato yo lo habré leído 386 00:17:43,599 --> 00:17:44,339 de donde sea 387 00:17:44,339 --> 00:17:47,680 vale, entonces podría así 388 00:17:47,680 --> 00:17:49,299 meter un montón de parámetros más 389 00:17:49,299 --> 00:17:51,619 que son datos que van a aparecer una sola vez en el informe 390 00:17:52,319 --> 00:17:54,220 entonces el informe 391 00:17:54,220 --> 00:17:55,920 va a meter este dato 392 00:17:55,920 --> 00:17:57,640 va a meter este dato donde esté 393 00:17:57,640 --> 00:17:59,539 el parámetro que se llame temporada 394 00:17:59,539 --> 00:18:01,180 que en mi caso es ahí 395 00:18:01,180 --> 00:18:03,200 Donde esté el parámetro que se llama temporada 396 00:18:03,200 --> 00:18:05,700 Bueno, pues entonces 397 00:18:05,700 --> 00:18:08,039 Como ahora ya sí que tengo una lista de parámetros 398 00:18:08,039 --> 00:18:10,180 Esto ya no es nulo 399 00:18:10,180 --> 00:18:11,960 El relleno del informe va 400 00:18:11,960 --> 00:18:14,599 Plantilla, los campos y los parámetros 401 00:18:14,599 --> 00:18:20,339 Parámetros 402 00:18:20,339 --> 00:18:21,539 Vale 403 00:18:21,539 --> 00:18:22,799 Y ya está 404 00:18:22,799 --> 00:18:25,720 Ahora ya sí que sí, voy a probar 405 00:18:25,720 --> 00:18:28,160 La aplicación, a ver si ahora me encuentro 406 00:18:28,160 --> 00:18:29,019 Los dibujitos 407 00:18:29,019 --> 00:18:45,279 Venga 408 00:18:45,279 --> 00:18:50,460 Claro, porque se meten ahí 409 00:18:50,460 --> 00:18:51,839 Venga 410 00:18:51,839 --> 00:18:53,359 Vámonos aquí 411 00:18:53,359 --> 00:18:58,240 Subimos archivo 412 00:18:58,240 --> 00:19:01,359 Algo ha hecho 413 00:19:01,359 --> 00:19:04,000 Vamos a ver 414 00:19:04,000 --> 00:19:05,220 Ahora 415 00:19:05,220 --> 00:19:06,839 Ahora ya sí 416 00:19:06,839 --> 00:19:08,700 ¿Veis? Parámetro 417 00:19:08,700 --> 00:19:10,740 Lo que yo le he metido desde código 418 00:19:10,740 --> 00:19:11,819 Y solo aparece una vez 419 00:19:11,819 --> 00:19:13,000 Lo que yo le he metido 420 00:19:13,000 --> 00:19:14,720 Todo esto 421 00:19:14,720 --> 00:19:16,799 Y la plantilla que yo le he puesto 422 00:19:16,799 --> 00:19:19,079 Entonces aquí lo único 423 00:19:19,079 --> 00:19:20,779 Que esto 424 00:19:20,779 --> 00:19:22,980 Lo he puesto en el raíz 425 00:19:22,980 --> 00:19:24,500 De la aplicación, es un poco feo 426 00:19:24,500 --> 00:19:25,819 Tendría que ponerlo en otro sitio 427 00:19:25,819 --> 00:19:28,619 Y editar la plantilla, mi jrxml 428 00:19:28,619 --> 00:19:30,019 Y poner ahí la ruta donde lo he puesto 429 00:19:30,019 --> 00:19:34,559 Claro, aquí 430 00:19:34,559 --> 00:19:36,460 El tema es que aquí en mi plantilla 431 00:19:36,460 --> 00:19:38,579 Esto está puesto 432 00:19:38,579 --> 00:19:39,539 Sin ruta 433 00:19:39,539 --> 00:19:42,220 con lo cual él lo busca en la raíz 434 00:19:42,220 --> 00:19:43,140 de la aplicación 435 00:19:43,140 --> 00:19:46,000 entonces al llevar yo los dibujitos a la raíz 436 00:19:46,000 --> 00:19:47,319 de la aplicación lo ha encontrado 437 00:19:47,319 --> 00:19:50,079 que están en otra ruta como gráficos 438 00:19:50,079 --> 00:19:52,160 pues tendría que poner ahí la ruta relativa 439 00:19:52,160 --> 00:19:53,480 desde el raíz a donde esté 440 00:19:53,480 --> 00:19:56,099 ahí en mi caso informes 441 00:19:56,099 --> 00:19:57,700 colgaba directamente con poner ahí 442 00:19:57,700 --> 00:19:59,960 informes barra esto ya estaría 443 00:19:59,960 --> 00:20:01,920 porque informes me colgaba directamente 444 00:20:01,920 --> 00:20:02,319 desde 445 00:20:02,319 --> 00:20:05,579 bueno pues ala 446 00:20:05,579 --> 00:20:08,059 ya sabemos como meter 447 00:20:08,059 --> 00:20:10,059 parámetros y fijar 448 00:20:10,059 --> 00:20:11,859 veis efectivamente 449 00:20:11,859 --> 00:20:14,359 esto es 450 00:20:14,359 --> 00:20:20,779 no quiero preguntar nada 451 00:20:20,779 --> 00:20:27,160 vale 452 00:20:27,160 --> 00:20:29,599 entonces aquí me ha ejecutado el código 453 00:20:29,599 --> 00:20:30,880 new till date 454 00:20:30,880 --> 00:20:31,940 me ha sacado esto 455 00:20:31,940 --> 00:20:35,200 y aquí me ha metido lo otro que estaba en la plantilla 456 00:20:35,200 --> 00:20:37,599 entonces 457 00:20:37,599 --> 00:20:41,279 vamos otra vez a la 458 00:20:41,279 --> 00:20:42,720 a la plantilla 459 00:20:42,720 --> 00:20:45,519 Espera, vamos a 460 00:20:45,519 --> 00:20:47,519 Suponer que le metemos más corredores 461 00:20:47,519 --> 00:20:48,900 Para que salgan más páginas 462 00:20:48,900 --> 00:20:51,519 Vamos a hacer el JSON con más corredores 463 00:20:51,519 --> 00:20:52,880 Para que salgan más páginas 464 00:20:52,880 --> 00:20:55,380 Y así vemos un poco mejor lo de las variables 465 00:20:55,380 --> 00:20:57,240 A ver 466 00:20:57,240 --> 00:20:59,740 Mi... estaba grabando ahora 467 00:20:59,740 --> 00:21:00,140 ¿No? Sí 468 00:21:00,140 --> 00:21:03,559 Vale, mi JSON que estaba por aquí 469 00:21:03,559 --> 00:21:04,599 Del que yo estoy tirando 470 00:21:04,599 --> 00:21:06,680 Le vamos a meter 471 00:21:06,680 --> 00:21:08,539 Unos cuantos de estos más 472 00:21:08,539 --> 00:21:18,269 Este corredor acaba aquí 473 00:21:18,269 --> 00:21:31,279 Vale, ya le he metido un montón más de corredores 474 00:21:31,279 --> 00:21:40,849 Vale, ahora ya yo creo que me dará para unas cuantas páginas más 475 00:21:40,849 --> 00:21:50,960 Vale, voy a volver a ejecutar la aplicación 476 00:21:50,960 --> 00:21:56,140 Vámonos otra vez, selecciono 477 00:21:56,140 --> 00:22:02,400 Subo el archivo, descargo 478 00:22:02,400 --> 00:22:12,579 Vale, ahora tiene dos páginas 479 00:22:12,579 --> 00:22:16,700 Y ahora, página 1 de 2 480 00:22:16,700 --> 00:22:18,740 Página 2 de 2 481 00:22:18,740 --> 00:22:27,460 Como veis, lo que se ponga en las columnas, en el column detail, se replica también. 482 00:22:27,740 --> 00:22:30,140 Equipo, corredor, puntos aparece en la siguiente página. 483 00:22:30,259 --> 00:22:31,339 Equipo, corredor, puntos. 484 00:22:31,740 --> 00:22:35,039 El parámetro no, el parámetro aparece solo una vez, solo una vez. 485 00:22:36,299 --> 00:22:38,819 Bueno, si le ponemos parámetros, ya no parece nada. 486 00:22:39,059 --> 00:22:40,660 Bueno, pero son otros parámetros distintos. 487 00:22:41,440 --> 00:22:44,880 Vale, pues vamos a suponer que nosotros queremos añadir aquí, por ejemplo, 488 00:22:44,880 --> 00:22:47,460 que eso es una cosa típica en los listados 489 00:22:47,460 --> 00:22:49,359 nuestros de raíces para evaluar 490 00:22:49,359 --> 00:22:51,380 que me aparezca en el pie de página 491 00:22:51,380 --> 00:22:51,960 también 492 00:22:51,960 --> 00:22:55,079 el nombre 493 00:22:55,079 --> 00:22:57,660 del último de cada página 494 00:22:57,660 --> 00:22:59,559 el nombre del último 495 00:22:59,559 --> 00:23:01,220 para así yo saber 496 00:23:01,220 --> 00:23:03,380 si me han cortado algo en la página 497 00:23:03,380 --> 00:23:04,279 yo que sé, lo que fuera 498 00:23:04,279 --> 00:23:07,299 entonces aquí que hay que remeter una variable 499 00:23:07,299 --> 00:23:09,420 y esa variable que me haga 500 00:23:09,420 --> 00:23:10,880 un código, que sea sacar 501 00:23:10,880 --> 00:23:12,380 del campo 502 00:23:12,380 --> 00:23:14,960 nombre, pues sacar por ejemplo 503 00:23:14,960 --> 00:23:16,500 el nombre de pila, lo que fuera 504 00:23:16,500 --> 00:23:18,259 entonces vamos a meter una variable 505 00:23:18,259 --> 00:23:20,240 más en nuestro informe 506 00:23:20,240 --> 00:23:22,500 no es un campo sin más 507 00:23:22,500 --> 00:23:25,380 porque no es un dato que yo inserto 508 00:23:25,380 --> 00:23:26,119 sino es 509 00:23:26,119 --> 00:23:29,000 una cosa, un código con el que 510 00:23:29,000 --> 00:23:30,420 yo proceso datos que ya están 511 00:23:30,420 --> 00:23:32,259 luego tenemos parámetro 512 00:23:32,259 --> 00:23:34,940 un dato que aparece único una vez 513 00:23:34,940 --> 00:23:37,059 y lo meto en mi map de parámetros 514 00:23:37,059 --> 00:23:38,960 en mi map de parámetros, dato que aparece 515 00:23:38,960 --> 00:23:41,119 único una vez, campos, los fill 516 00:23:41,119 --> 00:23:44,980 directamente variables de la aplicación 517 00:23:44,980 --> 00:23:46,500 directamente con el mismo nombre 518 00:23:46,500 --> 00:23:48,339 aparecen tantas veces 519 00:23:48,339 --> 00:23:50,660 como instancias tenga de eso 520 00:23:50,660 --> 00:23:52,259 y luego variables 521 00:23:52,259 --> 00:23:54,900 datos para mi informe 522 00:23:54,900 --> 00:23:56,819 pero que vienen de procesar 523 00:23:56,819 --> 00:23:58,720 campos 524 00:23:58,720 --> 00:24:00,099 de procesar variables 525 00:24:00,099 --> 00:24:02,839 admiten cierto código 526 00:24:02,839 --> 00:24:04,640 pues venga, vamos a meter aquí 527 00:24:04,640 --> 00:24:06,640 una variable que me meta 528 00:24:06,640 --> 00:24:09,180 algo relacionado con campos que ya hay 529 00:24:09,180 --> 00:24:10,819 luego tendré que hacer 530 00:24:10,819 --> 00:24:12,759 un pequeño procesamiento. Entonces, esa variable 531 00:24:12,759 --> 00:24:14,119 no es un dato 532 00:24:14,119 --> 00:24:16,839 que yo cojo, sino es un 533 00:24:16,839 --> 00:24:18,839 código que voy a hacer aquí que trabaje 534 00:24:18,839 --> 00:24:19,960 con datos que ya hay. 535 00:24:21,339 --> 00:24:21,859 ¿Vale? 536 00:24:22,539 --> 00:24:25,059 Pues vamos a crear aquí en nuestra plantilla, 537 00:24:25,180 --> 00:24:26,900 vamos a crear una variable. 538 00:24:29,400 --> 00:24:30,859 Vale, pues las variables 539 00:24:30,859 --> 00:24:34,220 me voy 540 00:24:34,220 --> 00:24:36,640 aquí y las creo 541 00:24:36,640 --> 00:24:40,180 aquí en variables. 542 00:24:41,339 --> 00:24:42,319 Tiene algunas 543 00:24:42,319 --> 00:24:43,599 ya hechas por defecto. 544 00:24:43,880 --> 00:24:45,259 El número de página, 545 00:24:46,799 --> 00:24:48,019 una serie de cosas. 546 00:24:49,160 --> 00:24:50,519 Me voy a crear una variable. 547 00:24:51,200 --> 00:24:52,039 Crear una variable. 548 00:24:52,920 --> 00:24:53,160 Vale. 549 00:24:54,680 --> 00:24:55,779 Ya está creada. 550 00:24:55,880 --> 00:24:57,220 La llamo como me dé la gana, 551 00:24:57,359 --> 00:25:00,859 porque esto no es un campo de Java. 552 00:25:01,700 --> 00:25:02,799 No es una variable de Java. 553 00:25:03,440 --> 00:25:05,460 Es una variable interna del informe 554 00:25:05,460 --> 00:25:07,079 que va a procesar información. 555 00:25:08,359 --> 00:25:08,779 A ver. 556 00:25:09,900 --> 00:25:11,180 Pues venga, mi variable 557 00:25:11,180 --> 00:25:15,019 hay seleccionada, me voy a object, le voy a cambiar el nombre 558 00:25:15,019 --> 00:25:17,759 porque variable 1 es muy feo, pues yo que sé 559 00:25:17,759 --> 00:25:23,140 nombre que va a aparecer en el pie, vale, nombre que quiero que aparezca 560 00:25:23,140 --> 00:25:27,339 en el pie de cada página, nombre pie de página 561 00:25:27,339 --> 00:25:30,759 vale, que va a tener un string 562 00:25:30,759 --> 00:25:37,089 vale, muy bien, y ahora aquí 563 00:25:37,089 --> 00:25:40,569 en expresión le pongo 564 00:25:40,569 --> 00:25:42,789 Lo que yo quiero que aparezca 565 00:25:42,789 --> 00:25:44,769 Pues quiero que aparezca 566 00:25:44,769 --> 00:25:46,289 El nombre de pila 567 00:25:46,289 --> 00:25:48,309 Del corredor 568 00:25:48,309 --> 00:25:50,849 ¿De cuál? Ahora veremos 569 00:25:50,849 --> 00:25:52,710 El nombre del corredor 570 00:25:52,710 --> 00:25:54,009 Es el dólar field, ¿verdad? 571 00:25:55,130 --> 00:25:55,849 Dólar 572 00:25:55,849 --> 00:25:59,950 Dólar 573 00:25:59,950 --> 00:26:01,789 Corredor 574 00:26:01,789 --> 00:26:04,750 Vale, pues dólar 575 00:26:04,750 --> 00:26:06,210 Corredor, bueno, es más fácil 576 00:26:06,210 --> 00:26:08,910 Dólar, sí, tienes razón 577 00:26:08,910 --> 00:26:13,589 si yo lo edito aquí me es más fácil 578 00:26:13,589 --> 00:26:14,890 que escribirlo ahí yo creo 579 00:26:14,890 --> 00:26:16,769 si le doy ahí 580 00:26:16,769 --> 00:26:17,710 vale 581 00:26:17,710 --> 00:26:20,289 el dólar corredor 582 00:26:20,289 --> 00:26:22,809 pues que es todo el nombre 583 00:26:22,809 --> 00:26:24,450 me voy a quedar con 584 00:26:24,450 --> 00:26:27,549 esto solamente para invocar 585 00:26:27,549 --> 00:26:28,349 código java 586 00:26:28,349 --> 00:26:31,509 con el substring me quiero quedar 587 00:26:31,509 --> 00:26:32,789 con 588 00:26:32,789 --> 00:26:36,990 el nombre solo 589 00:26:36,990 --> 00:27:10,049 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. 590 00:27:10,049 --> 00:27:17,509 vale, entonces 591 00:27:17,509 --> 00:27:19,589 esto 592 00:27:19,589 --> 00:27:21,910 es 593 00:27:21,910 --> 00:27:24,410 la posición 594 00:27:24,410 --> 00:27:25,730 de todo el string 595 00:27:25,730 --> 00:27:28,509 $corredor donde me aparece el primer espacio 596 00:27:28,509 --> 00:27:30,109 pues me voy a quedar 597 00:27:30,109 --> 00:27:32,009 con el substring que va hasta ahí 598 00:27:32,009 --> 00:27:34,329 hasta 599 00:27:34,329 --> 00:27:35,930 el anterior, ese primer espacio 600 00:27:35,930 --> 00:27:38,309 vale, pues por hacer un mínimo 601 00:27:38,309 --> 00:27:40,109 procesamiento, entonces esto se supone 602 00:27:40,109 --> 00:27:42,069 que saca de todo el nombre del 603 00:27:42,069 --> 00:27:43,930 corredor, saca el nombre de pila 604 00:27:43,930 --> 00:27:47,230 Pues este es el procesamiento que va a hacer la variable 605 00:27:47,230 --> 00:27:49,109 Pero podría hacer cualquier otro código Java 606 00:27:49,109 --> 00:27:51,170 Y ese código Java lo hace 607 00:27:51,170 --> 00:27:53,410 Sobre campos del informe 608 00:27:53,410 --> 00:27:55,490 Luego es una forma de meter código Java 609 00:27:55,490 --> 00:27:58,009 Que me procesa campos del informe 610 00:27:58,009 --> 00:27:59,490 Para sacarme otros resultados 611 00:27:59,490 --> 00:28:00,289 Procesados 612 00:28:00,289 --> 00:28:01,690 Por ejemplo este 613 00:28:01,690 --> 00:28:03,750 Vale, no sé si 614 00:28:03,750 --> 00:28:08,210 Y ahora 615 00:28:08,210 --> 00:28:10,390 ¿Dónde coloco la variable? 616 00:28:13,019 --> 00:28:14,359 La variable está 617 00:28:14,359 --> 00:28:15,779 caracterizada ya 618 00:28:15,779 --> 00:28:18,619 la vamos a colocar pues aquí en el pie 619 00:28:18,619 --> 00:28:20,539 de página también, entonces yo 620 00:28:20,539 --> 00:28:22,900 la arrastro, mi variable 621 00:28:22,900 --> 00:28:24,420 la voy a arrastrar aquí 622 00:28:24,420 --> 00:28:29,279 bueno, no al 623 00:28:29,279 --> 00:28:31,960 column footer 624 00:28:31,960 --> 00:28:33,180 no, venga aquí 625 00:28:33,180 --> 00:28:35,579 que se vea, vale 626 00:28:35,579 --> 00:28:38,359 ahí la arrastro 627 00:28:38,359 --> 00:28:41,019 y ahora 628 00:28:41,019 --> 00:28:43,400 importante, y esto es lo más importante 629 00:28:43,400 --> 00:28:43,640 de 630 00:28:43,640 --> 00:28:46,680 de las 631 00:28:46,680 --> 00:28:48,900 de las variables 632 00:28:48,900 --> 00:28:51,299 qué es y cuándo 633 00:28:51,299 --> 00:28:53,539 la evalúas, esto es lo más importante 634 00:28:53,539 --> 00:28:54,940 porque 635 00:28:54,940 --> 00:28:56,599 yo aquí he hecho un 636 00:28:56,599 --> 00:28:59,059 procesamiento sobre el campo 637 00:28:59,059 --> 00:29:01,200 nombre del corredor, pero claro 638 00:29:01,200 --> 00:29:03,599 nombre de corredor, tengo un montón 639 00:29:03,599 --> 00:29:05,440 sobre qué nombre de corredor 640 00:29:05,440 --> 00:29:07,440 actúa, sobre qué nombre de corredor actúa 641 00:29:07,440 --> 00:29:09,519 sobre el primero, sobre el 642 00:29:09,519 --> 00:29:11,480 segundo, sobre el último, pues depende 643 00:29:11,480 --> 00:29:13,240 del momento 644 00:29:13,240 --> 00:29:15,359 en el que yo le diga 645 00:29:15,359 --> 00:29:16,619 evalúate variable 646 00:29:16,619 --> 00:29:22,420 Si le digo que lo evalúe al final del informe, el campo corredor va a ser el último. 647 00:29:24,099 --> 00:29:33,980 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. 648 00:29:34,680 --> 00:29:41,380 Entonces, dependiendo del momento en el que se evalúe la variable, el campo corredor va a ser uno o va a ser otro. 649 00:29:42,380 --> 00:29:43,519 Pues yo aquí puedo elegir. 650 00:29:43,519 --> 00:29:47,819 now significa en el momento de hacer la variable 651 00:29:47,819 --> 00:29:49,740 es cuando lo procesas 652 00:29:49,740 --> 00:29:51,880 report significa 653 00:29:51,880 --> 00:29:53,339 al final del informe 654 00:29:53,339 --> 00:29:55,119 con lo cual si es al final del informe 655 00:29:55,119 --> 00:29:57,640 todos tendrían el mismo nombre que es el del último 656 00:29:57,640 --> 00:29:58,319 todos 657 00:29:58,319 --> 00:30:01,359 si es página al final de cada página 658 00:30:01,359 --> 00:30:03,880 vamos a ponerle now 659 00:30:03,880 --> 00:30:05,700 que es en el momento de evaluar la variable 660 00:30:05,700 --> 00:30:07,000 a ver que nos sale 661 00:30:07,000 --> 00:30:08,940 vale 662 00:30:08,940 --> 00:30:13,769 esto sería cada vez que ejecutas una página 663 00:30:13,769 --> 00:30:15,710 que sería lo mismo 664 00:30:15,710 --> 00:30:17,849 que now en este caso 665 00:30:17,849 --> 00:30:20,089 porque la variable se ejecuta al final de la página 666 00:30:20,089 --> 00:30:22,329 con lo cual en este caso now y página 667 00:30:22,329 --> 00:30:24,109 tendrían el mismo efecto 668 00:30:24,109 --> 00:30:26,150 vamos a ponerle 669 00:30:26,150 --> 00:30:26,970 now 670 00:30:26,970 --> 00:30:36,579 si es con la opción report 671 00:30:36,579 --> 00:30:42,240 no, pero es page, estoy diciendo page 672 00:30:42,240 --> 00:30:44,599 page sería la misma 673 00:30:44,599 --> 00:30:45,599 que now en este caso 674 00:30:45,599 --> 00:30:47,519 Porque la variable 675 00:30:47,519 --> 00:30:49,579 Solamente hay una por página y al final 676 00:30:49,579 --> 00:30:51,740 Vale 677 00:30:51,740 --> 00:30:53,359 Vamos a ver aquí que nos sale 678 00:30:53,359 --> 00:30:55,619 Si hemos hecho bien el procesamiento 679 00:30:55,619 --> 00:30:56,000 Y todo 680 00:30:56,000 --> 00:30:59,619 Vamos a compilar esto antes que nada 681 00:30:59,619 --> 00:31:05,019 Vale 682 00:31:05,019 --> 00:31:07,420 Substream 683 00:31:07,420 --> 00:31:09,420 Lo estoy usando mal porque substream 684 00:31:09,420 --> 00:31:11,420 El primer parámetro no tienes que ponerlo 685 00:31:11,980 --> 00:31:13,400 Por cuando 686 00:31:13,400 --> 00:31:15,460 Verdad porque se asume por defecto 687 00:31:15,460 --> 00:31:16,559 Que es cero, creo 688 00:31:16,559 --> 00:31:18,920 Substream lo estoy usando mal 689 00:31:18,920 --> 00:31:22,019 Es un error de compilación 690 00:31:22,019 --> 00:31:23,420 De Java, vamos, lo que me está diciendo 691 00:31:23,420 --> 00:31:25,640 Uy, ¿dónde me voy yo? 692 00:31:26,420 --> 00:31:26,819 Entonces 693 00:31:26,819 --> 00:31:29,079 Me voy a mi variable 694 00:31:29,079 --> 00:31:33,119 ¿Cómo se usaba substring? 695 00:31:33,240 --> 00:31:35,220 Que alguien me lo diga 696 00:31:35,220 --> 00:31:37,240 Me voy a mi variable 697 00:31:37,240 --> 00:31:39,299 Expresión 698 00:31:39,299 --> 00:31:41,700 Ah, es que es con minúscula 699 00:31:41,700 --> 00:31:43,380 ¿Cómo que es con minúscula? 700 00:31:43,380 --> 00:31:44,980 O sea, string es con minúscula 701 00:31:44,980 --> 00:31:47,200 Ah, vale 702 00:31:47,200 --> 00:31:48,559 Y solo tiene un 703 00:31:48,559 --> 00:31:51,920 Porque el 0 es por defecto 704 00:31:51,920 --> 00:31:54,259 Puede tener, o sea, tiene varias posibilidades 705 00:31:54,259 --> 00:31:55,859 Pero en este caso fue un sub-sequence 706 00:31:55,859 --> 00:31:58,220 No, no, no 707 00:31:58,220 --> 00:31:59,539 Porque yo creo que esta me vale 708 00:31:59,539 --> 00:32:01,500 Sub-string 709 00:32:01,500 --> 00:32:02,859 Y se me queda hasta ahí 710 00:32:02,859 --> 00:32:04,700 Yo creo que esto ya me valdría 711 00:32:04,700 --> 00:32:07,420 Pero bueno, vamos a probarlo 712 00:32:07,420 --> 00:32:09,000 A ver si hemos acertado 713 00:32:09,000 --> 00:32:12,160 Sí, vale, ahora ya se ha puesto bien el código 714 00:32:12,160 --> 00:32:13,380 Vale 715 00:32:13,380 --> 00:32:15,059 Pues venga 716 00:32:15,059 --> 00:32:17,500 Ahora ya me llevo 717 00:32:17,500 --> 00:32:18,859 Mi informe 718 00:32:18,859 --> 00:32:23,269 Listado Jasper 719 00:32:23,269 --> 00:32:27,480 Que está aquí 720 00:32:27,480 --> 00:32:28,680 Copy 721 00:32:28,680 --> 00:32:35,730 A informes 722 00:32:35,730 --> 00:32:39,230 Paste 723 00:32:39,230 --> 00:32:44,710 Vale, a ver si he hecho bien la variable 724 00:32:44,710 --> 00:33:05,019 Venga, lo hago todo 725 00:33:05,019 --> 00:33:05,599 De cero 726 00:33:05,599 --> 00:33:26,930 ¿Dónde está mi variable? 727 00:33:37,180 --> 00:33:38,180 No se me ve ahí 728 00:33:38,180 --> 00:33:39,079 A ver si 729 00:33:39,079 --> 00:33:44,609 Vale 730 00:33:44,609 --> 00:33:47,549 Bueno, pues con esto 731 00:33:47,549 --> 00:33:49,250 Ahora ya, sí que sí 732 00:33:49,250 --> 00:33:54,549 Vale, con esto ahora ya 733 00:33:54,549 --> 00:33:55,650 Sí que sí