Usuário com melhor resposta
Linq to sql com crytal report

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.- Movido C. Augusto Proiete [MVP] domingo, 31 de janeiro de 2010 18:53 Movido para fórum apropriado (De:C#)
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!- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 1 de junho de 2010 11:50
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 20:39
Todas as Respostas
-
-
-
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 -
-
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
-
Clodoaldo,
Talvez o último post desta thread do fórum americano tenha a solução para o seu problema:
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- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 1 de junho de 2010 11:50
-
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
-
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 -
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! -
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!- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 1 de junho de 2010 11:50
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 20:39