none
Reportes en VB2012 RRS feed

  • Pregunta

  • Estimados amigos, ayudenme a poder implementar el siguiente codigo para mis reportes:

    Estoy trabajando en vb2012 en N capas la cual tengo una clase llamada vReporte donde estan los contructores y una clase llamada fReporte con el siguiente codigo:

    Public Function enviardatos(ByVal dts As vReporte) As Boolean
            Try
                conectado()
                cmd = New SqlCommand("mostrar_reportes")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Connection = cnn
                cmd.Parameters.AddWithValue("@Cantidad", dts.gCantidad)
                cmd.Parameters.AddWithValue("@Devolucion", dts.gDevolucion)
                cmd.Parameters.AddWithValue("@Fecha_Prestamo", dts.gFecha_Prestamo)
                cmd.Parameters.AddWithValue("@Id_Herramientas", dts.gId_Herramientas)
                cmd.Parameters.AddWithValue("@Id_Interno", dts.gId_Interno)
                cmd.Parameters.AddWithValue("@Id_Personal", dts.gId_Personal)
                cmd.Parameters.AddWithValue("@Id_Salida", dts.gId_Salida)
                cmd.Parameters.AddWithValue("@Nombre", dts.gNombre)
                cmd.Parameters.AddWithValue("@Nombres", dts.gNombres)
                cmd.Parameters.AddWithValue("@Apellidos", dts.gApellidos)
                If cmd.ExecuteNonQuery Then
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
                Return False
            Finally
                desconectado()
            End Try
        End Function

    lo que deseo hacer es con este codigo pasar los datos o registros de la tabla a los contructores, de esta forma se mostrara en el reporte; pero no se envian los datos, algo estoy haciendo mal....

    jueves, 31 de octubre de 2013 16:09

Todas las respuestas

  • Hola

    Puedes usar un datatable, algo como esto.

    Public Shared Function ImprimirDocumento(TipoDocumento As Integer, IdDoc As String, CNroLetras As String) As DataTable
    	Using cn As SqlConnection = Conexion.Conectar("default")
    		Using cmd As SqlCommand = cn.CreateCommand()
    			cmd.CommandText = "Imprimir_Documento"
    			cmd.CommandType = CommandType.StoredProcedure
    			cmd.Parameters.AddWithValue("@TipoDoc", TipoDocumento)
    			cmd.Parameters.AddWithValue("@IdDoc", IdDoc)
    			cmd.Parameters.AddWithValue("@cNroLetras", CNroLetras)
    			Dim da As New SqlDataAdapter(cmd)
    			Dim dt As New DataTable()
    			da.Fill(dt)
    			Return dt
    		End Using
    	End Using
    End Function

    Lo llamas así.

    Dim tablaDatos As DataTable = Personal.ImprimirDocumento(119, txtIdDocumento.Text, "")
    
    rptListaPersonal.SetDataSource(tablaDatos)
    
    Dim frm As New frmParametro()
    
    frm.CrystalReportViewer.ReportSource = rptListaPersonal
    frm.CrystalReportViewer.Dock = DockStyle.Fill
    

    Espero te sirba.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 31 de octubre de 2013 17:04
  • hola

    pero ese metodo solo retorna un Boolean, como esperas que se muestr ene el reporte sino devuelves una coleccion de datos

    podrias implementar algo como ser

    Crystal Reports – Cargar imagen usando una capa de reporte

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 31 de octubre de 2013 17:09
  • Estimado amigo leandro yo estoy tratando de crear todo el proyecto por codigo, no utilizo el dataset por el asistente sino mediante List(of) que me han dicho es mejor porque no utiliza mucha memoria.

    porfavor deme su opinon...porque la verdad ya me he enrredado en esto de la programacion...jijiji.

    un saludo.

    jueves, 31 de octubre de 2013 18:50