有一个memo是要取得大写金额(已写好函数xToD(const Num:Real):String的,数据库里的金额字段(fMySum)要如何调用呢,
   就是要让memo中的内容为xToD(fMySum)的返回结果.

解决方案 »

  1.   

    自带的 Faq 中第一个回答的问题:
    Q: How I can add my own function?
    A: Use TfrReport.OnUserFunction event. Here is simple example:   procedure TForm1.frReport1UserFunction(const Name: String;
         p1, p2, p3: Variant; var val: Variant);
       begin
         if AnsiCompareText('SUMTOSTR', Name) = 0 then
           val := My_Convertion_Routine(frParser.Calc(p1));
       end;   After this, you can use SumToStr function in any place of report
       (in any expression or script).
      

  2.   

    我的函数已经在公共单元中定义好了,在那个事件中可以对memo直接赋值呢.
    可以memo1.text:=....行吗
      

  3.   

    你应这样写: 
     procedure TForm1.frReport1UserFunction(const Name: String;
         p1, p2, p3: Variant; var val: Variant);
       begin
         if AnsiCompareText('MyselfFun', Name) = 0 then
           val := XTOD(strtofloat(vartostr(P1)));--必须将Variant先变为字符再变为你自定义函数和类型
       end;
      同时,在Memo中设成[MySelf(fMySum)],OK!
      

  4.   

    不好意思,少写了几个字母
    memo1.text:=[MySelfFun(fMySum)]