Pregunta

Necesito agregar una segunda tabla de datos del conjunto de datos principal de nuestra aplicación a un informe, pero no tengo mucha suerte.

Disponemos de varios informes locales sencillos en archivos RDLC, cada uno con un único DataTable basado en una vista en nuestra base de datos de aplicación.Necesito mejorar uno de los informes para agregar información de otra tabla.Esta otra tabla está definida en el mismo núcleo. DataSet que utilizamos para informes en nuestra aplicación .NET 2.0 WinForms.Dado que las dos tablas están en el mismo conjunto de datos, ¿puedo asegurarme de que ambas tablas estén cargadas en el conjunto de datos y luego señalar el informe al conjunto de datos en lugar de a la tabla de datos?¿Algo más?

No hace falta decir que he estado jugando con esto por un tiempo y no he llegado a ninguna parte.

Tia, Matt

¿Fue útil?

Solución

Bien, hice que esto funcionara y, en retrospectiva, fue bastante fácil.Simplemente no sabía qué menús usar para que VS conectara todo y en qué orden hacerlo.

Mirar Designer.cs para mi formulario fue en realidad lo más útil que hice.Me di cuenta de que ReportViewer tiene un BindingSource predeterminado apuntando a la primera tabla.Originalmente, estaba obsesionado con intentar darle a BindingSource un conjunto de datos en lugar de una tabla de datos, pero luego decidí intentar crear un segundo BindingSource.

Tal vez haya una mejor manera, pero esto es básicamente lo que terminé haciendo:

  1. Con el RDLC en el diseñador, haga clic en el menú Informe y luego en Fuentes de datos.

  2. En el cuadro de diálogo Fuentes de datos del informe, elija la tabla de datos adicional del menú desplegable y haga clic en Agregar al informe.(También cambié el nombre de la nueva fuente de datos para que sea solo el nombre de la tabla de datos adicional;VS había creado un nombre largo gigantesco basado en el espacio de nombres completo). Aceptar para cerrar el cuadro de diálogo.

  3. En el diseñador del formulario que contiene mi control ReportViewer, hice clic en la etiqueta inteligente de ReportViewer (la pequeña flecha en la esquina superior derecha del control) y luego seleccioné Volver a vincular fuentes de datos.Esto hizo que apareciera un segundo BindingSource en la parte inferior de la superficie del Diseñador.

  4. Volvió a hacer clic en la etiqueta inteligente de ReportViewer y esta vez eligió "Elegir fuentes de datos" para confirmar que ReportViewer ahora tenía dos fuentes de datos, cada una vinculada a una de BindingSource instancias ahora en el formulario.

  5. Se revisó el código OnLoad de mi formulario para cargar filas en la segunda tabla de datos.

  6. Volví al archivo RDLC, agregué una nueva tabla y configuré las celdas de detalle en los campos de la segunda DataTable, ¡y funcionó!

Con suerte, esto le ahorrará a alguien más un par de horas algún día.

Otros consejos

Descubrí una manera de usarlo en Visual Studio 2010.Haga clic en Ver > ReportData y cuando se vean los datos del informe, haga clic en Fuentes de datos y luego haga clic en agregar.HAGA esto tantas veces como el número de conjuntos de datos necesarios.

Ahora, en las etiquetas inteligentes del visor de informes, haga clic en elegir fuentes de datos, esto mostrará cada uno de los conjuntos de datos.Para asociar los conjuntos de datos con una fuente vinculante, deberá hacer clic en Proyecto y luego hacer más clic hasta obtener la clase adecuada, esto hará que se creen las fuentes vinculantes.

Esta solución alternativa es muy útil si tiene varios tablix y debe asociarles una fuente vinculante dentro del mismo informe cuando el informe se muestra en el visor de informes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top