报表中,要把:数据值为:0,的显示为:空。(100分)

  • 主题发起人 主题发起人 heping
  • 开始时间 开始时间
H

heping

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位:
(我的开发环境:
DELPHI 6 + SQLSERVER 2000 + ADO + QR)
我的报表中,要:
把:数据值为:0,的显示为:空。
有数据的显示为数据,(不作四舍五入)
请问,如何实现。
但:
如果,把:MASK 设为:“#”或“#0”,
这样,会把:有小数的作四舍五入,不合要求。
谢谢。
 
在数据源中将对应的字段的DISPLAYFORMAT设为#.##。
 
在qrdbtext.onprint事件中判断传入的value,如果是'0'则将它置为''
 
用 RMREPORT 可以轻松实现
 
QR报表中,如果,把:MASK,设为:“#。##”
这样,
数据为:0 的,倒是,显示为:空。
但是:
象:数据为:0。12 的显示出来,
就变成了: 。12
能不能,让:数据为:0 的。显示为:空。
同时,数据象:0。12 的,还是显示为: 0。12 ?
谢谢。
 
但是:
象:数据为:0。12 的显示出来,
就变成了: 。12
能不能,让:数据为:0 的。显示为:空。
同时,数据象:0。12 的,还是显示为: 0。12 ?
这个问题应该是windows系统的中可以修改的
在控制面板->区域设置->数字:显示起始零
 
数据类型在打表时用字符串:
if data = 0 then
printdata = ' '
 
1.在qrdbtext.onprint事件中判断传入的value,如果是'0'则将它置为''
2.在sql语句中判断 如
select (case when field_int=0 then
'' else
cast(field_int as varchar(50)) end)
as field_int from table
 
以上都不对,
这个问题纠缠了我很久,
荷塘新月说的对一半,
在数据源中将对应的字段的DISPLAYFORMAT设为#.##。
应该为:在数据源中将对应的字段的DISPLAYFORMAT设为#0.00;;
注意,两个分号后要有一个空格,
没错的,把分数都给我你都值,因为这也是困惑了我好久,同样是化了高分
一个朋友告诉我的,我至今感谢这位朋友!



 
感谢各位,我总结一下,解决方法有两种:
1:在qrdbtext.onprint事件中判断传入的value,
如果是'0'则将它置为''
(具体方法:在其中一个qrdbtext.onprint事件中写:
if value = '0' then
value := '';
其它的qrdbtext.onprint事件,指向它,就OK了。)
2:在qrdbtext的MASK属性中,写:“#0.00;;

(注意,两个分号后要有一个空格)
(当然,一位小数,就是:“#0.0;;
”类推。。)
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
675
SUNSTONE的Delphi笔记
S
S
回复
0
查看
652
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部