简单的说就是在preview的code 里用代码获得某一 masterdata band 里的memo的具体数值 

解决方案 »

  1.   

    具体情况是小弟最近在使用fastreport 3.23.7 for d7 开发简单的报表报表是交互式的,就是说要用户在preview的报表上输入数据然后再在程序里处理
    用户输入数据就用Memo.OnPreviewClick 来实现
    procedure Memo6OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
    begin
      TfrxMemoView(Sender).Text := InputBox('Edit', '修改:', '0');
      Modified := True;
    end;现在问题来了,用户输入数据后把preview窗口关了的话是没有对应的类似 OnPreviewClose 的事件的,所以在delphi的主程序里是获得不了用户输入的数据的,因为窗口一关就什么都没了而且在fastreport里的code页里是没有相关的exportToFile的函数的我的想法是这样的,建立一个adoQuery,动态的写sql把用户每次输入的数据都更新到数据库里,类似这样:procedure Memo6OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
    begin
      TfrxMemoView(Sender).Text := InputBox('Edit', '修改:', '0');
      Modified := True;
      adoQuery1.SQL:='insert into temp values('','','','')';
      adoQuery1.execute;
    end;
    小弟在这里卡住了,因为让用户输入的memo是 [frxDBDataset1."科室"],也就是说这个memo本身就是从数据库里获得的默认值,而不是单一的一个memo,那请问如何才能在fastreport 的code里用程序获得用户输入对应的某个行的memo的具体值呢
    不知道说清楚没有。
      

  2.   

    用quickreport 或者 rave 可以解决这个问题吗
      

  3.   

    比如你要程序查到报表memo1里面的内容可以这样写
    edit1.text:=frreport1.findobject('memo1').memo.text;
      

  4.   

    不行的。。这样就是显示的是[frxDBDataset1."科室"], 而我要的是具体数值
    不过还是谢谢了,我已经找到替代的方法了,
    就是自己填加Userfuction 在自己的function里用frxReport1.PreviewPages.SaveToFile('temp.fp3');在每次用户输入后保存到临时文件,
    再在showreport的窗口被关闭后调用其他程序对temp.fp3进行分析操作,
    当然了。。fp3是xml格式的。虽然ie打不开。。
    ok,