Foros del Web » Programación para mayores de 30 ;) » .NET »

Reporte con crystal report desde BD mdf

Estas en el tema de Reporte con crystal report desde BD mdf en el foro de .NET en Foros del Web. Hola que tal espero me puedan ayudar con esto. Estoy trabajando en el Visual Studio 2008 con vb.net y estoy usando una BD de SQL ...
  #1 (permalink)  
Antiguo 06/01/2010, 11:49
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Reporte con crystal report desde BD mdf

Hola que tal espero me puedan ayudar con esto.
Estoy trabajando en el Visual Studio 2008 con vb.net y estoy usando una BD de SQL server 2005 de tipo .mdf.

Necesito generar un reporte, en realidad una factura (entiendase imprimir el detalle de una venta asociada a un cliente) y sacar todos los datos de la BD.
Creo que es como tratar de generar un reporte pero con variables.

El punto es que googleando encontre la manera de generar un reporte un listado para ser mas preciso. El problema es que una factura es un poco mas complejo y no eh podido encontrar nada al respecto.

Dejo lo que encontre para ver si alguien tiene una idea de como hacerlo y ayudarme porfavor.

Código vb.net:
Ver original
  1. Imports System.Data.SqlClient
  2.  
  3. Public Class visor_ListadoClientes
  4.     Dim cadena As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\KlAuDiO\Mis documentos\Sistema\sistema.mdf;Integrated Security=True;User Instance=True"
  5.  
  6.     Private Sub visor_ListadoClientes_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  7.         Dim conexion As New SqlConnection(cadena)
  8.  
  9.         Dim ds As New sistemaDataSet
  10.  
  11.         Dim da1 As New SqlDataAdapter("SELECT * FROM cliente", conexion)
  12.         Dim da2 As New SqlDataAdapter("SELECT * FROM ciudad", conexion)
  13.  
  14.         Try
  15.             conexion.Open()
  16.             da2.Fill(ds.ciudad)
  17.             da1.Fill(ds.cliente)
  18.             conexion.Close()
  19.  
  20.             Dim InformeClientes As New cr_ListadoClientes
  21.             InformeClientes.SetDataSource(ds)
  22.             Me.CrystalReportViewer1.ReportSource = InformeClientes
  23.  
  24.             ds.Dispose()
  25.             da1.Dispose()
  26.             da2.Dispose()
  27.  
  28.         Catch ex As Exception
  29.             MsgBox("Mensaje : " & ex.Message)
  30.         End Try
  31.     End Sub
  32. End Class
  #2 (permalink)  
Antiguo 06/01/2010, 13:29
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Reporte con crystal report desde BD mdf

Tienes problemas para enlazar el reporte por código o con el diseño del mismo??

El diseño es sencillo, los datos del cliente (nombre, dirección, etc) debes ponerlos en el encabezado de página del reporte mientras que su detalle (ventas) en la sección de detalle.

PD: El código que has puesto no parece tener errores. Si tienes errores sería bueno que los publiques.
Saludos.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 06/01/2010, 19:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Reporte con crystal report desde BD mdf

Holas, Efectivamente tengo problemas al enlazar.
El ejemplo funciona prefectamente, lo que puse es para mostrar como es que se debe hacer.
El problema es que no se como hacerlo.
Mira habia pensado en hacerlo de esta manera pero no me funciona, no por que mande error sino porque no muestra ningun dato.
Código vb.net:
Ver original
  1. Imports System.Data.SqlClient
  2.  
  3. Public Class visor_crFactura
  4.     Dim cadena As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\KlAuDiO\Mis documentos\Sistema\sistema.mdf;Integrated Security=True;User Instance=True"
  5.     Public idFactura As String
  6.     Public codCliente As String
  7.  
  8.     Private Sub visor_crFactura_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  9.         'MsgBox("Id Factura: " & idFactura & " Codigo Cliente: " & codCliente & "")
  10.         Dim conexion As New SqlConnection(cadena)
  11.  
  12.         Dim ds As New sistemaDataSet
  13.  
  14.         Dim da1 As New SqlDataAdapter("SELECT * FROM cliente WHERE cod_cli='" & codCliente & "'", conexion)
  15.         Dim da2 As New SqlDataAdapter("SELECT * FROM factura WHERE id_factura='" & idFactura & "'", conexion)
  16.         Dim da3 As New SqlDataAdapter("SELECT * FROM detalle WHERE id_factura='" & idFactura & "'", conexion)
  17.         Dim da4 As New SqlDataAdapter("SELECT * FROM producto", conexion)
  18.  
  19.         Try
  20.             conexion.Open()
  21.             da4.Fill(ds.producto)
  22.             da1.Fill(ds.cliente)
  23.             da2.Fill(ds.factura)
  24.             da3.Fill(ds.detalle)
  25.             conexion.Close()
  26.  
  27.             Dim reporteFactura As New cr_factura
  28.             reporteFactura.SetDataSource(ds)
  29.             'reporteFactura.
  30.             Me.CrystalReportViewer1.ReportSource = reporteFactura
  31.  
  32.             ds.Dispose()
  33.             da1.Dispose()
  34.             da2.Dispose()
  35.             da3.Dispose()
  36.             da4.Dispose()
  37.  
  38.         Catch ex As Exception
  39.             MsgBox("Mensaje : " & ex.Message)
  40.            
  41.         End Try
  42.     End Sub
  43. End Class

Espero me puedan ayudar gracias.
  #4 (permalink)  
Antiguo 06/01/2010, 19:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Reporte con crystal report desde BD mdf

Ah se me habia olvidado, lei tambien que hay que llenar los Dataset en relacion al diagrama. Intente de varias formas pero no pude arreglarlo.
Dejo el diagrama de todas maneras, igual sirve para entender un poco mas mi problema. Cualquier ayuda sirve
Muchas gracias por la ayuda
  #5 (permalink)  
Antiguo 07/01/2010, 13:38
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Reporte con crystal report desde BD mdf

Pero dale un alias a cada tabla del dataset ó indica la tabla al momento de pasar el DataSource

Código vb.net:
Ver original
  1. reporteFactura.SetDataSource(ds.Tables(0))

Te dejo este post dónde indican como hacer algo como lo que tu deseas.
Saludos.

http://www.albertmata.net/2008/10/pa...ystal-reports/
__________________
Eduardo Peredo
Wigoin
  #6 (permalink)  
Antiguo 08/01/2010, 10:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Reporte con crystal report desde BD mdf

Excelente ahora si que funciona!
Lo mas facil y sencillo, es hacer una vista que contenga los datos que se van a utilizar en el reporte.
Dejo el ejemplo por si a alguien mas le sirve.
Gracias eperedo, como siempre buena onda.

Código vb.net:
Ver original
  1. Private Sub visor_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         tNum2Text = New cNum2Text
  3.  
  4.         Dim conexion As New SqlConnection(cadena)
  5.         Dim ds As New sistemaDataSet
  6.         Dim da As New SqlDataAdapter("SELECT * FROM VistaPrueba WHERE id_factura='" & idFactura & "'", conexion)
  7.  
  8.         Dim resultado As String
  9.         resultado = tNum2Text.Numero2Letra(total, , , "peso", , 1, ).ToUpper()
  10.  
  11.         Try
  12.             conexion.Open()
  13.             da.Fill(ds.VistaPrueba)
  14.             conexion.Close()
  15.  
  16.             Dim reporte As New CrystalReport1
  17.             reporte.SetDataSource(ds)
  18.  
  19.             Dim rptObject As ReportObject
  20.             rptObject = reporte.Section4.ReportObjects("txtvalor")
  21.             Dim txtValor As TextObject = DirectCast(rptObject, TextObject)
  22.             'txtValor.Text = "ESTO ES UN VALOR CUALQUIERA"
  23.             txtValor.Text = resultado
  24.  
  25.             Me.CrystalReportViewer1.ReportSource = reporte
  26.  
  27.             ds.Dispose()
  28.             da.Dispose()
  29.  
  30.         Catch ex As Exception
  31.             MsgBox("Mensaje : " & ex.Message)
  32.         End Try
  33.     End Sub

Etiquetas: bd, crystal, mdf, report, reporte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.