none
Ayuda con creacion de una factura con crystal reports RRS feed

  • Pregunta

  • Hola buenas tardes.

    Mi consulta es si me podran ayudar con la parte de diseño en crystal, debido a que no logro hacerlo funcionar

    Necesito crear una factura de un hotel, donde detallo

    Los datos del cliente, datos de la factura, y aqui se me presenta el problema

    Necesito detallar

    La estadia (habitacion, tipo, cantidad de dias, costo de habitacion, total de estadia y total final)

    Los servicios consumidos a la habitacion (id de servicio, fecha de consumo, detalle de cosnumo, costo, total

    no logro hacer que me muestre por separado, alguien tendra algun tuto o video como para guiarme, se los agradeceria

    domingo, 30 de diciembre de 2012 17:54

Todas las respuestas

  • Hola. En primer lugar tienes el formato exacto de como debe quedar tu factura.

    Tu duda es como usar Crystal Report?, tienes experiencia usando crystal report:

    Estos link te pueden ser de mucha utilidad,  ahi veras como crean una actura en Crystal Report.

    http://j4ckware.blogspot.com/2009/04/curso-de-visual-c-2005-leccion-030-v10.html

    Saludos.


    Luis Muñoz Hidalgo
    Mi Blog
    Desarrollador de Software
    Trujillo-Perú

    domingo, 30 de diciembre de 2012 19:00
  • Luis , el formato lo tengo, basicamente seria

    en el encabezado, los datos de la factura y el cliente

    en el detalle (donde tengo el problema), irian

    1-los datos de la habitacion ocupada y total de estadia

    y debajoirian

    2- los consumos realizados a la habitacion y total de consumo

    y en el pie:

    el total de la factura, subtotal, iva y la forma/s de pago/s elegidas y su detalle

    ej visa 12 pagos numero de tarjeta autorizacion

    esto lo obtengo, desde una consulta en mysql y lo cargo en un dataset que luego lo paso al datatable (dataset tipados sino me equivoco), el problema mio esta en el diseño, en como agrupar los datos.

    Estaba mirando un par de ejemplos en el foro de multiples datables y subreportes, aunque estoy trabado con esto, lo estoy desarrollando en vb.net 2008 con bd en mysql 

    domingo, 30 de diciembre de 2012 20:01
  • como defines el origen de datos del reporte ? o sea suas dataset tipados, si es asi deberias minimanente tener dos datatable u no para el encabezado y otro para los datos del detalle

    cada datatable lo asignas a una seccion del reporte de crystal

    el pie de pagina en realidad seran campos de sumatorio del detalle

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 30 de diciembre de 2012 20:26
  • En principio tenia un solo dataset con nombre dsFacturas, y dentro del mismo un datatable con nombre datatable con todos los campos que obtengo de la consulta, un poco muy desordenado jejeje..

    Leandro me podras dar un ejemplo de como hacerlo con varios datatables?.

    Lo que hice en el dsFacturas, cree 5 datatables

    1 dtFactura

    2 dtCliente

    3 dtEstadia

    4 dtConsumos

    5 dtFormadepago

    con sus respectivos campos, la ideqa es desglosar la consulta por la cual obtengo todos los datos y pasarla, tendras algun ejemplo de como hacerlo por codigo en vb.net 2008 la bd la tengo en mysql si sirve de algo, hace un par de dias me ayudo con dataset tipados, lo que no me hago la idea para hacerlo con varios, tendra algun ejemplo para ayudarme, seria para llenar esos datatables desde codigo


    • Editado Edgar David domingo, 30 de diciembre de 2012 21:23
    domingo, 30 de diciembre de 2012 20:39
  • Leandro, tengo hecho este codigo, pero la verdad no lo puedo hacer funcionar, solo me muestra los datos del cliente, me podras ayudar

            Dim objconexion As New clasconexion
            Dim conexion As New MySqlConnection
            conexion = objconexion.conectaabasededatos
            conexion.Open()
            Dim dtDatos As New DataTable

            '****************************DATOS DE CLIENTE*************************************************
            cadena1 = "SELECT clientes.idcliente,nombre,dni,cuit,direccion,localidad,provincia,tipodeconsumidor "
            cadena2 = "FROM factura INNER JOIN clientes ON clientes.idcliente=factura.idcliente WHERE numerofactura =6" '& numerodefactura
            DatosCliente = cadena1 + cadena2
            Dim daDatosCliente As New MySqlDataAdapter(DatosCliente, conexion)
            daDatosCliente.Fill(dtDatos)

            '***************************DATOS DE ESTADIA**************************************************
            cadena3 = "SELECT reservas.numerodereserva,habitacion.numerohabitacion, fechadellegada,fechadesalida,DATEDIFF(fechadesalida,fechadellegada) as dias, "
            cadena4 = " tipohabitacion, costohabitacion,(costohabitacion * DATEDIFF(fechadesalida,fechadellegada)) as costototalestadia, "
            cadena5 = " ((costohabitacion * DATEDIFF(fechadesalida,fechadellegada))) as total "
            cadena6 = " From factura "
            cadena7 = " INNER JOIN reservas ON factura.numerodereserva=reservas.numerodereserva "
            cadena8 = " INNER JOIN habitacion ON reservas.habitacion_numerohabitacion=habitacion.numerohabitacion "
            cadena9 = " WHERE numerofactura = 6"
            estadiaCliente = cadena3 + cadena4 + cadena5 + cadena6 + cadena7 + cadena8 + cadena9
            Dim daDatosEstadias As New MySqlDataAdapter(estadiaCliente, conexion)
            daDatosEstadias.Fill(dtDatos)

            '***************************DATOS DE CONSUMOS*************************************************
            cadena10 = "SELECT consumos.servicios_idservicios, servicios.detalleservicio,consumos.detalle,consumos.fechadeconsumo, consumos.valordeconsumo "
            cadena11 = " FROM factura "
            cadena12 = " INNER JOIN reservas ON factura.numerodereserva=reservas.numerodereserva "
            cadena13 = " INNER JOIN habitacion ON reservas.habitacion_numerohabitacion=habitacion.numerohabitacion "
            cadena14 = " INNER JOIN consumos ON reservas.habitacion_numerohabitacion=consumos.reservas_habitacion_numerohabitacion "
            cadena15 = " INNER JOIN servicios ON servicios.idservicios=consumos.servicios_idservicios "
            cadena16 = " WHERE numerofactura=6 AND facturaquien='H'"
            consumoCLiente = cadena10 + cadena11 + cadena12 + cadena13 + cadena14 + cadena15 + cadena16
            Dim daDatosConsumos As New MySqlDataAdapter(consumoCLiente, conexion)
            daDatosConsumos.Fill(dtDatos)

            '**************************DATOS DE FACTURA**************************************************
            cadena17 = "SELECT factura.numerofactura, factura.tipofactura,factura.fechafactura ,factura.numerodereserva,factura.subtotalhabitacion, "
            cadena18 = " factura.subtotalservicios, factura.ivafactura, factura.subtotalfactura, factura.totalfactura "
            cadena19 = " FROM factura "
            cadena20 = " WHERE numerofactura = 6"
            facturaCliente = cadena17 + cadena18 + cadena19 + cadena20
            Dim daDatosFactura As New MySqlDataAdapter(facturaCliente, conexion)
            daDatosFactura.Fill(dtDatos)

            '**************************DETALLE DE PAGO****************************************************
            cadena21 = "SELECT detallepago.mediosdepago_idformadepago,mediosdepago.detalle,detallepago.cantidadpagos,detallepago.formapago,detallepago.montofinal, "
            cadena22 = " detallepago.numerotarjeta, detallepago.codigoautorizacion "
            cadena23 = " FROM factura "
            cadena24 = " INNER JOIN detallepago ON factura.numerofactura=detallepago.factura_numerofactura "
            cadena25 = " INNER JOIN mediosdepago ON detallepago.mediosdepago_idformadepago=mediosdepago.idformadepago "
            cadena26 = " WHERE numerofactura = 6"
            detalledepagoCliente = cadena21 + cadena22 + cadena23 + cadena24 + cadena25 + cadena26
            Dim daDatosdePagoFactura As New MySqlDataAdapter(detalledepagoCliente, conexion)
            daDatosdePagoFactura.Fill(dtDatos)


            'Dim cmdExec As New MySqlCommand
            'cmdExec = conexion.CreateCommand
            'cmdExec.Connection = conexion
            'cmdExec.CommandText = facturaCliente
            'daDatos = New MySqlDataAdapter(cmdExec)
            'daDatos.Fill(dtDatos)




            Dim CrReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument
            CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
            CrReport.Load(Application.StartupPath & "\..\..\CrystalReport3.rpt")
            CrReport.SetDataSource(dtDatos)

            Dim objreporte As New frmreporte
            objreporte.MdiParent = frmprincipal

            objreporte.CrystalReportViewer1.ReportSource = CrReport
            objreporte.Show()

    miércoles, 2 de enero de 2013 17:45