Plugins de Grails: ExporterIván López Martín
¿Quién soy?    Iván López Martín @ilopmar    Usando Grails/Groovy desde hace más de 2 años    Creador de www.bokzuy.com   ...
Plugin Exporter   http://grails.org/plugin/export   Permite exportar datos desde una aplicación grails a los   formatos: C...
Parámetros  El servicio de exportación recibe:     • Output stream     • Lista de objetos a exportar     • Campos     • Et...
Ejemplo  class User {      String name      Date birthDate      Company company  }
Ejemplo  class User {      String name      Date birthDate      Company company  }  List fields = ["name", "company.name",...
Ejemplo  class User {      String name      Date birthDate      Company company  }  List fields = ["name", "company.name",...
Ejemplo  class User {      String name      Date birthDate      Company company  }  List fields = ["name", "company.name",...
Ejemplo  class User {      String name      Date birthDate      Company company  }  List fields = ["name", "company.name",...
Ejemplo  class User {      String name      Date birthDate      Company company  }  List fields = ["name", "company.name",...
Pero no termina ahí   Se puede utilizar para exportar datos generados y calculados   que no están persistidos con una clas...
Ejemplodef rnd = new Random()def list = []10.times {    def map = [:]    map.p1 = UUID.randomUUID().toString().replaceAll(...
Ejemplodef rnd = new Random()def list = []10.times {    def map = [:]    map.p1 = UUID.randomUUID().toString().replaceAll(...
EjemploList fields = ["p2", "p1"]Map labels = [p2:"Prop. 2"C, p1:"Prop. 1"]Map parameters = ["encoding":"UTF­8"]httpRespon...
¿Preguntas?              ¿?
Upcoming SlideShare
Loading in …5
×

Madrid GUG - Grails Plugins: Exporter

945 views
838 views

Published on

Presentation about the Grails Exporter plugin at Madrid Groovy Users Group. Jun 26, 2012

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
945
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Madrid GUG - Grails Plugins: Exporter

  1. 1. Plugins de Grails: ExporterIván López Martín
  2. 2. ¿Quién soy? Iván López Martín @ilopmar Usando Grails/Groovy desde hace más de 2 años Creador de www.bokzuy.com Geek, Padre, Desarrollador, Linuxero, Pro-Software libre Trabajo en Kaleidos http://lopezivan.blogspot.com
  3. 3. Plugin Exporter http://grails.org/plugin/export Permite exportar datos desde una aplicación grails a los formatos: CSV, Excel, ODS, RTF, PDF y XML Sencillo de utilizar y muy flexible Distintas opciones en función del formato de salida elegido Proporciona un servicio exportService que se encarga de la generación del archivo final
  4. 4. Parámetros El servicio de exportación recibe: • Output stream • Lista de objetos a exportar • Campos • Etiquetas • Formatters • Parámetros
  5. 5. Ejemplo class User {     String name     Date birthDate     Company company }
  6. 6. Ejemplo class User {     String name     Date birthDate     Company company } List fields = ["name", "company.name", "birthDate"]
  7. 7. Ejemplo class User {     String name     Date birthDate     Company company } List fields = ["name", "company.name", "birthDate"] Map labels = ["name":"Nombre de usuario",  "company.name":"Compañía", "birthDate":"Fecha de  nacimiento"]
  8. 8. Ejemplo class User {     String name     Date birthDate     Company company } List fields = ["name", "company.name", "birthDate"] Map labels = ["name":"Nombre de usuario",  "company.name":"Compañía", "birthDate":"Fecha de  nacimiento"] Map formatters = [birthDate:dateToString] def dateToString = { domain, value ­>     return Utils.stringDate(value) }
  9. 9. Ejemplo class User {     String name     Date birthDate     Company company } List fields = ["name", "company.name", "birthDate"] Map labels = ["name":"Nombre de usuario",  "company.name":"Compañía", "birthDate":"Fecha de  nacimiento"] Map formatters = [birthDate:stringDate] Map parameters = ["encoding":"UTF­8"] httpResponse.contentType =  "application/vnd.oasis.opendocument.spreadsheet" httpResponse.setHeader("Content­disposition", "attachment;  filename=usuarios.ods")
  10. 10. Ejemplo class User {     String name     Date birthDate     Company company } List fields = ["name", "company.name", "birthDate"] Map labels = ["name":"Nombre de usuario",  "company.name":"Compañía", "birthDate":"Fecha de  nacimiento"] Map formatters = [birthDate:stringDate] Map parameters = ["encoding":"UTF­8"] httpResponse.contentType =  "application/vnd.oasis.opendocument.spreadsheet" httpResponse.setHeader("Content­disposition", "attachment;  filename=usuarios.ods") def objects = User.list() exportService.export(ods, httpResponse.outputStream,  objects, fields, labels, formatters, parameters)
  11. 11. Pero no termina ahí Se puede utilizar para exportar datos generados y calculados que no están persistidos con una clase de dominio La lista “objects” tendrá mapas con las propiedades que se desean exportar De esta forma conseguimos generar informes adhoc para el usuario
  12. 12. Ejemplodef rnd = new Random()def list = []10.times {    def map = [:]    map.p1 = UUID.randomUUID().toString().replaceAll(­, )    map.p2 = rnd.nextInt(10)    map.p3 = new Date() + rnd.nextInt(50) + 10        list << map}
  13. 13. Ejemplodef rnd = new Random()def list = []10.times {    def map = [:]    map.p1 = UUID.randomUUID().toString().replaceAll(­, )    map.p2 = rnd.nextInt(10)    map.p3 = new Date() + rnd.nextInt(50) + 10        list << map}println list­­­­[[p1:3475045bb4794778a441238f8b1b700c, p2:3, p3:Tue Jul 31 16:03:07 CEST 2012], [p1:cc2af0e290774667bd7b71e3ac8d8c6f, p2:4, p3:Sun Aug 19 16:03:07 CEST 2012], [p1:91e81467dd9146e5ac32e19e739d8515, p2:1, p3:Mon Jul 16 16:03:07 CEST 2012], ...]
  14. 14. EjemploList fields = ["p2", "p1"]Map labels = [p2:"Prop. 2"C, p1:"Prop. 1"]Map parameters = ["encoding":"UTF­8"]httpResponse.contentType = "application/vnd.ms­excel"httpResponse.setHeader("Content­disposition", "attachment; filename=listado.xls")exportService.export(excel, httpResponse.outputStream, list, fields, labels, [:], parameters)
  15. 15. ¿Preguntas? ¿?

×