关于DBgrid中数据显示的问题(50分)

  • 主题发起人 主题发起人 poto5269
  • 开始时间 开始时间
P

poto5269

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一数据表yy结构如下:
xh--顺序号,唯一
id--ID编号
name--姓名
sfz--身份证
sf--关系..师父
td--关系..徒弟
记录如下
1,249,张三,32052019801008023x,2,3 //张三的师父是2李四,徒弟是3王五
2,249,李四,320520194141451442,null,1 //李四的师父没有,徒弟是1张三
3,249,王五,320520198301412411,1,null //王五的师父是1张三,没有徒弟.
....
要求:
在用Sql语句检索('select * from yy where id=249')取得数据后在Dbgrid中后两列的显示不想用数字代码,而是用与之相对应的那人的姓名来显示? (是不是再用Sql来对值一一进行判断?是的话应该写在哪个事件中?)

2.可不可以在网格中实现指定单元格的托放操作?
比如说可以把第三列name字段中的值通过鼠标拖放到第5或第6列并替换其中的值?
 
用LOOKUP字段可解决第一个问题
 
lookup对于同一张表也有用吗?
还有谁能提供答案吗?
 
是否可以再建一个表只有编号和姓名?然后从两个表中取得数据
 
问题1:应该可以用一句实现吧。。。
select a.xh,a.id,a.name,a.sfz,'sf'=(select b.name from yy b where b.id = a.sf),'td'=(select c.name from yy c where c.id = a.td) from yy a where id=249
 
也许是我水平不够的原因
做了好久也没有做出怎么实现lookup
不过在两张表里还是可以的
就是将关系做为另一表
 
1.select a.xh,a.id,a.name,a.sfz,b.name,c.name from yy as a,yy as b,yy as c where a.sf=b.xh and a.td=c.xh and a.id=249
2.write your own code
 
1、后两列显示汉字:
A:用SQL解决:
select AA.xh,AA.id,AA.name,AA.sfz,(select name from yy where xh=AA.xh) sf,
(select name from yy where xh=AA.td) td
from yy AA where AA.id=249

B:用GetText解决:
http://www.delphibbs.com/keylife/iblog_show.asp?xid=3884
C:用Lookup 字段解决
2、拖放:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2344988
 
第一个问题,用计算字段。。
第二个问题,不知道 呵呵
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部