fastreport动态打印的问题(100分)(100分)

1.TfrPictureView(frReport1.FindObject('picture1')).Picture.LoadFromFile('abc.jpg');
frReport1.ShowReport;
无法显示图片
2.从数据库中取出数据(编号,姓名),根据编号调入图形(图形文件以编号值命名存放在当前目录)。
 
补充:
静态从数据库中取出数据(编号,姓名){即memo1的memo中值为[编号]},根据编号调入图形(图形文件以编号值命名存放在当前目录)。
 
jpg格式不能那么处理;得先拷贝到流中。Bmp是可以的;你要是嫌麻烦,先转换为bmp格式也行。
另外,不是frReport1.findobject,是frReport1.pages[].findobject,frPage才行。
你静态的从frPictureView.Picture中Load一个jpg图像,再预览也是不行的。它默认的是
bmp,ico,wmf,emf。
 
也可以这样做:
先use JPEG 单元,然后
procedure TForm1.Button1Click(Sender: TObject);
var
frView: TfrView;
Jpeg : TJPEGImage;
begin
if OpenPictureDialog1.Execute then
begin
frView := frReport1.Pages[0].FindObject('Picture1');
if Assigned(frView) and (frView is TfrPictureView) then
begin
if UpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) = '.JPG' then
begin
Jpeg := TJPEGImage.Create;
try
Jpeg.LoadFromFile(OpenPictureDialog1.FileName);
TfrPictureView(frView).Picture.Bitmap.Assign(Jpeg);
finally
Jpeg.Free;
end;
end else
(FrView as TFrPictureView).Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
frReport1.ShowReport;
end;
一切OK。
 
能否静态从数据库中取出数据(编号,姓名){即memo1的memo中值为[编号]},
自动根据编号调入图形(图形文件以编号值命名存放在当前目录)。
 
当然可以的。。
 
当然可以了;将frPictureView同frMemoView放在主数据上,在程序初始化的时候,
DataSet.AfterScroll := nil;
TForm1 = class(TForm)
..
..
procedure AfterScroll(DataSet: TDataSet);
end;
procedure Tform1.AfterScroll(DataSet: TDataSet);
begin
try
//在这里添加你读取图片的代码(参照上文);
//例如loadfromfile(DataSet.FieldByName('XH').AsString + '.BMP';
//注意每次新的开始要
//TFrPictureView(FrView).Picture.Bitmap.FreeImage
//,以免在没有文件的时候继续显示上次的图像。
except
end;
end;
在预览的时候
DataSet.AfterScroll := AfterScroll;
frReport1.ShowReport;
DataSet.AfterScroll := nil;
Are You understand??
 
强烈建议将图片存到数据库中去;如果图片多了,你不怕难于管理么:)
 
to:
engleking 兄,看来老兄是高手!
我有一个问题麻烦老兄一并处理!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=556086
 
还想从这里抢点分,但我的上网时间太少了,没能给你帮助,sorry.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
954
SUNSTONE的Delphi笔记
S
S
回复
0
查看
775
SUNSTONE的Delphi笔记
S
顶部