1 00:00:00,000 --> 00:00:02,040 Ya estamos grabando, ¿ya estás contento? 2 00:00:02,540 --> 00:00:04,099 Venga, vale 3 00:00:04,099 --> 00:00:06,139 Pues venga 4 00:00:06,139 --> 00:00:07,639 Vamos a hacer un ejemplito básico 5 00:00:07,639 --> 00:00:09,099 Un proyecto normal y corriente 6 00:00:09,099 --> 00:00:11,300 ¿Maven? Pues sí, maven 7 00:00:11,300 --> 00:00:13,960 Porque la librería de Jasper Report la vamos a necesitar 8 00:00:13,960 --> 00:00:15,539 Entonces, ¿para qué descarga? 9 00:00:16,079 --> 00:00:18,280 Gestionamos la dependencia con maven, lógicamente 10 00:00:18,280 --> 00:00:19,440 Vale 11 00:00:19,440 --> 00:00:39,780 Vale, pues 12 00:00:39,780 --> 00:00:41,359 Mini proyecto ejemplo 13 00:00:41,359 --> 00:00:43,560 De uso de la librería Jasper Report 14 00:00:43,560 --> 00:00:44,359 Y las plantillas 15 00:00:52,880 --> 00:01:01,509 Ya está 16 00:01:01,509 --> 00:01:03,490 ¿Dónde está? 17 00:01:05,849 --> 00:01:06,409 Adelante 18 00:01:06,409 --> 00:01:13,090 ¿Qué ha pasado? 19 00:01:13,329 --> 00:01:15,969 No me lo ha... 20 00:01:15,969 --> 00:01:18,370 Es que esos tienen poca... 21 00:01:18,370 --> 00:01:21,290 ¿Por qué se caracteriza? 22 00:01:26,250 --> 00:01:28,129 Pues poca cosa que describir 23 00:01:28,129 --> 00:01:29,849 ¿Por qué se caracteriza el correo de Fórmula 1? 24 00:01:30,709 --> 00:01:32,430 Un pedido pues tiene ítems 25 00:01:32,430 --> 00:01:33,109 Tiene no sé qué 26 00:01:33,109 --> 00:01:39,950 No entiendo de Fórmula 1 27 00:01:39,950 --> 00:01:41,530 Ah, sí, pues mira 28 00:01:41,530 --> 00:01:42,950 Para que te pases de listo 29 00:01:42,950 --> 00:01:44,349 Antes de que tú nacieras 30 00:01:44,349 --> 00:01:50,670 Vale, pues 31 00:01:50,670 --> 00:01:53,269 Venga, pues eso 32 00:01:53,269 --> 00:01:55,109 Como no entiendo mucho de Fórmula 1 33 00:01:55,109 --> 00:01:56,129 Vamos a hacer un pedido 34 00:01:56,129 --> 00:01:57,890 Y se acabó, si es un ejemplito rápido 35 00:01:57,890 --> 00:01:59,150 Para que luego vais a dejarme sorpresa 36 00:01:59,150 --> 00:02:00,269 ¿Eh? 37 00:02:00,829 --> 00:02:02,349 Pedido para los de Fórmula 1 38 00:02:02,349 --> 00:02:04,609 Vale, pues venga 39 00:02:04,609 --> 00:02:06,609 Vamos a ponerle un id 40 00:02:06,609 --> 00:02:12,860 Y vamos a ponerle 41 00:02:12,860 --> 00:02:13,479 Una 42 00:02:13,479 --> 00:02:15,340 Lista 43 00:02:15,340 --> 00:02:17,300 De ítem 44 00:02:17,300 --> 00:02:25,879 Y ya está 45 00:02:25,879 --> 00:02:29,400 Vamos a hacer ya directamente los 46 00:02:29,400 --> 00:02:32,099 Sencillo para acabar rápido 47 00:02:32,099 --> 00:02:38,740 Y ahora vamos a hacer la clase 48 00:02:38,740 --> 00:02:40,180 Ítem 49 00:02:40,180 --> 00:02:41,520 Vale 50 00:02:41,520 --> 00:02:50,729 Creamos la clase ítem 51 00:02:50,729 --> 00:02:53,550 Que la clase ítem 52 00:02:53,550 --> 00:02:55,509 Que tenga solamente cada ítem del pedido 53 00:02:55,509 --> 00:02:57,069 Se va a caracterizar por 54 00:02:57,069 --> 00:02:58,689 Su nombre 55 00:02:58,689 --> 00:03:05,150 Y, joder, que calor es hacia aquí 56 00:03:05,150 --> 00:03:05,870 O soy solo yo 57 00:03:05,870 --> 00:03:09,810 Y su precio 58 00:03:09,810 --> 00:03:12,050 Pues nada, será la menopausia 59 00:03:12,050 --> 00:03:13,110 A ver 60 00:03:13,110 --> 00:03:20,699 Vale 61 00:03:20,699 --> 00:03:25,719 Y ahora ya importamos la lista 62 00:03:25,719 --> 00:03:33,740 Bueno, pues nuestra aplicación 63 00:03:33,740 --> 00:03:36,560 Lo que tiene que hacer es generar un informe 64 00:03:36,560 --> 00:03:36,960 Con 65 00:03:36,960 --> 00:03:40,099 La lista 66 00:03:40,099 --> 00:03:41,680 De nuestros ides de pedido 67 00:03:41,680 --> 00:03:43,060 Con por ejemplo 68 00:03:43,060 --> 00:03:45,379 El precio medio de cada pedido 69 00:03:45,379 --> 00:03:47,560 Ya está 70 00:03:47,560 --> 00:03:49,099 Entonces vamos a hacer aquí 71 00:03:49,099 --> 00:03:51,259 Nuestra 72 00:03:51,259 --> 00:03:53,500 Uy, perdón 73 00:03:53,500 --> 00:03:55,800 Vamos a hacer aquí otro paquete 74 00:03:55,800 --> 00:03:58,060 Para hacer ese método que genera el informe 75 00:03:58,060 --> 00:03:58,479 Y ya está 76 00:03:58,479 --> 00:04:11,409 Una clase informe 77 00:04:11,409 --> 00:04:15,110 Una clase de informes con ese método 78 00:04:15,110 --> 00:04:16,610 Vale, pues venga 79 00:04:16,610 --> 00:04:18,970 Funcionalidad de esta aplicación 80 00:04:18,970 --> 00:04:21,470 Generar informe 81 00:04:21,470 --> 00:04:26,040 Vale 82 00:04:26,040 --> 00:04:27,699 Entonces 83 00:04:27,699 --> 00:04:29,839 Ese informe que va 84 00:04:29,839 --> 00:04:32,519 Necesitar 85 00:04:32,519 --> 00:04:34,040 Pues una lista de pedidos 86 00:04:34,040 --> 00:04:37,579 Vale 87 00:04:37,579 --> 00:04:39,600 Y por ejemplo 88 00:04:39,600 --> 00:04:41,680 El nombre del fichero 89 00:04:41,680 --> 00:04:44,959 Donde se va a guardar ese informe 90 00:04:44,959 --> 00:04:46,980 que será un nombre de fichero PDF. 91 00:04:47,560 --> 00:04:50,319 Vale, pues podría ser esta la firma de este método, ¿verdad? 92 00:05:02,329 --> 00:05:03,029 Ya está. 93 00:05:03,170 --> 00:05:07,209 Entonces, el resultado del método será que ese PDF aparezca 94 00:05:07,209 --> 00:05:09,170 en la ruta que sea, donde yo quiera. 95 00:05:09,829 --> 00:05:11,350 Es decir, el método no devuelve nada. 96 00:05:11,889 --> 00:05:14,870 A ver, podría hacer que devolviera un file asociado a ese recurso también. 97 00:05:15,110 --> 00:05:15,790 Podría hacerlo así. 98 00:05:16,290 --> 00:05:20,370 Pero lo que me importa de este método es que cree ese fichero PDF. 99 00:05:20,370 --> 00:05:28,029 Si además estuviéramos en una aplicación web, pues lo que podríamos hacer es que ese informe generado automáticamente se nos descargara, ¿vale? 100 00:05:28,910 --> 00:05:32,889 Que ese podría ser el examen sorpresa que hagáis después, ¿vale? 101 00:05:38,459 --> 00:05:39,519 ¿Quién habla por ahí? 102 00:05:39,879 --> 00:05:41,519 Dice, ah, que en el examen va a entrar, que va a entrar. 103 00:05:42,439 --> 00:05:48,180 Vale, entonces, esto es un pedido, ¿no? 104 00:05:48,279 --> 00:05:50,240 Un import, vale. 105 00:05:50,240 --> 00:05:53,000 ¿Cómo hacéis esto vosotros para que no 106 00:05:53,000 --> 00:05:54,860 Tener que escribirlo a mano? Cuando necesitas 107 00:05:54,860 --> 00:05:56,740 Tanto crear como importar 108 00:05:56,740 --> 00:05:58,620 No te ofrecen las dos cosas 109 00:05:58,620 --> 00:06:00,459 Control-C 110 00:06:00,459 --> 00:06:00,939 O 111 00:06:00,939 --> 00:06:04,420 O de hola 112 00:06:04,420 --> 00:06:05,540 O sea, si la haces 113 00:06:05,540 --> 00:06:07,980 Ah, vale 114 00:06:07,980 --> 00:06:10,019 Vale 115 00:06:10,019 --> 00:06:13,750 Pues ya está 116 00:06:13,750 --> 00:06:17,050 Bueno, pues entonces 117 00:06:17,050 --> 00:06:20,990 En algún momento en el main donde llamemos 118 00:06:20,990 --> 00:06:23,490 tendremos que generar los datos, esta lista de pedidos 119 00:06:23,490 --> 00:06:26,949 y ahora 120 00:06:26,949 --> 00:06:29,110 a ver, primero 121 00:06:29,110 --> 00:06:31,050 vamos a pensar, nuestro informe 122 00:06:31,050 --> 00:06:32,769 que nos han dicho que tiene que tener 123 00:06:32,769 --> 00:06:34,589 nuestro informe tiene que tener 124 00:06:34,589 --> 00:06:37,370 dos columnas 125 00:06:37,370 --> 00:06:38,170 donde figure 126 00:06:38,170 --> 00:06:41,089 id del pedido 127 00:06:41,089 --> 00:06:42,569 precio medio 128 00:06:42,569 --> 00:06:43,810 id precio medio 129 00:06:43,810 --> 00:06:46,370 eso es lo primero que tenemos que identificar 130 00:06:46,370 --> 00:06:48,850 exactamente el informe que tiene que contener 131 00:06:48,850 --> 00:06:50,069 vale 132 00:06:50,069 --> 00:06:53,129 Y de precio medio, y de precio medio, y de precio medio 133 00:06:53,129 --> 00:06:55,050 Vale, pues esa va a ser su fuente de datos 134 00:06:55,050 --> 00:06:59,810 Entonces, su fuente de datos va a ser una colección de pares 135 00:06:59,810 --> 00:07:02,209 Y de precio medio, y de precio medio 136 00:07:02,209 --> 00:07:03,790 Una colección de pares 137 00:07:03,790 --> 00:07:07,209 Vale, entonces, aquí 138 00:07:07,209 --> 00:07:10,709 Lo más sencillo para crear esa colección 139 00:07:10,709 --> 00:07:14,209 Es que yo me haga aquí una clase 140 00:07:14,209 --> 00:07:17,790 Donde van a estar los datos del informe 141 00:07:17,790 --> 00:07:29,639 Vale, esta clase es solamente para rellenar el informe, para rellenarlo. 142 00:07:29,759 --> 00:07:34,920 Con lo cual, esta clase tiene solamente los campos que van a ir a la plantilla. 143 00:07:35,240 --> 00:07:37,480 ¿Y cuáles son los campos que van a ir a la plantilla? 144 00:07:37,620 --> 00:07:45,240 Pues los campos que van a ir a la plantilla son un ID de pedido y el precio medio. 145 00:07:54,560 --> 00:07:57,420 Estos son los datos que van a ir a la plantilla exclusivamente. 146 00:07:57,420 --> 00:08:33,299 Vale, entonces la plantilla se va a llenar con una información, entonces en función de la información que va, pues a veces el propio modelo, la propia entidad puede servir directamente como fuente de datos para el informe, vale, depende, pero en este caso como solo vamos a usar ID y el precio medio, esa estructura no es exactamente la estructura del modelo, 147 00:08:33,299 --> 00:08:36,399 Porque la estructura mía del modelo es ID colección de ítems 148 00:08:36,399 --> 00:08:39,519 Eso no es la estructura de mi informe 149 00:08:39,519 --> 00:08:41,600 La estructura de mi informe es un ID dabel 150 00:08:41,600 --> 00:08:43,080 ID dabel, ID dabel 151 00:08:43,080 --> 00:08:45,639 Vale, pues entonces me voy a hacer otra clase 152 00:08:45,639 --> 00:08:49,159 Exclusivamente para representar 153 00:08:49,159 --> 00:08:52,340 Para representar lo que va a ir al informe 154 00:08:52,340 --> 00:08:56,720 Entonces al informe la idea es que vayan un montón de objetos como este 155 00:08:56,720 --> 00:09:01,220 Al informe lo van a nutrir un montón de objetos como este de aquí 156 00:09:01,220 --> 00:09:09,440 Luego, lo primero que tendremos que generar es este conjunto de datos 157 00:09:09,440 --> 00:09:12,759 Que son los que van a rellenar el informe 158 00:09:12,759 --> 00:09:15,460 Una lista de datos informe 159 00:09:15,460 --> 00:09:39,990 Y ahora, esto ya sí que es una parte de programación 160 00:09:39,990 --> 00:09:40,690 ¿Vale? 161 00:09:40,750 --> 00:09:42,570 Que es pasar de la lista de pedidos 162 00:09:42,570 --> 00:09:44,330 Por cada pedido llevar a esto 163 00:09:44,330 --> 00:09:45,309 ¿Vale? Pues entonces 164 00:09:45,309 --> 00:09:50,070 Vale, pues así en plan rápido 165 00:09:50,070 --> 00:09:51,990 Podéis haber hecho algo así 166 00:09:51,990 --> 00:09:54,330 Para cada pedido vamos a construir 167 00:09:54,330 --> 00:09:56,850 Un nuevo dato para el informe 168 00:09:56,850 --> 00:09:58,870 Como no tengo ni constructores 169 00:09:58,870 --> 00:09:59,610 Ni tengo nada 170 00:09:59,610 --> 00:10:02,590 Y ahora 171 00:10:02,590 --> 00:10:05,090 Este dato su ID está claro 172 00:10:05,090 --> 00:10:05,970 Que es 173 00:10:05,970 --> 00:10:08,669 El pedido.id 174 00:10:08,669 --> 00:10:10,110 El ID está claro 175 00:10:10,110 --> 00:10:11,970 Y ahora de este dato 176 00:10:11,970 --> 00:10:15,129 El precio total 177 00:10:15,129 --> 00:10:17,409 Tendré que calcularlo 178 00:10:17,409 --> 00:10:18,250 Como 179 00:10:18,250 --> 00:10:21,049 la suma de todos los precios 180 00:10:21,049 --> 00:10:22,710 de todos los ítems que están 181 00:10:22,710 --> 00:10:24,129 dentro del pedido P 182 00:10:24,129 --> 00:10:26,629 vale, entonces el pedido P 183 00:10:26,629 --> 00:10:28,009 tiene su lista de ítems 184 00:10:28,009 --> 00:10:30,669 entonces esa lista la puedo serializar 185 00:10:30,669 --> 00:10:32,809 con un stream y hacer ahí el total 186 00:10:32,809 --> 00:10:33,909 la media, lo que sea 187 00:10:33,909 --> 00:10:36,710 bueno, a ver 188 00:10:36,710 --> 00:10:38,909 si quieres añadir fuerza hasta el infinito 189 00:10:38,909 --> 00:10:40,649 pero es que esto es mucho más rápido 190 00:10:40,649 --> 00:10:41,929 tú tienes tu P 191 00:10:41,929 --> 00:10:44,570 si sabes pensarlo 192 00:10:44,570 --> 00:10:46,169 tú tienes, cuando 193 00:10:46,169 --> 00:10:48,610 tiene sentido hacer esto, cuando tienes 194 00:10:48,610 --> 00:10:50,590 que hacer operaciones sobre 195 00:10:50,590 --> 00:10:52,549 una lista de cosas, aquí tenemos que 196 00:10:52,549 --> 00:10:53,929 hacer la suma 197 00:10:53,929 --> 00:10:55,909 de todos los elementos de una lista 198 00:10:55,909 --> 00:10:58,649 pues ya está, entonces ahí para qué vas a hacer 199 00:10:58,649 --> 00:11:00,169 un for con una suma acumulativa 200 00:11:00,169 --> 00:11:02,570 si puedes hacer una función lambda, entonces siempre 201 00:11:02,570 --> 00:11:04,230 que tengas una lista 202 00:11:04,230 --> 00:11:06,230 sobre la que tienes que hacer cosas 203 00:11:06,230 --> 00:11:08,090 hacer una suma, una media 204 00:11:08,090 --> 00:11:10,710 para cada elemento, transformarlo 205 00:11:10,710 --> 00:11:12,370 en algo, siempre que tengas que hacer cosas 206 00:11:12,370 --> 00:11:14,409 con todos y cada uno de los elementos de una lista 207 00:11:14,409 --> 00:11:17,250 alternativa 1, for 208 00:11:17,250 --> 00:11:18,830 que va uno por uno y hace lo que sea 209 00:11:18,830 --> 00:11:20,730 alternativa 2, la serializo 210 00:11:20,730 --> 00:11:23,230 y algún método de esa serialización 211 00:11:23,230 --> 00:11:24,429 me lo hará 212 00:11:24,429 --> 00:11:27,009 casi seguro, bueno pues entonces 213 00:11:27,009 --> 00:11:29,490 opción 2, cojo esa lista 214 00:11:29,490 --> 00:11:30,850 sobre la que tú harías el for 215 00:11:30,850 --> 00:11:33,370 sobre esa lista de pegged items 216 00:11:33,370 --> 00:11:35,289 pues en lugar de hacer el for 217 00:11:35,289 --> 00:11:37,570 sobre esa lista, la serializo 218 00:11:37,570 --> 00:11:39,309 con stream y ya la tengo en filita 219 00:11:39,309 --> 00:11:41,110 ¿qué quiero hacer con cada elemento? 220 00:11:41,990 --> 00:11:43,470 pues de cada elemento item 221 00:11:43,470 --> 00:11:44,909 Solo me interesa 222 00:11:44,909 --> 00:11:46,509 Su precio 223 00:11:46,509 --> 00:11:49,690 Y luego una vez que tenga 224 00:11:49,690 --> 00:11:52,129 Esos elementos transformados a precio 225 00:11:52,129 --> 00:11:53,429 Ahí ya me viene un map 226 00:11:53,429 --> 00:11:55,129 Tengo el ítem gordote 227 00:11:55,129 --> 00:11:56,970 Pero solo me interesa el precio 228 00:11:56,970 --> 00:11:59,750 Luego ahí ya pienso, es un map 229 00:11:59,750 --> 00:12:01,929 Ítem gordo, solo quiero el precio 230 00:12:01,929 --> 00:12:02,429 Map 231 00:12:02,429 --> 00:12:05,710 Vale, en este caso como el map 232 00:12:05,710 --> 00:12:07,870 Me lleva un dabble, pues podemos usar directamente 233 00:12:07,870 --> 00:12:09,009 Map to dabble 234 00:12:09,009 --> 00:12:12,309 O lo podéis usar con el map y luego convertirlo a dabble 235 00:12:12,309 --> 00:12:13,029 Lo que queráis 236 00:12:13,029 --> 00:12:15,889 Vale, pues entonces, la tengo en filita 237 00:12:15,889 --> 00:12:17,169 ¿Qué quiero con cada ítem? 238 00:12:17,970 --> 00:12:20,330 Con cada ítem quiero transformarlo 239 00:12:20,330 --> 00:12:22,169 Quedarme solo con su precio 240 00:12:22,169 --> 00:12:23,950 A través de 241 00:12:23,950 --> 00:12:27,620 Para quedarme solo 242 00:12:27,620 --> 00:12:29,559 Con la parte del ítem 243 00:12:29,559 --> 00:12:31,539 Que es el precio, pues me hago la función 244 00:12:31,539 --> 00:12:33,279 Lambda, esta 245 00:12:33,279 --> 00:12:34,220 ¡Hala! 246 00:12:35,720 --> 00:12:36,500 Ya tengo 247 00:12:36,500 --> 00:12:40,350 El precio, ¿vale? 248 00:12:40,889 --> 00:12:43,350 Y ahora, ¿qué quiero hacer 249 00:12:43,350 --> 00:12:45,210 Con todos y cada uno de los precios? 250 00:12:45,210 --> 00:12:46,750 sumarlos 251 00:12:46,750 --> 00:12:48,590 pues ya está 252 00:12:48,590 --> 00:12:53,500 ¿Vale? Más sencillo 253 00:12:53,500 --> 00:12:54,759 que un for 254 00:12:54,759 --> 00:12:57,500 pues ya está, esto es lo primero que se nos puede 255 00:12:57,500 --> 00:12:58,860 ocurrir y ya está, ya tenemos 256 00:12:58,860 --> 00:13:01,539 toda la lista de datos informe 257 00:13:01,539 --> 00:13:03,419 de la cual se va a nutrir 258 00:13:03,419 --> 00:13:05,240 la plantilla del Jasper Report 259 00:13:05,240 --> 00:13:07,820 para construir el 260 00:13:07,820 --> 00:13:08,940 listado, ¿Vale? 261 00:13:09,399 --> 00:13:11,159 Pues esta parte ya la tenemos, ahora 262 00:13:11,159 --> 00:13:13,240 estos datos informe 263 00:13:13,240 --> 00:13:15,340 se transformarán en fuente de datos 264 00:13:15,340 --> 00:13:17,360 para la plantilla, pero jolín, la plantilla 265 00:13:17,360 --> 00:13:17,899 Nos falta 266 00:13:17,899 --> 00:13:21,460 Pues vamos a hacer la plantilla 267 00:13:21,460 --> 00:13:23,279 Ala 268 00:13:23,279 --> 00:13:25,139 Sin perder de vista 269 00:13:25,139 --> 00:13:27,220 Esto que es 270 00:13:27,220 --> 00:13:29,200 El que tiene los datos 271 00:13:29,200 --> 00:13:30,379 Que van a ir a la plantilla 272 00:13:30,379 --> 00:13:32,840 Sin perder de vista esto vamos a hacer la plantilla 273 00:13:32,840 --> 00:13:35,039 Pues ala, venga 274 00:13:35,039 --> 00:13:36,600 Nueva plantilla 275 00:13:36,600 --> 00:13:44,970 Jolísima 276 00:13:44,970 --> 00:13:46,450 Puesto tonto 277 00:13:46,450 --> 00:13:47,889 Pues venga, ala 278 00:13:47,889 --> 00:13:50,629 Un nuevo Jasper Report 279 00:13:50,629 --> 00:13:51,470 Ya está 280 00:13:51,470 --> 00:13:55,269 Bueno, pónselo si quieres 281 00:13:55,269 --> 00:13:57,830 Pero es que luego tendrás que personalizarlo 282 00:13:57,830 --> 00:14:00,309 Quitarle los gráficos 283 00:14:00,309 --> 00:14:01,669 Que tú no vayas a incluir 284 00:14:01,669 --> 00:14:04,610 Luego en el examen sorpresa lo haces como tú quieras 285 00:14:04,610 --> 00:14:09,509 Lista, pedidos 286 00:14:09,509 --> 00:14:10,730 Vale 287 00:14:10,730 --> 00:14:13,929 Lista, pedidos, congratulations 288 00:14:13,929 --> 00:14:17,870 ¿Eh? ¿Dónde está el congratulations? 289 00:14:19,210 --> 00:14:20,330 Porque le he dado finish 290 00:14:20,330 --> 00:14:22,490 Pues así 291 00:14:22,490 --> 00:14:24,789 Vale, pues hala 292 00:14:24,789 --> 00:14:26,830 Lista pedidos, ¿dónde está? 293 00:14:28,350 --> 00:14:29,850 Lista pedidos 294 00:14:29,850 --> 00:14:33,009 Ah, es que debe ser que ya tenía 295 00:14:33,009 --> 00:14:34,570 Un listado pedidos 296 00:14:34,570 --> 00:14:37,289 Porque tengo aquí el Jasper, ya compilado 297 00:14:37,289 --> 00:14:39,470 Pues debía tener ya un listado pedidos 298 00:14:39,470 --> 00:14:41,110 Sí, efectivamente 299 00:14:41,110 --> 00:14:41,649 Aquí está 300 00:14:41,649 --> 00:14:43,389 Vale 301 00:14:43,389 --> 00:14:45,870 Pues 302 00:14:45,870 --> 00:14:48,730 Lo voy a llamar 303 00:14:48,730 --> 00:14:55,129 No, es que ya lo tenía, tenía ya un listado de pedidos y lo que ha hecho es sobrescribir, le he debido decir que no o algo así y ya está. 304 00:14:56,009 --> 00:14:59,850 Pues venga, voy a hacer un lista pedidos, que este no le tengo seguro. 305 00:15:08,029 --> 00:15:08,730 Gracias, ya está. 306 00:15:09,870 --> 00:15:10,909 Lista pedidos. 307 00:15:16,649 --> 00:15:19,830 Lista pedidos ya existe, pero ¿cómo va a existir lista pedidos? 308 00:15:20,669 --> 00:15:21,950 También existe lista pedidos. 309 00:15:22,090 --> 00:15:25,129 Ah, es que debes, ah, vale, es que lista pedidos es la nueva, que me he liado. 310 00:15:25,450 --> 00:15:26,389 Esta es la que acabo de hacer. 311 00:15:26,470 --> 00:15:47,750 Vale, lista de pedidos, que está en blanca, blanquísima. Bueno, vale, pues aquí en el detail, aquí en esta banda detail, que está aquí en el outline, que es la clave porque me aparece el mapa de todo lo que tengo, en esta banda detail es donde vamos a poner lo que es el cuerpo del informe, toda la lista de pedidos, los datos que se replican. 312 00:15:47,750 --> 00:15:52,409 Entonces, para cada variable de mi aplicación Java 313 00:15:52,409 --> 00:15:53,750 Que tiene un dato 314 00:15:53,750 --> 00:15:56,830 Y en este caso, ¿cuántas variables tengo que tienen dato? 315 00:15:57,230 --> 00:15:59,649 Tengo la ID y precio total 316 00:15:59,649 --> 00:16:03,350 Luego cada una de ellas se replicará tantas veces como pedidos 317 00:16:03,350 --> 00:16:04,970 Cada una de ellas se replicará 318 00:16:04,970 --> 00:16:07,509 Tantas veces como en la lista aparezca 319 00:16:07,509 --> 00:16:11,049 Pero lo que es variables, cajas que tengan datos 320 00:16:11,049 --> 00:16:12,269 Solo tengo estas dos cajas 321 00:16:12,269 --> 00:16:13,690 ID y precio total 322 00:16:13,690 --> 00:16:14,690 Solo esas dos 323 00:16:14,690 --> 00:16:17,750 vale, pues entonces me tengo que hacer aquí 324 00:16:17,750 --> 00:16:19,370 dos campos 325 00:16:19,370 --> 00:16:22,090 porque variable de java 326 00:16:22,090 --> 00:16:24,169 se corresponde a campo 327 00:16:24,169 --> 00:16:25,389 en el informe 328 00:16:25,389 --> 00:16:28,110 vale, asociación 329 00:16:28,110 --> 00:16:29,509 que hacemos, la más importante 330 00:16:29,509 --> 00:16:32,269 variable de java a campo en el informe 331 00:16:32,269 --> 00:16:33,649 pues nos vamos a hacer 332 00:16:33,649 --> 00:16:34,710 un campo nuevo 333 00:16:34,710 --> 00:16:38,870 me crea el campo nuevo y aquí 334 00:16:38,870 --> 00:16:40,529 a la derecha 335 00:16:40,529 --> 00:16:43,250 me aparece la parte java 336 00:16:43,250 --> 00:16:44,389 que puedo cambiar de él 337 00:16:44,389 --> 00:16:49,909 En nuestro caso, el nombre, porque se llama id, ¿vale? 338 00:16:49,950 --> 00:16:54,590 Se tiene que llamar igual que se llama la variable en java, 339 00:16:55,309 --> 00:17:00,710 para que la librería jasperreport sea capaz de enlazar el campo del informe con esa variable id. 340 00:17:01,309 --> 00:17:02,909 ¿Qué tipo de dato tiene un string? 341 00:17:03,570 --> 00:17:05,069 Porque id es string, pues ya está. 342 00:17:06,750 --> 00:17:10,789 Pues venga, ya tenemos nuestro campo id. 343 00:17:10,789 --> 00:17:14,190 entonces 344 00:17:14,190 --> 00:17:15,910 este campo, si nos vamos al 345 00:17:15,910 --> 00:17:18,170 fuente de la plantilla, a la plantilla 346 00:17:18,170 --> 00:17:20,150 real, en realidad lo único 347 00:17:20,150 --> 00:17:21,950 que ha hecho eso es meterme 348 00:17:21,950 --> 00:17:24,130 esto, es lo único que ha hecho 349 00:17:24,130 --> 00:17:24,890 meterme esta línea 350 00:17:24,890 --> 00:17:27,930 meterme esta línea, pero que pasa 351 00:17:27,930 --> 00:17:29,970 que todavía falta por colocar, esta es mi 352 00:17:29,970 --> 00:17:31,670 banda detail, aquí todavía no hay nada 353 00:17:31,670 --> 00:17:32,589 es decir, está 354 00:17:32,589 --> 00:17:35,890 declarado, está declarada pero todavía 355 00:17:35,890 --> 00:17:37,390 no está colocado en ningún sitio 356 00:17:37,390 --> 00:17:39,990 vale, pues vamos a colocarla 357 00:17:39,990 --> 00:17:42,309 vamos a diseño y ahora ¿dónde la llevamos? 358 00:17:42,410 --> 00:17:43,190 pues al detail 359 00:17:43,190 --> 00:17:47,630 ahí quiero que se coloque 360 00:17:47,630 --> 00:17:49,490 por ejemplo 361 00:17:49,490 --> 00:17:51,930 ahora ya si la tengo 362 00:17:51,930 --> 00:17:53,890 seleccionada en el informe y me voy 363 00:17:53,890 --> 00:17:54,890 otra vez a properties 364 00:17:54,890 --> 00:17:57,890 me aparecen ya las propiedades 365 00:17:57,890 --> 00:17:59,309 pero no las relativas a Java 366 00:17:59,309 --> 00:18:01,970 me aparecen ya las propiedades relativas al aspecto 367 00:18:01,970 --> 00:18:03,890 pues aquí 368 00:18:03,890 --> 00:18:05,990 pues para que se vea el informe 369 00:18:05,990 --> 00:18:06,950 un poquito más grande 370 00:18:06,950 --> 00:18:09,710 pues 371 00:18:09,710 --> 00:18:14,029 en text fill 372 00:18:14,029 --> 00:18:15,769 en text fill 373 00:18:15,769 --> 00:18:17,170 es donde está 374 00:18:17,170 --> 00:18:19,670 el tipo de letra, el tamaño 375 00:18:19,670 --> 00:18:20,349 y todo eso 376 00:18:20,349 --> 00:18:23,569 pues vamos a ponerle que sea un poquito más 377 00:18:23,569 --> 00:18:25,029 grande, 14 378 00:18:25,029 --> 00:18:26,970 para verla bien 379 00:18:26,970 --> 00:18:38,700 vale, aquí uno podría explorar 380 00:18:38,700 --> 00:18:40,359 millones de cosas, pero bueno 381 00:18:40,359 --> 00:18:43,000 las vamos pasando 382 00:18:43,000 --> 00:18:43,519 por alto 383 00:18:43,519 --> 00:18:46,960 vale, ya tenemos 384 00:18:46,960 --> 00:18:48,200 el id ahí colocado 385 00:18:48,200 --> 00:19:13,380 Entonces, fijaos lo que ha hecho el Jaspers of Studio el solito. Lo que ha hecho el Jaspers of Studio el solito, me ha colocado un texto estático que no se corresponde con ninguna variable de javas, me ha colocado un texto estático porque él asume que aquí va a haber una columna de ides y me ha puesto un texto estático para que la cabecera, para que la columna tenga una cabecera. 386 00:19:13,380 --> 00:19:15,440 Pero hombre, que ponga id es muy feo 387 00:19:15,440 --> 00:19:17,099 Vamos a cambiar el texto estático 388 00:19:17,099 --> 00:19:19,480 Vamos a cambiárselo 389 00:19:19,480 --> 00:19:22,500 No quiero que sea id de pedido 390 00:19:22,500 --> 00:19:23,480 Que es muy feo 391 00:19:23,480 --> 00:19:26,240 Lo seleccionáis, os vais a propiedades de la derecha 392 00:19:26,240 --> 00:19:29,960 Id del pedido 393 00:19:29,960 --> 00:19:31,400 Para que se vea un poco más bonito 394 00:19:31,400 --> 00:19:34,299 Y vamos a ponerle 395 00:19:34,299 --> 00:19:36,240 Pues también en letra grande 396 00:19:36,240 --> 00:19:38,200 Y negrita 397 00:19:38,200 --> 00:19:42,640 ¡Hala! Ya tenemos 398 00:19:42,640 --> 00:19:44,299 El primer campo de la columna 399 00:19:44,299 --> 00:19:46,980 Vale 400 00:19:46,980 --> 00:19:49,940 Pero mi informe va a tener 401 00:19:49,940 --> 00:19:51,779 Otro dato de Java 402 00:19:51,779 --> 00:19:53,940 Que es el precio 403 00:19:53,940 --> 00:19:55,099 Total 404 00:19:55,099 --> 00:19:56,579 Pues venga 405 00:19:56,579 --> 00:19:58,440 Precio total 406 00:19:58,440 --> 00:20:01,700 Se llama de esta manera, pues vamos a hacernos 407 00:20:01,700 --> 00:20:02,799 Un nuevo campo aquí 408 00:20:02,799 --> 00:20:04,799 Me creo un campo 409 00:20:04,799 --> 00:20:08,160 Field 1, no, no quiero que se llame field 1 410 00:20:08,160 --> 00:20:10,119 Pues lo selecciono 411 00:20:10,119 --> 00:20:12,240 Y me voy aquí 412 00:20:12,240 --> 00:20:14,339 Sus propiedades 413 00:20:14,339 --> 00:20:15,579 Y quiero que se llame 414 00:20:15,579 --> 00:20:16,819 Precio total 415 00:20:16,819 --> 00:20:19,400 Para que se cargue 416 00:20:19,400 --> 00:20:20,539 Desde java 417 00:20:20,539 --> 00:20:22,460 Con la variable que se llame así 418 00:20:22,460 --> 00:20:23,319 Precio total 419 00:20:23,319 --> 00:20:30,960 Ahora está declarada 420 00:20:30,960 --> 00:20:32,839 Pero no está colocada en ningún sitio 421 00:20:32,839 --> 00:20:35,200 Ah no no 422 00:20:35,200 --> 00:20:35,460 Perdón 423 00:20:35,460 --> 00:20:42,519 Precio total 424 00:20:42,519 --> 00:20:43,180 Era un double 425 00:20:43,180 --> 00:20:47,220 Vale 426 00:20:52,569 --> 00:20:54,250 Estás a tiempo de aprender 427 00:20:54,250 --> 00:20:56,009 A montar a caballo 428 00:20:56,009 --> 00:20:56,970 Todo eso 429 00:20:56,970 --> 00:20:59,410 ¿De ganar dinero por ello? No lo sé 430 00:20:59,410 --> 00:21:02,309 Mira, ¿ves? Ya me has puesto nerviosa y se me ha ido esto por ahí 431 00:21:02,309 --> 00:21:07,970 Vale, precio total 432 00:21:07,970 --> 00:21:09,309 Ahora que ya la tenemos colocada 433 00:21:09,309 --> 00:21:11,230 Vamos a darle el mismo aspecto que la otra 434 00:21:11,230 --> 00:21:12,650 Que si no nos queda muy feo 435 00:21:12,650 --> 00:21:24,910 Hombre, tú puedes cambiar la plantilla 436 00:21:24,910 --> 00:21:25,690 Siempre que quieras 437 00:21:25,690 --> 00:21:26,529 Lo que pasa es que 438 00:21:26,529 --> 00:21:29,150 luego tendrás que volver a compilar 439 00:21:29,150 --> 00:21:29,930 la plantilla 440 00:21:29,930 --> 00:21:38,849 no, no, no, vete a sus propiedades 441 00:21:38,849 --> 00:21:39,670 y cámbialo ahí 442 00:21:39,670 --> 00:21:42,970 pero tienes que seleccionarlo 443 00:21:42,970 --> 00:21:44,950 en la parte de fields, no en la de abajo 444 00:21:44,950 --> 00:21:46,829 en el de arriba 445 00:21:46,829 --> 00:21:49,250 cuando lo seleccionas 446 00:21:49,250 --> 00:21:51,049 arriba ves su parte Java, que es poca 447 00:21:51,049 --> 00:21:53,029 en este caso de campo, cuando lo seleccionas 448 00:21:53,029 --> 00:21:54,910 abajo ves su parte informe 449 00:21:54,910 --> 00:21:56,470 ¿vale? 450 00:21:56,529 --> 00:22:12,690 Entonces, precio total como, vamos a ponerla también en 14 como la otra. Y ahora, el campo extático que me ha puesto el solo, vamos a quedárnoslo, pero vamos a llamarlo mejor. 451 00:22:12,690 --> 00:22:15,269 Precio total 452 00:22:15,269 --> 00:22:19,069 Este nombre no me gusta 453 00:22:19,069 --> 00:22:21,509 Precio total 454 00:22:21,509 --> 00:22:22,809 Me gusta más 455 00:22:22,809 --> 00:22:25,029 También 14 456 00:22:25,029 --> 00:22:27,130 Y negrita 457 00:22:27,130 --> 00:22:34,400 Ala 458 00:22:34,400 --> 00:22:36,480 Y vamos a ponerle 459 00:22:36,480 --> 00:22:37,799 En el título 460 00:22:37,799 --> 00:22:40,740 Pues hombre, vamos a ir a la paleta esta 461 00:22:40,740 --> 00:22:43,200 Y vamos a ponerle un título 462 00:22:43,200 --> 00:22:45,019 al menos, listado pedidos 463 00:22:45,019 --> 00:22:47,220 en la paleta, pues hay muchas 464 00:22:47,220 --> 00:22:47,799 cositas 465 00:22:47,799 --> 00:22:50,579 entre ellas hay 466 00:22:50,579 --> 00:22:53,140 el static text 467 00:22:53,140 --> 00:22:54,400 ¿vale? 468 00:22:55,079 --> 00:22:56,119 pues entonces 469 00:22:56,119 --> 00:22:59,099 el static text 470 00:22:59,099 --> 00:23:01,019 lo arrastráis directamente, los elementos 471 00:23:01,019 --> 00:23:03,500 que cogéis de la paleta, los arrastráis 472 00:23:03,500 --> 00:23:04,859 directamente, porque esos 473 00:23:04,859 --> 00:23:06,579 no tienen conexión con Java 474 00:23:06,579 --> 00:23:08,720 ¿vale? no tienen conexión con Java 475 00:23:08,720 --> 00:23:11,240 entonces 476 00:23:11,240 --> 00:23:12,200 este 477 00:23:12,200 --> 00:23:16,859 ala, este texto estático 478 00:23:16,859 --> 00:23:18,799 propiedades 479 00:23:18,799 --> 00:23:23,420 mis pedidos 480 00:23:23,420 --> 00:23:28,799 que esté centrado 481 00:23:28,799 --> 00:23:33,039 y vamos a ponerlo 482 00:23:33,039 --> 00:23:34,859 en más gordote, 18 483 00:23:34,859 --> 00:23:37,579 y en negrita 484 00:23:37,579 --> 00:23:40,259 más gordo todavía 485 00:23:40,259 --> 00:23:44,319 Cuando guardes se modificará 486 00:23:44,319 --> 00:23:45,359 Vuelve a 10 487 00:23:45,359 --> 00:23:48,420 Que me vuelve a 10 todo el rato 488 00:23:48,420 --> 00:23:57,279 Y esto 489 00:23:57,279 --> 00:24:01,220 Ah, lo tienes que ir dándole así 490 00:24:01,220 --> 00:24:02,640 O escribirlo a mano 491 00:24:02,640 --> 00:24:04,900 O escribirlo a mano en el source, dices 492 00:24:04,900 --> 00:24:06,539 Bueno, pues 493 00:24:06,539 --> 00:24:08,420 Entonces este tampoco se nos ha hecho grande 494 00:24:08,420 --> 00:24:09,039 Efectivamente 495 00:24:09,039 --> 00:24:16,099 Pinchad y escribidle a mano 496 00:24:16,099 --> 00:24:18,140 O sea, editarlo tú directamente 497 00:24:18,140 --> 00:24:19,980 Pues que cutre 498 00:24:19,980 --> 00:24:21,220 Nunca me había dado cuenta de eso 499 00:24:21,220 --> 00:24:23,619 Vale, pues ala 500 00:24:23,619 --> 00:24:24,519 No pasa nada 501 00:24:24,519 --> 00:24:27,619 Este está en 15, este está en 15 502 00:24:27,619 --> 00:24:29,720 Y este está 503 00:24:29,720 --> 00:24:31,460 Por eso os decía 504 00:24:31,460 --> 00:24:33,920 Que es que este software a mí me escama 505 00:24:33,920 --> 00:24:36,019 Y se, obviamente 506 00:24:36,019 --> 00:24:37,480 Se sigue 507 00:24:37,480 --> 00:24:40,640 Y ahora 508 00:24:40,640 --> 00:24:42,319 Este no lo veo 509 00:24:42,319 --> 00:24:42,819 Ahí 510 00:24:42,819 --> 00:24:49,400 Bueno, nos quedamos con este diseño 511 00:24:49,400 --> 00:24:51,400 Venga, vale, nos quedamos con este diseño 512 00:24:51,400 --> 00:24:52,960 Uy, esta se ha quedado muy pequeña 513 00:24:52,960 --> 00:24:54,319 Más pequeña que esta otra 514 00:24:54,319 --> 00:24:58,720 A ver, esta está a 16 515 00:24:58,720 --> 00:24:59,980 Y esta la he dejado a 14 516 00:24:59,980 --> 00:25:04,599 Ay, perdón, vale 517 00:25:04,599 --> 00:25:12,079 O sea, ¿qué diferencia hay en lo de abajo, en el FID y detenido? 518 00:25:13,980 --> 00:25:14,380 ¿Perdona? 519 00:25:15,420 --> 00:25:18,519 La variable, en lo de detail, ahí va a mostrar el dato. 520 00:25:19,059 --> 00:25:20,460 Claro, aquí va a mostrar el dato. 521 00:25:20,500 --> 00:25:20,940 Y arriba el texto. 522 00:25:21,059 --> 00:25:22,039 El texto tal cual. 523 00:25:22,799 --> 00:25:26,660 Vale, esto no tiene nada que ver con Java, es un static test el texto que tú pongas. 524 00:25:26,980 --> 00:25:29,220 Lo de abajo es la variable que se llame así. 525 00:25:29,599 --> 00:25:32,579 Vale, por eso lo de arriba lo hemos arrastrado desde la paleta, 526 00:25:32,579 --> 00:25:33,920 No había que crearlo 527 00:25:33,920 --> 00:25:35,660 Ni nada 528 00:25:35,660 --> 00:25:38,779 Vale, pues ya está, entonces, ¿nos gusta este informe? 529 00:25:38,900 --> 00:25:39,559 Vale, entonces 530 00:25:39,559 --> 00:25:41,779 Lo que pasa es que la banda detail 531 00:25:41,779 --> 00:25:43,359 Vamos a hacerla un poquito más pequeña 532 00:25:43,359 --> 00:25:45,440 Porque si no 533 00:25:45,440 --> 00:25:47,539 Todas las líneas 534 00:25:47,539 --> 00:25:49,579 Que se van a ir replicando 535 00:25:49,579 --> 00:25:51,099 Van a quedar muy separadas entre sí 536 00:25:51,099 --> 00:25:54,019 Entonces vamos a hacerla un poquito más pequeñita 537 00:25:54,019 --> 00:25:58,819 Ponemos esto aquí 538 00:25:58,819 --> 00:26:01,299 Esto aquí 539 00:26:01,299 --> 00:26:05,259 Podéis hacer esta banda un poco más pequeña 540 00:26:05,259 --> 00:26:08,480 Vale, bueno, pues así se queda 541 00:26:08,480 --> 00:26:10,920 A ver si luego es feo, bonito, ya veremos como es 542 00:26:10,920 --> 00:26:13,160 Se ve divino 543 00:26:13,160 --> 00:26:15,220 Bueno, pues 544 00:26:15,220 --> 00:26:18,420 Esto es lo que ha generado, que en realidad 545 00:26:18,420 --> 00:26:20,319 Tampoco es nada muy allá del otro mundo 546 00:26:20,319 --> 00:26:23,140 Ha declarado los dos campos 547 00:26:23,140 --> 00:26:28,720 Y luego en la banda detail, en la banda columna 548 00:26:28,720 --> 00:26:30,559 Ha puesto dos textos estáticos 549 00:26:30,559 --> 00:26:32,980 Y en la banda detail ha puesto 550 00:26:32,980 --> 00:26:35,039 Estos dos textos 551 00:26:35,039 --> 00:26:36,579 Estos dos campos 552 00:26:36,579 --> 00:26:38,720 ¿Vale? Y ya está 553 00:26:38,720 --> 00:26:40,380 Y no hemos hecho nada más 554 00:26:40,380 --> 00:26:42,200 Bueno, ahora 555 00:26:42,200 --> 00:26:44,920 Vamos a asegurarnos 556 00:26:44,920 --> 00:26:47,539 De que esta plantilla, el Jasper Report 557 00:26:47,539 --> 00:26:49,440 La va a poder 558 00:26:49,440 --> 00:26:51,279 Utilizar correctamente 559 00:26:51,279 --> 00:26:52,980 Las librerías del Jasper Report 560 00:26:52,980 --> 00:26:55,220 Que no se van a liar con ella de que está bien hecha 561 00:26:55,220 --> 00:26:56,700 O lo que es lo mismo 562 00:26:56,700 --> 00:26:59,259 Vamos a compilarla, porque el Jasper Report no usa 563 00:26:59,259 --> 00:27:00,880 el xml 564 00:27:00,880 --> 00:27:03,259 usa la versión compilada 565 00:27:03,259 --> 00:27:05,440 y sobre la compilada es sobre la que 566 00:27:05,440 --> 00:27:07,319 inserta ya los datos 567 00:27:07,319 --> 00:27:09,420 ¿cómo compilamos la plantilla? 568 00:27:09,640 --> 00:27:11,259 pues le dais a este botoncito 569 00:27:11,259 --> 00:27:12,079 ¿vale? 570 00:27:14,220 --> 00:27:15,220 hombre, pues 571 00:27:15,220 --> 00:27:17,640 si os da errores es que 572 00:27:17,640 --> 00:27:19,819 hemos escrito algo mal en la plantilla 573 00:27:19,819 --> 00:27:21,859 que algún campo que se sale de su sitio 574 00:27:21,859 --> 00:27:23,900 alguna incoherencia con tamaños 575 00:27:23,900 --> 00:27:25,420 pero hombre 576 00:27:25,420 --> 00:27:28,000 no nos ha dado errores, con lo cual esta plantilla 577 00:27:28,000 --> 00:27:48,680 Ya está bien hecha. No tiene colisiones entre dos campos que se llamen igual, entre un campo que esté encima del otro, con lo cual no tiene cosas raras. Ha compilado y ya está. Y al compilarla nos ha generado el fichero que ya sí que realmente va a usar la librería Jasper Report. 578 00:27:48,680 --> 00:27:51,380 que es el punto 579 00:27:51,380 --> 00:27:51,900 jasper 580 00:27:51,900 --> 00:27:55,140 nosotros este es el fuente 581 00:27:55,140 --> 00:27:57,619 y este es el punto jasper 582 00:27:57,619 --> 00:27:59,400 que este ya lo usa 583 00:27:59,400 --> 00:28:01,299 la librería del jasper report para 584 00:28:01,299 --> 00:28:02,539 ahora ya en nuestro mail 585 00:28:02,539 --> 00:28:04,960 coger esto, coger 586 00:28:04,960 --> 00:28:07,359 los datos, se funden 587 00:28:07,359 --> 00:28:09,259 y se acabó, vale 588 00:28:09,259 --> 00:28:11,420 pues venga 589 00:28:11,420 --> 00:28:13,359 ahora ya nos tenemos que ir a java otra vez 590 00:28:13,359 --> 00:28:15,339 pero bueno, vamos a copiar este archivo 591 00:28:15,339 --> 00:28:17,519 este vamos a 592 00:28:17,519 --> 00:28:18,160 copiarlo 593 00:28:18,160 --> 00:28:21,420 para llevarlo a una ruta más fácilmente 594 00:28:21,420 --> 00:28:22,339 accesible desde 595 00:28:22,339 --> 00:28:26,640 pues venga, vamos a hacernos 596 00:28:26,640 --> 00:28:29,019 estamos aquí, ¿no? pues vamos a hacernos 597 00:28:29,019 --> 00:28:30,119 una carpetita 598 00:28:30,119 --> 00:28:32,859 o el mismo resources 599 00:28:32,859 --> 00:28:34,599 ¿vale? vamos a ponernos 600 00:28:34,599 --> 00:28:36,799 la plantilla 601 00:28:36,799 --> 00:28:46,710 a ver, lo que pasa es que no lo voy a poner en resources 602 00:28:46,710 --> 00:28:49,130 porque es un rollo, porque hay que 603 00:28:49,130 --> 00:28:51,109 sacarlo con, no sé si os acordáis 604 00:28:51,109 --> 00:28:53,069 de get resources stream 605 00:28:53,069 --> 00:28:57,369 O poner la ruta entera 606 00:28:57,369 --> 00:28:59,529 Entonces se me hace más pesado 607 00:28:59,529 --> 00:29:00,390 Vamos a hacerlo 608 00:29:00,390 --> 00:29:01,930 Directamente 609 00:29:01,930 --> 00:29:04,569 En una carpeta aquí 610 00:29:04,569 --> 00:29:11,400 Vamos a hacernos aquí una carpetilla 611 00:29:11,400 --> 00:29:13,079 Con forges 612 00:29:13,079 --> 00:29:17,599 En el raíz, y así la ruta es más corta 613 00:29:17,599 --> 00:29:18,480 Que la de resources 614 00:29:18,480 --> 00:29:22,339 ¿Vale? Porque recordad esto 615 00:29:22,339 --> 00:29:24,839 Tendríamos que remontarnos unas cuantas semanas atrás 616 00:29:24,839 --> 00:29:26,480 Y lógicamente lo tendréis olvidado 617 00:29:26,480 --> 00:29:28,079 Pero seguro que está grabado 618 00:29:28,079 --> 00:29:29,400 Que 619 00:29:29,400 --> 00:29:32,160 cuando trabajamos con archivos 620 00:29:32,160 --> 00:29:34,680 cuando trabajamos 621 00:29:34,680 --> 00:29:36,460 con archivos, no es como las clases 622 00:29:36,460 --> 00:29:38,539 de Java, la máquina virtual 623 00:29:38,539 --> 00:29:40,579 busca las clases de Java 624 00:29:40,579 --> 00:29:42,400 para ejecutarlas y para todo eso 625 00:29:42,400 --> 00:29:44,420 en el classpad 626 00:29:44,420 --> 00:29:46,700 y resources está en el classpad 627 00:29:46,700 --> 00:29:48,539 pero otra cosa son los archivos 628 00:29:48,539 --> 00:29:50,480 de datos, esos son recursos que no se 629 00:29:50,480 --> 00:29:52,579 buscan en el classpad, se buscan en la ruta 630 00:29:52,579 --> 00:29:54,700 que tú le digas, entonces si yo meto un archivo 631 00:29:54,700 --> 00:29:56,720 aquí, que no es un .java 632 00:29:56,720 --> 00:29:58,500 sino un archivo para sacar 633 00:29:58,500 --> 00:30:00,400 datos, tendría que poner toda la ruta 634 00:30:00,400 --> 00:30:02,599 o hacer eso que hacíamos 635 00:30:02,599 --> 00:30:04,359 de getResource asStream. 636 00:30:04,500 --> 00:30:06,680 Entonces, el getResource, si es un método 637 00:30:06,680 --> 00:30:08,220 que te va aquí directamente. 638 00:30:09,079 --> 00:30:10,500 Claro, pero tengo que usar ese 639 00:30:10,500 --> 00:30:12,420 método para que ya me lo devuelva como 640 00:30:12,420 --> 00:30:13,339 un stream y ya se ve. 641 00:30:13,339 --> 00:30:14,539 ¿Es un método de qué clase? 642 00:30:14,799 --> 00:30:16,559 ¿De la rucha, directamente, de qué clase? 643 00:30:17,000 --> 00:30:19,519 Es un método de la propia 644 00:30:19,519 --> 00:30:21,759 clase. Está en un... 645 00:30:21,759 --> 00:30:23,480 Uno de los proyectos de ejemplo del principio. 646 00:30:23,640 --> 00:30:24,140 Sí, lo vi allí. 647 00:30:24,599 --> 00:30:26,440 Ah, vale. 648 00:30:26,440 --> 00:30:28,559 Pues la propia clase 649 00:30:28,559 --> 00:30:31,500 Claro, porque lo llama 650 00:30:31,500 --> 00:30:32,859 La propia clase en la que estás 651 00:30:32,859 --> 00:30:35,799 Cualquier clase lo puede llamar 652 00:30:35,799 --> 00:30:37,380 Llama a ver tus obras y ya está 653 00:30:37,380 --> 00:30:38,859 Entonces, para no liarnos 654 00:30:38,859 --> 00:30:40,579 Lo voy a poner en informes y se acabó 655 00:30:40,579 --> 00:30:42,460 Entonces, ahí lo pego 656 00:30:42,460 --> 00:30:44,779 Ahí tenemos el Jasper 657 00:30:44,779 --> 00:30:46,019 Vale 658 00:30:46,019 --> 00:30:48,180 Y ahora ya sí que sí 659 00:30:48,180 --> 00:30:49,839 En nuestro main 660 00:30:49,839 --> 00:30:51,779 Que estaba por aquí 661 00:30:51,779 --> 00:30:53,299 En nuestro método 662 00:30:53,299 --> 00:30:54,720 Ahora hay que hacer 663 00:30:54,720 --> 00:30:56,660 crear la fuente de datos 664 00:30:56,660 --> 00:30:57,480 para el Jasper 665 00:30:57,480 --> 00:30:59,299 asociada a este 666 00:30:59,299 --> 00:31:04,900 pasar la fuente de datos 667 00:31:04,900 --> 00:31:08,880 a la librería 668 00:31:08,880 --> 00:31:10,579 de Jasper Report y decir a la librería 669 00:31:10,579 --> 00:31:12,859 de Jasper Report que cree el informe 670 00:31:12,859 --> 00:31:13,680 y se acabó 671 00:31:13,680 --> 00:31:16,140 para todo eso necesito 672 00:31:16,140 --> 00:31:18,660 necesito la dependencia 673 00:31:18,660 --> 00:31:20,059 del Jasper Report, lógicamente 674 00:31:20,059 --> 00:31:22,579 porque es la librería de Jasper Report la que me hace esas cosas 675 00:31:22,579 --> 00:31:24,220 y no la tenemos 676 00:31:24,220 --> 00:31:30,079 Pues entonces, como somos unos ignorantes que partimos todo de cero 677 00:31:30,079 --> 00:31:34,079 Nadie nos ayuda, pues vámonos al repositorio de Mavi y la buscamos 678 00:31:34,079 --> 00:31:35,799 Al final no ha añadido datos 679 00:31:35,799 --> 00:31:43,349 Ay, perdone usted, tiene razón 680 00:31:43,349 --> 00:31:46,650 Claro, efectivamente, no lo he añadido 681 00:31:46,650 --> 00:31:50,950 Vale, datos.add 682 00:31:50,950 --> 00:31:54,529 Vale, efectivamente 683 00:31:54,529 --> 00:31:56,910 Vale, bueno pues entonces 684 00:31:56,910 --> 00:31:59,329 Necesitamos la dependencia 685 00:31:59,329 --> 00:32:00,470 Eso significa 686 00:32:00,470 --> 00:32:02,849 Vámonos a un maven repository 687 00:32:02,849 --> 00:32:06,410 A ver este maven repository 688 00:32:06,410 --> 00:32:08,369 Que nos dice 689 00:32:08,369 --> 00:32:09,690 De jasper report 690 00:32:09,690 --> 00:32:14,400 Jasper reports library 691 00:32:14,400 --> 00:32:16,240 Pues tiene pinta de que es la primera 692 00:32:16,240 --> 00:32:17,359 De todas 693 00:32:17,359 --> 00:32:20,869 Ala 694 00:32:20,869 --> 00:32:23,589 Julio del 2025 695 00:32:23,589 --> 00:32:25,509 Venga, entra adentro 696 00:32:25,509 --> 00:32:27,970 ¿Con qué nos quedamos? 697 00:32:27,970 --> 00:32:29,490 Ala, con la última 698 00:32:29,490 --> 00:32:31,089 Pues venga, con la última 699 00:32:31,089 --> 00:32:32,809 A ver si no funciona 700 00:32:32,809 --> 00:32:36,789 Venga 701 00:32:36,789 --> 00:32:40,349 Copiamos 702 00:32:40,349 --> 00:32:43,170 Y llevamos esto 703 00:32:43,170 --> 00:32:44,650 Aquí 704 00:32:44,650 --> 00:33:12,480 Pues nos habrá metido 705 00:33:12,480 --> 00:33:13,859 Unas cuantas cosas 706 00:33:13,859 --> 00:33:16,859 Aquí, en A, que tardaba mucho en aparecer 707 00:33:16,859 --> 00:33:18,420 Pues sí 708 00:33:18,420 --> 00:33:19,619 Nos ha metido aquí 709 00:33:19,619 --> 00:33:21,680 La leche 710 00:33:21,680 --> 00:33:24,299 Fijaos todo lo que tira el Jasper Report 711 00:33:24,299 --> 00:33:29,119 De hecho el propio Jasper Report 712 00:33:29,119 --> 00:33:31,000 Ya incorpora 713 00:33:31,000 --> 00:33:32,380 Jackson 714 00:33:32,380 --> 00:33:33,599 O sea Jackson está 715 00:33:33,599 --> 00:33:36,519 Porque estoy abriendo el proyecto correcto 716 00:33:36,519 --> 00:33:38,319 A ver si me he metido en otro 717 00:33:38,319 --> 00:33:40,180 Si estoy en este 718 00:33:40,180 --> 00:33:42,720 Fijaos solamente he puesto la dependencia 719 00:33:42,720 --> 00:33:43,480 De Jasper Report 720 00:33:43,480 --> 00:33:45,599 Y todo lo que me ha metido 721 00:33:45,599 --> 00:33:48,680 La de Jackson es que aparece siempre en todas partes 722 00:33:48,680 --> 00:33:53,119 la primera de todas 723 00:33:53,119 --> 00:33:56,220 como workflow 724 00:33:56,220 --> 00:33:57,380 yo he buscado Jasper Report 725 00:33:57,380 --> 00:33:58,519 me ha salido Jasper Report Library 726 00:33:58,519 --> 00:33:59,200 me he metido ahí 727 00:33:59,200 --> 00:34:00,700 y de las versiones que me ofrecía 728 00:34:00,700 --> 00:34:01,220 la última 729 00:34:01,220 --> 00:34:03,839 que no sé si era la 703 730 00:34:03,839 --> 00:34:06,500 entonces fijaos 731 00:34:06,500 --> 00:34:08,199 todo lo que ha incorporado 732 00:34:08,199 --> 00:34:09,440 y el Jackson este 733 00:34:09,440 --> 00:34:11,219 es que está en todas partes 734 00:34:11,219 --> 00:34:13,119 todo el mundo depende de él 735 00:34:13,119 --> 00:34:19,510 pero qué problema ha habido 736 00:34:19,510 --> 00:34:21,110 ¿no lo encontráis en el repositorio? 737 00:34:21,210 --> 00:34:25,750 Pues 703, la última 738 00:34:25,750 --> 00:34:28,670 Pero bueno, no creo que haya muchas diferencias 739 00:34:28,670 --> 00:34:30,070 Si hubiera muchas diferencias 740 00:34:30,070 --> 00:34:31,829 Entre versiones que salen en meses diferentes 741 00:34:31,829 --> 00:34:34,210 El mundo sería un caos 742 00:34:34,210 --> 00:34:36,010 Vale 743 00:34:36,010 --> 00:34:37,789 Pues entonces, ahora ya 744 00:34:37,789 --> 00:34:39,710 Sí que sí, nos viene 745 00:34:39,710 --> 00:34:41,809 O tener una memoria extraordinaria 746 00:34:41,809 --> 00:34:43,010 O el copia y pega 747 00:34:43,010 --> 00:34:44,889 Entonces, ¿qué tenemos que hacer? 748 00:34:44,949 --> 00:34:47,869 Crear la fuente de datos y llamar al método de Jasper Report 749 00:34:47,869 --> 00:34:49,309 Que me cree el informe y se acabó 750 00:34:49,309 --> 00:35:07,480 Entonces, si no tenemos una memoria extraordinaria, pues nos vamos al proyecto que ya tengamos hecho que haga eso, crear la fuente de datos y llenar el informe y lo copiamos, ¿vale? Nada, son dos líneas. 751 00:35:07,480 --> 00:35:41,670 Entonces, estos aquí tendremos una, vale, aquí lo tenemos. Vale, pues crear la fuente de datos desde, vale, pues esto, primero, el Jasper Report necesita, se llama datos, sí, qué suerte, casualidad. 752 00:35:41,670 --> 00:36:00,610 Vale, el Jasper Report necesita que la fuente de la cual coge los datos sea de una de las clases propias que le entiende, claro. Pues entonces, transformamos nuestro datos que tiene las variables con esos nombres, la transformamos a una fuente de datos que el Jasper Report pueda entender. 753 00:36:00,610 --> 00:36:04,030 Entonces el JASPER report 754 00:36:04,030 --> 00:36:05,769 Se puede llenar 755 00:36:05,769 --> 00:36:07,889 Con más datos 756 00:36:07,889 --> 00:36:09,230 Que una colección de variables 757 00:36:09,230 --> 00:36:11,190 Se puede llenar con una consulta 758 00:36:11,190 --> 00:36:12,030 O una base de datos 759 00:36:12,030 --> 00:36:13,710 Se puede llenar de un fichero JSON 760 00:36:13,710 --> 00:36:15,210 Se puede llenar de muchas cosas 761 00:36:15,210 --> 00:36:18,329 Todas ellas serían data source en general 762 00:36:18,329 --> 00:36:21,269 Pues un data source en concreto 763 00:36:21,269 --> 00:36:23,070 Es el de colección de bins 764 00:36:23,070 --> 00:36:24,230 Que es el nuestro 765 00:36:24,230 --> 00:36:26,429 El nuestro es una colección 766 00:36:26,429 --> 00:36:28,550 De datos informe, datos informe 767 00:36:28,550 --> 00:36:29,429 Una colección de bins 768 00:36:29,429 --> 00:36:31,170 Es una fuente concreta. 769 00:36:31,690 --> 00:36:32,809 Pues esta es la que vamos a usar. 770 00:36:33,230 --> 00:36:36,869 Vamos a usar la fuente colección de BIMs para llenar el informe. 771 00:36:37,309 --> 00:36:39,530 Que es esta, nuestra colección de BIMs. 772 00:36:39,690 --> 00:36:44,889 Vale, ya tenemos esa fuente que es capaz la librería Jasper Report de usar para llenar el informe. 773 00:36:45,789 --> 00:36:47,969 Pues ¿cómo llenamos el informe? 774 00:36:48,469 --> 00:36:50,329 Pues, ¿dónde tenemos? Vale. 775 00:36:55,849 --> 00:36:57,570 Pues con estas dos líneas. 776 00:36:58,469 --> 00:37:02,150 Y punto, bueno, vamos a incorporar ya. 777 00:37:02,150 --> 00:37:03,369 Ponemos las tres. 778 00:37:03,750 --> 00:37:05,110 Que ya me lleva pdf 779 00:37:05,110 --> 00:37:06,010 Y ya lo tenemos todo 780 00:37:06,010 --> 00:37:08,190 Vale 781 00:37:08,190 --> 00:37:09,909 No, son tres líneas, de verdad 782 00:37:09,909 --> 00:37:11,369 No, esto no está en la chuleta 783 00:37:11,369 --> 00:37:13,590 Porque al menos si lo 784 00:37:13,590 --> 00:37:15,050 Vale 785 00:37:15,050 --> 00:37:18,349 Sí, sí, sí, sí 786 00:37:18,349 --> 00:37:19,530 Lo voy a poner juntito 787 00:37:19,530 --> 00:37:22,510 Lo voy a poner juntito 788 00:37:22,510 --> 00:37:24,570 Son tres líneas, nada más 789 00:37:24,570 --> 00:37:26,289 Por eso no he hecho chuleta con ellas 790 00:37:26,289 --> 00:37:29,989 Pero lo que pasa es que, a ver 791 00:37:29,989 --> 00:37:31,170 Tenemos que cambiar aquí 792 00:37:31,170 --> 00:37:32,829 Estos nombres 793 00:37:32,829 --> 00:37:34,969 Espera, deja, antes de empezar a copiar 794 00:37:34,969 --> 00:37:36,010 Antes de empezar a copiar 795 00:37:36,010 --> 00:37:39,150 Vamos a entender estas tres líneas 796 00:37:39,150 --> 00:37:41,070 Y adaptarlas a nuestros datos 797 00:37:41,070 --> 00:37:42,449 En concreto, ¿vale? 798 00:37:42,469 --> 00:37:44,469 Y luego ya las copiáis tranquilamente 799 00:37:44,469 --> 00:37:47,429 En ese cambio de clase ficticio 800 00:37:47,429 --> 00:37:47,989 Que no hemos hecho 801 00:37:47,989 --> 00:37:49,329 Sí 802 00:37:49,329 --> 00:37:52,929 ¿Eh? Segurísimo 803 00:37:52,929 --> 00:37:54,369 Vale, pues a ver 804 00:37:54,369 --> 00:37:57,230 Esta es la fuente de datos de tipo colección de BIM 805 00:37:57,230 --> 00:37:59,510 Que se crea desde una colección de BIM 806 00:37:59,510 --> 00:38:00,670 Efectivamente, vale 807 00:38:00,670 --> 00:38:18,130 Ahora, creamos el reporte, el reporte, o sea, el objeto, un objeto report que es el que es capaz de hacerlo todo, creamos este objeto, este objeto como lo creamos, pues lo creamos de, ¿vale? 808 00:38:18,130 --> 00:38:20,190 Desde el 809 00:38:20,190 --> 00:38:21,969 Fichero 810 00:38:21,969 --> 00:38:23,329 Aquí tendremos que hacer 811 00:38:23,329 --> 00:38:24,730 Un fichero 812 00:38:24,730 --> 00:38:27,050 Asociado a 813 00:38:27,050 --> 00:38:28,409 El 814 00:38:28,409 --> 00:38:30,269 A ver 815 00:38:30,269 --> 00:38:33,969 New file 816 00:38:33,969 --> 00:38:34,889 A ver 817 00:38:34,889 --> 00:38:38,210 Nuestra plantilla como se llamaba 818 00:38:38,210 --> 00:38:40,369 Lista pedidos 819 00:38:40,369 --> 00:38:47,070 Punto 820 00:38:47,070 --> 00:38:50,179 Jasper 821 00:38:50,179 --> 00:38:52,480 Vale, lista pedidos 822 00:38:52,480 --> 00:38:53,599 Punto Jasper, ¿verdad? 823 00:38:54,659 --> 00:38:56,159 E importamos file. 824 00:39:03,650 --> 00:39:05,269 Y esto tiene la... 825 00:39:05,269 --> 00:39:09,239 A ver, un momentito. 826 00:39:10,500 --> 00:39:11,559 Ah, vale, vale. 827 00:39:11,639 --> 00:39:12,360 Sí, sí, sí, sí. 828 00:39:12,500 --> 00:39:13,019 Vale, vale. 829 00:39:13,079 --> 00:39:14,900 Es que es más cutre que todo eso. 830 00:39:16,199 --> 00:39:16,719 Vale. 831 00:39:22,159 --> 00:39:23,059 Vale, entonces. 832 00:39:25,000 --> 00:39:27,739 Esta es nuestra palantilla ya compilada. 833 00:39:28,599 --> 00:39:29,119 ¿Vale? 834 00:39:29,159 --> 00:39:31,559 De la que parte el... 835 00:39:31,559 --> 00:39:32,119 Ahora. 836 00:39:32,900 --> 00:39:34,059 Vamos a rellenarla. 837 00:39:39,190 --> 00:39:40,429 ¿Con qué la rellenamos? 838 00:39:40,429 --> 00:39:42,130 con mi fuente de datos 839 00:39:42,130 --> 00:39:44,610 la rellenamos con mi fuente de datos 840 00:39:44,610 --> 00:39:45,329 que es esta 841 00:39:45,329 --> 00:39:48,030 el segundo parámetro 842 00:39:48,030 --> 00:39:50,329 es un parámetro para meterle parámetros 843 00:39:50,329 --> 00:39:52,150 adicionales que ahora mismo 844 00:39:52,150 --> 00:39:54,050 no le estamos metiendo parámetros adicionales 845 00:39:54,050 --> 00:39:54,710 lo dejamos a no 846 00:39:54,710 --> 00:40:00,269 y este es el objeto que hemos creado 847 00:40:00,269 --> 00:40:00,730 antes 848 00:40:00,730 --> 00:40:03,329 entonces este método 849 00:40:03,329 --> 00:40:05,769 el field report, este método es 850 00:40:05,769 --> 00:40:08,369 el que rellena esta plantilla 851 00:40:08,369 --> 00:40:10,530 Jasper ya compilada, el que rellena 852 00:40:10,530 --> 00:40:12,010 esta plantilla con esto. 853 00:40:13,110 --> 00:40:13,969 ¿Vale? Este método, 854 00:40:14,090 --> 00:40:16,750 mi plantilla compilada 855 00:40:16,750 --> 00:40:18,070 se rellena con estos datos. 856 00:40:18,989 --> 00:40:20,670 En nuestro caso, sin parámetros 857 00:40:20,670 --> 00:40:22,250 adicionales. Por eso eso está nulo. 858 00:40:22,329 --> 00:40:24,389 Sin parámetros adicionales, que todavía no sabemos 859 00:40:24,389 --> 00:40:26,670 lo que es. Ahora ya 860 00:40:26,670 --> 00:40:28,710 tengo el informe 861 00:40:28,710 --> 00:40:30,510 en Jasper Print, pero todavía 862 00:40:30,510 --> 00:40:32,329 no tengo un PDF, ni porque 863 00:40:32,329 --> 00:40:34,510 podría exportarlo a otras cosas. 864 00:40:35,489 --> 00:40:36,449 Vamos a exportarlo 865 00:40:36,449 --> 00:40:37,090 A pdf 866 00:40:37,090 --> 00:40:39,550 Y para exportarlo a pdf 867 00:40:39,550 --> 00:40:41,090 Pues ahora 868 00:40:41,090 --> 00:40:44,329 Esto te pedía después un file o un string 869 00:40:44,329 --> 00:40:45,630 Vale, directamente 870 00:40:45,630 --> 00:40:47,130 Pues para exportarlo a pdf 871 00:40:47,130 --> 00:40:49,630 Le decimos el nombre del fichero 872 00:40:49,630 --> 00:40:52,449 Esto si quiero que lo meta en informes 873 00:40:53,090 --> 00:40:56,269 Pues 874 00:40:56,269 --> 00:41:00,420 Informes 875 00:41:01,599 --> 00:41:03,820 Listado 876 00:41:03,820 --> 00:41:05,300 Punto pdf 877 00:41:05,300 --> 00:41:10,820 ¿Cómo se vea la variable nombre que tenemos arriba? 878 00:41:14,389 --> 00:41:16,110 ¿Te he hecho una variable nombre con ese nombre? 879 00:41:16,130 --> 00:41:16,449 El parámetro. 880 00:41:20,780 --> 00:41:21,179 Arriba. 881 00:41:21,420 --> 00:41:24,239 Si me llevas al método, tienes que pasar el parámetro. 882 00:41:24,579 --> 00:41:25,320 La lista de pedidos. 883 00:41:26,099 --> 00:41:27,280 Pues antes lo has hecho bien. 884 00:41:28,659 --> 00:41:29,739 No sé de qué me estáis hablando. 885 00:41:30,739 --> 00:41:31,139 Arriba. 886 00:41:31,739 --> 00:41:32,139 Sí. 887 00:41:32,480 --> 00:41:33,280 Realmente el método. 888 00:41:33,639 --> 00:41:34,920 Ah, perdón, claro. 889 00:41:35,099 --> 00:41:35,480 Sí, sí, sí. 890 00:41:35,699 --> 00:41:36,539 Vale, vale, vale. 891 00:41:36,559 --> 00:41:38,059 Que le había pasado el nombre como parámetro. 892 00:41:38,699 --> 00:41:39,440 Vale, perdón. 893 00:41:39,500 --> 00:41:41,119 Se lo había pasado como parámetro. 894 00:41:42,119 --> 00:41:43,920 Entonces, sin la ruta, entiendo. 895 00:41:43,920 --> 00:41:44,960 Luego, entonces, vale, vale. 896 00:41:45,039 --> 00:41:46,139 Que lo había pasado como parámetro. 897 00:41:46,139 --> 00:41:57,329 Entonces esto tendré que cerrar aquí y concatenarlo con nombres, no fichero, ¿vale? 898 00:41:58,710 --> 00:42:04,849 Y ya está, y esto todo son excepciones que para no dejarlo feo y que la copia sea más fácil, hacemos un flow. 899 00:42:05,190 --> 00:42:30,449 Y ahora ya, sí que sí, vamos a ver, vamos a ponerlo así más para que quepa y lo, vale, pues son esas tres líneas de ahí. 900 00:42:30,889 --> 00:42:45,960 ¿vale? 901 00:42:47,019 --> 00:42:48,280 cargamos la plantilla 902 00:42:48,280 --> 00:42:50,940 a ver, está hecho 903 00:42:50,940 --> 00:42:52,619 está programado en plan cutre 904 00:42:52,619 --> 00:42:54,480 solo queremos ver que funciona 905 00:42:54,480 --> 00:42:56,400 porque hombre, poner esto aquí 906 00:42:56,400 --> 00:42:58,699 cableado directamente sin pasar como parámetro 907 00:42:58,699 --> 00:43:00,300 ni nada, es bastante cutre 908 00:43:00,300 --> 00:43:02,639 aparte de que no le he puesto 909 00:43:02,639 --> 00:43:04,980 la ruta, que está en informes, con lo cual no lo va a encontrar 910 00:43:04,980 --> 00:43:06,119 se me había puesto la ruta 911 00:43:06,119 --> 00:43:15,710 se me ha olvidado poner la ruta 912 00:43:15,710 --> 00:43:17,769 lo pongo aquí abajo 913 00:43:17,769 --> 00:43:20,280 ¿vale? entonces 914 00:43:20,280 --> 00:43:22,300 Como programado está cutre 915 00:43:22,300 --> 00:43:23,940 No sacar esto fuera 916 00:43:23,940 --> 00:43:26,840 Lo ideal sería sacar esto a properties 917 00:43:26,840 --> 00:43:28,559 Un fichero properties 918 00:43:28,559 --> 00:43:28,860 ¿Vale? 919 00:43:31,719 --> 00:43:33,280 Cargamos la plantilla 920 00:43:33,280 --> 00:43:35,380 La rellenamos 921 00:43:35,380 --> 00:43:37,139 Con nuestros datos 922 00:43:37,139 --> 00:43:39,519 Y exportamos a PDF 923 00:43:39,519 --> 00:43:41,099 Punto pelota, ya está 924 00:43:41,099 --> 00:43:42,920 Aquí sí que es un copia y pega 925 00:43:42,920 --> 00:43:45,619 La única dificultad que tiene esta herramienta 926 00:43:45,619 --> 00:43:47,300 Es hacer la plantilla 927 00:43:47,300 --> 00:43:49,199 Hacer una plantilla 928 00:43:49,199 --> 00:43:51,159 que se adapte a lo que queremos nosotros 929 00:43:51,159 --> 00:43:53,079 y que quede bonito, es la única dificultad 930 00:43:53,079 --> 00:43:54,519 si la plantilla está 931 00:43:54,519 --> 00:43:57,139 la cargamos 932 00:43:57,139 --> 00:43:59,059 rellenamos y exportamos 933 00:43:59,059 --> 00:44:01,159 bueno, está copiado 934 00:44:01,159 --> 00:44:02,880 podemos probarlo a ver si hemos acertado 935 00:44:02,880 --> 00:44:04,440 no, no, no, está copiado 936 00:44:04,440 --> 00:44:07,260 vale, pues un segundito, espera que paramos aquí 937 00:44:07,260 --> 00:44:08,940 detenemos aquí un momentito 938 00:44:08,940 --> 00:44:12,199 vale 939 00:44:12,199 --> 00:44:14,659 file es el que me imaginaba 940 00:44:14,659 --> 00:44:17,199 file nos fa una excepción en que la ruta seguro que la estaba 941 00:44:17,199 --> 00:44:17,820 poniendo mal 942 00:44:17,820 --> 00:44:20,739 Puede que, yo creo que esta barrita igual sobra 943 00:44:20,739 --> 00:44:22,239 No lo sé, vale 944 00:44:22,239 --> 00:44:23,579 Este es el primero que me esperaba 945 00:44:23,579 --> 00:44:25,980 Que no estoy poniendo bien la ruta 946 00:44:25,980 --> 00:44:27,780 Vamos a ver 947 00:44:27,780 --> 00:44:29,699 Lista pedidos Jasper 948 00:44:29,699 --> 00:44:32,079 Que está en informes, que está en el 949 00:44:32,079 --> 00:44:33,500 Raíz, verdad 950 00:44:33,500 --> 00:44:35,739 Entonces 951 00:44:35,739 --> 00:44:38,320 Eh, informes 952 00:44:38,320 --> 00:44:39,780 Lista pedidos Jasper 953 00:44:39,780 --> 00:44:41,360 Por 954 00:44:41,360 --> 00:44:43,719 Que no encuentro el fichero 955 00:44:43,719 --> 00:44:46,739 Informes, lista pedidos, estaré poniendo mal la ruta 956 00:44:46,739 --> 00:44:49,119 Es que con esto siempre me 957 00:44:49,119 --> 00:44:50,260 ¿Por qué punto? 958 00:44:53,599 --> 00:44:54,860 Porque no le he puesto un punto antes 959 00:44:54,860 --> 00:44:57,360 Yo creo que si le quito la doble barra ya lo encontrará 960 00:44:57,360 --> 00:44:58,039 Creo 961 00:44:58,039 --> 00:45:00,199 Vamos a ver 962 00:45:00,199 --> 00:45:02,900 Con esto de las rutas 963 00:45:02,900 --> 00:45:04,820 Relativas o absolutas 964 00:45:04,820 --> 00:45:05,880 Siempre me hago un lío 965 00:45:05,880 --> 00:45:09,059 Claro, si empiezas poniendo doble barra 966 00:45:09,059 --> 00:45:09,760 Ya la liamos 967 00:45:09,760 --> 00:45:12,940 Entonces yo este ya me lo esperaba 968 00:45:12,940 --> 00:45:15,000 Vale, a ver si con esto ya 969 00:45:15,000 --> 00:45:17,360 Me encuentra todas las rutas 970 00:45:17,360 --> 00:45:18,519 Efectivamente 971 00:45:18,519 --> 00:45:22,840 Vamos a ver si hemos atinado 972 00:45:22,840 --> 00:45:24,320 Al menos con eso 973 00:45:24,320 --> 00:45:28,989 Uh, bueno 974 00:45:28,989 --> 00:45:30,349 Eso al menos ya no sale 975 00:45:30,349 --> 00:45:34,369 No marker de for marking 976 00:45:34,369 --> 00:45:35,489 No sé qué 977 00:45:35,489 --> 00:45:38,170 For marker 978 00:45:38,170 --> 00:45:40,250 A ver, este 979 00:45:40,250 --> 00:45:41,570 Sí que no