1. Ing. Hobby Saavedra Rosas Visual Basic. NET
GENERACIÓN DE REPORTES CON CRYSTAL REPORTS Y VB.NET
1. Resultado Final del Reporte, Diseño 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.
2. Ing. Hobby Saavedra Rosas Visual Basic. NET
Asignamos el nombre al reporte: ReporteFactura.rpt
Realizamos el diseño 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.
3. Ing. Hobby Saavedra Rosas Visual Basic. NET
Como se habrán podido dar cuenta, necesitamos algunos parámetros de entrada,
como el número 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.
4. Ing. Hobby Saavedra Rosas Visual Basic. NET
Ahora agregamos un nuevo formulario, el cual tendrá un objeto
CrystalReportViewer.
Código 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 Código 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)
5. 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 contraseña. 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
6. Ing. Hobby Saavedra Rosas Visual Basic. NET
Guardamos el pedido.
Ahora mandamos a generar la factura la con número 55 y posteriormente realizar el
pago. Ya podemos imprimir o exportar a cualquier formato. (pdf, xls)