KB-36292: Alterando figura do Relatório em tempo de execução.

Descrição:

É possível alterar as figuras do Relatório em tempo de execução antes de realizar a impressão?
Solução:
Sim; para isto, siga os procedimentos abaixo:

1. Adicione um Histórico com um campo associado a um Tag Interno que será responsável por receber o caminho da imagem, e configure-o para não gravar mais registros (tempo de gravação = 0);
2. No Relatório, adicione um objeto Figura e um Campo de Dados;
3. Na Consulta do Relatório que também contém seus dados, deve-se utilizar a seguinte lógica:

SELECT TabelaTemperatura.E3TimeStamp,TabelaTemperatura.Temperatura1,
TabelaTemperatura.Temperatura2 ,(select(LocalImagem) from TabLocalImagem) as Imagem
FROM TabelaTemperatura 
WHERE ( TabelaTemperatura.E3TimeStamp  > #<%DataInicial%>#  AND   TabelaTemperatura.E3TimeStamp < #<%DataFinal%># ) 
ORDER BY TabelaTemperatura.E3TimeStamp  ASC

4. Nomeie a propriedade DataField do Campo de Dados adicionado anteriormente como Imagem e configure sua propriedade Visible para False (variável criada na aba SQL da Consulta);
5.  No Relatório, deve-se escrever o seguinte script para passar o caminho da imagem para o objeto Figura do Relatório:

Sub OnFormat

Set NomeFigura = Report.Sections("PageHeader").Controls("Field1")
Set Imagem = Report.Sections("PageHeader").Controls("Image1")
Imagem.Picture = LoadPicture(NomeFigura)

End Sub

6. Antes de realizar a impressão, deve-se passar o caminho da imagem para o registro do Histórico criado na primeira etapa:

  • Crie uma Consulta na tela onde está o botão que realiza a impressão;
  • Adicione a tabela que contém apenas um registro do caminho da imagem;
  • Adicione esse registro na Consulta;
  • Vá à aba SQL, habilite a opção de edição da estrutura SQL e digite o seguinte comando:

 

UPDATE TabLocalImagem
SET LocalImagem = '<%CaminhoImagem%>'
  • No script que realiza a impressão do Relatório, adicione as seguintes linhas para buscar a imagem e  atualizar o caminho da imagem no Histórico:
'Carrega imagem selecionada em um tag para ser salva no Histórico

Application.ShowFilePicker True, ImagemCaminho

Application.GetObject("Dados.CaminhoImagem").Value = ImagemCaminho

'Grava caminho da imagem no Histórico
Screen.Item("ConsultaImagem").SetVariableValue "CaminhoImagem", ImagemCaminho
Screen.Item("ConsultaImagem").Execute(True)

Para mais detalhes, veja a aplicação exemplo em anexo.

Anexos:

ExemploRelatórioFiltroFoto.zip

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *