quarta-feira, 27 de agosto de 2014

Reporting Services - Girar Imagem usando VB.NET

Um recurso interessante do reporting services é a possibilidade de execução de código VB.NET no seu relatório. Com isto em mãos podemos resolver inúmeras situações com pouco código. Imagine então a situação em que você possui uma imagem para ser adicionada no seu relatório. Porém o cliente precisa que esta imagem seja visualizada em um grau diferente, como por exemplo, na vertical. Não existe uma propriedade do componente de imagem na qual possa ser configurada esta alteração. Felizmente, via programação, resolvemos isto de forma bem simples, conforme mostrado abaixo.

Primeiro, vamos adicionar a referência da classe Drawing no relatório (opção Propriedades)



E vamos adicionar nosso código para girar a imagem




Function GirarImagem(ByVal imageDB As Byte()) As Byte()

        Dim ms As System.IO.Stream = New System.IO.MemoryStream(imageDB)
        ms.Seek(0, System.IO.SeekOrigin.Begin)

        Dim imgObj As System.Drawing.Bitmap = New System.Drawing.Bitmap(ms)
        imgObj.RotateFlip(System.Drawing.RotateFlipType.Rotate270FlipXY)

        Dim ms2 As System.IO.MemoryStream = New System.IO.MemoryStream()
        imgObj.Save(ms2, System.Drawing.Imaging.ImageFormat.Bmp)
        Dim bitmapData As Byte() = ms2.ToArray()

        Return bitmapData

End Function


Note que a função espera um parâmetro de imagem do tipo [Byte()], pois neste nosso exemplo o relatório busca a imagem como um campo no banco de dados (VarBinary)



Desta forma, vamos alterar a expressão do objeto de imagem para executar nossa função



E o resultado



Ref: Rotate Flip Types

[]s

Nenhum comentário:

Postar um comentário

<< Ao enviar um comentário, favor clicar na opção [Enviar por e-mail comentários de acompanhamento para gtezini@gmail.com] >>