none
Linq to sql com crytal report RRS feed

  • Pergunta

  • Boa noite a todos, venho novamente pedir ajuda a vocês, pois sou iniciante em ASP.NET.

    EU preparei meu relatorio no crystal report, tudo certo. Agora quando estou chamando ele no web form aparece o seguinte erro:

    The report you requested requires further information, e aparece as tabela para eu informar user,senhae database.

    Estou usando o linq to sql, no relatório adicionei as classes pelo DataExpert .NET Objects.

    Abaixo segue o código que estou usando para chamar este relatório:

     

    var rpt = new ReportDocument();
    string caminhoRpt = Server.MapPath("~/Atendimento/Atend_Receita.rpt");
    rpt.Load(caminhoRpt);
    rpt.SetDataSource((
    from R in db.FM_ReceitaMedicas where R.FM_ID.Equals(Convert.ToInt32((string)Page.Session["CodAtendimento"]))
    select R).ToList());
    CrystalReportViewer1.DisplayGroupTree =
    false;
    CrystalReportViewer1.HasCrystalLogo =
    false;
    CrystalReportViewer1.ReportSource = rpt;
    CrystalReportViewer1.DataBind();

    Por favor peço um auxilio de vcs expert no assunto.

    Obrigado.

    sexta-feira, 29 de janeiro de 2010 01:00

Respostas

  • Olá pessoal

    Utilizando este link http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/55064dee-7e6b-40ca-80ff-43e96675b65c que foi postado pelo André, eu consegui fazer com que meu relatório rodasse legal. Porém é frustrante não conseguir o resultado utilizando LinqToSQL, tava até pensando em começar a migrar para Entity Framework, já que estou utilizando o Visual Studio 2010, porém fico com o pé atrás, se com Linq que já é antigo ainda tenho este tipo de frustração, imaginem com uma tecnologia muito mais nova.

    Espero que alguém consiga em algum momento uma solução para o Crystal com Linq.

    Vou me aprofundar um pouco mais no Entity Framework e ver se vale a pena utilizálo.

     

    Abraços!


    Márlon Etiene.
    Se a resposta e/ou comentário foi útil, por favor não esqueça de marcar!

    Deus é Fiel!
    segunda-feira, 31 de maio de 2010 14:38

Todas as Respostas

  • Blz Anderson,

    Conseguiu resolver essa situação?
    M@rcus - Web Developer Asp.Net and C#
    sexta-feira, 12 de fevereiro de 2010 12:12
  • Ola Anderson, criei um aplicativo simples e queria mostar num rpt uma listagem de clientes tipo listão mesmo usando a linq.

     

    tem como dar uma dica ai?

     

     

    obrigado

    sexta-feira, 7 de maio de 2010 22:10
  • Clodoaldo,

    Acredito que você vai ter que, na hora de passar os dados para o relatório, converter seu LINQ to SQL pra um DataSet...

    http://stackoverflow.com/questions/97465/crystal-reports-and-linq


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 7 de maio de 2010 23:29
    Moderador
  • Ola Marcus, na verdade não consegui rodar não, acabei deixando de lado...

    Vou tentar rodar por aqui, se consegui escrevo os procedimentos para vc..

     

    Att

    Anderson

    sexta-feira, 7 de maio de 2010 23:40
  • O Andrezão, blz cara?

    teve jeito naum com exemplos do link ai referido com meu projeto, que é bem simplezinho so pra aprender mesmo.

    Entaum queria usar assim:

            private void button6_Click(object sender, EventArgs e)
            {
                using (DataLinqDataContext db = new DataLinqDataContext())
                {
                    CrystalReport1 rpt = new CrystalReport1();
                    var data = ((from R in db.Cad_Fornecedores
                                       select R).ToList());
                    rpt.SetDataSource(data);
                    crystalReportViewer1.ReportSource = rpt;
                }
            }

    O que me retorna a agradavel menssagem:

    DataSet does not support System.Nullable<>.

    Qualquer dica que me leve a um exemplo mais proximo disso sera util

    Obrigado

     

    sábado, 8 de maio de 2010 11:02
  • Clodoaldo,

    Talvez o último post desta thread do fórum americano tenha a solução para o seu problema:

    http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/55064dee-7e6b-40ca-80ff-43e96675b65c

    Vc passa o resultado da query pra essa função que te retorna uma DataTable consertando os valores nulos...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quinta-feira, 13 de maio de 2010 17:22
    Moderador
  • Daê And ????

     Cara vi o linq a ideia la naum da certo pois qd o campo naum é nulo ou seja ta vazio da o mesmo erro

    E quanto a conversão do tipo linq pra DataTable acho q da certo mas se vc escolhe trabalhar com a linq tem q funcionar com a linq e é nisso q estou trabalhando.

    flw

     

    quinta-feira, 13 de maio de 2010 19:21
  • Clodoaldo,

    O que acontece é que o Crystal Reports só aceita trabalhar com DataSet, então, não tem jeito... Você vai ter que converter o resultado da sua query LINQ para um DataSet (ou DataTable, como passei no último post)...

    Infelizmente (pelo menos até a versão atual), não vai ter jeito de passar direto o resultado da sua query LINQ pro relatório...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 14 de maio de 2010 05:45
    Moderador
  • Clodoaldo,

    O que acontece é que o Crystal Reports só aceita trabalhar com DataSet, então, não tem jeito... Você vai ter que converter o resultado da sua query LINQ para um DataSet (ou DataTable, como passei no último post)...

    Infelizmente (pelo menos até a versão atual), não vai ter jeito de passar direto o resultado da sua query LINQ pro relatório...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima


    Estou tendo o mesmo problema que o Anderson.

    André, na verdade o método SetDataSource do Crystal aceita 4 tipos diferentes de fonte de dados, a saber, DataSet, DataTable, IDataReade e IEnumerable.

    A única coisa que eu não entendo, é que utilizo o resultado da mesma StoredProcedure para outras finalidades, somente no Crystal não está funcionando.

    Agradeço se alguém tiver alguma idéia do que fazer.


    Márlon Etiene.
    Se a resposta e/ou comentário foi útil, por favor não esqueça de marcar!

    Deus é Fiel!
    segunda-feira, 31 de maio de 2010 14:22
  • Olá pessoal

    Utilizando este link http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/55064dee-7e6b-40ca-80ff-43e96675b65c que foi postado pelo André, eu consegui fazer com que meu relatório rodasse legal. Porém é frustrante não conseguir o resultado utilizando LinqToSQL, tava até pensando em começar a migrar para Entity Framework, já que estou utilizando o Visual Studio 2010, porém fico com o pé atrás, se com Linq que já é antigo ainda tenho este tipo de frustração, imaginem com uma tecnologia muito mais nova.

    Espero que alguém consiga em algum momento uma solução para o Crystal com Linq.

    Vou me aprofundar um pouco mais no Entity Framework e ver se vale a pena utilizálo.

     

    Abraços!


    Márlon Etiene.
    Se a resposta e/ou comentário foi útil, por favor não esqueça de marcar!

    Deus é Fiel!
    segunda-feira, 31 de maio de 2010 14:38