DBGrid的一个问题,尽快回答,100分(100分)

  • 主题发起人 主题发起人 szlgx
  • 开始时间 开始时间
S

szlgx

Unregistered / Unconfirmed
GUEST, unregistred user!
如:dbgrid初始显示为
-------
|42|35|44|
|33|34|35|
|..|..|..|

执行后显示结果为:
-------
|42/1|35/3|44/6|
|33/2|35/3|35/9|
|../3|../4|../2|
 
代码................
 
看不大懂
你的/后面的数字有规律吗?
 
to godzhou:
'/'前面的数字为数据库里的字段的值,'/'后面的数字为它前面字段值的排序结果。
好似一学生的各科成绩,前面为分数,后面为该科所占的位次。所以有规律.
 
先用程序在后台排序好,做个LOOKUP,把两个字段结合一起。
 
我想到的就是先把每一列(我看你的数据每一列都是独立的)中的数据独到一个数组里面,
然后排序.再把每一列'扫描'一边,每读到一个数字就到排好的数组里去看它的位置(即
名次).
如果考虑到相同的数字'名次'相同,则在读数据的时候把它舍去.

 
读到数组里?太不明智。
新建一个字段:ind char(6) //如果大于100条就是2*3,大于1000就是3*3,以此类推。
然后
for i:=1 to 3 do
begin
query1.close;
query1.sql.clear;
query1.sql.add('select * from 表 order by 字段1');
query1.open;
while not query1.eof do
begin
query1['ind']:=query1['ind']+inttostr(query1.rnc);
query1.next;
end;
end;
query1.close;
query1.sql.clear;
query1.sql.add('select str(字段1)+"/"+SUBSTRING((ind,1,2) as "字段1",
str(字段1)+"/"+SUBSTRING((ind,3,2) as "字段1",
str(字段1)+"/"+SUBSTRING((ind,5,2) as "字段1",
from 表名');
query1.open;
…………
将dbgrid关联上就行了。
 
好像不是dbgrid的功能,是在求一种算法吧
 

Similar threads

D
回复
0
查看
773
DelphiTeacher的专栏
D
D
回复
0
查看
848
DelphiTeacher的专栏
D
D
回复
0
查看
677
DelphiTeacher的专栏
D
D
回复
0
查看
668
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部