jueves, 7 de diciembre de 2017

REPORTES


CARRERA PROFESIONAL DE  : Ingeniería de Sistemas y Telemática

ASIGNATURA                                : Laboratorio de programación III

ESTUDIANTE                                :
ü  CHUQUIZUTA RAMOS, Marleni
ü  HERRERA SILVA, Carlos Jhonatan
CICLO                                              : VII

GRUPO                                            : A


1.       Contenido
Los reportes son los que muestran la situación de las operaciones regulares de la empresa para que los directivos puedan controlar, organizar, planear y dirigir. Los reportes se pueden visualizar, exportar a otros formatos como PDF, HTML, XML, etc. y también se pueden imprimir en papel.

ü  Instalación de iReport en NetBeans
Al descargar el .rar Extraemos los archivos (son 4)
En netbeans nos dirigimos a herramientas >>complementos
Damos agregar plugins



Vamos a la carpeta donde hemos extraído los archivos y lo seleccionamos todos.
Damos clic en instalar
Damos clic en siguiente

Aceptas la licencia y damos clic en instalar y esperamos que se instale los programas seleccionados.

Terminar
Ahora vemos en la pestaña instalado y vemos los programas instalados con éxito.

ü  Configuración de DataSource
Ahora que tenemos nuestros datos crearemos un "DataSource" en iReport para poder acceder a nuestros datos y hacer pruebas directamente, sin necesidad de una aplicación Java (por el momento). Para crear este DataSource hacemos clic en el ícono "Report DataSources" ubicado en la barra de herramientas de iReport:

Con lo que se abrirá la ventana de "Connections / Datasources" que en este momento debe contener solo un "Empty datasource" y la conexión a una base de datos de prueba en HSQLDB. Ahora hacemos clic en el botón "New" para crear nuestro nuevo DataSource.

En la nueva ventana que se abre seleccionamos "DataBase JDBC connection" y presionamos el botón "Next". En la siguiente ventana debemos proporcionar algunos datos como el nombre se le dará al DataSource y los datos para realizar la conexión de la base de datos. Después de llenar estos datos su ventana debe haber quedado más o menos como la siguiente (recuerden usar el "JDBC Driver" que corresponda al manejador de base de datos que estén usando:

Antes de guardar esta configuración hagan clic en el botón "Test" para probar que todos los datos proporcionados son correctos. Si todo ha salido bien, al hacer clic en el botón "Save" la ventana actual debe cerrarse y nuestro DataSource debe estar ahora en la ventana "Connections / Datasources".

ü  Creación de reportes usando Wizard, archivo jrxml
Ahora pasaremos a crear nuestro nuevo reporte. Esta será la primer y única ocasión en la que haremos uso del "Report Wizard" para ayudarnos a generar el reporte. Para esto vamos al menú "File -> New...". Con esto se abrirá la ventana de "New File" en la que seleccionaremos el formato de nuestro reporte. En mi caso seleccionaré la plantilla "Wood" aunque pueden seleccionar la que ustedes deseen, y hacemos clic en el botón "Launch Report Wizard"

Este wizard nos ayudará a crear un reporte 100% funcional en 6 pasos (en realidad 5 ya que empezamos directamente en el paso 2) que podremos ver desde el mismo iReport sin necesidad de escribir una solo línea de código Java. Estos 6 pasos son:
1.    Selección de la ubicación en la que se guardará nuestro reporte.
2.    Selección del DataSource e introducción del query para obtener los datos que nos interesan.
3.    Selección de los datos que queremos mostrar en el reporte.
4.    Creación de grupos para el reporte (se explicará en un post posterior).
5.    Selección del layout o acomodo de los datos en el reporte
6.    Felicitación por determinar nuestro reporte =D.
Los pasos interesantes son el 3 y el 4, así que será en estos en los que nos enfocaremos más.
El paso 1 se realiza de forma automática, así que no tenemos mucho que hacer en él. En el paso 2 (en donde comenzamos) seleccionamos el directorio en el que queremos guardar nuestro reporte y el nombre que tendrá.




ü  Campos calculados en iReport.
Paso 1:
Creamos un nuevo Reporte, Seleccionamos nuestra Base de Datos, las tablas o visitas; de las cuales queremos elaborar dicho reporte y nos mostrara la siguiente ventana.

Paso 2:
Seleccionamos los campos que son necesarios para mi Reporte, y vamos arrastrando uno a uno hacia la fila que dice “Detalle”; automáticamente irán apareciendo los nombres del encabezado de cada columna de esta manera cómo podemos ver en la imagen.

Paso 3:
Arrastramos el campo para el cual deseamos hacer un campo calculado en nuestro reporte y lo arrastramos hacia la fila de dice “Page Footer”, en este caso se realizará la suma total de todos los sueldos, de un empleado, como podemos visualizar en la imagen.

Paso 4:
Como proceso final si podemos ver en esta visualización de nuestro reporte, en donde apunta la flecha del cursor, notamos que hay un campo calculado del Total de todos los sueldos. Observemos.

ü  Ejecución de reportes, archivo Jasper
Archivo Jasper está considerada como una de las mejores bibliotecas de software libre para generar reportes . Tiene la habilidad de entregar contenido enriquecido al monitor, a la impresora o a ficheros PDF, HTML, XLS, CSV y XML. Está escrito completamente en Java y puede ser usado en gran variedad de aplicaciones de Java, incluyendo Java EE o aplicaciones web, para generar contenido dinámico. Su propósito principal es ayudar a crear documentos de tipo páginas, preparados para imprimir en una forma simple y flexible.
JasperReports se usa comúnmente con iReport Designer [2], un constructor / diseñador de informes visual, poderoso, intuitivo y fácil de usar. Este instrumento permite que los usuarios desarrollen visualmente informes complejos con cartas, imágenes, subinformes y otros [3]. iReport está además integrado con JFreeChart, una de la biblioteca gráficas OpenSource más difundida para Java. Los datos para imprimir pueden ser recuperados por varias vías como pueden ser: JDBC, TableModels, JavaBeans, XML, etc.
Entre las principales características de iReport podemos destacar las siguientes:
100% escrito en JAVA y además OPENSOURCE y gratuito.
Maneja todas las etiquetas de JasperReports.
Permite diseñar con sus propias herramientas: rectángulos, líneas, elipses, campos de los textfields, cartas, subreports (subreportes).
Soporta internacionalización nativamente.
Browser de la estructura del documento.
Recopilador y exportador integrados.
Soporta JDBC.
Soporta JavaBeans como orígenes de datos (éstos deben implementar la interface JRDataSource).
Incluye Wizard’s (asistentes) para crear automáticamente informes, plantillas y sub-reportes.

ü  Enlace de reporte con ventana JDialog. Uso de JasperViewer – Ejemplos
Un JFrame permite crear una ventana con ciertas características, por ejemplo podemos visualizarla en nuestra barra de tareas, caso contrario de los JDialog, ya que estos últimos son Ventanas de Dialogo con un comportamiento diferente, no se puede ver la ventana en la barra de tareas ni posee los botones comunes de maximizar o minimizar.
Los JDialog pueden ser hijos de JFrames o de otros JDialog mientras que losJFrame no (Como así Hijos?), es decir, si tenemos claros conceptos de programación podemos relacionar esto de Hijos con el concepto de Herencia (Aunque no directamente, es mas a nivel conceptual), con estos componentes podemos hacer que una Ventana sea Padre de otra Ventana de tipo JDialog, asignándole algún tipo de comportamiento o dejando la ventana padre como Principal.
Los reportes son otras de las utilidades más importantes en las aplicaciones ya que su función es dar al usuario información ordenada y limpia así como un formato adecuado para poder ser llevado a impresión o almacenarlo en algún tipo de fichero como .doc, .odt, pdf, etc.
Antes de continuar, debemos contar en el proyecto con la librería:
jasperreports-3.7.6.jar
Si antes se instaló el JasperReports es posible que la librería ya lo tengamos en el ordenador, incluso el IDE de desarrollo lo tiene indexado, solo deberá ser añadido a proyecto.
Otras de las librerías que necesitaremos están comentados en el encabezado del código de Ejemplo.
El siguiente procedimiento va a recibir como parámetro la ubicación del reporte dentro del proyecto, para ello será necesario incluir los reportes en algún directorio dentro del proyecto en el que trabajamos, en mi caso la estructura es la siguiente:
beastieux --> reports --> MyReporte.jrxml
private void abrirReporte(String archivo)
{
try {
JasperReport report = JasperCompileManager.compileReport(archivo);
JasperPrint print = JasperFillManager.fillReport(report, new HashMap(), coneccionSQL());
JasperViewer.viewReport(print, false);
} catch (JRException jRException) {
System.out.println(jRException.getMessage());
}}
La linea de código encargada de general la ruta absoluta de la ubicación del reporte es el siguiente:
getClass().getResource("/beastieux/reports/MiReporte.jrxml").getPath()
Además, algo muy importante que se necesita para abrir el reporte es la conexión a la base de datos. En este ejemplo lo hice con PostgreSQL, ustedes pueden hacerlo con el que gusten, pueden verlos en los ejemplos de conexión a diferentes base de datos realizados en los post anteriores de este tutorial. Como observarán, la función coneccionSQL() nos retorna la conexión a la base de datos, el cual será usado directamente como tercer parámetro en la linea:
JasperPrint print = JasperFillManager.fillReport(report, new HashMap(), coneccionSQL());
Ejemplo:
jasperreports-3.7.6.jar
* commons-digester-1.7.jar
* commons-logging-1.0.4.jar
* commons-collections-2.1.1.jar
* commons-beanutils-1.8.0.jar
*/
package beastieux.gui;
import java.awt.CardLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author beastieux
*/
public class Ejm20_JasperReport extends JFrame {
public Ejm20_JasperReport()
{
JButton btn1=new JButton("Abrir Reporte");
btn1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn1ActionPerformed(evt);
}
});
this.add(btn1);
this.setLayout(new CardLayout());
this.setSize(200,100);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {
abrirReporte(getClass().getResource("/beastieux/reports/MiReporte.jrxml").getPath());
}
private void abrirReporte(String archivo)
{
try {
JasperReport report = JasperCompileManager.compileReport(archivo);
JasperPrint print = JasperFillManager.fillReport(report, new HashMap(), coneccionSQL());
JasperViewer.viewReport(print, false);
} catch (JRException jRException) {
System.out.println(jRException.getMessage());
}
}
private Connection coneccionSQL()
{
try
{
String cadena;
cadena="jdbc:postgresql://127.0.0.1:5432/postgres";
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(cadena, "usuario","contraseña");
return con;
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return null;
}
public static void main(String args[])
{
Ejm20_JasperReport obj = new Ejm20_JasperReport();
obj.setVisible(true);
}}

2.       Resumen

REPORTES
Los reportes son los que muestran la situación de las operaciones regulares de la empresa para que los directivos puedan controlar, organizar, planear y dirigir
Instalación de ireport en netbeans
Al descargar el .rar Extraemos los archivos(son 4)
En netbeans nos dirigimos a herramientas>>complementos
Damos agregar plugins
Vamos a la carpeta donde hemos extraído los archivos y lo seleccionamos todos.
Damos clic en instalar
Damos clic en siguiente
Aceptas la licencia y damos clic en instalar y esperamos que se instale los programas seleccionados.
Terminar
Ahora vemos en la pestaña instalado y vemos los programas instalados con éxito
Reiniciamos Netbeans
Vemos en la ventana principal, complementos instalados de Jasper Report
Ahora agregaremos las librerías al proyecto en el cual usaremos iReport

Configuracion De Datasource
Ahora que tenemos nuestros datos crearemos un "datasource" en iReport para poder acceder a nuestros datos y hacer pruebas directamente, sin necesidad de una aplicación Java (por el momento). Para crear este DataSource hacemos clic en el ícono "Report DataSources" ubicado en la barra de herramientas de iReport:
Con lo que se abrirá la ventana de "Connections / Datasources" que en este momento debe contener solo un "Empty datasource" y la conexión a una base de datos de prueba en HSQLDB. Ahora hacemos clic en el botón "New" para crear nuestro nuevo DataSource.
En la nueva ventana que se abre seleccionamos "DataBase JDBC connection" y presionamos el botón "Next". En la siguiente ventana debemos proporcionar algunos datos como el nombre se le dará al DataSource y los datos para realizar la conexión de la base de datos. Después de llenar estos datos su ventana debe haber quedado más o menos como la siguiente (recuerden usar el "JDBC Driver" que corresponda al manejador de base de datos que estén usando:
Antes de guardar esta configuración hagan clic en el botón "Test" para probar que todos los datos proporcionados son correctos. Si todo ha salido bien, al hacer clic en el botón "Save" la ventana actual debe cerrarse y nuestro DataSource debe estar ahora en la ventana "Connections / Datasources".

Creación de reportes usando Wizard, archivo jrxml
Ahora pasaremos a crear nuestro nuevo reporte. Esta será la primer y única ocasión en la que haremos uso del "Report Wizard" para ayudarnos a generar el reporte. Para esto vamos al menú "File -> New...". Con esto se abrirá la ventana de "New File" en la que seleccionaremos el formato de nuestro reporte. En mi caso seleccionaré la plantilla "Wood" aunque pueden seleccionar la que ustedes deseen, y hacemos clic en el botón "Launch Report Wizard"

Este wizard nos ayudará a crear un reporte 100% funcional en 6 pasos (en realidad 5 ya que empezamos directamente en el paso 2) que podremos ver desde el mismo iReport sin necesidad de escribir una solo línea de código Java. Estos 6 pasos son:
1.    Selección de la ubicación en la que se guardará nuestro reporte.
2.    Selección del DataSource e introducción del query para obtener los datos que nos interesan.
3.    Selección de los datos que queremos mostrar en el reporte.
4.    Creación de grupos para el reporte (se explicará en un post posterior).
5.    Selección del layout o acomodo de los datos en el reporte
6.    Felicitación por determinar nuestro reporte =D.
Los pasos interesantes son el 3 y el 4, así que será en estos en los que nos enfocaremos más.
El paso 1 se realiza de forma automática, así que no tenemos mucho que hacer en él. En el paso 2 (en donde comenzamos) seleccionamos el directorio en el que queremos guardar nuestro reporte y el nombre que tendrá.

3.       Summary

REPORTS
The reports are those that show the situation of the company's regular operations so that managers can control, organize, plan and direct
Installation of ireport in netbeans
When downloading the .rar extract the files (are 4)
In netbeans we turn to tools >> add-ons
We add plugins
We go to the folder where we have extracted the files and we select all of them.
We click on install
We click on next
You accept the license and click on install and we hope that the selected programs will be installed.
End up
Now we see in the installed tab and we see the programs installed successfully
Restart Netbeans
We see in the main window, installed plugins of Jasper Report
Now we will add the libraries to the project in which we will use iReport

Datasource Configuration
Now that we have our data we will create a "datasource" in iReport to be able to access our data and make tests directly, without the need of a Java application (for the time being). To create this datasource we click on the "Report Datasources" icon located in the iReport toolbar:
This will open the "Connections / Datasources" window, which at this moment must contain only an "Empty datasource" and the connection to a test database in HSQLDB. Now we click on the "New" button to create our new datasource.
In the new window that opens, select "Database JDBC connection" and press the "Next" button. In the next window we must provide some information such as the name will be given to the datasource and the data to make the connection of the database. After filling in this data, your window should have been more or less like the following (remember to use the "JDBC Driver" that corresponds to the database manager they are using:
Before saving this configuration, click on the "Test" button to prove that all the data provided is correct. If everything went well, by clicking on the "Save" button the current window should be closed and our datasource should now be in the "Connections / Datasources" window.

Creation of reports using Wizard, jrxml file
Now we will go on to create our new report. This will be the first and only occasion in which we will use the "Report Wizard" to help us generate the report. For this we go to the menu "File -> New ...". This will open the "New File" window in which we will select the format of our report. In my case I will select the template "Wood" although you can select the one you want, and we click on the "Launch Report Wizard" button

This wizard will help us create a 100% functional report in 6 steps (actually 5 since we started directly in step 2) that we can see from the same iReport without writing a single line of Java code. These 6 steps are:
1.    Selection of the location in which our report will be stored.
2.    Selection of the DataSource and introduction of the query to obtain the data that interests us.
3.    Selection of the data that we want to show in the report.
4.    Creation of groups for the report (it will be explained in a later post).
5.    Selection of the layout or arrangement of the data in the report
6.    Congratulations for determining our report = D.
The interesting steps are 3 and 4, so it will be in these that we will focus more.
Step 1 is done automatically, so we do not have much to do with it. In step 2 (where we started) we selected the directory in which we want to save our report and the name it will have.

4.       Recomendaciones
·         Para generar reportes se debe tener muy en cuenta la base de datos que estamos utilizando y los campos más necesarios y en el orden deseado.
·         Se recomienda usar o crear reportes porque nos permite mostrar todos los datos que queremos modificar o hacer cualquier cambio. Es una manera de poder trabajar más ordenados con todos los archivos que una empresa o institución.
·         Tener preparación exhaustiva deberá reunir toda la información concerniente al tema que lo ocupa y deberá aportar informaciones y explicaciones que le permitan al destinatario comprenderlo e informarse al respecto.
5.       Conclusiones
ü  La herramienta iReport es un constructor / diseñador permite crear cualquier tipo de informe de una manera sencilla y rápida a través de una interfaz gráfica intuitiva, diseñada tanto para gente que no está familiarizada con esta tecnología, y que desconoce la sintaxis XML de JasperReports, como a usuarios expertos que ya conocían este lenguaje, ahorrándoles tiempo durante el desarrollo de informes muy elaborados.
ü  JasperReports es un reporteador gratuito con el que podras generar archivos pdf desde tus aplicaciones de consola pasando por sistemas de escritorio y llegando a aplicaciones web, generados desde el lenguaje de programacion Java.
ü  JasperReports es un software libre que nos permite crear informes, donde los ficheros se definen en un xml para posteriormente ser compilado por las librerías JasperReports (.jasper), es competencia de Crystal reports en los usuarios windows.

6.       Apreciación del Equipo
Desde el punto de vista del grupo se afirma que iReport es una herramienta en código abierto de generación de informes muy útil que nos permite generar información detallada en formato PDF, HTML, XLS, CSV o XML. Ha sido desarrollada completamente en Java, por lo que puede ser usada en una amplia variedad de aplicaciones Java para generar contenido dinámico.

7.       Glosario de Términos
*      Plugins: Un plugin es aquella aplicación que, en un programa informático, añade una funcionalidad adicional o una nueva característica al software. En nuestro idioma, por lo tanto, puede nombrarse al plugin como un complemento.
*      Librería: una biblioteca (del inglés library) es un conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que se invoca.
*      Reiniciar. - Reiniciar el ordenador o computadora es el proceso de recargar el sistema operativo de una computadora.
*      Wizard:Wizard es el que te indica o te guía en el procedimiento durante una instalación de un programa o aplicación.
*      Constructor:Un constructor es una subrutina cuya misión es inicializar un objeto de una clase.
*      XML: es un Lenguaje de Etiquetado Extensible muy simple, pero estricto que juega un papel fundamental en el intercambio de una gran variedad de datos. Es un lenguaje muy similar a HTML pero su función principal es describir datos y no mostrarlos como es el caso de HTM.
*      HSQLDB (Hyperthreaded Structured Query Language Database): es un sistema gestor de bases de datos libre escrito en Java. La suite ofimática OpenOffice.org lo incluye desde su versión 2.0 para dar soporte a la aplicación Base.
*      Fichero: Un fichero es un conjunto de datos estructurados que pueden estar almacenados en un soporte de datos de forma que puedan ser tratados o utilizados de forma individual o global. Cada fichero se tiene que identificar con un nombre. Los elementos que forman un fichero se llaman registros y dichos registros se definen como la unidad mínima de información completa de un fichero.
*      Pool de Conexiones: es un conjunto limitado de conexiones a una base de datos, que es manejado por un servidor de aplicaciones de forma tal, que dichas conexiones pueden ser reutilizadas por los diferentes usuarios.
*      Filtro: En programación, es muy frecuente usar el bucle mientras para validar (filtrar) datos. Al bucle que se utiliza para validar uno o más datos, también se le conoce como filtro.
*      JFreeChart:es un marco de software open source para el lenguaje de programación Java, el cual permite la creación de gráficos​ complejos de forma simple.
*      Java Database Connectivity: más conocida por sus siglas JDBC,​ es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice.

8.       Bibliografía

9.       Link de SlideShare