select IDENTITY(int,1,1) AS id1, * into ##Temp from TableName select * from ##temp
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;
select IDENTITY(int,1,1) AS RecordID, * into ##Temp from TableName select * from ##temp
注意:先在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;
表中含有字段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给分把
select * from ##temp
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;
select * from ##temp
然后在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;
Order by a.department_code给分把
怎么add new啊?
==================================
双击DBGrid,如果列表框中没有字段,请使TABLE或Query打开,然后点击Add All Fields按钮,然后点击Add New按钮增加一空列,不必连接字段。
在该字段的Gettext事件中
adoquery1js_getrow.value=abs(adoquery1.recno);
adoquery1js_getrow:永久字段的名字
adoquery1换为你的数据集合
在DbGrid中增加一列,其fieldname为这各计算字段,并让其在第一列显示