O armazenamento de imagens em bases de dados, designado por BLOB's(binary large object), é um processo muito comum quando se trabalha com dados. Existem vantagens e desvantagens em guardar as imagens na base de dados, ou apenas o seu caminho ou URL, e se no SQL Server o processo é simples, como podem ver no artigo Inserir Imagens no SQL Server, em outras bases de dados, como o Access, o processo é mais complicado.
O objectivo deste artigo não é enumerar as vantagens e desvantagens de ambos os métodos, mas sim mostrar com se pode mostrar as imagens num relatório em ambos os métodos. Neste caso será mostrado apenas para SQL Server, e deverá ser semelhante para outras bases de dados, excepto Access, uma vez que a imagem é guardada como objecto.
Imagem na base de dados
Caso a imagem esteja guardada na base de dados, é apenas necessário inserir um controlo Image, da Toolbox, no controlo Table.
Depois, e nas propriedades do controlo, definir como Value o campo respectivo da base de dados, a Source como Database e o MIMEType adequado. Neste exemplo será seleccionado image/png.
Caminho na base de dados
Caso na base de dados apenas esteja gravado o caminho para o ficheiro ou URL, pode-se inserir um controlo Image, da Toolbox, no controlo Table, como no exemplo anterior, mas na propriedade Value indica-se: ="File://" & Nome do Campo.
Define-se também a propriedade Source como External.
Finalmente, através de código ou nas propriedade do ReportViewer, é necessário indicar que este permite a utilização de imagens externas, definindo EnableExternalImages como True.
Me.ReportViewer1.LocalReport.EnableExternalImages = True
Como podem nestes dois exemplos, para os dois métodos possível, os relatórios são muito flexíveis e permitem de uma forma bastante simples mostrar as imagens guardadas ou através dos caminhos guardados
PS: Como sempre, qualquer dúvida, comentário ou correcção ao artigo é sempre bem vinda!
1 comentários:
Boa noite, Jorge Paulino
Primeiramente parabéns pelo Blogger, muito bom!
Eu estou há vários dias tentando mostrar imagem no Reports, mas não estou conseguindo.
Eu tenho um banco de dados em Access com os campos ID e Imagem (apenas o caminho da imagem), gostaria de ajuda para inserir a imagem no ReportViewer...estou a programar em C# no VS 2010.
Poderia me ajudar?
Enviar um comentário