none
Como criar esse relatório - ReportViewer RRS feed

  • Pergunta

  • Bom dia a todos. 

    Pessoal, estou tentando criar um relatório que fique da seguinte forma:

    Porém, não estou conseguindo fazer. Os dados puxam correto, mas não consigo exibir o nome do colaborador apenas uma vez e todos os cargos dele abaixo, e fazer assim com todos. 

    Do jeito que consegui, ele mostra todos os dados, mas pra cada linha, ele mostra o nome do colaborador. 

    Consegui de outro jeito que ficou errado também, que assim: Ele mostra o nome do primeiro colaborador e depois mostra todos os dados, sem mostrar o nome do restante.

    -----

    Criei uma view para capturar todos os dados e fazer o select. Vejam abaixo meu código:

            private void btGerar_Click(object sender, EventArgs e)
            {
                reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);
                reportViewer1.ZoomMode = ZoomMode.PageWidth;
    
                var FillProjeto = (from b in ef.historico
                                   where b.projetos.projeto == cbSelect.Text
                                   orderby b.tb_colaborador.nome
                                   select new
                                   {
                                       Colaborador = b.tb_colaborador.nome,
                                       Cargo = b.nomes_cargos.nome,
                                       Projeto = b.projetos.projeto,
                                       Início = b.inicio,
                                       Término = b.termino
                                   }).ToList();
    
                var FillColaborador = (from b in ef.historico 
                                       where b.tb_colaborador.nome == cbSelect.Text 
                                       orderby b.tb_colaborador.nome
                                       select new
                                       {
                                           Colaborador = b.tb_colaborador.nome,
                                           Cargo = b.nomes_cargos.nome,
                                           Projeto = b.projetos.projeto,
                                           Início = b.inicio,
                                           Término = b.termino
                                       }).ToList();
    
                var FillAll = (from b in ef.historico 
                               orderby b.tb_colaborador.nome
                               select new
                               {
                                   Colaborador = b.tb_colaborador.nome,
                                   Cargo = b.nomes_cargos.nome,
                                   Projeto = b.projetos.projeto,
                                   Início = b.inicio,
                                   Término = b.termino
                               }).ToList();
    
                if (cbTipo.Text == "Projeto")
                {
                    hISTOBindingSource.DataSource = FillProjeto;
                }
                else if (cbTipo.Text == "Colaborador")
                {
                    hISTOBindingSource.DataSource = FillColaborador;
                }
                else if (cbTipo.Text == "Todos")
                {
                    hISTOBindingSource.DataSource = FillAll;
                }
                else
                    return;
    
                reportViewer1.ProcessingMode = 
    Microsoft.Reporting.WinForms.ProcessingMode.Local;
                reportViewer1.RefreshReport();
            }

    Espero que possam me ajudar. Muito obrigado, desde já. 

    quinta-feira, 18 de abril de 2013 14:48

Todas as Respostas

  • Cara, não entendi porque você fez 3 queries? rs

    Eu faria o seguinte, uma única query que possui todas as informações, ex:

    colaborador | cargo | projeto | data | etc...

    No seu design, eu criaria uma table e falaria para agrupar por colaborador!

    Acho que isso já resolva, ou seja um caminho!

    Abs

    terça-feira, 23 de abril de 2013 21:28
  • Você conseguiu fazer?

    Preciso fazer isso também... é com colaboradores, cargos, mas preciso agora de puxar da tabela exames médicos, para mostrar quais exames eles tem que fazer.

    Como o ReportView não aceita dois data set, estava pensando em fazer igual voce fez ai.

    Voce conseguiu?

    Aguardo.


    -------------------- Leonardo Nascimento Cintra

    segunda-feira, 6 de maio de 2013 13:55