怎样使DBGrid左边一列显示为记录序号?
如:
1  dfd 
2  dfff
3  ddd
但第一列的字段并不在表里

解决方案 »

  1.   

    select IDENTITY(int,1,1) AS id1, * into ##Temp from TableName
    select * from ##temp
      

  2.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if Column.Index = 0 then
        DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(DBGrid1.DataSource.DataSet.RecNo));
    end;
      

  3.   

    select IDENTITY(int,1,1) AS RecordID, * into ##Temp from TableName
    select * from ##temp
      

  4.   

    注意:先在DBGrid中Add New 一空列(第一列),不连任何字段
    然后在DBGrid1的DrawColumnCell事件中:procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if Column.Index = 0 then
        DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(DBGrid1.DataSource.DataSet.RecNo));
    end;
      

  5.   

    表中含有字段department_code,表名为bisfcdepa Select no=(select count(*)+1 from bisfcdepa b where b.department_code<a.department_code),a.department_code from bisfcdepa a
    Order by a.department_code给分把
      

  6.   

    忘了说了,department_code必须是关键字段
      

  7.   

    回复人: kingluan(sssss) ( ) 信誉:100  2003-07-04 11:27:00  得分:0 
     
      怎么add new啊?
     
    ==================================
    双击DBGrid,如果列表框中没有字段,请使TABLE或Query打开,然后点击Add All Fields按钮,然后点击Add New按钮增加一空列,不必连接字段。
      

  8.   

    为Dataset增加永久字段类型为计算类型
    在该字段的Gettext事件中
    adoquery1js_getrow.value=abs(adoquery1.recno);
    adoquery1js_getrow:永久字段的名字
    adoquery1换为你的数据集合
    在DbGrid中增加一列,其fieldname为这各计算字段,并让其在第一列显示
      

  9.   

    谢谢各路大侠,你们使Csdn闪光