11647 - Relatórios - Relacionamento entre tabelas para componente de imagem
Problema: Em modelo de relatório há um componente de imagem em uma seção detalhe cuja informação (campo blob) é de outra tabela. Mesmo havendo ligação entre as tabelas a partir da seção detalhe, ao executar o relatório somente os registros da detalhe que contém informação na tabela filha (do componente imagem) são listados.
Exemplo:
Seção detalhe com a tabela base R034FUN, nesta há um componente que lista a foto dos colaboradores (tabela R034FOT). Somente estão sendo listados os colaboradores que possuem foto.
Quando ocorre / onde se aplica: Recursos > Implementações > Gerador Relatórios.
Solução: Para que o relatório liste as informações de registro da seção detalhe mesmo que não haja registro filho na tabela da imagem, nas propriedades do componente imagem deve-se informar a tabela.campo e ligar as duas tabelas através da propriedade 'Conexão'.
Em seguida, deve-se acessar as propriedades da seção detalhe, e através da propriedade 'Relacionamento', clicar sobre o relacionamento com tabela da imagem e em seguida clicar em Sem conexão.
Desta forma somente o componente imagem ficará com o relacionamento, fazendo com que o relacionamento do comando SQL não faça o filtro com a tabela filha.
No caso do exemplo acima, os procedimentos seriam:
- Na Imagem, propriedade Tabela/Campo, selecionar o campo R034FOT.FotEmp;
- Na Imagem, propriedade Conectar, alterar a conexão da tabela da R034FOT para a R034FUN (NumEmp, TipCol e NumCad);
- Na Seção Detalhe, propriedade Relacionamento, selecionar a tabela R034FOT e clicar em Sem Conexão.
Pode ser utilizada também a função 'CarregaImgControle', conforme exemplo abaixo:
Propriedade no relatório: Descrição: Imagem001_Na Impressão
Definir Alfa vAuxSql;
Definir Alfa vNumEmpAux;
Definir Numero vNumEmp;
Inicio
vNumEmp=EmpAtu;
IntParaAlfa (vNumEmp, vNumEmpAux);
vAuxSql=R030LOG.NUMEMP=+vNumEmpAux;
CarregaImgControle (Imagem001, 1, R030LOG.LogEmp, vAuxSql, 1);
Fim;
Validade: /#31/12/2050#
Público: Interno, canais/consultores, clientes
Exemplo:
Seção detalhe com a tabela base R034FUN, nesta há um componente que lista a foto dos colaboradores (tabela R034FOT). Somente estão sendo listados os colaboradores que possuem foto.
Quando ocorre / onde se aplica: Recursos > Implementações > Gerador Relatórios.
Solução: Para que o relatório liste as informações de registro da seção detalhe mesmo que não haja registro filho na tabela da imagem, nas propriedades do componente imagem deve-se informar a tabela.campo e ligar as duas tabelas através da propriedade 'Conexão'.
Em seguida, deve-se acessar as propriedades da seção detalhe, e através da propriedade 'Relacionamento', clicar sobre o relacionamento com tabela da imagem e em seguida clicar em Sem conexão.
Desta forma somente o componente imagem ficará com o relacionamento, fazendo com que o relacionamento do comando SQL não faça o filtro com a tabela filha.
No caso do exemplo acima, os procedimentos seriam:
- Na Imagem, propriedade Tabela/Campo, selecionar o campo R034FOT.FotEmp;
- Na Imagem, propriedade Conectar, alterar a conexão da tabela da R034FOT para a R034FUN (NumEmp, TipCol e NumCad);
- Na Seção Detalhe, propriedade Relacionamento, selecionar a tabela R034FOT e clicar em Sem Conexão.
Pode ser utilizada também a função 'CarregaImgControle', conforme exemplo abaixo:
Propriedade no relatório: Descrição: Imagem001_Na Impressão
Definir Alfa vAuxSql;
Definir Alfa vNumEmpAux;
Definir Numero vNumEmp;
Inicio
vNumEmp=EmpAtu;
IntParaAlfa (vNumEmp, vNumEmpAux);
vAuxSql=R030LOG.NUMEMP=+vNumEmpAux;
CarregaImgControle (Imagem001, 1, R030LOG.LogEmp, vAuxSql, 1);
Fim;
Validade: /#31/12/2050#
Público: Interno, canais/consultores, clientes