En el form1 agregar:
- 1 DataGridView
- 1 Button
Crear la conexion para llenar el DataGridView:
Codigo del formulario:
Imports iTextSharp.text
Imports iTextSharp.text.pdf
'------------------------------
Imports System.ComponentModel
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.IO
Public Class FORM1
Public CONEXION As New OleDbConnection("PROVIDER=SQLOLEDB;" &
"DATA
SOURCE=NOMBRE DEL SERVIDOR;" &
"INITIAL
CATALOG=BASE DE DATOS;" &
"USER
ID=USUARIO;PASSWORD=CLAVE")
Dim SQL As String
Public ORDEN_BD As OleDb.OleDbCommand
Private D_TABLE As DataTable
Private D_ADAPTER As OleDbDataAdapter
Sub CONSULTA()
CONEXION.Open()
SQL
= "SELECT * FROM TABLA ORDER BY CAMPO"
ORDEN_BD
= New OleDb.OleDbCommand(SQL, CONEXION)
ORDEN_BD.CommandType = CommandType.Text
ORDEN_BD.ExecuteNonQuery()
REM CIERRO LA
CONEXION
D_ADAPTER = New OleDbDataAdapter(ORDEN_BD)
D_TABLE = New DataTable
D_ADAPTER.Fill(D_TABLE)
DataGridView1.DataSource = D_TABLE
CONEXION.Close()
End Sub
Private Sub FORM1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Call CONSULTA()
End Sub
'PDF
----------------------------------------------------------
'Funcion
que obtiene el tamaño de las columnas del DataGridView.
'La
funcion se usara en el metodo para crear el reporte en PDF.
Public Function GetColumnasSize(ByVal dg As DataGridView) As Single()
Dim values As Single()
= New Single(dg.ColumnCount - 1) {}
For i As Integer =
0 To dg.ColumnCount - 1
values(i) = CSng(dg.Columns(i).Width)
Next
Return values
End Function
'
Metodo para crear el reporte en PDF.
Public Sub ExportarDatosPDF(ByVal document As Document)
'Se
crea un objeto PDFTable con el numero de columnas del DataGridView.
Dim datatable As New PdfPTable(Grid.ColumnCount)
'Se
asignan algunas propiedades para el diseño del PDF.
datatable.DefaultCell.Padding = 3
Dim headerwidths As Single()
= GetColumnasSize(Grid)
datatable.SetWidths(headerwidths)
datatable.WidthPercentage = 100
datatable.DefaultCell.BorderWidth = 2
datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER
'Se
crea el encabezado en el PDF.
Dim encabezado As New Paragraph("TITULO", New Font(Font.Name
= "Tahoma", 20, Font.Bold))
'Se
crea el texto abajo del encabezado.
Dim texto As New Phrase("TITULO2" + Now.Date(), New Font(Font.Name
= "Tahoma", 14, Font.Bold))
'Se
capturan los nombres de las columnas del DataGridView.
For i As Integer =
0 To Grid.ColumnCount - 1
datatable.AddCell(Grid.Columns(i).HeaderText)
Next
datatable.HeaderRows = 1
datatable.DefaultCell.BorderWidth = 1
'Se
generan las columnas del DataGridView.
For i As Integer =
0 To Grid.RowCount - 1
For j As Integer =
0 To Grid.ColumnCount - 1
datatable.AddCell(Grid(j, i).Value.ToString())
Next
datatable.CompleteRow()
Next
'Se
agrega el PDFTable al documento.
document.Add(encabezado)
document.Add(texto)
document.Add(datatable)
End Sub
'Metodo
para crear el reporte
Sub ExportarPDF()
Try
'Intentar
generar el documento.
Dim doc As New Document(PageSize.A4.Rotate(),
10, 10, 10, 10)
'Path
que guarda el reporte en el escritorio de windows (Desktop).
Dim filename As String = "D:\REPORTE.PDF" 'Codigo
para que guarde en el escritotio:
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) +
"\reporte.pdf"
Dim file As New FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)
PdfWriter.GetInstance(doc,
file)
doc.Open()
ExportarDatosPDF(doc)
doc.Close()
Process.Start(filename)
Catch ex As Exception
'Si
el intento es fallido, mostrar MsgBox.
MessageBox.Show("No
se puede generar el documento PDF.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class
Para crear este reporte se requiere un archivo dll: Descargar el archivo DLL aqui
Al dar clic para descargar el archivo encontraras la siguiente ventana:
Al dar clic en descargar encontraras lo siguiente:
NOTA: Dependiendo de tu antivirus, tendras una notificacion de advertencia, le das clic en conservar!
Se descargara el archivo dll en tu carpeta de descarga, le das clic en mostrar carpeta para verificar el exito de la descarga
Al ya tener el archivo dll, debes incluirlo en tu proyecto
Dar clic en examinar para buscar el archivo dll y agregarlo al proyecto
Ahora ya tenemo el archivo dll incuido en el proyecto
NOTA IMPORTANTE: verifica si en el Grid tienes tildada la opcion de Habilitar reordenacion de columnas
Resusltado final:
Al dar clic para descargar el archivo encontraras la siguiente ventana:
Al dar clic en descargar encontraras lo siguiente:
NOTA: Dependiendo de tu antivirus, tendras una notificacion de advertencia, le das clic en conservar!
Se descargara el archivo dll en tu carpeta de descarga, le das clic en mostrar carpeta para verificar el exito de la descarga
Al ya tener el archivo dll, debes incluirlo en tu proyecto
Dar clic en examinar para buscar el archivo dll y agregarlo al proyecto
Ahora ya tenemo el archivo dll incuido en el proyecto
Resusltado final:











No hay comentarios:
Publicar un comentario