关天DBGrid的一个小问题(50分)

  • 主题发起人 主题发起人 自由自在
  • 开始时间 开始时间

自由自在

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一个数据表中一个int型field,它只是一个标志位,当它为1时---,当它为0时----
现在我想在DBGrid中把该字段显出来时让它变成具有说明意的文字,如何做,请各位高
手帮帮小弟!!!

 
你用的是Access? SQL Server?
SQL Server 中可以用 select aa,
bb,
dd=case cc of
when cc=0 then '你好'
else '呵呵'
End;
from biao1
Accress 中用计算字段就可以了,很简单
 
以前有很多类似的,可以用dbgriddrawcolumncell事件写
 
你能不能说明白一点,最好有代码示例
 
不如使用POWERBUILDER ,好象在DELPHI中不太容易实现
 
用该字段的GetText事件。
if Sender.AsInteger = 1 then
Text := '这个字段是1'
else
Text := '这个字段不是1';
 
楼上的可以.
 
支持caidao
 
你能说具体点吗?
我怎么没发现有gettext事件?
 
gettext是数据集的方法,对应的还有settext
 
再写一个表,把数字和字符串对应起来,作一个复合查询。
 
右键点击数据集组件,打开字段编辑器,加入所有数据字段
 
用caidao的方法就行:
对于静态字段,你在该字段的onGetText中写代码就行了,对于动态字段也就是你用
查询动态查出的字段你需要在查询的(数据集)的OnAfterOpen中指定响应字段的OnGetText
事件处理过程:

//自定义字段的过程,注意方法参数与OnGetText的一样啊。
procedure SetFdText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Sender.AsBoolean then
begin
Text := '有效';
end
else
begin
Text := '无效';
end;
end;

查询的OnAfterOpen中,例如对字段“生效标记”吧
qryTemp.FieldByName('生效标记').OnGetText := SetFdText;

这样就搞定了,对于静态的直接在OnGetText中写代码就可以了。
 
谢谢!!!!!!!!!!
 
后退
顶部