Está en la página 1de 6

GENERACIN DE REPORTES CON CRYSTAL REPORTS Y VB.

NET
1. Resultado Final del Reporte, Diseo de Factura en Crystal Reports.

2. Requisitos:

Visual Studio 200X, x=5, 8, 10, 12

Crystal Reports

Microsoft SQL Server 200X, x=5,8,12

Pasos:
Agregamos un nuevo elemento Crsytal Reports, al proyecto, de tipo Reporting.

Ing. Hobby Saavedra Rosas

Visual Basic. NET

Asignamos el nombre al reporte: ReporteFactura.rpt

Realizamos el diseo de la Factura:


Como se podr observar necesitamos dos procedimientos almacenados, una para
recuperar datos referente al detalle y el otro para recuperar datos referente a la
factura.
Se agregan los campos respectivos y se da el formato que mejor se ajuste a sus
necesidades.

Ing. Hobby Saavedra Rosas

Visual Basic. NET

Como se habrn podido dar cuenta, necesitamos algunos parmetros de entrada,


como el nmero de factura y a partir de l, poder generar los datos referente al
pedido gestionado. Tambien necesitamos mostrar el total a pagar, el igv, el subtotal
y el total a pagar pero en letras.
Para ello es necesario crear parametros en Crystal Reports.

Ahora mostramos el contenido de los procedimientos almacenados

Procedimiento para listar los detalles de una determinada factura.

Procedimiento para listar los datos de una determinada factura.

Los

campos

@LETRAS,

@MONTO1,@MONTO2,@MONTO3,

permiten recibir valores de entrada y son acomplados el reporte.

Ing. Hobby Saavedra Rosas

Visual Basic. NET

Ahora

agregamos

un

nuevo

formulario,

el

cual

tendr

un

objeto

CrystalReportViewer.

Cdigo Fuente en el Formulario que contendr el reporte.

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class FrmRptFactura
Public MiCod_fact, V_Venta, IGV, Total, NumeroLetras As String
Private Sub FrmRptFactura_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Me.crvFactura.ReportSource = Nothing
'pasando el Cdigo de Venta ingresado a una variable discreta
Dim Cod_fact As New ParameterDiscreteValue
Dim M_IGV As New ParameterDiscreteValue
Dim M_VVenta As New ParameterDiscreteValue
Dim M_Total As New ParameterDiscreteValue
Dim M_NumLetras As New ParameterDiscreteValue
Cod_fact.Value = MiCod_fact.ToString
M_VVenta.Value = V_Venta.ToString
M_IGV.Value = IGV.ToString
M_Total.Value = Total.ToString
M_NumLetras.Value = NumeroLetras.ToString
'en la variable tabla se mostrara el resultado final
'del reporte.
Dim tabla As New ParameterFields
Dim temp As ParameterField
temp = New ParameterField
temp.CurrentValues.Add(Cod_fact)
temp.ParameterFieldName = "@num_fact"
tabla.Add(temp)
temp = New ParameterField
temp.CurrentValues.Add(M_VVenta)
temp.ParameterFieldName = "@MONTO1"
tabla.Add(temp)
temp = New ParameterField
temp.CurrentValues.Add(M_IGV)

Ing. Hobby Saavedra Rosas

Visual Basic. NET

temp.ParameterFieldName = "@MONTO2"
tabla.Add(temp)
temp = New ParameterField
temp.CurrentValues.Add(M_Total)
temp.ParameterFieldName = "@MONTO3"
tabla.Add(temp)
temp = New ParameterField
temp.CurrentValues.Add(M_NumLetras)
temp.ParameterFieldName = "@LETRAS"
tabla.Add(temp)
Me.crvFactura.ReportSource = New ReporteFactura
Me.crvFactura.ParameterFieldInfo = tabla
End Sub
End Class

Ahora lo invocamos al formulario que tiene el reporte. Esto lo hacemos desde


el formulario GestionPedidos o desde consulta de facturas.
Private Sub Btn_Imprimir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Btn_Imprimir.Click
FrmRptFactura.MiCod_fact = num_fact.ToString
FrmRptFactura.V_Venta = Me.lbl_vVenta.Text
FrmRptFactura.IGV = Me.lbl_Igv.Text
FrmRptFactura.Total = Me.lbl_pVenta.Text
FrmRptFactura.NumeroLetras = Me.lbl_numletras.Text
FrmRptFactura.Show()
End Sub

Realizamos una prueba, para verificar si el reporte est funcionando


correctamente.
Accedemos al sistema, para poder realizar el pedido a un determinado cliente.
Nos pide ingresar el usuario y la contrasea. De ser estas credenciales
correctas, accedemos al sistema. Este usuario ser el vendedor.

Estando y en el sistema, procedemos a generar el nuevo pedido. Para el


cliente identificado con DNI:20123422

Ing. Hobby Saavedra Rosas

Visual Basic. NET

Guardamos el pedido.

Ahora mandamos a generar la factura la con nmero 55 y posteriormente realizar el


pago. Ya podemos imprimir o exportar a cualquier formato. (pdf, xls)

Ing. Hobby Saavedra Rosas

Visual Basic. NET

También podría gustarte