还是dbgrid的问题(50分)

  • 主题发起人 主题发起人 yhwyb
  • 开始时间 开始时间
Y

yhwyb

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:对不起,我的问题还是没解决,可能是我表达能力问题吧。
现在重新说明一下:
我的form1中有一个dbgrid1、还设有一个过滤器它随用户选择而变化,从table1中选择
符合条件的记录显示在这个dbgrid1中,用户要求在dbgrid1中要有序列号,于是我用增加一个
计算字段,并在ongettext中加入了text:=inttostr(table1.recno);语句的方法,其结果显示
的是物理记录号,出现例如:1,3,11,12,。。。,想实现为:1,2,3,4,。。。
没错 就是这个意思,恳请各位高手出现!!!!!
THANKS!!!!
 
试试在table的onnewrecord中设置一个自增型变量,
或者手工自增记数,给该字段赋值。
 
你把记录从第一条到最后一条循环一遍,然后用一个数组把相对应的物理记录号记录下来
同时把相应的顺序号也记录下来,就象这样:
1,1
3,2
11,3
12,4
...
然后显示顺序号就行了
或者干脆你不用自增字段,自己给记录编号应该也可以
 
这样试一下,count在表变化时置为1。
procedure TForm1.Query1noGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if DisplayText then
begin
Text:=IntToStr(count);
inc(count);
end;
end;
 
在ongettext里利用dbgrid1.DataSource.DataSet.RecordCount不知道行不行
 
用dbgrid1.datasource.dataset.recordcount转换一下应该可以!!
 
多人接受答案了。
 
后退
顶部