Boa noite senhores.
Desculpem abrir novamente o tópico, porém o meu pesadelo voltou. Eu pensei que havia resolvido o problema, mas eu só retardei.
Explicarei melhor o que está acontecendo, desde o início.
Criei uma pequena aplicação para gerar Laudos técnicos de vistoria de Veículos. O laudo precisa conter informações de veículos e principalmente as FOTOS da vistoria.
Assim sendo, criei a aplicação com Delphi 7 + QuickReport + IBExpert + Firebird 1.5 + Componentes DBExpress.
Basicamente, a aplicação salva em Banco de Dados apenas o CAMINHO da imagem, e usa esse caminho posteriormente para carregar e gerar o relatório. São 6 fotos ao total.
A aplicação funciona dentro do esperado até a geração do Relatório.
O usuário consegue visualizar todas as informações corretamente, assim como as fotos. Porém, ao mandar IMPRIMIR, "às vezes", alguma das imagens some.Não é sempre que isso acontece. Pode acontecer 3 vezes no dia, como pode acontecer 3 vezes na semana, independemente do número de relatórios.Exemplo: São 6 fotos. Chassi, Motor, Placa, Hodômetro, Plaqueta e FotoAdicional. O usuário consegue gerar alguns relatórios, mas depois a imagem não aparece na IMPRESSÃO.
Se o usuário fechar o relatório e abrir novamente, às vezes é possível imprimir corretamente, mas outras vezes não.
Ouvi falar que poderia ser um erro de relatório interno, ou seja, algum problema com o QuickReport. Então, baixei e instalei o pacote do Fortes Report mas infelizmente o problema é O MESMO. Abaixo está relacionado tudo da parte Relatório que eu criei.
Criação Dinâmica do Relatório:
CODE
Application.CreateForm(TfrmRelatorio,frmRelatorio);
frmRelatorio.QRCompositeReport1.Prepare;
frmRelatorio.QRCompositeReport1.Preview;
FreeAndNil(frmRelatorio);
A Unit do Formulário:
CODE
unit untFrmRelatorio;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls, Jpeg;
type
TfrmRelatorio = class(TForm)
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRLabel1: TQRLabel;
QRCompositeReport1: TQRCompositeReport;
QRBand3: TQRBand;
QuickRep2: TQuickRep;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRImage1: TQRImage;
QRSysData1: TQRSysData;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRDBText1: TQRDBText;
QRShape1: TQRShape;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRDBText2: TQRDBText;
QRLabel10: TQRLabel;
QRDBText3: TQRDBText;
QRShape2: TQRShape;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRLabel15: TQRLabel;
QRLabel16: TQRLabel;
QRLabel17: TQRLabel;
QRLabel18: TQRLabel;
QRLabel19: TQRLabel;
QRLabel20: TQRLabel;
QRLabel21: TQRLabel;
QRLabel22: TQRLabel;
QRLabel23: TQRLabel;
QRLabel24: TQRLabel;
QRLabel25: TQRLabel;
QRLabel26: TQRLabel;
QRLabel27: TQRLabel;
QRLabel28: TQRLabel;
QRLabel29: TQRLabel;
QRLabel30: TQRLabel;
QRLabel31: TQRLabel;
QRLabel32: TQRLabel;
QRLabel33: TQRLabel;
QRLabel34: TQRLabel;
QRLabel35: TQRLabel;
QRLabel36: TQRLabel;
QRLabel37: TQRLabel;
QRLabel38: TQRLabel;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRDBText7: TQRDBText;
QRDBText8: TQRDBText;
QRDBText9: TQRDBText;
QRDBText10: TQRDBText;
QRDBText11: TQRDBText;
QRDBText12: TQRDBText;
QRDBText14: TQRDBText;
QRDBText15: TQRDBText;
QRDBText16: TQRDBText;
QRDBText17: TQRDBText;
QRDBText18: TQRDBText;
QRDBText19: TQRDBText;
QRDBText20: TQRDBText;
QRDBText21: TQRDBText;
QRDBText22: TQRDBText;
QRDBText23: TQRDBText;
QRDBText24: TQRDBText;
QRDBText25: TQRDBText;
QRDBText26: TQRDBText;
QRDBText27: TQRDBText;
QRDBText28: TQRDBText;
QRDBText29: TQRDBText;
QRShape3: TQRShape;
QRDBRichText1: TQRDBRichText;
QRShape4: TQRShape;
QRLabel39: TQRLabel;
QRMemo1: TQRMemo;
QRLabel40: TQRLabel;
QRShape5: TQRShape;
QRBand2: TQRBand;
QRLabel44: TQRLabel;
QRLabel45: TQRLabel;
QRLabel46: TQRLabel;
QRSysData2: TQRSysData;
QRLabel47: TQRLabel;
QRLabel48: TQRLabel;
QRBand5: TQRBand;
QRLabel50: TQRLabel;
QRLabel51: TQRLabel;
QRShape6: TQRShape;
QRLabel52: TQRLabel;
QRShape7: TQRShape;
QRShape8: TQRShape;
QRShape11: TQRShape;
QRShape12: TQRShape;
QRShape9: TQRShape;
QRShape10: TQRShape;
QRLabel53: TQRLabel;
QRLabel54: TQRLabel;
QRLabel55: TQRLabel;
QRDBText31: TQRDBText;
QRDBText32: TQRDBText;
QRDBText33: TQRDBText;
QRLabel56: TQRLabel;
QRLabel57: TQRLabel;
QRShape13: TQRShape;
QRShape14: TQRShape;
QRLabel41: TQRLabel;
QRLabel42: TQRLabel;
QRShape15: TQRShape;
QRShape16: TQRShape;
QRLabel43: TQRLabel;
QRLabel49: TQRLabel;
QRImageChassi: TQRImage;
QRLabel58: TQRLabel;
QRDBText34: TQRDBText;
QRImageMotor: TQRImage;
QRLabel59: TQRLabel;
QRDBText35: TQRDBText;
QRImagePlaca: TQRImage;
QRLabel60: TQRLabel;
QRDBText36: TQRDBText;
QRImageExtra: TQRImage;
QRImageExtra2: TQRImage;
QRLabel62: TQRLabel;
QRDBText38: TQRDBText;
QRImageExtra3: TQRImage;
QRLabel63: TQRLabel;
QRDBText39: TQRDBText;
QRImage2: TQRImage;
QRDBText30: TQRDBText;
QRLabel2: TQRLabel;
QRImage3: TQRImage;
QRImage4: TQRImage;
QRLabel64: TQRLabel;
QRLabel65: TQRLabel;
QRDBText40: TQRDBText;
QRDBText41: TQRDBText;
QRDBText13: TQRDBText;
QRLabel66: TQRLabel;
QRLabel67: TQRLabel;
procedure QRCompositeReport1AddReports(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmRelatorio: TfrmRelatorio;
caminho_chassi, caminho_motor, caminho_placa, caminho_extra, caminho_extra2,
caminho_extra3 : String;
implementation
uses untDmModelo;
{$R *.dfm}
procedure TfrmRelatorio.QRCompositeReport1AddReports(Sender: TObject);
begin
//Preciso de Duas páginas para todas as informações. Na página 1 aparecem os dados e na Página 2 as FOTOS.
QRCompositeReport1.Reports.Add(QuickRep1); // Página da Frente
QRCompositeReport1.Reports.Add(QuickRep2); //Página do Verso
end;
procedure TfrmRelatorio.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
frmRelatorio.Release;
frmRelatorio := nil;
end;
procedure TfrmRelatorio.FormCreate(Sender: TObject);
begin
//Variáveis recebem o caminho das imagens
caminho_chassi := dmModelo.cdsPesquisaLaudo.FieldByName('PATHCHASSI').AsString;
caminho_motor := dmModelo.cdsPesquisaLaudo.FieldByName('PATHMOTOR').AsString;
caminho_placa := dmModelo.cdsPesquisaLaudo.FieldByName('PATHPLACA').AsString;
caminho_extra := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA').AsString;
caminho_extra2 := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA2').AsString;
caminho_extra3 := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA3').AsString;
//Os componentes de imagem recebem a IMAGEM para formar o Relatório
QRImageChassi.Picture.LoadFromFile(caminho_chassi);
QRImageMotor.Picture.LoadFromFile(caminho_motor);
QRImagePlaca.Picture.LoadFromFile(caminho_placa);
if not (caminho_extra = '') then
begin
QRImageExtra.Picture.LoadFromFile(caminho_extra);
end;
if not (caminho_extra2 = '') then
begin
QRImageExtra2.Picture.LoadFromFile(caminho_extra2);
end;
if not (caminho_extra3 = '') then
begin
QRImageExtra3.Picture.LoadFromFile(caminho_extra3);
end
end;
end.
Refiz o relatório com o Fortes Report, mas o problema continua. Por favor, não tenho experiência com relatórios. Se estou fazendo alguma besteira, por favor, me alertem!
Agradeço a atenção.