Principales respuestas
Volante de pago de una nomina ReportViewer

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
- Editado Misael developer miércoles, 16 de julio de 2014 2:13
Respuestas
-
Hola:
Con Crystal Reports eso se puede hacer de una manera muy sencilla.Un saludo desde Bilbo
Carlos- Marcado como respuesta Misael developer sábado, 19 de julio de 2014 19:42
Todas las respuestas
-
-
Hola:
Con Crystal Reports eso se puede hacer de una manera muy sencilla.Un saludo desde Bilbo
Carlos- Marcado como respuesta Misael developer sábado, 19 de julio de 2014 19:42
-
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 MonedaTiene 2 Forms, el primero tiene 2 TextBox y 1 Button con el siguiente codigo
Option Strict On
Option Explicit OnPublic 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 codigoOption Strict On
Option Explicit On
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Text
Imports System.IO
Imports System.Data
Imports System.Data.SqlClientPublic 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 StringPublic Property Año() As String
Get
Return msAño
End Get
Set(ByVal value As String)
msAño = value
End Set
End PropertyPublic Property Mes() As String
Get
Return msMes
End Get
Set(ByVal value As String)
msMes = value
End Set
End PropertyPrivate 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 SubPrivate 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 ClassP.D.
Tienes que añadir al proyecto un fichero de crystal (extension RPT) como la imagen siguienteEl resultado es el siguiente
Un saludo desde Bilbo
Carlos- Editado J. Carlos Herrero jueves, 17 de julio de 2014 8:02
- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 17 de julio de 2014 22:06
-
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.
-