安装: 1.建立目录如:...\delphi\ehlib,拷贝common、delphi、dataservice目录下的文件 2.在delphi中选择File\Open...打开EhLib60.Dpk,在"Package.."窗口中点"Compile"、"install", 3.在Tools->Environment Options->Library->Library Path中加入上述路径。 4.拷贝 EhLib.hlp和EhLib.cnt到..\delphi\help,在delphi中选Help\Customize进入OpenHelp, 在Contents加入EhLib.cnt,在Index和 Link加入EhLib.hlp EhLib 用户指南 (其中一部分) -------------------------------------------------------------------------------- 翻译:nxyc_twz@163.com 5 使用 TDBSumList 组件 TDBSumList说明 你可以使用TDBSumList在可视动态变化数据集中进行记录统计。在你想查看的数据集中设置相关的数据字段,然后写 SumListChanged 事件来指定在TDBSumList发生改变后所要做的操作。TDBSumList 的 SumCollection 属性上一个 TDBSum 对象容器。每个 TDBSum 对象是一个可以指定集合值的元件。 FieldName 和 GroupOperation 决定了集合值的类型,SumValue 控制当前的集合值。 TDBSumList 被埋藏于 DBGridEh 组件中,因此所的下面有关TDBGridEh.SumList 的说明与TDBGirdEh的TDBGridEh.SumList 属性的说明是一样的。 如何工作以及为什么有时SumList的集合值计算不正确? 你知道 data-aware 控件与数据集是通过 TDataLink 对象相连接的。 TDataLink 不允许快速重新计算集合值。例如,当从数据集中删除记录时,数据集发送deDataSetChange事件给所有的TDataLink对象,在当前局部过滤发生改变时,同样的事件也被发送了。因此当 TDataLink 接收到该事件时,它不得不在所有的数据集中重新计算集合值,甚至于仅从数据集中删除一条记录。在激活后, TDBSumList 重载了数据集的下列事件: OnAfterEdit, OnAfterInsert, OnAfterOpen, OnAfterPost, OnAfterScroll, OnBeforeDelete, OnAfterClose。这种方法避免了在所有的数据集中它。在不需要它时,又会出现其它的问题,比如: T 运行时指定这些事件。在指定上述事件之一以前,关闭 SumList。 在下面的情形下,SumList 发出存取错误信息。 SumList 试着向数据集返回事件,但数据集数据并未被删除。在SumList(或网格)以及数据集放置在不同的窗体(数据模块)这种情况下,可以显示数据。在这种情况下,试着在从数据集或数据模块中数据集数据被删除时关闭SumList。 如果你使用SetRange或ApplyRange事件,SumList 将不能跟踪数据集中发生的变化。但可以调用 SumList.RecalAll 方法。 在非BDE数据集的主/明细表中,SumList 不能跟踪数据变化。在主数据集激活状态数据集发生变化后,调用 SumList.RecalAll 方法。 在任何其它情况下,如果你发现了其它SumList的计算值不正确,你都可以调用 RecalAll方法。 -------------------------------------------------------------------------------- 4 使用 TPrintDBGridEh 组件 在 Delphi 的 IDE 组件面板中选择 TPrintDBGridEh 并拖放其到 form 上。在 其 DBGridEh 属性中设置为相应的 TDBGridEh 组件。使用 Print 以及 Preview 方法在打印机上打印网格或者在预览窗体中预览网格。 网格前以网格后的 RTF 文本 TPrintDBGridEh 允许在打印 / 打印预览网格前或网格后的 RTF 文本。使用 AfterGridText 以及 BeforeGridText 属性来指定文本。 你可以在打印 / 打印预览时通过 BeforeGridText 和 AfterGridText 属性来替换文本内容。 当前版本的 TPrintDBGridEh 不支持的特性。 这个版本不支持下面的特性: TPrintDBGridEh 不能在一页中打印 / 打印预览多个网格。 问答列表 : 问 : 怎样进行横向打印 / 打印预览? 答 : TPrintDBGridEh 并没有专六的属性来设置页面特性。在调用打印或打印预览方法前,你必须设置你将要执行打印的打印源( Orientation )。 uses ......, PrViewEh, Printers. .............. procedure TForm1.bPreviewClick(Sender: TObject); begin PrinterPreview.Orientation := poLandscape; PrintDBGridEh1.Preview; end ;