Vous êtes sur la page 1sur 14

Generacin de reprte PDF cn ItextSharp en Asp.

net usand un GridView


En esta entrada aprenderemos a generar un reporte sencillo en Pdf con la librera ItextSharp a partir de un gridview de cual exportaremos todos los datos a Pdf o solamente uno de los registros. Este ejemplo esta hecho en Asp.net por lo cual tenemos que tener en cuenta algunos detalles que hacen a una aplicacin Asp.net. Una aplicacin ASP.net como cualquier aplicacin para la Web no puede consumir los recursos del cliente, todos los recursos que puedan usar tienen que estar en el servidor Web. Por ese motivo el Reporte primero lo crearemos en el servidor web y luego enviaremos al cliente el archivo Pdf ya generado. ItextSharp es una librera OpenSource la cual es original en java pero tambin tiene una implementacin para C# es muy poderosa y sobre todo ayuda a tener reportes fciles sin costo. Para este ejemplo usaremos la base de datos Northwind con la tabla Employess

Ejecucin del Sistema Terminado

1 Giovanni Callisaya giovannidotnet.wordpress.com

Materiales. Visual Studio 2005 o Superior , Visual Web Developer Express o Sharp Develop Sql Server 2000 o Superior Librera ItextSharp Base de Datos Northwind

Manos a la Obra Primero Arrastramos de la Caja de Herramientas un gridview al cual cambiamos de nombre a dgvDatos

2 Giovanni Callisaya giovannidotnet.wordpress.com

Para este ejemplo seleccionamos algunos datos de la tabla Employees de la base de datos Northwind. Las filas seleccionadas son EmployeeID, LastName, FirstName, Title y Country
Select EmployeeID,LastName,FirstName,Title,Country from Employees

Ahora Agregamos las columnas para ver correctamente los datos, le damos clic al botn como play > y agregamos columnas personalizadas.

Al agregar una nueva columna nos muestra una venta de dialogo donde podemos ingresar el texto de encabezado que es el texto que se visualiza a modo de ttulo en el gridview este puede contener espacios ya que es solo ttulo. En cambio el campo de datos es el nombre de la columna (mejor si es el mismo nombre que el de la tabla) este no puede contener espacios en blanco.

3 Giovanni Callisaya giovannidotnet.wordpress.com

Agregamos todos los datos hasta que la grilla quede con todos los datos a mostrar

4 Giovanni Callisaya giovannidotnet.wordpress.com

Para Borrar las otras columnas que nos genera al principio solo cambiamos la propiedad autogenerar columnas

Ahora en el men del Gridview seleccionamos editar columnas para agregar la seleccin.

Agregamos el Comand Field de Seleccin para que podemos seleccionar el registro de una sola fila y realizar nuestro Pdf de solo esta columna

5 Giovanni Callisaya giovannidotnet.wordpress.com

Seleccionamos el Comand Fiel y editamos algunas de las propiedades para que se vea mejor al momento de la corrida. Si contamos con una imagen podemos que en vez de ver un clsico link de seleccin se vea con una imagen, claro est decirlo que la imagen debe ser pequea. En mi caso use una imagen png muy pequea que est en la carpeta images de mi sitio web.

6 Giovanni Callisaya giovannidotnet.wordpress.com

Tambin podemos jalar una imageButton para que haga de botn del pdf. El resultado final es el siguiente

7 Giovanni Callisaya giovannidotnet.wordpress.com

Crearemos la funcin para poblar el GridView. Creamos dos atributos de clase para la cadena de conexin y el DataTable

El mtodo Cargar datos se encarga de cargar el DataTable

Llamamos esta funcin en el evento PageLoad de la pgina.

Ahora le decimos a las columnas del GridView cul es el valor de la tabla que tiene que tomar, para hacer esto solo tenemos que editar las columnas luego en el campo DataField colocamos el nombre del campo al cual esta columnas tiene que enlazarse, como mi tabla esta creada directamente con la base de datos las columnas de la tabla tiene el mismo nombre de las columnas de la base de datos, por lo tanto tenemos que colocar a cada columna del Gridview el respectivo valor de la base de datos.

8 Giovanni Callisaya giovannidotnet.wordpress.com

El resultado es el siguiente cuando todos los datos fueron enlazados la grilla queda llena.

Pero no queremos solo llenar la grilla tambin queremos que al presionar el botn de pdf genere todos los datos que contenga la grilla para esto Primero creamos una carpeta para almacenar los Pdf que se generar para posteriormente enviar este reporte al usuario. 9 Giovanni Callisaya giovannidotnet.wordpress.com

Solo damos clic derecho al icono del Proyecto y agregamos la carpeta ReportesPdf

Agregamos la librera ItextSharp

Generamos el evento del Botn Imagen para generar el reporte global. 10 Giovanni Callisaya giovannidotnet.wordpress.com

Primero Creamos el mtodo para generar el Pdf dentro del Sitio Web

11 Giovanni Callisaya giovannidotnet.wordpress.com

Esta lnea es muy importante para que funcione correctamente la aplicacin


PdfWriter writerPdf = PdfWriter.GetInstance(documento, new FileStream(@"C:\Users\Giovanni\Documents\visual studio 2010\Projects\WebItextPdf\WebItextPdf\ReportesPdf\"+NombreReporte, FileMode.Create));

En este caso como mi aplicacin est en mis Proyectos de visual Studio coloco la ruta completa, esto para que cree el pdf si nuestro proyecto est en otra ruta tenemos que colocar esa ruta. Por ejemplo (D:\MiRutaDeProyecto\ReportesPdf\) este es importante si queremos publicar nuestro sitio ya que la ruta tiene que ser la ruta donde est alojada nuestra aplicacin no podemos colocar otra ruta porque la aplicacin solo tiene permiso de cambiar los que est dentro del sitio y no en otro lugar.

Metodo para enviar al usuario el pdf que se cre y lo pueda ver

Resultado final

12 Giovanni Callisaya giovannidotnet.wordpress.com

Ahora solo falta que cuando presionen el reporte individual salga el reporte de solo un registro bsicamente es lo mismo con la diferencia que ahora envs de enviar un datatable solo enviamos una fila. Sobrecargamos el mtodo GenerarPdf.

13 Giovanni Callisaya giovannidotnet.wordpress.com

Generamos el evento del GridView Select Index Changed y llamamos al mtodo generar pdf

Resultado final

Conclusiones Generar el reporte de pdf con ItextSharp es muy fcil pero esta librera tiene ms utilidades que pueden hacer un reporte ms enriquecido la herramienta es una buena alternativa a otros sistemas de reporte que para tareas sencillas son muy pesadas o simplemente tendramos que pagar una licencia de uso, como Crystal Report u otro proveedor de reportes, mientras con ItextShrap estas tareas bsicas las podemos realizar muy fcil y sin coste.

14 Giovanni Callisaya giovannidotnet.wordpress.com

Vous aimerez peut-être aussi