O不打印技术(100分)

  • 主题发起人 主题发起人 WFZHANG
  • 开始时间 开始时间
W

WFZHANG

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,在数据库中,如有字段的值为0,怎样控制使得为0字段的值0在报表中
不显示出来,使得报表整齐、美观,急盼!!!!
 
用动态报表
简单而极烦人
 
你用的是什么,QR,RB,ACE,FR?
 
在报表的打印控件的 onPrint 事件中加入以下语句
procedure TForm1.QRLabel1Print(sender: TObject;
var Value: String);
begin
//判断要打印的值是否是是字符“0”
 if Trim(Value)='0' then
  //为“0”将值赋成空字符
Value=''
end;
 
也可使用QRExprMemo,设其Expression为如下例所示:
{IF(mbDataSet.ttt<>0,IntToStr(mbDataSet.ttt), '')}
 
设置显示格式,将0的显示为空。
 
lanjiancn 的可以解决问题。我也是这样解决的。
 
QRDBtext的mask设成#####
 
如果用Oracle,可以这样写SQL
select decode(field1,0,'') from yourtable where ...
 
楼上这位兄弟,如果有小数怎么办?要求保留小数点后几位怎么办?
下面是一个解决办法
QRDBtext的mask设成##,##0.00
procedure TForm1.QRLabel1Print(sender: TObject;
var Value: String);
begin
//判断要打印的值是否是是字符“0.00”
 if Trim(Value)='0.00' then
  //为“0.00”将值赋成空字符
Value=''
end;

 
在onprint中写入
value := fromatfloat('0.00;;
', strtofloat(value));
//当value为0时,不打印,当value为小数时,保留两位小数。
//如果不能保证value的值来自数值型的字段,请用try...except语句。
 
接受答案了.
 
后退
顶部