用FastReport 3.0做了个通用的报表生成器,数据源是不确定的。
在该项目中写了个金额转大写的函数function NumToChar(Num : Double) : String;
想在FastReport的Memo事件中用,procedure Memo17OnBeforePrint(Sender: TfrxComponent);
begin  
Memo17.Text := NumbersCapitalization(StrToFloat(Memo18.Text));
end;但在打印时老报错;说传入的不是有效的浮点值
实在是头疼!

解决方案 »

  1.   

    补充:
        请问如何可解决以上问题或如何获得Memo打印时显示的值
      

  2.   

    procedure TF_client.ToolButton6Click(Sender: TObject);
    var
      myMemo: TfrxMemoView;
    begin
      myMemo := TfrxMemoView(frxReport1.FindObject('Memo15'));
      if myMemo <> nil then
      myMemo.Memo.Text := '11111';
    end;
      

  3.   

    这是在delphi 程序中写的 在打印之前付值
    procedure TF_client.ToolButton6Click(Sender: TObject);
    var
      myMemo: TfrxMemoView;
    begin
      myMemo := TfrxMemoView(frxReport1.FindObject('Memo15'));
      if myMemo <> nil then
      myMemo.Memo.Text := '11111';
      
      frxReport1.print;end;
      

  4.   

    没用过,不过感觉应该在Memo18的BeforePrint中写吧!
    你Memo17打印的时候,Memo18里还没数据吧!第二,StrToFloat改为StrToFloatDef函数吧!
      

  5.   

    很感谢 wjc1000(小疙瘩) 再次回答我的问题
    但你给的答案不是我想要的
    我的意思是指
        如将Memo18显示出来的值传入我的自定义变量中?
      

  6.   

    终于可以了
    1、无计算的
     Memo17.Text := NumbersCapitalization(<Table1."字段名">);
    2、有计算的
     Memo17.Text := NumbersCapitalization(<SUM(<Table3."字段名1">*<Table2."字段名2">)>);