Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 06 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
82 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Adicionando fotos no RAVE
Publicado por ActiveDelphi : Terça, Dezembro 23, 2008 - 11:51 GMT-3 (1477 leituras)
Comentários 4 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Buscando uma solução para acrescentar fotos ao Rave encontrei um artigo que muito me ajudou e então resolvi publicar o artigo e minha adaptação

Utilizei esse artigo e outros para ter uma idéia de como faria a coisa funcionar. Testei várias formas mas esse artigo aqui foi um achado. Até mandei um email para o Marcos que foi até muito gentil mas disse não mexer com Rave faz tempo. Sugeriu que eu entrasse em um grupo de discussão que ele faz parte. Mas não consegui nada. Então segue o artigo do Marcos P. Gomes; (Gente boníssima – brigadão kra). E a solução que criei – eu acho que foi eu mesmo – para o problema de imprimir uma imagem que não está arquivada em BD e sim em uma pasta separada dentro do path do seu sistema.no Rave. Sendo que essa imagem é a foto de um cliente cadastrado e no campo foto temos apenas o ‘nome’ que foi fornecido para ela:

Veja se isso que segue aí não te faz pensar um pouco... o artigo de Marcos P. Gomes:

Trabalhando com parâmetros no Rave Report
Por Marcos P. Gomes

Quando utilizamos o Quick Report torna-se fácil acessar nossas variáveis, pois os componentes do Quick Report interagem diretamente com o nosso código Delphi. Já no Rave Report não é passível acessar uma variável que foi declarada dentro do nosso projeto Delphi.

Calma, não fique apavorado. Para contornar essa dificuldade, assim como no Crystal Report, o Rave Report nos disponibiliza um recurso muito legal. Devemos passar esse valor como parâmetro.

Caso prático

Imagine que temos uma variável global em nosso sistema, onde é gravada a versão do sistema e nos relatórios você tem que imprimir o número da versão ou seja temos que imprimir o conteúdo dessa variável que foi declara lá dentro do projeto Delphi.

O conteúdo dessa variável deve ser passado como parâmetro na hora de imprimir o relatório e o Rave “enxerga” essa variável como se fosse uma variável interna dele.

No Delphi

Crie uma nova aplicação e deixe-a conforme a figura abaixo.



Agora dê um duplo clique no RvProject e o Rave Visual Design será aberto, na guia Report, selecione o componente Region, dimensione ele de forma que ocupe toda a área que será impressa.

No Tree Panel em Report Library e escolha o relatório Report1, após isso clique em Parameters no Object Inspector digite o nome de nosso parâmetro que será Versao

Adicione um Band Component e marque a opção Body Header que esta localizada na opção Band Style.

Adicione um DataText e clique na opção DataField, no Project Parameters selecione o parâmetro que acabamos de criar que foi o versão, após selecionar clique em Insert Parameter

O Resultado final será conforme a figura abaixo.



Salve seu projeto, como Project1 mesmo, agora volte lá no Delphi e no RvProject associe a propriedade ProjectFile ao projeto que acabamos de criar



Adicione o seguinte código no Button.

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Seta o Parametro versão com o conteúdo do Label1
  RvProject1.SetParam('Versao',Label1.Caption);

  //Executa o relatorio
  RvProject1.ExecuteReport('Report1');
end;


Agora é só compilar, e testar e nosso resultado final será semelhante a imagem abaixo.



Preview do Rave com o Valor do parâmetro que foi recebido

Depois de ler isso me deu um estalo. Poxa! Maldita lombalgia. Não posso ficar muito tempo na mesma posição que ela se rebela. Brincadeira... Realmente tenho lombalgia mas nos damos muito bem – quando não carrego peso excessivo. Se é só isso que eu tenho que fazer, ‘Meus probremas se acabaram!’

Corri a fazer o que o Marcos sugere no artigo dele.

  1. Criei um parâmetro com o nome de pFoto já em cima do meu relatório que se chama rFichaIndividual. Nome original não?
  2. No botão que chama o relatório eu coloquei assim:

procedure TfAlunos.SpeedButton1Click(Sender: TObject);
Var
  vCodigo: Integer; //Código do aluno selecionado
  vFoto: String; //Essa variável vai ser carregada com o endereço da foto
begin
  //O String do campo DBEdit1 é transformado em Inteiro
  vCodigo := StrToInt(DBEdit1.Text);

  //O Endereço da foto é carregado na variável vFoto;
  vFoto := (ExtractFilePath(ParamStr(0))+'Fotos\'+dmTables.tbAlunosFotoAluno.AsString);

  //Com o query qrFichaIndividual fazer
  with dmReports.qrFichaIndividual do
  begin

    Close;

    //Relaciona a variável vFoto com o parâmetro pFoto do Rave
    dmReports.RvRelatorios.SetParam('pFoto', vFoto);

    //Aqui são carregados os dados do Aluno tendo como base o código do DBEdit1.
    Parameters.ParamByName('pCodigo').value := vCodigo;

    //Abre o query
    Open;

    //Executa o relatório rFichaIndividual.
    dmReports.RvRelatorios.ExecuteReport('rFichaIndividual');
  end;
end;

  1. No Rave coloquei um DataText e fui no objectInspector e setei o parâmetro criado no item 1
  2. No evento onBeforePrint do Objeto BMP que está colocado no relatório eu coloquei:
    Bitmap1.FileLink := (DataText20.Text);
  3. Compilei o comando no botão apropriado do relatório e salvei o relatório. Depois voltei ao Delphi e rodei a aplicação. Então VoeAle – Não me critiquem não sei francês.

Ah, já ia me esquecendo: o DataText não tem uma opção visible, então mudei a cor dele para white – de inglês eu entendo. E foi só.

Abraços!

Por: Marcello M. Mariano
Contato: marcellommariano@hotmail.com



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: wilsonaaugusto (wilsonaaugusto@yahoo.com.br) : Jan 07, 2009 - 04:32
(Informações sobre o membro | Enviar uma mensagem) http://http://
Gostei da solução apresentada, muito criativa e o mais importante: funcional.

Vou deixar anotada para futuro uso.


Obrigado !


por: Banaggia (banaggia@gmail.com) : Out 20, 2009 - 04:58
(Informações sobre o membro | Enviar uma mensagem) http://www.banaggia.com
Marcelo boa dica!

Caso a imagem(caminho) não esteja no gravado no banco, onde foi colocado o Objeto da imagem, fica aparecendo um "X" no lugar, como setar o visable para false, caso isso aconteça?

[]'s


por: Zorro (selferbr@yahoo.com.br) : Mar 17, 2011 - 07:07
(Informações sobre o membro | Enviar uma mensagem)

Beleza de artigos, cara!

E não se preocupe, ainda que o correto seja, voilá, não tem problema...siga em frente.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados