首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

做过FastReport打印图片的请进解决方法

2012-08-26 
做过FastReport打印图片的请进图片存在数据库中,BMP和JPG格式都有,但是数据集中有些记录是空的,没有图图,

做过FastReport打印图片的请进
图片存在数据库中,BMP和JPG格式都有,但是数据集中有些记录是空的,没有图图,打印时却显示了别人的照片,我写的代码如下:
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
var MS1,MS2:TMemoryStream;
  i:integer;
  C:byte;
  ImageType,sFileName:String;
begin
  try
  MS1:=TMemoryStream.Create;
  MS2:=TMemoryStream.Create;
  TBlobField(self.Qry_Data.FieldByName('C1101')).SaveToStream(MS1);
  MS1.Position:=0;
  MS1.Seek(0,0);

  if MS1.Size<=0 then exit;
  ImageType := '';
  for i := 0 to 3 do
  begin
  MS1.Read(C, 1);
  ImageType := ImageType + Char(C);
  end;

  ImageType := Trim(ImageType);
  if pos('JJJ',ImageType)>0 then ImageType:='JPG';

  MS2.Clear;
  for I := 0 to MS1.Size - 3 do
  begin
  MS1.Read(C, 1);
  MS2.Write(C, 1);
  end;
  //将图片流保存到临时文件中
  MS2.Seek(0, 0);
  sFileName:=sFileName+'.'+ImageType;
  MS2.SaveToFile(sFileName);

if (Sender is TfrxPictureView) then
(Sender as TfrxPictureView).Picture.LoadFromFile(sFileName); //这里总是会载入,
 
  finally
  if Assigned(MS1) then
  MS1.Free;
  if Assigned(MS2) then
  MS2.Free;
  end;
end;

[解决办法]
每一笔数据都要设置,不然后面的值会和前面的一样

加上判断,值为空的时候,图片也清空

[解决办法]
我用fastreport直接连接数据库显示图片的,不写代码的没问题
[解决办法]
直接连接数据库就行了!
要不就在预览报表时就刷新一下!
[解决办法]
直接边数据库,什么混合的格式都能显示啊,包括空的,也自动不显示的,我用的是4.9版

热点排行