被小问题卡住了,怎样设置fastreport的变量格式?

仙侣步惊云 2006-11-27 04:51:18
用fastreport2.53设计的报表,其中某个memo是通过计算获得的:
Memo7.Memo[0]:=[[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"]* 100];
设置Memo7的变量格式为'数字;1234.55'。
当为小于1的浮点数时,会显示为.65而不是显示为0.65,怎样解决呢?
...全文
298 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzhsxsh 2006-11-29
  • 打赏
  • 举报
回复
试试这个
Memo7.Memo[0]:=[FORMATFLOAT('#0.00',[ADOBbSy."sum(xx_tjsy.xndy)"]/[ADOBbSy."sum(xx_tjsy.syzs)"* 100])
仙侣步惊云 2006-11-29
  • 打赏
  • 举报
回复
谢谢,楼上的管用,分全给你.
formatfloat的格式字符串是从那里来的?
Rex_love_Burger 2006-11-28
  • 打赏
  • 举报
回复
看来来晚了,我继续蹭分
Elysium 2006-11-28
  • 打赏
  • 举报
回复
同楼上
踢踏 2006-11-28
  • 打赏
  • 举报
回复
设置DisplayFormat属性
数字->自定义,小数位为2,自定义格式"0.00"
llh6795 2006-11-28
  • 打赏
  • 举报
回复
偶用的是FAST3.0的,是这样设置的:)))
仙侣步惊云 2006-11-28
  • 打赏
  • 举报
回复
按理.63与0.63是一样的,可客户就是不满意,如果在delphi中计算再赋给fastreport中的变量,显示时是不会有问题的,但必须更改大量代码,所以只想在报表中计算,结果是对的,但就是显示格式不正确。
仙侣步惊云 2006-11-28
  • 打赏
  • 举报
回复
谢谢楼上,您可能误解我的意思了:
Memo3并不是动态创建的,这个必须在delphi中创建;
报表模板是已经创建好了的,只是Memo3中的内容必须通过计算才能获得,这种计算不是在delphi中进行的,而是在fastreport中的memo3中的脚本中计算的。
踢踏 2006-11-28
  • 打赏
  • 举报
回复
动态的,那就试试这个:
v: TfrMemoview;

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

仙侣步惊云 2006-11-28
  • 打赏
  • 举报
回复
设置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
sunbiao36 2006-11-27
  • 打赏
  • 举报
回复
好像是有个0的属性,被选择了!
LZ仔细找找!
仙侣步惊云 2006-11-27
  • 打赏
  • 举报
回复
没有任何效果
llh6795 2006-11-27
  • 打赏
  • 举报
回复
在Memo7出点右键——Display format——number——%2.2f 即可

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧