none
creacion de reportes crystal en proyecto usando linqtosql RRS feed

  • Pregunta

  • Tengo que crear reportes en un proyecto donde se usa linqtosql
    la idea es usar crystal report y poder modificarlos en forma externa
    con el crystal 10 u 11 para poder modificar reportes sin tener
    que recompilar la aplicacion

    que tipo de origen de datos deberia usar en mis reportes de crystal
    dataset, listas entidades de linq o listas perzonalizadas

    el problema esta en que si uso dataset, para cargar el origen de datos
    debo poblar el dataset con consultas linq, y ahi tengo una clase
    para pasar de listas a datatable, o sea el resultado de una consulta debo pasarlo a datatable deldataset, la ventaja de usar dataset es que puedo relacionar las tablas para listar, si uso listas para crystal como origen de datos, no puedo relacionar
    como lo hace el dataset, para poder modificar los reportes, deberia crearlos en una carpeta reportes, indicarles que se incluyan en la compilacion siempre
    y que sean de tipo contenido asi tendre la carpeta con los reportes en la instalacion final y podre modificarlos

    Para modificarlos con un crystal 10 u 11, que no tiene adonet, me ve el reporte, ve el orien de datos, no tendre inconvenientes en usarlo desde ahi? o sea crearlo con crystal net y editarlo con un crystal 10 u 11 que no tiene adonet

    Creo que me conviene usar dataset para los reportes, y cargarlos con consultas
    linq, por supuesto haciendo la transformacion de listas a datatable
    sino la otra seria crear los metodos que llenen los datasets, pero
    como en el proyecto este se trabaja con linqtosql queria hacerlo de la misma forma

    Como puedo encacar los reportes crystal desde el tipo de origen, el llenado
    y la modificacion externa?

    la otra si se puede trabajar directamente con crystal y la base de datos para generar los reportes, para reportes simples, mediante una conexion ado y usar las tablas como origen de datos, ademas se necesita filtrar en el reporte por medio de formulas o parametros, o sea en el codigo net se manda un select campos from tabla  y no se filtra en el where, sino que quieeren mandarle al crystal el filtro, antes se hacia en vb con selectionformula, pero ahora trabajo con c# y crystal net

    gracias


    programador
    lunes, 24 de octubre de 2011 11:47

Respuestas

Todas las respuestas

  • Hola Rodrigo,

    Mira este post de Javier Torrecilla http://geeks.ms/blogs/jtorrecilla/archive/2011/08/01/cr-usando-listas-para-llenar-nuestros-informes-ii.aspx

    Yo personalmente no te recomiendo que conviertas las listas a DataTable, menudo desperdicio :)

    Saludos,


    phurtado
    lunes, 24 de octubre de 2011 11:55
  • hola

    mas alla que uses dataset tipado o clases un problema que presenta crystal e sque solo reconoce las clases definiedas en tu propio assembly, por lo tanto seria bueno si generas una capa completamente independiente para los reportes

    Crystal Reports – Cargar imagen usando una capa de reportes

     

    en donde entidad y datos trabajen juntos para armar el reporte que enviarias a la presentacion

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 24 de octubre de 2011 13:15
  • Hola gracias a todos por la ayuda, otra cosa que queria comentar ademas de usar origenes de datos del proyecto net(ya sean lsitas tipadas o dataset), hay otra forma que me enseñaron, como lo usaban en vb6, y es usando directamente desde el crystal 11 la creacion de reportes con una conexion ole a la base de datos y el mismo crystal se encarga de llenar en el reporte las tablas que uso, en el proyecto solo cargo el reporte y le paso la selectionformula con los filtros

      ReportDocument cryRpt = new ReportDocument();
                cryRpt.Load("e:\\Net\\Club\\Rpt\\Disciplinas.rpt");
                Form  miForma = new Reportes();
                Reportes.crystal.ReportSource = cryRpt;
                Reportes.crystal.SelectionFormula = "{Disciplina.NroDisciplina}>2";
                Reportes.crystal.Refresh();
                miForma.ShowDialog
    

    Por supuesto esto rompe el esquema de capas, pero me parecio interesante mostrarlo, ya que no hay que hacaer metodos que carguen el reporte sino solo ocuparse de los filtros, ademas otra ventaja es que son externos y se pueden modificar sin recompilar

    Gracias

     


    programador
    miércoles, 26 de octubre de 2011 17:23