在dxDBGrid中选定若干行记录后,怎样把所选的记录读取出来。
for i:=0 to dxDBGird.selectedCount-1 do
begin
...
end;
上面的代码要怎样写,才能读出所选定记录的字段信息。
for i:=0 to dxDBGird.selectedCount-1 do
begin
...
end;
上面的代码要怎样写,才能读出所选定记录的字段信息。
dxDBGrid1.FocusedNode.Values[1]选中结点的第二列的内容。
for i:=0 to dxDBGird.selectedCount-1 do
begin
showmessage(dxDBGrid1.SelectedRows[i]);
end;
请大家帮忙修改,怎样才能提取选定的记录数据。
别人只能指点你一下
象类似的问题,多试几下,看看帮助,看看DEMO就可以解决了
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2217710来自:iamfish, 时间:2003-10-8 20:20:00, ID:2219482 | 编辑
自己搞定了.
The following example copies the selected rows in a db grid to a list box.procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
I,J: Integer;
sTemp: String;
mkTemp: TBookMark;
begin
for I := 0 to dxDBGrid1.SelectedCount - 1 do
begin
sTemp := '';
mkTemp := TBookMark(dxDBGrid1.SelectedRows[I]);
dxDBGrid1.DataSource.DataSet.GotoBook(mkTemp);
for J := 0 to dxDBGrid1.DataSource.DataSet.FieldCount - 1 do
begin
sTemp := sTemp + dxDBGrid1.DataSource.DataSet.Fields[J].AsString + ' ';
end;
Memo1.Lines.Add(sTemp);
end;
end;
这个绝对可以的,SelectedRows返回的TBookMarkStr,
var
I: Integer;
vBook: string;
begin
memo1.Lines.Clear;
DBGrid1.DataSource.DataSet.DisableControls;
vBook := DBGrid1.DataSource.DataSet.Book;
try
for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString); //test
end;
finally
DBGrid1.DataSource.DataSet.Book := vBook;
DBGrid1.DataSource.DataSet.EnableControls;
end;
end;