utilizo Crystal . Esbozaré mi método brevemente, pero tenga en cuenta que soy una tienda de un solo hombre y puede que no se traduzca a su entorno.
Primero, cree un formulario con un visor de CR. Luego:
1) Averigüe qué datos necesita y cree una vista que recupere las columnas deseadas. 2) Cree un nuevo informe de Crystal utilizando el asistente dando su vista como el origen de los datos. 3) Arrastre, suelte, inserte, elimine y lo que sea para darle forma a su informe. Sí, es tedioso. 4) Cree el botón de clic necesario o lo que sea, y cree la función en la que se generará el informe. 5) Recuperar los datos en una DataTable (probablemente en un DataSet). No tiene que usar la vista. 6) Cree el objeto de informe. Configure DataTable para que sea el DataSource. Asigne el objeto de informe al visor de CR. Esta es una parte para la cual hay ejemplos.
Comentarios:
Si pierde la ventana con los campos de la base, etc (Explorador de campos), vaya a la vista Esquema/Documento. (Es mi fantasía tener a Bill Gates en un escenario y pedirle que lo encuentre.)
El motivo para configurar la vista es que si desea agregar una columna, revise la vista y Field Explorer actualizar automáticamente He tenido todo tipo de problemas para hacerlo de otras maneras. Este método también es una solución para un error que requiere escanear a través de todas las tablas restableciendo a qué tabla apuntan. Quieres darle a Crystal una sola mesa. No desea intentar que Crystal se una a las tablas, etc. No digo que no funcione; Yo digo que es más difícil.
Existe (o había) documentación para la implementación VS de Crystal en el sitio web de Business Objects, pero creo que ha desaparecido detrás de una pantalla de registro/inicio de sesión. (Podría soportar más información sobre eso yo mismo.)
He tenido problemas para obtener el salto de página de Crystal cuando quiero, y no el salto de página cuando no quiero, etc. Está lejos del mejor escritor de informes que yo Alguna vez lo he usado y no entiendo por qué parece haber puesto tantos otros fuera del negocio. Además, sus políticas de licencias son muy difíciles de tratar en una organización pequeña y fluida.
Editado para añadir ejemplo:
AcctStatement oRpt = new AcctStatement() ;
oRpt.Database.Tables[0].SetDataSource(dsRpt.Tables[0]);
oRpt.SetParameterValue("plan_title",sPlanName) ;
crViewer.ReportSource = oRpt ;
Encontré una manera aún mejor, más simple ... http://arcanecode.com/2009/02/09/using-a-local-reporting-services-2008-report-with-an-adonet-data- set/# comment-27511 – Piku