Imagens em Relatório tirada de uma Tabela de Parametros
Prezado Consultor,
Estou desenvolvendo um Sistema para um Grupo de Conselhos, a versão do Delphi é Delphi2006, utilizando a arquitetura de multicamadas, usando o Borland Socket Server(BSS).
Criei uma Tabela de Parametros porque cada conselho tem seu próprio Logotipo e outras caracteristicas próprias.
Formato da Tabela:
Create Table Parametros(
Nome_Conselho_Extenso Varchar(70) not null,
LogoTipo_Conselho Blob Sub_Type 0 Segment Size 80,
..........)
Criei um relatorio Geral de nome UQRBASE2 que vai servir de base para os outros relatorios, ou seja eles serão herdados deste relatorio Geral; coloquei nele um QRDBImage(estou usando o Quick Report) e fiz a ligação dele com o campo de LogoTipo_Conselho da Tabela de Parametros mencionada acima, preenchendo o datasouce e o datafield deste componente.
Quando eu vou executar um relatório herdado deste UQRBASE2 e peço um preview a imagem do logotipo do conselho não aparece. Não sei o que está acontecendo. Peço a sua ajuda por favor.
OBS: Antes de chamar o relatório devo abrir esta tabela de parametros?
Estou usado DBExpress, ClientDataset, etc.
Atenciosamente,
Pedro da Conceição
Pedro Conceição
Curtidas 0
Respostas
Rodrigo Mourão
23/06/2009
Olá Pedro, o uso de imagens no QuickReport e bem tranquilo. Se seu campo e blob e vc esta usando um ClientDataSet entao basta colocar um QRDBImage no relatorio e conectar a propriedade DataSet ao CDS e a propriedade DataField ao campo blob.
O CDS precisa sim esta aberto para exibir os dados no CDS. Eu fiz um pequeno exemplo, bem rápido para que vc possa ver. Bata colocar o arquivo .GDB na diretorio C. Precisa do Interbase para rodar.
segue exemplo: www.rmfactory.com.br/rmfontes/PreviewQuick.rar
Abs!!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
O CDS precisa sim esta aberto para exibir os dados no CDS. Eu fiz um pequeno exemplo, bem rápido para que vc possa ver. Bata colocar o arquivo .GDB na diretorio C. Precisa do Interbase para rodar.
segue exemplo: www.rmfactory.com.br/rmfontes/PreviewQuick.rar
Abs!!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
23/06/2009
Olá Amigo, o exemplo lhe ajudou?
Há mais alguma dúvida?
Estamos aguardando para podermos encerrar o chamado.
Abs!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Há mais alguma dúvida?
Estamos aguardando para podermos encerrar o chamado.
Abs!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Pedro Conceição
23/06/2009
Prezado Rodrigo,
Obrigado pela sua atenção, me esclareceu alguns pontos que eu tinha dúvida.
Mas a questão é que o meu relatorio base(URBASE) ele tem na faixa PAGE HEADER, o logotipo do conselho e o nome do conselho que são tirados da Tabela de Parametros.
Agora criei um relatorio herdado dele (QRBASEANIVERSARIANTES) QUE contem uma faixa DETAIL QUE contem o nome do aniversariante, seu endereco etc. Estes dados são tirados da tabela de Aniversariantes.
Este QRBASEANIVERSARIANTES TEM SUA PROPRIEDADE DATASET apontada para o ClientDataSet Aniversariante.
Ou seja, os dados da faixa PAGE HEADER que contem o logotipo do conselho Apontam para a Tabela de Parametros; e os dados da faixa DEtail apontam para a tabela de Aniversariantes.
Eu mando executar o relatorio: QRBASEANIVERSARIANTES.Preview. Neste relatorio cuja propriedade dataset aponta para a tabela de aniversariantes a imagem do logotipo não está aparecendo, sendo que ele e herdado do relatorio base URBASE.
Este é o meu problema. Não sei o que fazer para a imagemdo logotipo aparecer.
Peço a sua ajuda.
Atenciosamente,
Pedro da Conceição
GOSTEI 0
Rodrigo Mourão
23/06/2009
Olá Pedro.
Com o quick eu nao vejo uma solução, não sou especialista em QuickReport mas cada relatorio tem que esta conectado a um data set para reinderizar os dados. Assim ou vc conect a tabela de parametro ou a tabela de aniversariantes mesmo herdando pois quando vc herda vc na verdade tem uma extesao do objeto.
Com Rave isso seria simples pois o rave pode ter varais fontes de dados para um memso relatorio.
Como lhe falei nao sou especialista mas vou tentar algo aqui para ve se obtemos sucesso.
Abs !!!!
Com o quick eu nao vejo uma solução, não sou especialista em QuickReport mas cada relatorio tem que esta conectado a um data set para reinderizar os dados. Assim ou vc conect a tabela de parametro ou a tabela de aniversariantes mesmo herdando pois quando vc herda vc na verdade tem uma extesao do objeto.
Com Rave isso seria simples pois o rave pode ter varais fontes de dados para um memso relatorio.
Como lhe falei nao sou especialista mas vou tentar algo aqui para ve se obtemos sucesso.
Abs !!!!
GOSTEI 0
Pedro Conceição
23/06/2009
Prezado Rodrigo,
Só estou postando esta mensagem para saber se voce já encontrou alguma solução para o meu problema? Estou tambem tentando algumas alternativas.
Obrigado,
Pedro da Conceição
GOSTEI 0
Rodrigo Mourão
23/06/2009
Pedro, infelizmente não !!
O fato é que o quick report possui um propriedade DataSet, que deverá ser conectada a fonte de dados que vai reinderizar os Detalhes. Eu fiz como vc mencionou, criei um form com um cabecalho conectado a uma tebela para trazer a imagem. Ate ai legal.
Quando eu herdo para poder gerar um relatorio eu tenho que apontar o DataSet para a fonte de dados correta e isso faz com que o cabeçalho nao seja exibido. Como te falei, não sou expert em Quick Report, faz muito tempo que migrei para o Rave.
Mas quando eu usava o quick eu trabalhava da seguinte maneira. Eu tinha um arquivo .ini com as configuração dos cabecalhos dos meus relatorios. Antes de dar um preview neles eu lia esse ini e passava as informacoes para o relatorio. Neste ini tem tinha inclusive o caminho de um arquivo de imagem. Assim eu poderia configurar o ini e o cabecalho dos meus relatorios mudavam sem ter que recompilar a aplicacao.
Esse pode ser uma das solucoes pra vc ai no seu projeto.
Seu eu puder ajudar em algo mais e só falar.
Abs !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
O fato é que o quick report possui um propriedade DataSet, que deverá ser conectada a fonte de dados que vai reinderizar os Detalhes. Eu fiz como vc mencionou, criei um form com um cabecalho conectado a uma tebela para trazer a imagem. Ate ai legal.
Quando eu herdo para poder gerar um relatorio eu tenho que apontar o DataSet para a fonte de dados correta e isso faz com que o cabeçalho nao seja exibido. Como te falei, não sou expert em Quick Report, faz muito tempo que migrei para o Rave.
Mas quando eu usava o quick eu trabalhava da seguinte maneira. Eu tinha um arquivo .ini com as configuração dos cabecalhos dos meus relatorios. Antes de dar um preview neles eu lia esse ini e passava as informacoes para o relatorio. Neste ini tem tinha inclusive o caminho de um arquivo de imagem. Assim eu poderia configurar o ini e o cabecalho dos meus relatorios mudavam sem ter que recompilar a aplicacao.
Esse pode ser uma das solucoes pra vc ai no seu projeto.
Seu eu puder ajudar em algo mais e só falar.
Abs !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Pedro Conceição
23/06/2009
Prezado Rodrigo,
Obrigado pela sua solução.
Você poderia me dar um exemplo, já que eu nunca trabalhei com arquivos .INI? Lembrando que cada usuário vai ter que escolher seu próprio Logotipo, dessa forma no programa tenho que colocar uma opção como já existe, para gravar este arquivo .INI.
Atenciosamente, aguardo a sua resposta.
Pedro da Conceição
GOSTEI 0
Rodrigo Mourão
23/06/2009
Olá Pedro,
Por gentileza peço que abra um novo chamado solicitando como trabalhar com arquivo .ini. pois este é um outro assunto deve ser abordado em um chamado especifico.
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Por gentileza peço que abra um novo chamado solicitando como trabalhar com arquivo .ini. pois este é um outro assunto deve ser abordado em um chamado especifico.
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0