0不打印技术(100分)

  • 主题发起人 主题发起人 zzlcz
  • 开始时间 开始时间
Z

zzlcz

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,我在工作中遇到这样一个问题,在用QUICKREPORT编制打印报表时对数据库
中有的字段值为0时,不知采用何种技校巧,使报表中字段值为0时不打印,使报表整洁美
观,急盼指点!!!!
 
QR恐怕没这个功能。建议使用FASTREPORT,他支持编写脚本,可以实现你的要求。
 
用reportprint也行,很好用
 
在OnPrint事件做。
 
直接用SQL语句实现,你认可吗?
 
reportbuilder有一个属性设置为真就可以。quickrpt需要用qrlabel代替qrdblabel,然后在
onprint事件中自己对qrlabel.caption赋值
 
:同意hujunyi
QrLabel和QrDBLabel都可在它的OnPrint事件中处理:
procedure TQuickReport1.QRLabel1Print(sender: TObject;
var Value: String);
begin
if Value='0' then
Value:='';
end;
如果是QrDBLabel还可在它对应的DataField中作点小手脚。
 
如果想用控件的话,建议用FastReport(2.40C),有很强大的功能!
否则用动态SQL语句控制吧!
 
使用TQRExpr元件,在Expression中录入:
IF(yourTablename.yourFieldname <> 0, yourTablename.yourField, '')
 
我报表中有数据要统计,所以在一个临时数据表中设了一个
update tablename set field:=null where field=0
比他们都笨!
 
同意杜宝兄的做法,我也是这样做的。
 
不要用TQrDbText, 用QrLabel代替
在DetailBand.OnBeforePrint中写
if Table1.FieldByName('FieldName').AsFloat=0 then
QrLabel1.Caption:=''
else
QrLabel1.caption:= Table1.FieldByName('FieldName').AsString;
 
用FR2.41C直接可以设置不打印0值,太好用了!
 
多人接受答案了。
 
后退
顶部