在报表(FastReport)中动态载入jpg照片,预览时所有的记录都显示的是一张照片

KJHWXM 2014-09-09 01:42:36
问题:如题,代码如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, DB, FR_DSet, FR_DBSet, FR_Class, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure frReport1BeforePrint(Memo: TStringList; View: TfrView);

private
{ Private declarations } PV:TfrPictureView;
procedure LoadPhoto;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
frReport1.LoadFromFile('d:\kwbm\zkz.frf');
PV:=(frReport1.FindObject('Picture1') as TfrPictureView);
frReport1.ShowReport;
end;
procedure TForm1.LoadPhoto;
var
S,FileName:String;
begin
FileName:= trim(ADOTable1.FieldByName('zp').AsString);

if FileExists(FileName) then
begin
PV.Picture.LoadFromFile(FileName);
end;
end;
procedure TForm1.frReport1BeforePrint(Memo: TStringList; View: TfrView);
begin
LoadPhoto
end;
end.
...全文
607 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
程晨c 2014-09-09
  • 打赏
  • 举报
回复
引用 3 楼 KJHWXM 的回复:
照片有随机性,并且数据量也大,在数据库中,我存放的是照片的路径,SELERON大哥,按照你的第一次回复,还是所有记录只显示第一条记录的照片。还有没有别的办法啊
你指定了Pictrue1来显示图像 Pictrue1怎么显示多张图片呢?一个组件只能显示一张图片
KJHWXM 2014-09-09
  • 打赏
  • 举报
回复
照片有随机性,并且数据量也大,在数据库中,我存放的是照片的路径,SELERON大哥,按照你的第一次回复,还是所有记录只显示第一条记录的照片。还有没有别的办法啊
程晨c 2014-09-09
  • 打赏
  • 举报
回复
将图片以二进制形式存储在数据库字段中,图像框指定字段名 就可以显示每条记录的图像
程晨c 2014-09-09
  • 打赏
  • 举报
回复
PV:=(frReport1.FindObject('Picture1') as TfrPictureView); PV.Picture.LoadFromFile(FileName); PV是指定名称的的一个组件,预览时当然是将图片加载到这个组件上了
Blessed_Chuan 2014-09-09
  • 打赏
  • 举报
回复
动态创建多个TfrPictureView

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧