求救!!!!如何将打印预览中的"0"给去掉。 (200分)

  • 主题发起人 主题发起人 yk_wry
  • 开始时间 开始时间
Y

yk_wry

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将打印预览中的"0"给去掉。不能逐条判断。希望各位大虾帮帮忙,小弟很急。
 
你要打印的是什么?你是用控件还是用的是直接用代码生成预览窗口?
你可以直接给我email:andyqin@ynet.com
 
我用的是控件。
 
您们的问题就象一个小孩拿起电话就说找爸爸,连号码都没拨。
开玩笑,别介意。[:D][:D][:D]
 
我没看懂你说的意思。
我也遇到类想把0去了的时候。就是QRExpr。不知你是不是这种情况。

强烈关注::
 
是的。还有QRDBtext
 
预览中解决,看源码可能可以吧.
//关注此题.
 
是用QRLable 或 是用 QRDBText
如果用QRLable 必须每条判断,
如果用QRDBText就不必每条判断,
 
谢谢各位的关注,Yujx老兄,用QRDBText怎么样解决能不能说详细一点?
 
方法1、在Tquickrep的onneeddata中加如几行代码可以办到。
方法2、用计算列做一下转换,也可以办到。
方法3、如是oracle,数据源是Tquery,可以用oracle的decode()函数试一下。
 
我不太明白你的意思,只能猜测一下了:
---- 你的报表中有类似 2.10的数据,你现在想得到2.1,是这个意思吗?

你可以在QRExpr 的Expression中编辑公式:
1。点击Function,左边All --->> 右边找到FORMATNUMERIC()这个函数!
2。用FORMATNUMERIC()编辑你想要得到的数据格式就可以了! (类似与format()的功能)

给你个参考: FORMATNUMERIC('0.0'0'',re_s * re_j) //后面是2个字段相乘,数据库中float型的
还可以写的更复杂的!
 
你可以在quickrep连的数据源解决。假如你连的是adoquery1,其中有字段a1同qrdbtext1
相连。你可以在a1字段的OnGetText事件中控制。
if displaytext then

begin

if adoquery1.fieldbyname('a1').value=0 then

text:=''
else

text:=adoquery1.fieldbyname('a1').value
end;


如果你用的是fastreport就只需在他的属性中选择‘隐藏零值’就可以了。
 
在打印之前,
procedure TForm1.Table1LAST_NAMEGetText(Sender: TField;
var Text: String;
DisplayText: Boolean);
begin

if DisplayText then

if Sender.AsFloat = 0 then

Text := ''
else

Text := Sender.AsString;
end;

 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
2K
import
I
后退
顶部