Descrição:
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.