none
Imagem como parâmetro ReportViewer RRS feed

  • Pergunta

  • Tenho um relatório feito pelo reportviewer que funciona perfeitamente, porém preciso de passar imagens para este relatório, que vai puxar de acordo com cada usuário que acessa, eu passo o caminho e a variável com o nome do usuário, porém a imagem não aparece, fica somente um "X" na imagem.

    reportViewer1.LocalReport.EnableExternalImages = true;
                string LogoPath = @"file://SERVER\atende\Relatórios\\" + usuario + ".jpg";
                MessageBox.Show(LogoPath);
                parameters.Add(new ReportParameter("imagem", LogoPath));
                reportViewer1.LocalReport.SetParameters(parameters);
    
    
                this.reportViewer1.RefreshReport();

    Arrastei a imagem corretamente, passei o parâmetro imagem para ela, porém não funciona.

    O caminho está correto, pois quando clico, abre normalmente. Nem quando coloco sem a variável, coloco o caminho direto, não da certo.

    Alguém pode me informar, caso esteja fazendo algo errado, por favor?

    Obrigado!


    quarta-feira, 4 de novembro de 2015 10:27

Respostas

  • Mariana vc se esses links te ajudam

    http://www.aspsnippets.com/Articles/Dynamically-add-and-display-external-Image-in-RDLC-Report-from-code-behind-in-ASPNet.aspx

    http://www.c-sharpcorner.com/UploadFile/abylex/show-images-in-reports-at-run-time-using-reportviewer/


    Junior

    • Marcado como Resposta Mariana C. Costa quarta-feira, 4 de novembro de 2015 12:23
    quarta-feira, 4 de novembro de 2015 11:06
  • Olá Mariana!

    Muito estranho hein.. Está parecendo alguma coisa com o caminho mesmo.. Tem certeza que essa variável "usuario" está sendo preenchida corretamente com o nome do arquivo que você está esperando? Além disso, tem certeza que o arquivo é realmente um jpg?

    Eu fiz dois testes aqui passando o caminho da imagem como parâmetro.. Um utilizando um caminho em disco e outro utilizando um caminho de rede.. Os dois funcionaram perfeitamente:

    this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ReportParameter1", @"File://C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg"));
    this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ReportParameter2", @"File://\\win7aal2\tstshare\Chrysanthemum.jpg"));


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    • Marcado como Resposta Mariana C. Costa quarta-feira, 4 de novembro de 2015 12:21
    quarta-feira, 4 de novembro de 2015 12:07
    Moderador

Todas as Respostas

  • Mariana vc se esses links te ajudam

    http://www.aspsnippets.com/Articles/Dynamically-add-and-display-external-Image-in-RDLC-Report-from-code-behind-in-ASPNet.aspx

    http://www.c-sharpcorner.com/UploadFile/abylex/show-images-in-reports-at-run-time-using-reportviewer/


    Junior

    • Marcado como Resposta Mariana C. Costa quarta-feira, 4 de novembro de 2015 12:23
    quarta-feira, 4 de novembro de 2015 11:06
  • Olá Mariana!

    Provavelmente o que está acontecendo no seu caso é que você esqueceu de configurar a propriedade EnableExternalImages como true..

    this.reportViewer1.LocalReport.EnableExternalImages = true;
    this.reportViewer1.RefreshReport();

    Para um guia detalhado de como exibir imagens a partir de um caminho em disco com o Report Viewer, confira este artigo:

    Exibindo uma imagem a partir de um caminho em disco no Report Viewer

    E, para outros artigos sobre o Report Viewer, confira este link:

    http://www.andrealveslima.com.br/blog/index.php/category/report-viewer/


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    quarta-feira, 4 de novembro de 2015 11:11
    Moderador
  • Na verdade, esta propriedade está habilitada com true, como se pode ver no código,

    porém mesmo assim a imagem aparece com um "X".

    quarta-feira, 4 de novembro de 2015 11:17
  • Poxa, que descuido meu.. Nao vi a primeira linha de código (ela saiu deslocada e acabou passando despercebido)..

    Vi que você está tentando carregar a imagem de um caminho em rede, certo? Você já tentou, só para testar, utilizar um caminho para uma imagem do seu disco local (c:\diretorio\imagem.jpg)?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    quarta-feira, 4 de novembro de 2015 11:26
    Moderador
  • Sem problemas :)

    pois é, tentei assim também passando este caminho:

     string LogoPath = "file://" + @"C:/Atendimento Domínio/" + usuario + ".jpg";

    Inverti as barras, mudei, e nada rs, 

    não estou entendendo o motivo de não dar certo, sendo que eu jogo esse endereço na barra de tarefas, e localizo sem nenhum problema.

    quarta-feira, 4 de novembro de 2015 11:46
  • A propósito, Mariana, se você realmente está tentando exibir uma imagem a partir da rede, eu tentaria o seguinte formato:

    string LogoPath = @"file://\\SERVER\atende\Relatórios\" + usuario + ".jpg";


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    quarta-feira, 4 de novembro de 2015 11:47
    Moderador
  • Dessa forma também não consegui, continua com o mesmo erro,

    Em um outro projeto que fiz, que precisei fazer a mesma coisa, coloquei da seguinte forma

    string LogoPath =  "file://" + Path.GetDirectoryName(Application.ExecutablePath) + @"\\imagens\logoempresa\\"+id_empresa+".jpg";

    e deu certo, porém nesse não está dando. Provavelmente deve ser o caminho, porém todas as formas, não consigo abrir a imagem.

    quarta-feira, 4 de novembro de 2015 11:54
  • Olá Mariana!

    Muito estranho hein.. Está parecendo alguma coisa com o caminho mesmo.. Tem certeza que essa variável "usuario" está sendo preenchida corretamente com o nome do arquivo que você está esperando? Além disso, tem certeza que o arquivo é realmente um jpg?

    Eu fiz dois testes aqui passando o caminho da imagem como parâmetro.. Um utilizando um caminho em disco e outro utilizando um caminho de rede.. Os dois funcionaram perfeitamente:

    this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ReportParameter1", @"File://C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg"));
    this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ReportParameter2", @"File://\\win7aal2\tstshare\Chrysanthemum.jpg"));


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    • Marcado como Resposta Mariana C. Costa quarta-feira, 4 de novembro de 2015 12:21
    quarta-feira, 4 de novembro de 2015 12:07
    Moderador
  • Mariana vc já olhou os links que te mandei ?

    Junior

    quarta-feira, 4 de novembro de 2015 12:08
  • Olhei sim Junior, porém mesmo assim não consegui, pois fiz da mesma forma, e ocorria o mesmo problema,

    Obrigado pela ajuda, conforme vi que estava tudo certo, comecei a acreditar que o problema poderia ser no caminho do relatório.

    quarta-feira, 4 de novembro de 2015 12:20
  • Obrigado Andre, você me chamou atenção pra algo importante, o tipo da imagem, então alterei o tipo pra png, e coloquei outra imagem, confirmando o formato e deu certo, muito obrigado por sua ajuda! 
    quarta-feira, 4 de novembro de 2015 12:21
  • Que é isso Mariana! Fico feliz que você tenha conseguido resolver o seu problema! Até a próxima!

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    quarta-feira, 4 de novembro de 2015 12:24
    Moderador