Como posso dinamicamente centro de uma imagem em um MS de relatório do Reporting Services?
-
08-06-2019 - |
Pergunta
Fora da caixa, no MS Reporting Services, o elemento de imagem não permitir a centralização da imagem em si, quando as dimensões são desconhecidas no momento da concepção.Em outras palavras, a imagem (imagens) (se menor do que as dimensões previsto na superfície de design) será ancorado ao canto superior esquerdo, não no centro.
O meu relatório vai saber a URL da imagem em tempo de execução, e eu preciso ser capaz de centralizar essa imagem se ela é menor do que as dimensões especificadas no meu designer.
Solução
Aqui está como eu era capaz de fazer isso.Com a ajuda de Chris Hays
O tamanho da imagem para ser tão grande como você deseja no relatório, altere "Dimensionamento" propriedade "Clip".
Definir dinamicamente a imagem da esquerda preenchimento usando uma expressão:
=CStr(Round((4.625-System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Width/96)/2,2)) & "in"
Definir dinamicamente a imagem do topo de preenchimento usando uma expressão:
=CStr(Round((1.125-System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Height/96)/2,2)) & "in"
A primeira modificação feita para Chris código foi trocar as dimensões de minha elemento de imagem no relatório (minha imagem foi 4.625x1.125 - ver números acima).
Eu também escolhi para começar o stream a partir de uma URL em vez de o banco de dados.Eu usei WebRequest.Criar.GetResponse.GetResponseStream fazer para isso.
Até aí tudo bem - eu Espero que ajude!