您现在的位置:首页 >> VCL >> VCL >> 内容

Delphi中妙用TColunmnEh的OnGetCellParams事件

时间:2011/9/3 16:23:28 点击:

  核心提示:GetCellParams是TColunmnEh重要的事件之一,用好了这个事件,可以达到妙笔生花的境界。1、与数据集的UpdateStatus搭配,派生出一列的行状态标记,一目了然,非常适用缓存提交方...

GetCellParams是TColunmnEh重要的事件之一,用好了这个事件,可以达到妙笔生花的境界。

1、与数据集的UpdateStatus搭配,派生出一列的行状态标记,一目了然,非常适用缓存提交方式。

procedure TWinEhlibInfo.SetRecordStatus(
         DataSet:TDataSet;
         EditMode: Boolean; Params: TColCellParamsEh);
begin
    EditMode := False;

if (DataSet<>nil) and (DataSet.Active) then
begin
    case DataSet.UpdateStatus of
    usInserted:Params.text := '+';
    usModified:Params.text := 'I';
    usDeleted:Params.text := '-';//保留删除的标记,比如在恢复 CDS.delta,或者过滤数据集状态,

                                                 //我们可以看到删除的状态行
    else
      Params.Text := '*';
    end;
end;
end;

调用方法:ClientDataSet1为ehlib表格对应的数据集。

手工创建一列(TColunmnEh),放在最后,宽度Width 为36即可,“列”属性的AutoFitColwidth为false,“列”不要指定数据集字段,然后在TColunmnEh的OnGetCellParams事件写上:

WinEhlibInfo.SetRecordStatus(ClientDataSet1,EditMode,Params);

见图:

600) this.width = 600;">

2、与数据集的Lookup方法搭配。

在该事件里,可以填充一列或多列Lookup关联的表。

(1)优点是:不用在设计期或运行期创建Lookup字段,不用建立PickList和KeyList。

                       如果是一个复杂的窗口,已经有了Lookup对应的数据集,那我们不在需要重新建立新的

                       Lookup数据集。其原因是:Lookup搜索字符串不像locate一样移动数据集有效,因此可以共

                       享一个数据集。不用担心速度,因为Ehlib表格搜索的lookup匹配值,只是表格里能显示的记

                       录数,而不是所有的记录数。

(2)缺点是:由于是派生的列,没有指定字段名,因此不能排序和统计。

Tags:妙用 事件 
作者:tintinsoft 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • 盒子文章(www.2ccc.com) © 2024 版权所有 All Rights Reserved.
  • 沪ICP备05001939号