利用书签功能对TDBGrid控件中多个记录的处理

Posted 癫狂编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用书签功能对TDBGrid控件中多个记录的处理相关的知识,希望对你有一定的参考价值。

      DELPHI 的TDBGrid 控 件 主 要 用 来 处 理 数 据 表, 它 的 属 性 中 有 
一 个dgMultiSelect, 若 此 属 性 设 定 为TRUE, 则 可 以 选 中 多 个 记 录
( 可 用CTRL + 鼠 标 左 键 选 择 多 个 记 录)。 对 选 中 的 多 个 记 录
可 以 有 以 下 几 种 处 理 方 式, 比 较 简 单 的 两 种 是: 清 除 所 有
的 选 择 记 录 可 用DBGrid1.SelectedRows.Clear 语 句; 删 除 所 有 的 选 
择 记 录 可 用DBGrid1.SelectedRows.Delete 语 句。 但 如 果 想 获 得 选 中 
的 所 有 记 录 的 其 他 信 息, 比 如, 在 单 独 的 一 个 窗 体 中 显 示
用 户 选 择 的 记 录 的 第 一 个 字 段 的 内 容( 如 所 有 选 择 的 姓 名)
如 何 处 理 呢 ? 这 就 要 使 用 书 签 功 能 了, 下 面 是 笔 者 编 写 的
一 个 程 序 中 的 过 程, 用 来 将 用 户 选 择 的 多 个 记 录 集 中 显 示 
在 另 外 一 个 窗 体 中( 笔 者 使 用 的 是DELPHI4), 供 参 考 使 用。


procedure GetSelectedRecord
(DataSet : TDataSet; FieldName : String;
BookmarkList : TBookmarkList; Strings : TStrings);
这个过程中的参数分别为:数据表、字段名称、
书签、用来保存所选字段内容的字符串(用于将内容传递到另一个单独窗体中的TLIST控件中)
var
I: Integer;
bm : TBookMark;
begin
Strings.Clear;
with Dataset do begin
DisableControls;
bm := GetBookMark;
try
每个选择的记录都有一个书签标志,这就为处理它们提供了条件
for I := 0 to BookmarkList.Count - 1 do begin
Bookmark := BookmarkList[I];
Strings.Add(DataSet.FindField(fieldname).AsString);
end;
finally
GotoBookMark(bm);
FreeBookMark(bm);
EnableControls;
end;
end;
end;

调用举例:
GetSelectedRecord(Table1, NAME, DBGrid1.SelectedRows, 
Form2.ListBox1.Items

以上是关于利用书签功能对TDBGrid控件中多个记录的处理的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 TDBGrid 中的复选框来选择多条记录?

把火狐浏览器升级到26.0,发现不能导出书签到html,怎么办?

如何设置word每次打开都在上次关闭时的页面?

处理“不是有效的书签。”错误,记录已损坏

Python 处理PDF文件 给PDF文件添加书签合并PDF文件转化PPT文件为PDF文件

Word利用域代码快速实现基于书签的交叉引用