在统计之后dbgrid前加一列序号?(50分)

  • 主题发起人 主题发起人 调皮儿
  • 开始时间 开始时间

调皮儿

Unregistered / Unconfirmed
GUEST, unregistred user!
sql:='select 单位 as 单位,sum(分数) as 总分 from chengji group by 单位 order by sum(分数) desc';
我的sql语句如上,现在在DBGrid中只有单位和分数两列,我想在dbgrid前再加一列,显示行号就行,或者序号也行,表示名次的。怎么写?(上面我是分组查询,没有实际的dbgrid的)
 
晕,你把RecNum画到第一列里不就行了。
我以前就这么干过。还挺好看的。。。。。。
 
http://www.delphibbs.com/keylife/iblog.asp
 
在TDataSet上建一个整型的计算字段,在OnCalcFields事件里给该计算字段赋值为dataset.RecNo即可.
 
怎么在TDataSet上建一个整型的计算字段?不会啊!!能详细点不?
我用的是ADOConnection和ADOQuery和datasource控件。
 
双击数据集,再点右键
 
在dbgrid定制col,加多一个col来计数就成了,很方便的
 
bjaman,我的delphi还不到家,我说一下你看是不是这个意思,在tongjiQuery上双击,然后右键--new field,在对话框中:name:排名,type:integer。OK。然后在窗体的formcreate中加入:tongjiQuery.OnCalcFields:=datasource1.dataset.RecNo,是吗?可是不对啊,datasource1.dataset之后的recno出不来啊?
 
这次我改为:tongjiQuery.FieldByName('排名').AsInteger:=tongjiQuery.RecNo;写是写上了,可是一运行就出错误:project project1.exe raised exception class EAccessViolation with message'Accesviolation at address 004AA8DB in module'Project1.exe'.Read of address 0000005C'Process stopped .Use or Run to continue.
 
procedure TfrmDeposit.ADOQuery1CalcFields(DataSet: TDataSet);
begin
ADOQuery1no.Value := abs(ADOQuery1.RecNo);
end;
 
后退
顶部