这样的DBGrid怎样实现?(100分)

  • 主题发起人 主题发起人 宝祯
  • 开始时间 开始时间

宝祯

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个人员数据库
表1:
姓名 VARCHAR2(8) 性别 varchar2(1) 政治面目 varchar2(1)
代码表:
性别 1 男 2 女
职务 0 群众 1 团员 2 党员
使用DBGrid时显示如下
宝祯 1 2
巧儿 2 1
希望在DBGrid中显示如下:
宝祯 男 党员
巧儿 女 团员
有什么方法或用什么控件?
 
方法正在帮你想,不过顺便说一句,你在设计数据库的时候为什么不把性别、政治面貌
这一类的东西直接存放成‘男’、‘女’等,而要存放成性别编码的形式。象这样类别较少
的字段(例如性别只有两种)直接存放具体内容的检索速度要比存放代码快
 
学点SQL吧
 
我说的简单一点,表结构假设如下
t1
姓名 性别 政治面貌
t2
id 性别
在query中写
select t1.姓名,t2.性别 from t1,t2 where t1.性别=t2.id
就是这样了,这是两个字段的,三个字段的方法以此类推
 
来自:liuly, 时间:2001-3-29 23:30:10, ID:485331
procedure TForm1.Table1SexGetText(Sender: TField;
var Text: String;
DisplayText: Boolean);
begin
if Sender.AsString = 'M' then
text := '男'
else
if Sender.AsString = 'M' then
text := '女'
else
text := '阴阳人';
end;

procedure TForm1.Table1SexSetText(Sender: TField;
const Text: String);
begin
if text = '男' then
Sender.AsString := 'M'
else
if text = '女' then
Sender.AsString := 'F';
end;
 
ehlib,ip2000,devexpress的quantumgrid应该都可以吧
 
使用一下SQL:SELECT 姓名,decode(性别,'1','男','2','女'),
decode(职务,'0','群众','1','团员','2','党员')
from [yourtable]
 
1、用计算字段
2、有SQL语名
 
用计算字段就好了
双击query控件,在列表中添加计算字段,并在字段的gettext事件中添加代码,代码如
4所说
 
TO:4
你的方法对男女代码表好用,对其他代码表不好时,当其他的代码表改动时源程序
还要修改。
TO:mat
SQL语句,我想过,进行数据更新很复杂。
使用代码为了好维护,(如果真的有不男不女类型出现的话好添加啊),这些代码表
大部分是使用LISTBOX来选择的。
 
多人接受答案了。
 
后退
顶部