假设你的民族字段名叫MZ,类型为Integer,我来举一个例子。 把一切工作做好后,在DBGrid1的OnDrawDataCell事件中写下如下代码:If (Field.FieldName='MZ') And (Field.AsInteger=1) then DBGrid1.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,'男'); If (Field.FieldName='MZ') And (Field.AsInteger=2) then DBGrid1.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,'女');就行了. 这样做当MZ字段在显示时是'男'或'女',在编辑这个字段时又变成整数了。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
如果是用sql语句查询出来的,也可以用sql语句实现:select xingming as 姓名, ( case xingbie where 1 then 男 else 女 end ) as 性别,... , from table
dbgrideh: keylist : 1 2 itemslist :有 无 或者adodateset 的ongettext if value=1 then text = ‘有’
在你的dbgrid所对应的数据源的table,或者query的,然后再找出字段编辑器,然后你要显示的字段,在它的ongext 事件上,写出 var tybj:string; flag:=table(query).fieldbyname('字段').asstring; if flag='1' then Text:='有' else text:='无'
把一切工作做好后,在DBGrid1的OnDrawDataCell事件中写下如下代码:If (Field.FieldName='MZ') And (Field.AsInteger=1) then
DBGrid1.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,'男');
If (Field.FieldName='MZ') And (Field.AsInteger=2) then
DBGrid1.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,'女');就行了.
这样做当MZ字段在显示时是'男'或'女',在编辑这个字段时又变成整数了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
keylist : 1 2
itemslist :有 无
或者adodateset 的ongettext
if value=1 then
text = ‘有’
用2楼的方法可以实现,但现在遇到新问题
在查询出来的结果中,我想修改这一列中的数据,发现这一列不能修改,请问怎么解决。
select decode(字段,1,'有',0,'无') from XX
var tybj:string;
flag:=table(query).fieldbyname('字段').asstring;
if flag='1' then
Text:='有'
else
text:='无'