度量快速开发平台-业界最好的全功能软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1155|回复: 9

[分享] 度量快速开发平台关于网格部件的单元格合并使用及效果

  [复制链接]

197

主题

1307

帖子

3506

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3506
发表于 2016-10-10 08:35:33 | 显示全部楼层 |阅读模式
度量快速开发平台中网格部件中的单元格,在合并的时候触发,根据实现代码的内容来判断哪些单元格可以合并,哪些单元格不能合并。注意:要启用单元格合并事件,需要先设置网格部件的属性“允许单元格合并”;勾上后表示网格中所有字段、只要值相同的行,都自动合并。因此,我们一般是在单元格合并事件中设置哪些条件不合并。
A1.png
该事件需要使用事件参数,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
  

效果:

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

回复

使用道具 举报

78

主题

634

帖子

1596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1596
发表于 2016-10-10 08:46:19 | 显示全部楼层
经常用到的技术,不清楚的赶紧收藏。
回复 支持 反对

使用道具 举报

514

主题

5611

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
12997
发表于 2016-10-10 08:59:43 | 显示全部楼层

回复

使用道具 举报

328

主题

3738

帖子

8565

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8565
QQ
发表于 2016-10-10 09:52:57 | 显示全部楼层
这样好,写了方法,也有案例。就能看明白了。
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1596
发表于 2016-10-10 18:15:46 | 显示全部楼层
  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
复制代码


可以用代码模式插入代码。
回复 支持 反对

使用道具 举报

514

主题

5611

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
12997
发表于 2016-11-18 16:44:42 | 显示全部楼层
今天用了下合并判断代码;一定要记得把查询出来的数据先进行排序
回复 支持 反对

使用道具 举报

66

主题

683

帖子

1792

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1792
发表于 2016-11-18 21:16:40 | 显示全部楼层
这个效果很好,逻辑上让我静静
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8678

积分

论坛元老

Rank: 8Rank: 8

积分
8678
发表于 2016-11-25 17:17:52 | 显示全部楼层
可以接受
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8678

积分

论坛元老

Rank: 8Rank: 8

积分
8678
发表于 2017-5-2 15:14:51 | 显示全部楼层
再强化哈就更加完美了,要是能实现合并后合计行兼容合并效果那就好了
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

168

主题

1848

帖子

4222

积分

论坛元老

Rank: 8Rank: 8

积分
4222
发表于 2017-7-13 14:25:11 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2018-1-17 17:16 , Processed in 0.433584 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表