none
de un datagridview a reportview c# RRS feed

  • Pregunta

  • saludos,

    lo que quiero hacer es que al darle dos clic a una fila de un datagridview me salga una ventana del reportview con los datos de esa fila que le di dos clic,

    estoy usando visual studio 2019, c# winform con sql server 2017


    joel

    sábado, 19 de diciembre de 2020 4:49

Respuestas

  • Bien, vayamos por pasos.

    Primero hay que diseñar un reporte .rdlc que sirve para definirle al ReportViewer cuál es el aspecto de los datos que tiene que presentar. Este es un paso previo necesario; el ReportViewer no puede presentar datos sin que exista un .rdlc.

    Para que te resulte razonablemente sencillo diseñarlo, necesitarás añadir al proyecto un DataSet tipado que tenga la misma estructura de los datos que quieres presentar. Si ya lo tienes hecho para usarlo con el DataGridView, puedes usar ese mismo DataSet también para diseñar el Report. Si no lo tienes, tendrás que añadirlo aunque solo sea para hacer el diseño. No hace falta que uses este mismo DataSet en tiempo de ejecución, pero si de todas maneras vas a añadirlo, no hay inconveniente en que lo utilices para alimentar de datos al Report.

    Después ya pasamos a implementar el doble-click en tu datagridview. Dentro del manejador de eventos, puedes hacer dos cosas: Una es leer las casillas de la fila en cuestión, e insertar sus valores en el DataSet tipado que utilizaste para definir el Report. La otra es aprovechar el mismo datatable que ya tienes vinculado al DataGridView (si es que tienes uno) y usar ese mismo datatable para pasárselo al report. En este último caso, tendrías que pasarle también como parámetro la clave primaria de esa fila, y dentro del report usar ese dato para filtrar cuál es la fila que tiene que presentar.

    Y ya está. Después de haberle pasado la tabla de datos al ReportViewer (y el parámetro, si es que usas uno), ya lo puedes mostrar y aparecerá con el informe que diseñaste.

    • Marcado como respuesta EricRRModerator miércoles, 23 de diciembre de 2020 16:55
    sábado, 19 de diciembre de 2020 8:30
    Moderador

Todas las respuestas

  • Bien, vayamos por pasos.

    Primero hay que diseñar un reporte .rdlc que sirve para definirle al ReportViewer cuál es el aspecto de los datos que tiene que presentar. Este es un paso previo necesario; el ReportViewer no puede presentar datos sin que exista un .rdlc.

    Para que te resulte razonablemente sencillo diseñarlo, necesitarás añadir al proyecto un DataSet tipado que tenga la misma estructura de los datos que quieres presentar. Si ya lo tienes hecho para usarlo con el DataGridView, puedes usar ese mismo DataSet también para diseñar el Report. Si no lo tienes, tendrás que añadirlo aunque solo sea para hacer el diseño. No hace falta que uses este mismo DataSet en tiempo de ejecución, pero si de todas maneras vas a añadirlo, no hay inconveniente en que lo utilices para alimentar de datos al Report.

    Después ya pasamos a implementar el doble-click en tu datagridview. Dentro del manejador de eventos, puedes hacer dos cosas: Una es leer las casillas de la fila en cuestión, e insertar sus valores en el DataSet tipado que utilizaste para definir el Report. La otra es aprovechar el mismo datatable que ya tienes vinculado al DataGridView (si es que tienes uno) y usar ese mismo datatable para pasárselo al report. En este último caso, tendrías que pasarle también como parámetro la clave primaria de esa fila, y dentro del report usar ese dato para filtrar cuál es la fila que tiene que presentar.

    Y ya está. Después de haberle pasado la tabla de datos al ReportViewer (y el parámetro, si es que usas uno), ya lo puedes mostrar y aparecerá con el informe que diseñaste.

    • Marcado como respuesta EricRRModerator miércoles, 23 de diciembre de 2020 16:55
    sábado, 19 de diciembre de 2020 8:30
    Moderador
  • saludos,

    se me paso decir que si efectivamente tengo el rdlc creado y por lo tanto tambien tengo el dataset datatable etc conectados, lo que si me gustaria es el codigo para cuando yo le de dos clic a la fila del datagrid me llame el reporview con la fila que seleccione, cual seria ese codigo?


    joel

    sábado, 19 de diciembre de 2020 19:32
  • Hola Joel201022,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    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.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    martes, 22 de diciembre de 2020 15:12
    Moderador