Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件
2024-10-07 02:47:54
上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多实体要实现这个功能,有人觉得有点麻烦了,就不太喜欢这种方式,于是我写了一个通用的子表合计功能的通用插件,只用在注册插件时,填写不同的参数就可以实现这个功能了。
1. 首先看下效果:
2. 注册方法:
我们需要在子表上对create和update方法进行注册:
注册时要填写4个参数:
第一个参数是要被合计的子表字段,第二个参数是主表的主健,第三个参数是主表实体名,第四个参数是主表上显示合计值的字段。
注册update时,要注意把子表里关联主表的字段,也是主表的主健要加到image里,以方便插件里使用,而且可以加上filter 属性,只用在这个字段时才触发这个插件:
3. 实现方法
- 获取当前实体
1: Entity entity = (Entity)context.InputParameters["Target"];2: Entity preEntity = msg == "update" ? (Entity)context.PreEntityImages["preEntity"] : entity;
- 获取参数
1: public SumSubgrid(string unsecure)2: {3: m_config = unsecure;4: }
- 合计获取子表
使用 OrganizationServiceContext svcContext = new OrganizationServiceContext(adminService) 来读写实体
1: var ents = svcContext.CreateQuery(entity.LogicalName).Where(e => e[parameters[1]] == preEntity[parameters[1]] && e[parameters[0]] != null).Select(e => e[parameters[0]]);2: decimal amount = 0;3: foreach (var ent in ents)4: {5: amount += Convert.ToDecimal(ent);6: }
- 把合计值保存到主表上的合计字段
1: var primaryEnt = svcContext.CreateQuery(parameters[2]).Where(e => e[parameters[1]] == preEntity[parameters[1]]).FirstOrDefault();2: primaryEnt[parameters[3]] = amount;3: svcContext.UpdateObject(primaryEnt);4: svcContext.SaveChanges();
是不是很简洁,大功告成!
最新文章
- 推荐几款我一直在用的chrome插件(下)
- html视频播放器的代码 及其参数详解
- css 之 文本缩进属性(text-indent)
- Jquery cxColor 示例演示
- 品牌OEM信息导入工具(实测支持Win10)
- 翻译-In-Stream Big Data Processing 流式大数据处理
- 北京联想招聘-Android高级工程师(5-7年) 加入qq 群:220486180 或者直接在此 留言咨询
- jQuery工具函数
- 24个有用的PHP类库分享
- nginx 采用https 协议通信配置
- python excel操作总结
- intellij idea创建maven项目
- MS SQL CASE WHEN 的用法
- Tennis Game CodeForces - 496D(唯一分解定理,费马大定理)
- ajax返回json时,js获取类型,是字符串类型
- Spark Stage切分 源码剖析——DAGScheduler
- Android5.0中Material Design的新特性
- mtrace检查内存泄漏
- 自定义tarBar
- Form表单如何可以传递多个值传递List数组对象到后台的解决办法
热门文章
- Scala伴生类和伴生对象
- ajax执行完成后,再执行下面的代码的解决办法
- weed-fs 压力测试
- mysql的从头到脚优化之数据库引擎的选择(转载)
- http://10.11.112.12:8000/homePage.jsp?loginMode=JS
- machine learning----->;什么是机器学习
- 线程本地变量ThreadLocal (耗时工具)
- UIScrollViewDelegate
- .NET实现高效过滤敏感查找树算法(分词算法):
- Selenium2+python自动化17-JS处理滚动条