度量快速开发平台-专业、快速的软件定制快开平台

标题: 度量快速开发平台关于网格部件的单元格合并使用及效果 [打印本页]

作者: 王爱东    时间: 2020-3-10 08:35
标题: 度量快速开发平台关于网格部件的单元格合并使用及效果
度量快速开发平台中网格部件中的单元格,在合并的时候触发,根据实现代码的内容来判断哪些单元格可以合并,哪些单元格不能合并。注意:要启用单元格合并事件,需要先设置网格部件的属性“允许单元格合并”;勾上后表示网格中所有字段、只要值相同的行,都自动合并。因此,我们一般是在单元格合并事件中设置哪些条件不合并。
该事件需要使用事件参数,Me.GetEventArgs()。事件参数共有五个值,如下所示
dim e1=Me.GetEventArgs()
e1.FieldName:合并事件中的列名称,那一个字段需要进行控制;
e1.Value1:字段的第一个值(用于判断该字段各行的值);
e1.Value2:字段的下一个值(用于判断该字段各行的值);
e1.ReturnValue:是否合并的标志,为true表示合并,为false表示不合并;

e1.Handled:系统保留值,设置为true
示例:
本示例是设置区域中客户的相关信息,把相同区域,相同等级的客户类型显示合并起来。
  
'网格部件1 的 单元格合并事件 事件代码:
  
dim e1=Me.GetEventArgs()
  
'客户等级与客户类型这两个字段,有些相同的值不允许合并,因为需要看前一个字段是否相同判断
  
if e1.FieldName="客户等级" or e1.FieldName="客户类型" then
  
    if 网格部件1.GetFieldValueByRowHandle(e1.Value1,"所在片区") <>网格部件1.GetFieldValueByRowHandle(e1.Value2,"所在片区") then
  
       '所在片区不相等的,即使客户等级或者客户类型相等,也不合并
  
       e1.ReturnValue=false
  
       e1.Handled=true
  
    end  if
  
    if  e1.FieldName="客户类型"  then
  
       if 网格部件1.GetFieldValueByRowHandle(e1.Value1," 客户等级") <>网格部件1.GetFieldValueByRowHandle(e1.Value2," 客户等级") then
  
           '客户等级不相等的,客户类型相等,也不合并
  
           e1.ReturnValue=false
  
           e1.Handled=true
  
       end  if
  
    end  if
  
end if
  

效果:

注意下面客户类型为其他的,因为前面客户等级不同,所以没有合并。


作者: 张军勇    时间: 2020-3-10 08:46
经常用到的技术,不清楚的赶紧收藏。
作者: 张兴康    时间: 2020-3-10 08:59


作者: 陈晓龙    时间: 2020-3-10 09:52
这样好,写了方法,也有案例。就能看明白了。
作者: 张军勇    时间: 2020-3-10 18:15
  1. '网格部件1 的 单元格合并事件 事件代码:
  2. dim e1=Me.GetEventArgs()
  3.         '客户等级与客户类型这两个字段,有些相同的值不允许合并,因为需要看前一个字段是否相同判断
  4.         if e1.FieldName="客户等级" or e1.FieldName="客户类型" then
  5.                 if 网格部件1.GetFieldValueByRowHandle(e1.Value1,"所在片区") <>网格部件1.GetFieldValueByRowHandle(e1.Value2,"所在片区") then
  6.                 '所在片区不相等的,即使客户等级或者客户类型相等,也不合并
  7.                         e1.ReturnValue=false
  8.                 e1.Handled=true
  9.                 end if
  10.         if e1.FieldName="客户类型" then
  11.                 if 网格部件1.GetFieldValueByRowHandle(e1.Value1," 客户等级") <>网格部件1.GetFieldValueByRowHandle(e1.Value2," 客户等级") then
  12.                         '客户等级不相等的,客户类型相等,也不合并
  13.                         e1.ReturnValue=false
  14.                         e1.Handled=true
  15.                 end if
  16.         end if
  17. end if
复制代码


可以用代码模式插入代码。

作者: 万望    时间: 2020-4-2 15:14
再强化哈就更加完美了,要是能实现合并后合计行兼容合并效果那就好了
作者: 张兴康    时间: 2020-4-18 16:44
今天用了下合并判断代码;一定要记得把查询出来的数据先进行排序
作者: 刘亚东    时间: 2020-4-18 21:16
这个效果很好,逻辑上让我静静
作者: 万望    时间: 2020-4-25 17:17
可以接受
作者: fteair    时间: 2020-6-13 14:25





欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/) Powered by Discuz! X3.2