我希望有人可以帮助我。我知道如何显示列但仅针对所选行,不知道如何选择行。
我有一个小的MDB 3x9
Item Supplier Price
--------------------------
apple applesRus $1
Grape GrapesRus $2
Milk MilkRus $3
.... .... ...
只想了解供应商(只是草稿)
for supplierList < 9 do;
begin
supplierlist + 1;
supplier : = DBgrid1.row[supplierlist].field[1];
memo1.Lines.Add(Supplier);
end;
答案 0 :(得分:0)
如何解决这个问题取决于您的网格是否在Options
属性中具有dgMultiSelect
设置为true或false。
如果dgMultiSelect为False,则只需查找字段值即可 提供DBGrid的数据集的当前行,因为在DBGrid中显示为选中的记录是数据集的逻辑光标所在的记录。你可以用
之类的东西做到这一点 Memo1.Lines.Add(DataSet.FieldByName('Supplier').AsString);
如果dgMultiSelect为True,则需要利用选中行的事实
DBGrid记录在TBookmarkList
中,可通过网格的SelectedRows属性访问。
基本上,您迭代SelectedRows,使用每个书签访问相应的行
在数据集中并查找字段值。像
ADataSet := DBGrid1.DataSource.DataSet;
for i:=0 to DBGrid1.SelectedRows.Count-1 do begin
ADataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
Memo1.Lines.Add(DataSet.FieldByName('Supplier').AsString);
end;
当操作一个多个记录时,在性能方面更好:
try ..finally ...
和