none
Inserir imagens dinamicamente no ReportViewer RRS feed

  • Pergunta

  • Olá.

    Estou trabalhando em um sistema desktop que necessita do ReportViewer, a minha dificuldade é em inserir 'n' imagens no reportViewer e depois gerar PDF.

    Um solução que encontrei é usar parâmetro só que não atende o quesito 'n', só consigo inserir uma imagem por parâmetro.

    Dim dir As String = "C:\Users\01TEC\Desktop\Relatorio_Funcionarios2\FuncionariosReport\images\Koala.jpg"
            Dim lstDir As New List(Of String)
            lstDir.Add(dir)
            dir = "C:\Users\01TEC\Desktop\Relatorio_Funcionarios2\FuncionariosReport\images\Koala.jpg"
            lstDir.Add(dir)
            dir = "C:\Users\01TEC\Desktop\Relatorio_Funcionarios2\FuncionariosReport\images\Penguins.jpg"
            lstDir.Add(dir)
            dir = "C:\Users\01TEC\Desktop\Relatorio_Funcionarios2\FuncionariosReport\images\Tulips.jpg"
            lstDir.Add(dir)
    
    
    
            ReportViewer1.LocalReport.EnableExternalImages = True
            Dim prm2 As New ReportParameter("ReportParameter2", lstDir.ToArray())
            
    
    
            ReportViewer1.LocalReport.SetParameters(New ReportParameter() {prm, prm2, prm3})

    Alguém conhece outra forma de resolver isso?

    Aguardo resposta. Obrigado

    quarta-feira, 27 de fevereiro de 2013 17:12

Respostas

Todas as Respostas

  • Já descobri como colocar as imagens. 

    Obrigado a todos.

    segunda-feira, 11 de março de 2013 18:59
  • Bom dia, estou tendo o mesmo problema, por favor, como vc descobriu?
    quinta-feira, 15 de agosto de 2013 14:14
  • Olá Luciano,

    Realmente eu deveria ter postado a resposta para todos verem, está um pouco atrasado, mas irei postar aqui a solução que encontrei, espero que ajude alguém ainda.

    Primeiro passo, no reportviewer você deve criar uma tabela que ira receber e dentro de uma celula dessa tabela adicionar uma imagem (é só arrastar o componente Image da Toolbox), em seguida clique com o botão direito na celula que contém a imagem e vai em "Image Properties"


    Deve alterar o Select the image source para "External"

    Em seguida clique no botão "Fx" do campo "Use this image" para adicionar uma expressão.

    e adicione isso: ="file:///" & Fields!caminho.Value

    A variável caminho deve já estar em um dataset

    Agora dentro do seu Windows forms, no carregamento do componente do reportviewer

            ReportViewer1.LocalReport.EnableExternalImages = True
            Me.ReportViewer1.RefreshReport()

    E carrega a imagem desta forma

    'Consulta em linq que me retorna o caminho da imagem absoluto

    Dim registrosConserv = (From a In db.view_registro_anexo_diretorios Where a.registro = _registro And a.anexo_tipo = 1 Select a.caminho, registro = Nothing, anexo_tipo = Nothing, usuario_maquina = Nothing).ToList

    'Carrega os dados no binding, nesse caso eu criei uma view, mas é necessário.

    'O componente requerer que todos os campos que estejam na consulta sejam igual ao do DataSet do ReportData

    Me.view_registro_anexo_diretorioBindingSource.DataSource = registrosConserv


    ReportViewer1.RefreshReport()

    Veja se isso pode te ajudar Luciano, quando pesquisei sobre a inserção de imagem não achei nada parecido com isso, tive que ir testando e buscando outras informações.


    sexta-feira, 13 de dezembro de 2013 12:45