ADOQuery中添加一个计算字段RowNo,
在OnCalcFields事件中加入
DataSet.FieldByName('RowNo').AsInteger:=DataSet.RecNo;发现DBGrid显示第一条和最后一条记录的序号为-1;
如何解决?

解决方案 »

  1.   

    我是这样加序号的
    procedure TfrmBranchAccBalance.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
    if Column.Index = 0 then
      with DBGrid1.Canvas do
        begin
          FillRect(Rect);
          TextOut(Rect.Left+2, Rect.Top+2, IntToStr(DBGrid1.DataSource.DataSet.RecNo));
        end;
    end;
      

  2.   

    to tulippopo:
       能详细一点吗?
      

  3.   

    我也遇到这样的问题,如果是在,STRINGGRID里面就不存在这样的问题了
      

  4.   

    我很多地方都用了DBGrid,换控件的话,工作量非常大,现在不予考虑,请高手多多帮忙!
      

  5.   

    我是这样做的
    在sql 语句时做
    select rownum as RowNo,T1,t1 from tablename
      

  6.   

    我用 select rownum as RowNo,T1,t1 from tablename
    序号是有了 ,但是一用 Order by T1,序号就乱了 ,该如何解决?