procedure Tchk_bmf.DBGrid1DblClick(Sender: TObject); var chkid,chklong,title,sqlbak,sql_add:string; begin if ado_1.Active=true then begin if dbgrid1.DataSource.DataSet.RecordCount<>0 then begin chkid:=dbgrid1.DataSource.DataSet.Fields.Fields[0].Value; chklong:='4'; title:=chkid+'_'+dbgrid1.DataSource.DataSet.Fields.Fields[1].Value+'_考试报名信息'; sql_add:='declare @chkid varchar(6),@chklong int select @chkid=' +''''+chkid+'%'+''''+',@chklong='+chklong+' '; sqlbak:=ado_2bak; // showmessage(title); link_alldb(sql_add,sqlbak,title,ado_2,tab_kq,Page_bm); end else showmessage(' 没有可选择的记录 '); end; end;
var RowCount:integer; TempBookMark:TBookMark; begin DBGrid.Datasource.Dataset.DisableControls; if DBGrid.SelectedRows.Count > 0 then begin TempBook := DBGrid.Datasource.Dataset.GetBook; for RowCount := 0 to GKUsed.SelectedRows.Count - 1 do begin if DBGrid.SelectedRows.IndexOf(DBGrid.SelectedRows.Items[RowCount]) > -1 then begin DBGrid.Datasource.Dataset.Book := GKUsed.SelectedRows.Items[RowCount]; .... end; end; DBGrid.Datasource.Dataset.GotoBook(TempBook); DBGrid.Datasource.Dataset.FreeBook(TempBook); end; DBGrid.Datasource.Dataset.EnableControls; end;记得把dgMultiSelect:=true;
locate方法最好还有一种,但苯了点 procedure TForm1.Button1Click(Sender: TObject); var i,j: integer; begin DBGrid1.Options := DBGrid1.Options + [dgRowSelect] + [dgMultiSelect]; DBGrid1.DataSource.DataSet.First; for i := 1 to DBGrid1.DataSource.DataSet.RecordCount do if DBGrid1.DataSource.DataSet.Fields[0].AsInteger = 1 then begin DBGrid1.SelectedIndex := 0; DBGrid1.SelectedField.FocusControl; Break; end else DBGrid1.DataSource.DataSet.Next; end;
dbgrid1.SetFocus;
var
chkid,chklong,title,sqlbak,sql_add:string;
begin
if ado_1.Active=true then
begin
if dbgrid1.DataSource.DataSet.RecordCount<>0 then
begin
chkid:=dbgrid1.DataSource.DataSet.Fields.Fields[0].Value;
chklong:='4';
title:=chkid+'_'+dbgrid1.DataSource.DataSet.Fields.Fields[1].Value+'_考试报名信息';
sql_add:='declare @chkid varchar(6),@chklong int select @chkid='
+''''+chkid+'%'+''''+',@chklong='+chklong+' ';
sqlbak:=ado_2bak;
// showmessage(title);
link_alldb(sql_add,sqlbak,title,ado_2,tab_kq,Page_bm);
end
else showmessage(' 没有可选择的记录 ');
end;
end;
RowCount:integer;
TempBookMark:TBookMark;
begin
DBGrid.Datasource.Dataset.DisableControls;
if DBGrid.SelectedRows.Count > 0 then
begin
TempBook := DBGrid.Datasource.Dataset.GetBook;
for RowCount := 0 to GKUsed.SelectedRows.Count - 1 do
begin
if DBGrid.SelectedRows.IndexOf(DBGrid.SelectedRows.Items[RowCount]) > -1 then
begin
DBGrid.Datasource.Dataset.Book := GKUsed.SelectedRows.Items[RowCount];
....
end;
end;
DBGrid.Datasource.Dataset.GotoBook(TempBook);
DBGrid.Datasource.Dataset.FreeBook(TempBook);
end;
DBGrid.Datasource.Dataset.EnableControls;
end;记得把dgMultiSelect:=true;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j: integer;
begin
DBGrid1.Options := DBGrid1.Options + [dgRowSelect] + [dgMultiSelect];
DBGrid1.DataSource.DataSet.First;
for i := 1 to DBGrid1.DataSource.DataSet.RecordCount do
if DBGrid1.DataSource.DataSet.Fields[0].AsInteger = 1 then
begin
DBGrid1.SelectedIndex := 0;
DBGrid1.SelectedField.FocusControl;
Break;
end
else DBGrid1.DataSource.DataSet.Next;
end;
大家常用数据集的 Locate 方法。