Carregar imagem no Rave via Programação

Delphi

23/10/2007

boa tarde pessoal!
é o seguinte, tenho uma aplicação onde eu carrego uma foto do cliente no Timage, e os seus demais dados , tendo como parametro o n° do rg digitado num edit, as fotos estao nomeadas com o n° do rg em um servidor de arquivos (samba), eis o código:
Var
xFoto: TFileName;
begin
xFoto := ExpandFileName(´\\Suse\Fotos\´+Edit1.Text+´.Jpg´);

if FileExists(xFoto) Then
image1.Picture.LoadFromFile(xFoto)
Else
begin
image1.Picture.LoadFromFile(´\\Suse\Fotos\SemFoto.Jpg´);
end;
end;
end;
até aí td bem , só q eu não sei como passar a imagem para o rave , pois eu preciso imprimir todos os dados do cliente junto com a foto, exatamente como aparece no meu form,
se alguém puder me ajudar eu agradeço muito pois ja fiz varias pesquisas e não encontrei a solução
estou usando o delphi2006, zeos, mysql


Robsonr

Robsonr

Curtidas 0

Respostas

Alex Maia

Alex Maia

23/10/2007

Certa vez fiz isso no evento descrito abaixo, porém eu criei meus relatorios na ´unha´.

procedure TF_form.RvSystemPrintHeader(Sender: TObject);
var
Bitmap: TBitmap;
begin
DM.cdsParamentros.Open;
With Sender as TBaseReport do begin
if p_MostraLogo = ´S´ then begin
try
if not DM.cdsParamentrosLOGO.IsNull then begin
Bitmap := TBitmap.Create;
DM.cdsParamentrosLOGO.SaveToFile(p_AppPath + ´logo.jpg´);
Bitmap.LoadFromFile(p_AppPath + ´logo.jpg´);
PrintBitmapRect(1.0,0.5,3.8,3.0,Bitmap);
Bitmap.Free;
DeleteFile(p_AppPath + ´logo.jpg´);
end;
Except
Application.MessageBox(´Erro ao criar imagem!´,´Atenção´, MB_ICONEXCLAMATION + MB_OK);
end;
end;
DM.cdsParamentros.Close;
end;


GOSTEI 0
Robsonr

Robsonr

23/10/2007

me desculpe Alex Maia, eu sou novato por isso estou optando por gerar o relatorio pelo rave, eu gostaria de saber se tem como passar todos os dados do meu form ,inclusive a foto, para o rave , sendo q sera impresso apenas um cliente por vez.
eu só quero visualizar o form , juntamente com a foto, no rave para impressão


GOSTEI 0
Robsonr

Robsonr

23/10/2007

Será q ninguém tem uma solução para o meu problema??


aguardo alguma solução

Obrigado


GOSTEI 0
Joaoshi

Joaoshi

23/10/2007

Colega,

No evento [b:4dc16b5c4a]onGetRow[/b:4dc16b5c4a] do seu [b:4dc16b5c4a]TRvDataSetConnection[/b:4dc16b5c4a] chame a procedure:
CarregaRaveImagem(NomeDoRelatorio.Page1,NomeDoComponenteImagemNoRave,CaminhoDaImagem);
Connection.DoGetRow;

Crie esta procedure no seu projeto (na Unit onde estiver os componentes do rave):

procedure CarregaRaveImagem(rvPagina,rvImagemNome,bdArquivo:String);
var
B: TRaveBitmap;
P: TRavePage;
Jpg: TJpegImage;
begin
// Cria Objeto JPEGImage para carregar o arquivo Jpeg.
Jpg := TJpegImage.Create;
try
// Pesquisa componentes dentro do projeto rave.
P := RvSisterm.ProjMan.FindRaveComponent(rvPagina, nil) as TRavePage;
B := RvSisterm.ProjMan.FindRaveComponent(rvImagemNome, P) as TRaveBitmap;
// verifica se existe um JPG referente a imagem
if FileExists(bdArquivo) then
begin
// Carrega o arquivo do disco.
Jpg.LoadFromFile(bdArquivo);
// Atribui ao Rave Bitmap component.
B.Image.Assign(Jpg);
end;
finally
Jpg.Free;
end;


end;

Estude a procedure e faça as adaptções para o seu caso.

Espero ter ajudado.


GOSTEI 0
Joaoshi

Joaoshi

23/10/2007

Desculpe, ficou meio confuso a codificação


GOSTEI 0
Robsonr

Robsonr

23/10/2007

fiz as adaptaçoes , mais acho q devo estar fazendo alguma coisa de errada, pois quando tento visualizar ou imprimir o relatório da erro de violação de endereço de memória ..................................................

O que poderá estar acontecendo ??


GOSTEI 0
Robsonr

Robsonr

23/10/2007

sobe


GOSTEI 0
Robsonr

Robsonr

23/10/2007

ALGUÉM?????????????????


GOSTEI 0
Robsonr

Robsonr

23/10/2007

NINGUÉM ?? :?:


GOSTEI 0
Joaoshi

Joaoshi

23/10/2007

É possível postar o seu código aqui ?


GOSTEI 0
Robsonr

Robsonr

23/10/2007

é o seguinte, tenho uma aplicação onde eu carrego uma foto do cliente no Timage, e os seus demais dados , tendo como parametro o n° do rg digitado num edit, as fotos estao nomeadas com o n° do rg em um servidor de arquivos (samba), eis o código:
Var
xFoto: TFileName;
begin
xFoto := ExpandFileName(´\\Suse\Fotos\´+Edit1.Text+´.Jpg´);

if FileExists(xFoto) Then
image1.Picture.LoadFromFile(xFoto)
Else
begin
image1.Picture.LoadFromFile(´\\Suse\Fotos\SemFoto.Jpg´);
end;
end;
end;
até aí td bem , só q eu não sei como passar a imagem para o [b:c5f7801db3]RAVE[/b:c5f7801db3] , pois eu preciso imprimir todos os dados do cliente junto com a foto, exatamente como aparece no meu form,
se alguém puder me ajudar eu agradeço muito pois ja fiz varias pesquisas e não encontrei a solução
estou usando o delphi2006, zeos, mysql


GOSTEI 0
POSTAR