lunes, 5 de julio de 2010

PARE DE SUFRIR CON CRYSTAL REPORT

Me puse a ver lo que es capas de hacer el control de reportes que viene con el vs2008, "Report rdlc", y de esa manera ver otra alternativa, ya que hace años que vengo trabajando con el chucho(puto) CR. si si si es que trae demasiados problemas. pero bueno. Trabajo en los reportes de forma desconectada osea el reporte lo genero apartir de un linq DataView o instruccion sql directamente. Para lograr esto solo debemos crear un Dataset, con un DataTable que tenga los campos que vamos utilizar en el reporte o en los reportes, todos estos con formato string, ya que si queremos calcular algun valor numero solo lo convertimos y listo.


Luego agregamos el Informe



Luego en el menu Informe>Origenes de datos. Agregamos el Datatable del dataset que creamos, Cambiamos de nombre pora poder trabajar con el mismo datatable en varios reportes en el mismo informe.

Diaí(Luego) creamos una tabla y un grafico, en la tabla ponemos los encabezados, para enlazar damos click derecho en la tabla luego en propiedades y en Nombre del conjunto de datos seleccionamos uno de los origenes que creamos en este caso seleecione "Informe1" el Informe2 lo asociaremos al grafico.

Para asociar los campos con los campos de datable, clic derecho en cualquier campo de la tabla del informe, luego en expresion y seleccionamos el campo o podemos hacer una formamula con los datos del datatable para ser mostrados en el informe. Y en grafico basicamente es lo mismo.

Ahora para asociarlo desde codigo:

DataView xDatosSql = new DataView()
private void XGenerarGraficos()
{
    '' col1, col2 son los nombres de los campos del datatable.

    xDatosSql="Select Count(IdVendedor) as col1, nomVendedor as col2 from Ventas")
    reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Informe1", xDatosSql.Table));

   xDatosSql="Select Count(IdVendedor) as colum1, nomVendedor as colum2 from Ventas")
    reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Informe2", xDatosSql.Table));
}

Claro primero hacen su conexion a base de datos cargan la consulta y lo pasan al DataView y lalala , que supongo que ya se la deben saber. Facil, Practico y nada de sufrir con licencias ni dll o componentes o librerias ahh!!! puto CR cuantos dolores de cabeza.. si si si el CR me causo muchas frustraciones, ke no se si me recuperare ja. Ahi los vidrios(Ahi no vimos).
Búsqueda personalizada