Usuário com melhor resposta
Inserir imagens dinamicamente no ReportViewer

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
Respostas
-
Já descobri como colocar as imagens.
Obrigado a todos.
- Marcado como Resposta André Cesconetto segunda-feira, 11 de março de 2013 18:59
Todas as Respostas
-
Já descobri como colocar as imagens.
Obrigado a todos.
- Marcado como Resposta André Cesconetto segunda-feira, 11 de março de 2013 18:59
-
-
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.
- Sugerido como Resposta André B. Cesconetto sexta-feira, 13 de dezembro de 2013 13:00