请问如何控制DBGRID当数据为数值零时不显示???(200分)

  • 主题发起人 主题发起人 得胜
  • 开始时间 开始时间
在Tfiled里有一个事件Tgettext;可以预处理数据库的值!
 
在你的DBGRID所联接的TTABLE或TQUERY中加入字段, 并把相应的数值字段的
displayFormat设置一下,如###,###,###,###.##.
 
在你的DBGRID所联接的TTABLE或TQUERY中加入字段, 并把相应的数值字段的
displayFormat设置一下,如###,###,###,###.##.
 
这样你需要在Field的OnGetText事件中写代码:
DisplayText:=true;
if Sender.AsFloat=0 then Text:=''
else Text:=Sender.AsString;
抄过去吧不会错
 
我的办法最简单.
 
在dbgrid的ondrawcolumncell 事件中判断Column.FieldName的字段是否是要控制的字段,如果是,判断table的该字段的值是否为零,如果是,用exit或用画cell的方法。

画cell:先设DBGrid1.canvas的brush 为白色,然后DBGrid1.canvas.FillRect(const Rect: TRect),该rect参数在ondrawcolumncell是有的。

 
蓉儿的做法可以,不过要注意NULL值。

在TField的OnGetText事件:
DisplayText:=true;
if Sender.isnull or (sender.value=0) then Text:=''
else Text:=Sender.AsString;

另外,请注意TFIELD的CURRENCY和DISPLAYFORMAT等属性,调整显示格式。
 
DisplayFormat可以解决问题,马上结束吧
 
WUYU的方法真XX,让我后悔悬赏太高,其他几位大哥大姐,原谅我把分都给了WUYU.
 
后退
顶部