none
Volante de pago de una nomina ReportViewer RRS feed

  • Pregunta

  • buenas es mi primera vez haciendo pregunta por un foro espero ser claro y que alguien me pueda ayudar.

    estoy haciendo en un reporte en en vb.net con ReportViewer, quiero lograr los siguiente con este reporte; quiero imprimir para cada empelado un volate de pago, podriamos decir. tratare de hacer algo parecido

    nombre: michael medina

    cargo: cajero

    ======================

    sueldo               4,000

    seguro               450

    descueto           200

    =====================

                           sub-total 4000

                           desc. total:  650

                           total: 3350

    ya teniendo el diseño, me gustaria que se imprimiera 4 en una misma hojade diferente empelado.

    NOTA: ESTO ES POSIBLE LO EH VISTO EN PROGRAMA DE NOMINA

    espero haber explicado bien, gracias por su ayuda por antemano


    martes, 15 de julio de 2014 16:00

Respuestas

  • Hola:
    Con Crystal Reports eso se puede hacer de una manera muy sencilla.

    Un saludo desde Bilbo
    Carlos

    carlos, me podrias mostrar o dar un ejemplo, por favor
    miércoles, 16 de julio de 2014 23:18

Todas las respuestas

  • Hola:
    Con Crystal Reports eso se puede hacer de una manera muy sencilla.

    Un saludo desde Bilbo
    Carlos

    miércoles, 16 de julio de 2014 8:15
  • Hola:
    Con Crystal Reports eso se puede hacer de una manera muy sencilla.

    Un saludo desde Bilbo
    Carlos

    carlos, me podrias mostrar o dar un ejemplo, por favor
    miércoles, 16 de julio de 2014 23:18
  • Hola:
    En este ejemplo se usan 2 tablas con la siguiente estructura.
    EMPLEADO                                           NOMINA
    =================                   ==============
    ID             Numerico   PK                      ID           Numerico   PK
    NOMBRE    Caracter                             AÑO          Numerico   PK
    CARGO     Caracter                              MES          Numerico   PK
                                                             SUELDO       Moneda
                                                            SEGURO       Moneda
                                                            DESCUENTO    Moneda

    Tiene 2 Forms, el primero tiene 2 TextBox y 1 Button con el siguiente codigo

    Option Strict On
    Option Explicit On

    Public Class Form1

        Private Sub btnNomina_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNomina.Click
            Using loForm As New FrmCrystal
                loForm.Año = Me.txtAño.Text
                loForm.Mes = Me.txtMes.Text
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    En este form se introduce el año y el mes y al pulsar el boton, se muestra el segundo form con el listado
    El segundo form tiene 1 ReportDocument (rdInforme) y 1 CrystalReportViewer (crvInforme) con el siguiente codigo

    Option Strict On
    Option Explicit On
    Imports CrystalDecisions.CrystalReports.Engine
    Imports CrystalDecisions.Shared
    Imports System.Text
    Imports System.IO
    Imports System.Data
    Imports System.Data.SqlClient

    Public Class FrmCrystal
        Private msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=TU_BASE_DE_DATOS;Integrated Security=True"
        Private msFicheroRPT As String = "TU_PATHl\XXXXXX.rpt"
        Private msAño As String
        Private msMes As String

        Public Property Año() As String
            Get
                Return msAño
            End Get
            Set(ByVal value As String)
                msAño = value
            End Set
        End Property

        Public Property Mes() As String
            Get
                Return msMes
            End Get
            Set(ByVal value As String)
                msMes = value
            End Set
        End Property

        Private Sub FrmCrystal_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.Cursor = Cursors.WaitCursor
            Try
                Dim loDataTable As New DataTable
                Using loConexion As New SqlConnection(msCadenaSQL)
                    Me.rdInforme.Load(msFicheroRPT)
                    'Crear el conjunto de datos para llenar el fichero de Crystal
                    loDataTable = lF_dtCrearDataTable()
                    Me.rdInforme.SetDataSource(loDataTable)
                    Me.crvInforme.ReportSource = Me.rdInforme
                End Using
            Catch Exp As Exception
                MessageBox.Show(Exp.Message, "FrmCrystal_Load", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            Me.WindowState = FormWindowState.Maximized
            Me.Cursor = Cursors.Default
        End Sub

        Private Function lF_dtCrearDataTable() As DataTable
            Dim lsQuery As String = "Select EMPLEADO.NOMBRE, EMPLEADO.CARGO, NOMINA.SUELDO, NOMINA.SEGURO, NOMINA.DESCUENTO, NOMINA.SEGURO+NOMINA.DESCUENTO As DESC_TOTAL, NOMINA.SUELDO-NOMINA.SEGURO-NOMINA.DESCUENTO As TOTAL From NOMINA Inner Join EMPLEADO On EMPLEADO.ID=NOMINA.ID Where NOMINA.AÑO=" & msAño & " And NOMINA.MES=" & msMes
            Dim loDataTable As DataTable = New DataTable
            Try
                Using loConexion As New SqlConnection(msCadenaSQL)
                    Dim loDataAdapter As SqlDataAdapter = New SqlDataAdapter(lsQuery, loConexion)
                    loDataAdapter.Fill(loDataTable)
                End Using
            Catch Exp As Exception
                MessageBox.Show(Exp.Message, "lF_dtCrearDataTable", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            Return loDataTable
        End Function
    End Class

    P.D.
    Tienes que añadir al proyecto un fichero de crystal (extension RPT) como la imagen siguiente

    El resultado es el siguiente

    Un saludo desde Bilbo
    Carlos


    jueves, 17 de julio de 2014 7:59
  • Hola Misael,

    Gracias por consultar en el foro, esperamos tus comentarios con respecto a la respuesta de Carlos. No olvides marcar las respuestas que te hayan ayudado a resolver tu consulta.

    Saludos,

    Miguel      

    MSDN/TechNet Soporte Comunidades

    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.
    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 17 de julio de 2014 22:08
    Moderador
  • excelente ya probe funciona de maravilla
    domingo, 20 de julio de 2014 3:11