Ehlib系列文章之二:妙用TColunmnEh的OnGetCellParams事件

本文介绍Ehlib表格中GetCellParams事件的使用技巧,包括如何通过此事件实现行状态标记及Lookup关联表填充,提高表格数据展示的灵活性与效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ehlib比DBGrid提供更多灵活的属性和事件,尤其是TColunmnEh的属性和事件。
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);
见图:
Ehlib系列文章之二:妙用TColunmnEh的OnGetCellParams事件 - yyimen - yyimen的博客
2、与数据集的Lookup方法搭配。
在该事件里,可以填充一列或多列Lookup关联的表。
(1)优点是:不用在设计期或运行期创建Lookup字段,不用建立PickList和KeyList。
                        如果是一个复杂的窗口,已经有了Lookup对应的数据集,那我们不在需要重新建立新的
                        Lookup数据集。其原因是:Lookup搜索字符串不像locate一样移动数据集有效,因此可以共
                        享一个数据集。不用担心速度,因为Ehlib表格搜索的lookup匹配值,只是表格里能显示的记
                        录数,而不是所有的记录数。
(2)缺点是:由于是派生的列,没有指定字段名,因此不能排序和统计。



        
        



        







        
          
            
            评论这张
          
        


          
            
               Ehlib系列文章之二:妙用TColunmnEh的OnGetCellParams事件 - yyimen - yyimen的博客
            
            转发至微博
          
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值