Carregar imagem no Rave via Programação
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
é 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
Curtidas 0
Respostas
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;
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
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
eu só quero visualizar o form , juntamente com a foto, no rave para impressão
GOSTEI 0
Robsonr
23/10/2007
Será q ninguém tem uma solução para o meu problema??
aguardo alguma solução
Obrigado
aguardo alguma solução
Obrigado
GOSTEI 0
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.
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
23/10/2007
Desculpe, ficou meio confuso a codificação
GOSTEI 0
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 ??
O que poderá estar acontecendo ??
GOSTEI 0
Robsonr
23/10/2007
sobe
GOSTEI 0
Robsonr
23/10/2007
ALGUÉM?????????????????
GOSTEI 0
Robsonr
23/10/2007
NINGUÉM ?? :?:
GOSTEI 0
Joaoshi
23/10/2007
É possível postar o seu código aqui ?
GOSTEI 0
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
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