Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能
2014-10-18 20:17
816 查看
我们经常有这样一种需求,子表里新加或修改一数值后,要马上在主表里把它们的和显示在主表上。如果用插件来实现,可以实现求和,但页面上还要刷新一下才能显示正确。这时就考虑到用JS来实现这一功能,并自动刷新页面,让求和的值马上显示在主表上。
子表上新加或修改完,保存并关闭后,系统会自动刷新子表列表,以显示新的子表数据行,这时就想到是不是可以利用这个子表的刷新功能来计算并显示值。
下面介绍详细的实现方法:
1.重写SubGrid的Refresh事件,SubGrid刷新的时候注册一个事件,完成SubGriditem的累加计算
子表上新加或修改完,保存并关闭后,系统会自动刷新子表列表,以显示新的子表数据行,这时就想到是不是可以利用这个子表的刷新功能来计算并显示值。
下面介绍详细的实现方法:
1.重写SubGrid的Refresh事件,SubGrid刷新的时候注册一个事件,完成SubGriditem的累加计算
1:(function(window,undefined){
2:varpreRefresh=Mscrm.GridControl.prototype.Refresh;
3:Mscrm.GridControl.prototype.Refresh=function(){
4:preRefresh.apply(this);
5:fireCallback.apply(this);
6:}
7:varoneEvent=null;
8:Mscrm.GridControl.add_onRefresh=function(json){
9:oneEvent=json;
10:}
11:functionfireCallback(){
12:if(oneEvent&&oneEvent.controlId&&oneEvent.controlId==this.get_id()){
13:oneEvent.callback.apply(this,null);
14:}
15:}
16:})(window);
17:
18:Mscrm.GridControl.add_onRefresh({
19:controlId:"chart_btl_postm",callback:function(){
20:sumCost("new_sum_cost_bp","new_cost","new_btl_posm");
21:}
22:});
这里的sumCost的方法就是计算并显示值到主表上
2.计算并显示方法
1:functionsumCost(sumFieldNmae,subFiledName,subEntityName){
2:varamount=0;
3:varkey="new_marketing_planid/Id";
4:varvalue=Xrm.Page.data.entity.getId();
5://varquery="new_btl_posmSet?$select=new_cost&$filter=new_marketing_planid/Ideqguid'123'";
6:varquery=subEntityName+"Set?$select="+subFiledName+"&$filter="+key+"eqguid'"+value+"'";
7:varresult=ODataRetrieve(query);
8:if(result!=null&&result.results.length>0){
9:for(vari=0;i<result.results.length;i++){
10:amount+=Number(result.results[i].new_cost);
11:}
12:}
13:
14:Xrm.Page.getAttribute(sumFieldNmae).setValue(amount);
15:}
3.把js文件加到form上,刷新页面,马上就可以看到效果了
DynamicCRM2013学习笔记系列汇总
相关文章推荐
- Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件
- Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能
- Flask学习总结笔记(8) -- 利用Flask-mail实现电子邮件发送功能
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
- 【学习笔记⑥】ssh中利用struts实现图片的上传功能
- Dynamic CRM 2013学习笔记(四十六)简单审批流的实现
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- JavaScript学习笔记:用JavaScript部分小功能的实现
- Dynamic CRM 2013学习笔记 系列汇总
- MonoRail学习笔记五:定制服务实现自定义功能
- [学习笔记]小型论坛功能——实现按照指定每页的行数来分页显示记录[3]
- Asp.Net Ajax 学习笔记21 VS2008的JavaScript代码提示功能
- 利用JavaScript实现GridView中表头CheckBox的全选功能
- javascript学习笔记 (四)-面向对象的实现
- SilverLight学习笔记--利用DependencyProperty依赖属性创建自备录入过滤功能的TextBox控件
- PHP学习笔记 2009-8-25 实现分页显示功能
- 关于java打印功能的最简单实现的学习笔记
- ITCAST视频-Spring学习笔记(使用JDK中的Proxy技术实现AOP功能)
- ASP.NET学习笔记(5)--&quot;返回上一页&quot;功能的实现
- ITCAST视频-Spring学习笔记(使用CGLIB实现AOP功能与AOP概念解释)