none
Iniciando com ReportViewer RRS feed

  • Pergunta

  • Comecei a fazer um relatório com ReportViewer. Esse relatório deve ser de uso geral, para todos os meus projetos, logo eu estou fazendo-o em separado, a parte, sem estar atrelado a nenhum projeto. Então vem as dúvidas:

    1) Posso fazer dessa forma e depois atribuir a qualquer projeto(óbvio que são projetos acessando a mesma base e etc...)

    2) Como eu estou fazendo dessa forma, no projeto ele criou um form e quando dou F5 esse form não carrega o meu relatorio: Report1.rdlc. Como eu faço para mostrar nesse form o meu Rel.

    3) Como eu faço para usar C# puro e não usar o Design do relatorio, ou seja, ao invés de faze-lo Desenhado, eu prefiro fazer Programado.

    quinta-feira, 25 de outubro de 2012 16:46

Todas as Respostas

  • Olá,

    O reportviewer não oferece suporte para você desenha-lo via programação. Você não consegue acessar as propriedades internas do report. Você terá que faze-lo pelo design mesmo.

    Contudo, há um método que você consegue alterar qualquer coisa do report, mas as chances de erro são enormes, visto que a alteração é feita vai xml e string pura (sem dados tipados).

    Só um exemplo (Usando LINK):

    - Inicialmente você carrega o report num xml (path é o caminho do arquivo do report):

    XElement doc = XElement.Load(path);

    - Tendo o meu report carregado no objeto "doc", eu posso manipular dá forma que eu quiser. Vou instanciar o cabeçalho do report:

     XNamespace xmlns = "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition";

    //Procura pelo cabeçalho do report
     XElement cabecalho = doc.Element(xmlns + "Page").Elements(xmlns + "PageHeader").Descendants().ElementAt(0);

    - Apartir daí você pode fazer qualquer alteração nos elementos do report. mas qualquer alteração, terá de ser no padrão do report senão dará erro. Por exemplo, o report utiliza um padrão para declarar um textbox, Você deverá seguir o mesmo padrão e escrever no xml da mesma forma que o report faz. Você pode ver a estrutura de um report, clicando com o botão direito no arquivo e selecionando "open with xml editor".

    - Depois de feito tudo que queria com o xml, basta fazer:

    using (StringReader rdlcOutputStream = new StringReader(doc.ToString()))
                {
                    ReportViewer1.LocalReport.LoadReportDefinition(rdlcOutputStream);
                }

    e pronto. Ta feito.

    PS: Não aconselho você a fazer isso. As chances de erro são enormes, você levará uma eternidade para desenhar seu report.


    quinta-feira, 25 de outubro de 2012 20:05
  • Para criar relatórios somente via programação, use o PrintDocument.

    Veja dicas nesse link: Thread

    Att

    sexta-feira, 26 de outubro de 2012 10:23