En este post, pretendo mostrar una muestra muy básica de cómo procesar datos con iReport con un ejemplo práctico de datos abiertos de la administración (en este caso del Gobierno de Aragón).
Nos vamos a la sección Transparencia > Contratación Pública > Contratos adjudicados del portal del Gobierno de Aragón y nos descargamos las hojas en excel existentes al final de la página :
Procedemos a convertir las hojas .xls en formato csv. Para ello, abrimos el documento desde LibreOffice (o similares …) y guardamos el documento con este nuevo formato.
Para este ejemplo, vamos a volcar los contenidos CSV en una base de datos MySQL :
Creamos la base de datos «aragon_es» y una tabla «contratos_publicos» en la que inicialmente todos los campos son del tipo texto (más adelante realizaremos las conversiones de las columnas ya que tenemos que manipular algunos datos) :
create database aragon_es; USE aragon_es; CREATE TABLE `contratos_publicos` ( `EJER` varchar(255) DEFAULT NULL, `ORGA` varchar(255) DEFAULT NULL, `OBJC` varchar(255) DEFAULT NULL, `TIPC` varchar(255) DEFAULT NULL, `PROC` varchar(255) DEFAULT NULL, `IDAD` varchar(255) DEFAULT NULL, `IMPL` varchar(255) DEFAULT NULL, `IMPA` varchar(255) DEFAULT NULL, `INST` varchar(255) DEFAULT NULL, `EXPE` varchar(45) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Procedemos a volcar los ficheros CSV en la tabla generada :
LOAD DATA INFILE 'contratos_2009.csv' INTO TABLE contratos_publicos CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; LOAD DATA INFILE 'contratos_2010.csv' INTO TABLE contratos_publicos CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; LOAD DATA INFILE 'contratos_2011.csv' INTO TABLE contratos_publicos CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; LOAD DATA INFILE 'contratos_2012.csv' INTO TABLE contratos_publicos CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; LOAD DATA INFILE 'contratos_2013.csv' INTO TABLE contratos_publicos CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Dado que los precios están en formato XX.XXX,XX y MySQL los coge por defecto como XXXXX.XX, procedemos a hacer estas variaciones en las columnas de los importes y posteriormente convertimos las columnas inicialmente de VARCHAR a DOUBLE :
UPDATE contratos_publicos SET IMPL = REPLACE(IMPL, '.', ''); UPDATE contratos_publicos SET IMPA = REPLACE(IMPA, '.', ''); UPDATE contratos_publicos SET IMPA = REPLACE(IMPA, ',', '.'); UPDATE contratos_publicos SET IMPL = REPLACE(IMPL, ',', '.'); ALTER TABLE contratos_publicos MODIFY COLUMN IMPL DOUBLE; ALTER TABLE contratos_publicos MODIFY COLUMN IMPA DOUBLE; ALTER TABLE contratos_publicos MODIFY COLUMN EJER INT;
Con los pasos anterior, ya tenemos importados los datos y ya pasamos a utilizar iReport.
Descargamos iReport (versión 5.5.1 en formato tar.gz), lo descomprimimos en el directorio /usr/java y arrancamos el editor visual :
fsolans@fsolans-ThinkPad-L430:~$ cd /usr/java/ fsolans@fsolans-ThinkPad-L430:/usr/java$ http://sourceforge.net/projects/ireport/files/iReport/iReport-5.5.1/iReport-5.5.1.tar.gz/download fsolans@fsolans-ThinkPad-L430:/usr/java$ tar zxvf iReport-5.5.1.tar.gz fsolans@fsolans-ThinkPad-L430/usr/java:$ cd iReport-5.5.0/bin fsolans@fsolans-ThinkPad-L430:/usr/java/iReport-5.5.0/bin$ ./ireport &
En primer lugar, debemos configurar el datasource de la base de datos. Para ello, nos vamos a Connection / Datasources y creamos un Datasource JDBC Connection con los siguientes valores (ver captura) :
- Name: dga_contratos_publicos
- JDBC Driver: MySQL (com.mysql.jdbc.Driver)
- JDBC URL: jdbc:mysql://localhost/aragon_es
- Username: root
- Passwd:
Establecida la conexión con la fuente de datos, ya podemos proceder a crear informes desde la opción Archivo > Nuevo.
Por no extendernos en exceso, he dejado los siguientes reportes ya confeccionados (formato .jrxml):
- Informe con el listado de todos los contratos públicos realizados por la DGA entre los años 2009 y 2013 (dga_contratos_publicos.jrxml).
- Informe anterior en el que se realiza el sumatorio por empresa adjudicataria (dga_contratos_publicos_group_by_idad.jrxml).
Para los que queráis directamente acceder a los informes, los podéis descargar en formato PDF :
Nota: Estos datos son abiertos por lo que están disponibles para todo ciudadano que quiera consultarlos.
Si bien estos informes son muy básicos, las posibilidades son enormes y especialmente importante es el derecho fundamental del ciudadano a supervisar sus instituciones como mecanismo de mejora de la administración pública.
0 comentarios