none
Consultas sql en Crystal Reports RRS feed

  • Pregunta

  • Hola muy buenos dias, es primera vez que comento por aca, bueno tengo una consulta que me imagino ya varias veces la han realizado, pero yo no he podido obtener respuestas.

    Lo que sucede es que estoy programando un sistema en visual.net 2008 y base de datos sql server 2005, necesito imprimir unos reportes en crystalreports pero necesito cargar unos datos en columnas pero con consultas sql para filtrar los datos que necesito, he probado con algunas métodos pero no me ha resultado.

    Se los agradeceria un monton, de antemano muchas gracias

    • Cambiado Enrique M. Montejo miércoles, 9 de mayo de 2012 17:31 Consulta sobre Crystal Reports (De:Lenguaje VB.NET)
    viernes, 4 de mayo de 2012 13:15

Todas las respuestas

  • hola

    lo implementas usando dataset tipados ?

    [Crystal Reports] Usar DataSet Tipado con dos DataTable

    como veras la query la filtras usando ado.net y cargas los registros que necesitas mostrar en el reporte, peor esto lo haces previo a lanzar el reporte

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 4 de mayo de 2012 13:24
  • Yo lo hago de Esta forma con Access, se que sera Facil que lo cambies para SqlServer, solo es Cambiar la Cadena de Conexion:

     Dim da As OleDbDataAdapter
            Dim rs As New DataSet("dsinforme")
    
            Dim MI_FAC As String = Me.FACTURA.Text
            
            ' La cadena de conexión
            Dim sCnn As String = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Application.StartupPath & "/BasedeDatos.mdb;"
    
            'abrimos la conexion
    
            Dim sql As String = "SELECT *FROM tabla WHERE campo='" & MI_FAC & "'"
    
            da = New OleDbDataAdapter(sql, sCnn)
    
            da.Fill(rs, "Ventas")
    
            'iniciamos el form y el reporte
    
            Dim frm As New frmReporte
    
            Dim imprimir As New Reporte_Factura
    
            'le indicamos el datasource al report, que sera el recordset
    
            'que hemos llenado
    
            imprimir.SetDataSource(rs.Tables("Ventas"))
    
            frmReporte.crvMiReporte.ReportSource = imprimir
    
            frmReporte.MdiParent = Sistema_Principal
    
            frmReporte.Refresh()
            frmReporte.Show()


    Jhonatan Plata http://kayprogramacion.blogspot.com/

    viernes, 4 de mayo de 2012 13:26
  • Jhonatan

    y los parametros dodne los defines, porque recomendar usa

            Dim sql As String = "SELECT *FROM tabla WHERE campo='" & MI_FAC & "'"

    no es nada recomendable, debes usar parametro

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 4 de mayo de 2012 13:58
  • Leandro disculpa si no es mucha la molestia este es el codigo que estoy implementando, y el error que me aparece..

    Public Sub PoblarReporte2()
    
            Using cnn As New SqlConnection("Data Source=CABRERO-PC;Initial Catalog=Finanzas;User ID=sa")
                Dim sqlConn As SqlConnection
                Dim daprod As SqlDataAdapter
                ' Dim sqlDaCate As SqlDataAdapter declarado por si son 2 tablas
                Dim dsPc As New ingresosmen
                Dim strConn As String
                strConn = cnn.ConnectionString
    
                'Dim StrCommCate As String = "Select * From Categories" declarado por si son 2 tablas
                ' Dim strCommProd As String = "SELECT tipo_ingreso, otros_ingreso, monto_ingreso_real, fecha_ingreso FROM establecimiento_ingreso WHERE(tipo_ingreso=@tipo and otros_ingreso=@otros and monto_real_ingreso=@monto and fecha_ingreso=@fecha)"
                Dim strd As String
                cnn.Open()
                Dim cmd As SqlCommand = cnn.CreateCommand
                cmd.CommandText = "SELECT tipo_ingreso,otros_ingreso,monto_ingreso_real,fecha_ingreso FROM establecimiento_ingreso WHERE(fondo_ingreso_establecimiento=@fondo and nombre_establecimiento=@establecimiento and mes_ingreso=@mes)"
                Try
                    'cmd.Parameters.AddWithValue("@fondo", ffondo.Text)
                    cmd.Parameters.AddWithValue("@fondo", ingresomensualporestablecimiento.fondo3.Text)
                    cmd.Parameters.AddWithValue("@establecimiento", ingresomensualporestablecimiento.establecimiento.Text)
                    cmd.Parameters.AddWithValue("@mes", ingresomensualporestablecimiento.mes.Text)
                    strd = cmd.ExecuteScalar
    
                    'Crear los DataAdapters
                    sqlConn = New SqlConnection(strConn)
                    'sqlDaCate = New SqlDataAdapter(StrCommCate, sqlConn)
                    daprod = New SqlDataAdapter(strd, sqlConn)
                    'Poblar las tablas del dataset desde los dataAdaperts
                    ' sqlDaCate.Fill(dsPc, "Categories")
                    daprod.Fill(dsPc, "establecimiento_ingreso")
                    'Poblar el informe con el dataSet y mostrarlo
                    Dim info As New establecimiento_mensual
                    info.SetDataSource(dsPc)
                    ' crvwProductsbyCategory.ReportS​ource = info
                    ' Me.CrystalReportViewer1.Report(Source = info)
                    Me.crpw.ReportSource = info
    
                Catch ex As Exception
                    MessageBox.Show(ex.ToString)
                End Try
            End Using
        End Sub
    Y este es el error :


    despues de realizar toda esa funcion la llamo en el load del formulario donde cargo el reporte, si no es mucha la molestia me puedes indicar donde estoy fallando?

    de antemano muchas gracias...

    viernes, 4 de mayo de 2012 14:11
  • Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    New

    DataTable

    Dt =

    Me.vgentrada.DataSource

    Dim Cr As New Reportes1

    Cr.SetDataSource(Dt)

    Dim R As New REPORTEENTRADA

    R.CvReport.ReportSource = Cr

    R.ShowDialog()

    End Subalquien me podra ayudar como enlazar  de datagridview  al crytal report solo de   un formulario sencillo 

    sábado, 25 de enero de 2014 0:02