procedure TForm1.frxReport1Preview(Sender: TObject);
var filename:string;
begin
  TRY
   filename:=ExtractFilePath(Paramstr(0))+'fhclPict\'+cspc+'.wmf';
   chart1.SaveToMetafile(filename) ;
   //添加至报表中
     (frxreport1.FindObject('cspicture') as Tfrxpictureview ).Picture.LoadFromFile(filename);//程序运行至此行就出现下图所示错误提示
   EXCEPT
   END;请问各位老大,此语句运行还有何未声明或不当的地方吗?

解决方案 »

  1.   

    先判断frxreport1.FindObject('cspicture')是否为nil
      

  2.   

    判断了下,加上了句if TFRXpictureview(frxreport1.FindObject('cspicture'))<>nil then
        (frxreport1.FindObject('cspicture') as Tfrxpictureview ).Picture.LoadFromFile(filename);
      
    虽说不报错了,但也没有图片了呀,
    说明,一直就是NIL值
      

  3.   

    procedure TfmBaseReport.acShowReportExecute(Sender: TObject);
    var
      Stream            : TMemoryStream;
      JpgPath           : string;
      t1                : TfrxPictureView;
    begin
      if (VarIsNull(qMasterfReport.Value)) or (qMasterfReport.Value = '') then
      begin
        ShowMessage(你选择的报表没有内容!);
        Exit;
      end
      else
      begin
        //引入报表
        Stream := TMemoryStream.Create;
        TBlobField(qMaster.FieldByName('fReport')).SaveToStream(Stream);
        Stream.Position := 0;
        frxReport1.LoadFromStream(Stream);
        Stream.Free;
        //引入图表
        JpgPath := SysPath + '\Temp.bmp';
        t1 := TfrxPictureView(frxReport1.FindObject('Picture1'));
        if t1 <> nil then t1.Picture.LoadFromFile(JpgPath);
        //预览报表
        frxReport1.ShowReport;
      end;
    end;
      

  4.   

    你所使用的上述语句跟我所使用的没有什么不同呀?问题是我的怎么得出的NIL,在FASTREPORT中,我有cspicture图片控件呀,怎么会得出的是NIL值呢?