用fastreport2.53设计的报表,其中某个memo是通过计算获得的:
Memo7.Memo[0]:=[[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"]* 100];
设置Memo7的变量格式为'数字;1234.55'。
当为小于1的浮点数时,会显示为.65而不是显示为0.65,怎样解决呢?
Memo7.Memo[0]:=[[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"]* 100];
设置Memo7的变量格式为'数字;1234.55'。
当为小于1的浮点数时,会显示为.65而不是显示为0.65,怎样解决呢?
数字->自定义,小数位为2,自定义格式"0.00"
数字->自定义,小数位为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
v: TfrMemoview; v.Format := 1 * $01000000 + 4 * $00010000 + 2 * $00000100+ord('.');
//数字类型,自定义格式,小数位=2为,分隔符为"."
v.FormatStr := '#,##0.00'
Memo3并不是动态创建的,这个必须在delphi中创建;
报表模板是已经创建好了的,只是Memo3中的内容必须通过计算才能获得,这种计算不是在delphi中进行的,而是在fastreport中的memo3中的脚本中计算的。
Memo7.Memo[0]:=[FORMATFLOAT('#0.00',[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"* 100])
formatfloat的格式字符串是从那里来的?