关于quick report 的是用问题分数200(200分)

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

hangw

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用quick report 控件做报表遇到一个难题:如果报表中的字段位数值类型时,如何在数值位0(或0.00)时不打印
 
在onprint事件中判斷value值,如為0的話直接賦空值就可以了。
 
用qrlabel取代qrdbtext,在band的beforeprint事件中判断:
if adoquery1.fields.fieldbyname(‘字段’).asfloat = 0 then
qrlabel1.caption:= ‘’
else
qrlabel1.caption:= floattostr(adoquery1.fields.fieldbyname(‘字段’).asfloat);
自己再改改啦
 
不管是qrLabel还是qrDbText(基本上所有的QR控件)都有一个onPrint事件,这个事件是在控件打印时触发,定义如下:
procedure XXXPrint(sender: TObject;
var Value: String);
在这其中Value是一个Var的变量,你只要这个事件中更改了它的值即可。
例你用的是一个QRDbtext,则这样写:
if DataSet.FieldByName('XXX').AsFloat=0 then
Value:='';
这是因为QRDBText的打印值是从数据集的字段中得来的,你只要在必要的时候改一下即可。
 
多人接受答案了。
 
后退
顶部