none
Como hacer reportes con crystal report y vb.net 2005

    Debate general

  • Yo busque mucho en el foro respecto a hacer reportes con crystal report, y no encontré nada concreto.
    Ahora ya que pude hacer mis reportes, pongo este post para que los que no puedan hacer sus reportes ahora ya puedan hacerlo.


    Crear Reporte de Una sola Tabla

     

    <!--[if !supportLists]-->1.      <!--[endif]-->Crear un formulario.

    <!--[if !supportLists]-->2.      <!--[endif]-->Agregar al formulario, el cristal report viewer.

    <!--[if !supportLists]-->3.      <!--[endif]-->Generar un archivo de reporte del cristal report .rpt

    <!--[if !supportLists]-->4.      <!--[endif]-->Agregar un DataSource. (Al crear un datasource se va a crear una dataset)

    <!--[if !supportLists]-->5.      <!--[endif]-->Crear el Dataset, elegir tablas que entraran al dataset, luego les pedirá realizar las relaciones entre las tablas que seleccionaron, pueden eliminar los links creados por defecto o realizar las relaciones de las tablas.

    <!--[if !supportLists]-->6.      <!--[endif]-->En la parte izquierda la pantalla se abrirá el field Explorer(Explorador de campos), ahí le dan botón derecho sobre database fields(Campo de Base de Datos), luego entran a database expert, se abrirá una pantalla, entran a proyect data, luego a ado.net datasets, y ahí aparece las tablas que seleccionaron para el dataset elijan una para que entre al reporte.

    <!--[if !supportLists]-->7.      <!--[endif]-->En el field Explorer en database fields aparecera la tabla que elijieron, lo unico que hacen es jalar los campos de la base hacia el reporte.(Hacer un clic sobre el campo y sin soltar ese clic lo llevan hacia el reporte)

    <!--[if !supportLists]-->8.      <!--[endif]-->Pueden agregarle titulos, etc. Con eso ya se tendría diseñado el reporte. Solo falta la parte de la codificacion.

    <!--[if !supportLists]-->9.      <!--[endif]-->Al formulario que crearon anteriormente la dan doble click para que ingrese a la codificación de vb.net.

    <!--[if !supportLists]-->10.  <!--[endif]-->las librería que deben importar son dependiendo a la base que se conectan en este caso lo haré con Oracle:

    imports system.data

    imports system.oledb

    <!--[if !supportLists]-->11.  <!--[endif]-->declaran variables puclicas:

    dim con as new oledbconnection

    dim ds as new dataset

    dim da as new oledbdataadapter

    dim dt as datatable

    dim comando as new oledbcommand

    <!--[if !supportLists]-->12.  <!--[endif]-->En el procedimiento de LOAD colocan el siguiente codigo:

    Dim reporte as new nombre_reporte

    Dt.clear()

    Dim conn as string=”Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=nombre_base;Password=contraseña;Data Source=cadena”

    Con=new oledbconnection(conn)

    Commando.connection=con

    Commando.comandtext=”select * from nombre_tabla_de_databasefield”

    Da = new oledbdataadapter(commando)

    Da.fill(dt)

    Reporte.setdatasource(dt)

    Reporte.refresh()

    Crystalreportviewer1.reportsource=report

    Crystalreportviewer1.refresh()

    <!--[if !supportLists]-->13.  <!--[endif]-->Ejecutan el programa y con esto verán que el reporte funciona.

     

     

     

     

    Crear Reporte con sentencia SQL.

     

    <!--[if !supportLists]-->1.      <!--[endif]-->Crear un formulario.

    <!--[if !supportLists]-->2.      <!--[endif]-->Agregar al formulario, el cristal report viewer.

    <!--[if !supportLists]-->3.      <!--[endif]-->Generar un archivo de reporte del cristal report .rpt

    <!--[if !supportLists]-->4.      <!--[endif]-->Agregar un DataSource. (Al crear un datasource se va a crear una dataset)

    <!--[if !supportLists]-->5.      <!--[endif]-->Crear el Dataset, elegir tablas que entraran al dataset, luego les pedirá realizar las relaciones entre las tablas que seleccionaron, pueden eliminar los links creados por defecto o realizar las relaciones de las tablas.

    <!--[if !supportLists]-->6.      <!--[endif]-->En la parte derecha de la pantalla aparecerá el dataset que crearon, hacen doble click sobre el dataset, se abrirá el diseñador. Hacen botón derecho sobre cualquier lugar del diseñador y agregan un dataadapter les aparecerá el wizard y al final les pedirá que agreguen un sql, ponen el sql sin campos específicos. Ej.

    Select a.nombre,p.producto,p.precio

    From cliente a, producto p

    Where a.codigo_cli=p.codigo_cli

    Order by a.nombre

    No como:

    Select a.nombre,p.producto,p.precio

    From cliente a, producto p

    Where a.codigo_cli=p.codigo_cli and

    Nombre=’Jose’ and fecha between ’10-05-07’ and ’12-05-07’

    Order by a.nombre

    <!--[if !supportLists]-->7.      <!--[endif]-->Le ponen un nombre al dataadapter

    <!--[if !supportLists]-->8.      <!--[endif]-->En la parte izquierda la pantalla se abrirá el field Explorer (Explorador de campos), ahí le dan botón derecho sobre database fields (Campo de Base de Datos), luego entran a database expert, se abrirá una pantalla, entran a proyect data, luego a ado.net datasets, y ahí aparece las tablas que seleccionaron para el dataset elijan el dataadapter que crearon para que entre al reporte.

    <!--[if !supportLists]-->9.      <!--[endif]-->En el field Explorer en database fields aparecerá la tabla que eligieron, lo único que hacen es jalar los campos de la base hacia el reporte.(Hacer un clic sobre el campo y sin soltar ese click lo llevan hacia el reporte)

    <!--[if !supportLists]-->10.  <!--[endif]-->Pueden agregarle títulos, etc. Con eso ya se tendría diseñado el reporte. Solo falta la parte de la codificación.

    <!--[if !supportLists]-->11.  <!--[endif]-->Al formulario que crearon anteriormente la dan doble click para que ingrese a la codificación de vb.net.

    <!--[if !supportLists]-->12.  <!--[endif]-->las librería que deben importar son dependiendo a la base que se conectan en este caso lo haré con Oracle:

    imports system.data

    imports system.oledb

    <!--[if !supportLists]-->13.  <!--[endif]-->declaran variables puclicas:

    dim con as new oledbconnection

    dim ds as new dataset

    dim da as new oledbdataadapter

    dim dt as datatable

    dim comando as new oledbcommand

    <!--[if !supportLists]-->14.  <!--[endif]-->En el procedimiento de LOAD colocan el siguiente codigo:

    Dim reporte as new nombre_reporte

    Dt.clear()

    Dim conn as string=”Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=nombre_base;Password=contraseña;Data Source=cadena”

    Con=new oledbconnection(conn)

    Commando.connection=con

    Commando.comandtext=”aqui meten el sql completo con campos específicos y todo”

    Da = new oledbdataadapter(commando)

    Da.fill(dt)

    Reporte.setdatasource(dt)

    Reporte.refresh()

    Crystalreportviewer1.reportsource=report

    Crystalreportviewer1.refresh()

    <!--[if !supportLists]-->15.  <!--[endif]-->Ejecutan el programa y con esto verán que el reporte funciona.

     

     

     

     

    Crear Reporte con sentencia SQL y parámetros

     

     

    <!--[if !supportLists]-->1.      <!--[endif]-->Crear un formulario.

    <!--[if !supportLists]-->2.      <!--[endif]-->Agregar al formulario, el cristal report viewer.

    <!--[if !supportLists]-->3.      <!--[endif]-->Generar un archivo de reporte del cristal report .rpt

    <!--[if !supportLists]-->4.      <!--[endif]-->Agregar un DataSource. (Al crear un datasource se va a crear una dataset)

    <!--[if !supportLists]-->5.      <!--[endif]-->Crear el Dataset, elegir tablas que entraran al dataset, luego les pedirá realizar las relaciones entre las tablas que seleccionaron, pueden eliminar los links creados por defecto o realizar las relaciones de las tablas.

    <!--[if !supportLists]-->6.      <!--[endif]-->En la parte derecha de la pantalla aparecerá el dataset que crearon, hacen doble click sobre el dataset, se abrirá el diseñador. Hacen botón derecho sobre cualquier lugar del diseñador y agregan un dataadapter les aparecerá el wizard y al final les pedirá que agreguen un sql, ponen el sql sin campos específicos. Ej.

    Select a.nombre,p.producto,p.precio

    From cliente a, producto p

    Where a.codigo_cli=p.codigo_cli

    Order by a.nombre

    No como:

    Select a.nombre,p.producto,p.precio

    From cliente a, producto p

    Where a.codigo_cli=p.codigo_cli and

    Nombre=’Jose’ and fecha between ’10-05-07’ and ’12-05-07’

    Order by a.nombre

    <!--[if !supportLists]-->7.      <!--[endif]-->Le ponen un nombre al dataadapter

    <!--[if !supportLists]-->8.      <!--[endif]-->En la parte izquierda la pantalla se abrirá el field Explorer (Explorador de campos), ahí le dan botón derecho sobre database fields (Campo de Base de Datos), luego entran a database expert, se abrirá una pantalla, entran a proyect data, luego a ado.net datasets, y ahí aparece las tablas que seleccionaron para el dataset elijan el dataadapter que crearon para que entre al reporte.

    <!--[if !supportLists]-->9.      <!--[endif]-->En el field Explorer en database fields aparecerá la tabla que eligieron, lo único que hacen es jalar los campos de la base hacia el reporte.(Hacer un clic sobre el campo y sin soltar ese click lo llevan hacia el reporte)

    <!--[if !supportLists]-->10.  <!--[endif]-->En el lado izquierdo de la pantalla, en Field Explorer, elijan field parameters, ahí agregan los parámetros que desean.

    <!--[if !supportLists]-->11.  <!--[endif]-->Pueden agregarle títulos, etc. Con eso ya se tendría diseñado el reporte. Solo falta la parte de la codificación.

    <!--[if !supportLists]-->12.  <!--[endif]-->Al formulario que crearon anteriormente la dan doble click para que ingrese a la codificación de vb.net.

    <!--[if !supportLists]-->13.  <!--[endif]-->las librería que deben importar son dependiendo a la base que se conectan en este caso lo haré con Oracle:

    imports system.data

    imports system.oledb

    <!--[if !supportLists]-->14.  <!--[endif]-->declaran variables puclicas:

    dim con as new oledbconnection

    dim ds as new dataset

    dim da as new oledbdataadapter

    dim dt as datatable

    dim comando as new oledbcommand

    <!--[if !supportLists]-->15.  <!--[endif]-->En el procedimiento de LOAD colocan el siguiente codigo:

    Dim reporte as new nombre_reporte

    Dt.clear()

    Dim conn as string=”Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=nombre_base;Password=contraseña;Data Source=cadena”

    Con=new oledbconnection(conn)

    Commando.connection=con

    Commando.comandtext=”aqui meten el sql completo con campos específicos y todo”

    Da = new oledbdataadapter(commando)

    Da.fill(dt)

    Reporte.setdatasource(dt)

    Reporte.refresh()

     

    Reporte.SetParameterValue(“nombre_parametro1_que_crearon”,campo_de_texto)

    Reporte.SetParameterValue(“nombre_parametro2_que_crearon”,campo_de_texto)

     

    Crystalreportviewer1.reportsource=report

    Crystalreportviewer1.refresh()

    <!--[if !supportLists]-->16.  <!--[endif]-->Ejecutan el programa y con esto verán que el reporte funciona.



    Espero les sirva

    Saludos.

    viernes, 19 de octubre de 2007 20:41

Todas las respuestas

  •  

    Muchas gracias por tu ayuda, ne sacastede muchas dudas.

    Saludos

    domingo, 18 de noviembre de 2007 22:17
  •  charsit Escribió:

     

    Muchas gracias por tu ayuda, ne sacastede muchas dudas.

    Saludos




    hola Amigos Espero me puedan ayudar.


    Instale el crytal report XI y uso Visual Studio 2005 profesional

    en concreto Visual basic .net

    No logro conectar el cristal con visual basic.
    He tratado de agregar las dll. pero no las encuentro.

    domingo, 27 de abril de 2008 0:02
  • Hola falconhorse28 como puedo hacer en mi caso mi reporte esta creado con un store procedure, te muestro mi código:

    Capa Datos

    Public Function FacturaCompra(ByVal CodFactura As String) As DataTable
            Try
                Using cn As DbConnection = clsConexionAD.Conectar
                    Dim factory As DbProviderFactory = clsConexionAD.GetFactory()
                    Dim da As DbDataAdapter = factory.CreateDataAdapter
    
                    Dim cmd As DbCommand = cn.CreateCommand
                    cmd.CommandText = "xspGenerarFacturaCompras"
                    cmd.CommandType = CommandType.StoredProcedure
                    cmd.Parameters.Add(CreateParameter("@idCompra", DbType.AnsiString, CodFactura))
                    da.SelectCommand = cmd
    
                    Dim dt As New DataTable
                    da.Fill(dt)
                    Return dt
                End Using
            Catch ex As Exception
                Throw New Exception(ex.Message)
            End Try
        End Function

    Capa Logica .........................

    Capa Presentación 

    Sub Imprimir()
    
            Dim objGenerarFacturaCompra As New rptFacturaCompra
    
    
            ' Recuperar los datos de conexión
            BuilLeerConection()
    
            objGenerarFacturaCompra.SetDatabaseLogon(NUsuario, Pass, NSevidor, NDataBase)
    
            Dim dt As DataTable = objCompraCL.FacturaCompra(lblCodigo.Text)
            objGenerarFacturaCompra.Load("rptFacturaCompra.rpt")
            objGenerarFacturaCompra.SetDataSource(dt)
            objGenerarFacturaCompra.Refresh()
    
            'objGenerarFacturaCompra.SetDataSource(dt)
    
            objGenerarFacturaCompra.SetParameterValue("@idCompra", lblCodigo.Text)
    
            frmFacturaCompra.crvFacturaCompra.ReportSource = objGenerarFacturaCompra
            'objGenerarFacturaCompra.Load("rptFacturaCompra.rpt")
            'objGenerarFacturaCompra.SetDataSource(dt)
            frmFacturaCompra.crvFacturaCompra.Refresh()
            frmFacturaCompra.Show()
        End Sub

    Mi problema es allí no se como llamar al reporte ni tampoco como usar el dt


    Pedro Avila

    sábado, 15 de diciembre de 2012 21:01