用fastreport2.53设计的报表,其中某个memo是通过计算获得的:
  Memo7.Memo[0]:=[[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"]* 100];
设置Memo7的变量格式为'数字;1234.55'。
当为小于1的浮点数时,会显示为.65而不是显示为0.65,怎样解决呢?

解决方案 »

  1.   

    在Memo7出点右键——Display format——number——%2.2f 即可
      

  2.   

    偶用的是FAST3.0的,是这样设置的:)))
      

  3.   

    设置DisplayFormat属性
    数字->自定义,小数位为2,自定义格式"0.00"
      

  4.   

    设置DisplayFormat属性
    数字->自定义,小数位为2,自定义格式"0.00"
    //
    这个我知道的,如果是静态生成的当然没有任何问题,关键是
      Memo7.Memo[0]:=[[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"]* 100];
    是在脚本的计算的,无论怎样设置displayformat(中文方式下即变量格式)都不起作用。
    另外,这种动态生成的内容用“隐藏零值”设置也不起作用,没办法我做了一下判断:begin
        if [ADOBbSy."sum(xx_tjsy.syzs)"]=0 then
        Memo3.Memo[0]:='0'
      else
        Memo3.Memo[0]:=[[ADOBbSy."sum(xx_tjsy.dydk)"]/ [ADOBbSy."sum(xx_tjsy.syzs)"]* 100];
    end
      

  5.   

    动态的,那就试试这个:
      v: TfrMemoview;  v.Format := 1 * $01000000 + 4 * $00010000 + 2 * $00000100+ord('.');
                //数字类型,自定义格式,小数位=2为,分隔符为"."
      v.FormatStr := '#,##0.00'
      

  6.   

    谢谢楼上,您可能误解我的意思了:
    Memo3并不是动态创建的,这个必须在delphi中创建;
    报表模板是已经创建好了的,只是Memo3中的内容必须通过计算才能获得,这种计算不是在delphi中进行的,而是在fastreport中的memo3中的脚本中计算的。
      

  7.   

    按理.63与0.63是一样的,可客户就是不满意,如果在delphi中计算再赋给fastreport中的变量,显示时是不会有问题的,但必须更改大量代码,所以只想在报表中计算,结果是对的,但就是显示格式不正确。
      

  8.   

    试试这个
    Memo7.Memo[0]:=[FORMATFLOAT('#0.00',[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"* 100])
      

  9.   

    谢谢,楼上的管用,分全给你.
    formatfloat的格式字符串是从那里来的?