1。设定DBGrid性别字段列的PickList为'男'、'女';2。在DataSet中性别列的OnGetText事件中写入: if Sender.AsBoolean then Text := '男' else Text := '女'; 3。在OnSetText事件中写入: if Text := '男' then Sender.AsBoolean := true else Sender.AsBoolean := false;
1.字段的OnGetText,OnSetText; procedure TForm1.ADOQuery1SexGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin if Sender.Integer = 0 then Text := '男' else Text := '女'; end;procedure TForm1.ADOQuery1SexGetText(Sender: TField; const Text: String); begin if Text = '男' then Sender.AsInteger := 0 else Sender.AsBoolean := 1; end; 2.若为DBGridEh,可用KeyList、与PickList结合来做; 3.若只为显示,可用select (case sex when 0 then '男' else '女' end) as sex from tbl来实现
没有什么难度,主要就是在永久列的GetText事件中修改Text参数就可以了。
>>顺便问一句:什么是永久列? 就是在你的的DataSet上面双击,然后Add Field
用SQL语句也可以实现 select case 性别 when 0 then '男' when 1 then '女' end as 性别 from Table
if Sender.AsBoolean then
Text := '男'
else
Text := '女';
3。在OnSetText事件中写入:
if Text := '男' then
Sender.AsBoolean := true
else
Sender.AsBoolean := false;
http://expert.csdn.net/Expert/topic/3019/3019729.xml?temp=.7169611
procedure TForm1.ADOQuery1SexGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.Integer = 0 then
Text := '男'
else
Text := '女';
end;procedure TForm1.ADOQuery1SexGetText(Sender: TField; const Text: String);
begin
if Text = '男' then
Sender.AsInteger := 0
else
Sender.AsBoolean := 1;
end;
2.若为DBGridEh,可用KeyList、与PickList结合来做;
3.若只为显示,可用select (case sex when 0 then '男' else '女' end) as sex from tbl来实现
就是在你的的DataSet上面双击,然后Add Field
select
case 性别
when 0 then '男'
when 1 then '女'
end as 性别
from Table