none
Crystal Report no MVC RRS feed

  • Pergunta

  • Olá,

    Eu preciso criar relatórios no MVC utilizando crystal report.

    Pelo wizard eu consigo criar um arquivo, mas como eu faço a referencia a ele num formulario, e como eu preencho ele com as informações para exibí-lo depois?

    Valeu.

    sexta-feira, 11 de setembro de 2009 14:44

Respostas

  • Muito obrigado, gente.

    Mas, como o meu projeto com mvc está parado, não vou mexer com isso por enquanto.

    Futuramente voltarei a pesquisar a respeito.

    Obrigado pelas orientações.
    • Marcado como Resposta joaoluizbt quinta-feira, 1 de outubro de 2009 13:48
    quinta-feira, 1 de outubro de 2009 13:48

Todas as Respostas

  • João, pelo que me lembro o Crystal depende de controles web, no estilo webforms. Se for o caso, não vai funcionar muito bem, e é capaz de não funcionar totalmente.
    Como você faz com webforms? Dá um exemplo.
    Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com
    sexta-feira, 11 de setembro de 2009 16:04
    Moderador
  • Uma alternativa seria gerar o pdf "programaticamente" (as classes do Crystam permitem isso) e posteriormente exibi-lo.
    segunda-feira, 14 de setembro de 2009 12:05
  • uhm...entendo...o pior é que eu nunca mexi com crystal e não sei gerar pdf "programaticamente".

    Voce conhece links ou tutoriais que me auxiliem a fazer isto no mvc?
    segunda-feira, 14 de setembro de 2009 13:51
  • Abaixo alguns exemplos catadas da internet

    link: http://www.beansoftware.com/ASP.NET-Tutorials/Export-Crystal-Reports-To-PDF.aspx

    Trecho de código:

    // Shoot directly on .PDF page System.IO.MemoryStream oStream = (System.IO.MemoryStream)crReportDocument.ExportToStream(ExportFormatType.PortableDocFormat); Response.Clear(); Response.Buffer = true; Response.ContentType = "application/pdf"; Response.BinaryWrite(oStream.ToArray()); Response.End();
    terça-feira, 15 de setembro de 2009 12:18
  • Eu dei uma olhada no site, parece-me que o cristal não está sendo usado num projeto com o padrão MVC, certo?

    Eu preciso saber como utilizar o crystal report no MVC.

    Valeu.
    terça-feira, 15 de setembro de 2009 18:53
  • João,

    Eu procurei varias maneiras que fossem agradeveis para geração de relatórios no ASP NET MVC, e encontrei uma que gostei muito, que é a geração de arquivos Pdf, escrevi para a minha aplicação um PdfActionResult onde passo para este uma coleção e ele monta uma tabela no Pdf.

    Como você quer usar o Crystal seus relatórios terão de funcionar em páginas do tradicional ASP NET. O link abaixo mostrar como integrar páginas do ASP NET tradicional (WebForms) com o ASP NET MVC.

    http://www.packtpub.com/article/mixing-asp.net-webforms-and-asp.net-mvc

    Fazendo isto sua aplicação não ficará tão elegante mas resolverá seu problema quanto ao uso do Crystal.

    Espero ter ajudado. Qualquer dúvida favor entrar em contato.

    Douglas Aguiar
    MCAD, MCT
    • Sugerido como Resposta Douglas Aguiar sábado, 19 de setembro de 2009 13:35
    sábado, 19 de setembro de 2009 13:35
  • João,

    Alguma das respostas resolveu pra você?
    Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com
    segunda-feira, 21 de setembro de 2009 16:07
    Moderador
  • Olá Giovanni,

    Pior que não... está muito complexo para mim...
    e eu precisei me envolver com outro projeto aqui no trabalho, e este ficou em stand by.

    ...
    segunda-feira, 21 de setembro de 2009 17:13
  • Pessoal, ficamos nas super idéias e não resolvemos...
    Isso significa que Crystal não roda no MVC?
    O Douglas propôs uma idéia de misturar WebForms e MVC, algo que não vejo com bons olhos, mas talvez seja mesmo a única maneira. E aí?
    Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com
    segunda-feira, 21 de setembro de 2009 17:22
    Moderador
  • Outra solução seria utilizar o iTextSharp (http://sourceforge.net/projects/itextsharp/) gero meus PDFs com ele. É um pouco trabalhoso, porém é bem flexivel.
    segunda-feira, 21 de setembro de 2009 20:26
  • System.IO.MemoryStream oStream = (System.IO.MemoryStream)crReportDocument.ExportToStream(ExportFormatType.PortableDocFormat);
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(oStream.ToArray());
    Response.End();


    Um determinado controller pode instânciar as classes do Crystal (crReportDocument) e usar o recurso para exportação em PDF (ExportToStream), devolver esse objeto (oStream) para a view que seta o ContentType da página e "escreve" o oStream; como no exemplo citado.

    Não testei mas acredito que isso funciona, e inibiria o a mistura de WebForms's.

    De qualquer forma alguém tem alguma noticia se uma versão "adaptada" do CR está a caminho?
    • Sugerido como Resposta Douglas Aguiar terça-feira, 29 de setembro de 2009 12:24
    sexta-feira, 25 de setembro de 2009 18:54
  • João e Giovanni,

    Na aplicação que minha equipe esta desenvolvendo aqui na Siteware estamos usando o iTextSharp, criei um PdfResult que retorna um relatório Pdf em formato de tabela baseado em uma coleção que passei para o PdfResult.

    João aconselho que você use o iTextSharp, ele é difícil de mexer no começo, mas depois que você pega o jeito fica fácil, ele é muito flexível e da para fazer relatórios mais elaborados. Ele só não tem uma ferramenta gráfica para desenhar o relatório e tudo deve ser feito na mão. Para ficar fácil de mexer com o tempo você terá de abusar da OO e dos conceitos de reusabilidade.

    Espero ter ajudado. Qualquer dúvida favor entrar em contato.

    Douglas Aguiar
    MCAD, MCT


    quarta-feira, 30 de setembro de 2009 11:11
  • Muito obrigado, gente.

    Mas, como o meu projeto com mvc está parado, não vou mexer com isso por enquanto.

    Futuramente voltarei a pesquisar a respeito.

    Obrigado pelas orientações.
    • Marcado como Resposta joaoluizbt quinta-feira, 1 de outubro de 2009 13:48
    quinta-feira, 1 de outubro de 2009 13:48