Table表的排序问题!(救救急吧,拜托了)!高手赐教吧!(50分)

  • 主题发起人 lishu2002
  • 开始时间
L

lishu2002

Unregistered / Unconfirmed
GUEST, unregistred user!
因为用DBGrid显示用到排序,用的是Table表所以请教大家!
问题是:
(1): 有两个字段,一个是单位名(DWM),一个是姓名(XM),要求排序后首先是一个单位的在一起,然后同一个单位之中,同姓的又有一个排列。如何操?? 谢谢!
(2): 也是有两个字段一个是开始时间(Start),一个是(End),要求是在DBGrid显示的时候,将顺序按两个字段中时间的顺序排列,也就是如果记录2的开始时间是13:00,结束时间是20:00;记录1的开始时间是8:00,结束时间是14:00,但是如果现在的时间是10:00,则记录排序是:记录2在记录1的前面。这个该怎么操作呢?谢谢!!
 
select * from table where …… order by dwm,xm不行吗?
 
我是用Table 做的,怎么处理?
 
可以再拿一个datasource,一个query与此dbgrid关联,
然后再用sql.
 
(1): 有两个字段,一个是单位名(DWM),一个是姓名(XM),要求排序后首先是一个单位的在一起,然后同一个单位之中,同姓的又有一个排列。如何操?? 谢谢!
================================================================================

将下面这个句子放在你的程序所在的form的onshow事件里,或者写在相应的table属性里。
table1.IndexFiles:='DWM,XM';

================================================================================


第二个问题还不清楚你想怎么做,暂不回答。
 
用TTable组件的话就要用索引来解决,首先按照排序字段建立索引文件,然后在程序里指定索引名。表连接后就会如你所愿。
用TQuery组件的话,就可以用
Select * from tablename order by IndexFieldNameList来解决。
 
1。第一个问题可以建立两个索引,table1.IndexFiles:='DWM,XM';
2。你可以新建一个字段专门存储那两个字段较小的值,然后将新建的字段设成索引就可以了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
932
SUNSTONE的Delphi笔记
S
顶部