FR事件逐步整理

1.条件选择后自动查询

_g().parameterCommit();

2.自定义按钮事件提交

_g('${sessionID}').writeReport();  

FineReport数据提交的时候还包含数据校验,如果自定义按钮提交的时候同时希望执行内置的提交校验,校验不通过,则不提交,那么js可更改为:

_g('${sessionID}').verifyAndWriteReport(); 

3. 1.点击插入行事、删除事件

添加行事件contentPane.appendReportRC(1);   删除行事件contentPane.deleteReportRC(null,window.num);    

3.  2.填报页面,勾选为该模板单独设置,然后在事件编辑中增加加载结束事件加载结束事件

 

  1. var curLGP = contentPane.curLGP;  //获取当前填报表  
  2. contentPane.on("cellselect", function(rowvalue) {    //增加单元格选中监听事件  
  3.  var rownum = $(rowvalue).attr("id");  //获取选中的单元格的当前行号  
  4.   window.num = rownum;  //将当前行号赋值给window的num变量  
  5. });  

3. 3 如遇批量删除按钮点击事件 JS 写法如下

//定义选中的复选框   
var darray = [];   
var $tds = $("td").has($span);   //定义选中复选框的单元格   
for (var i = 0, len = $tds.length; i < len; i ++) {    //遍历选中的单元格  
     var id = $($tds[i]).attr("id");     //给选中的单元格加上id的属性  
     if (id) {  
      darray.push(id);     //将选中的id放入到数组中  
     }  
}  
contentPane.deleteReportRC(null,darray); //第二个参数为批量删除的选中行  
contentPane.writeReport();   

4.FR强制将光标移到某个单元格后刷新

contentPane.curLGP.selectTDCell("A2") ;//A2表示为需要将光标强制移到的位置

5.全屏事件

 

  1. var docElm = document.documentElement;  
  2. //W3C  
  3. if(docElm.requestFullscreen){  
  4.     docElm.requestFullscreen();  
  5. }  
  6. //FireFox  
  7. else if(docElm.mozRequestFullScreen){  
  8.     docElm.mozRequestFullScreen();  
  9. }  
  10. //Chrome等  
  11. else if(docElm.webkitRequestFullScreen){  
  12.     docElm.webkitRequestFullScreen();  
  13. }  

 

注:上述代码仅适配于谷歌、火狐、360(极速模式)浏览器。

6.JS获取报表单元格值

var v3=contentPane.curLGP.getCellValue("E4");  

7.直接获取参数面板控件值

var a=_g().parameterEl.getWidgetByName("dpmc").getValue();//获取b控件的值  
alert("地区是:"+a);  

8.填报成功自动刷新

点击模板>模板web属性>填报页面设置,然后在事件设置中添加填报成功事件,在js脚本中输入:

  1. location.reload();  

点击确定即可。

2. 多sheet填报表编辑

2.1 问题描述

对于多sheet填报表,若对sheet2进行填报,使用如上解决方案填报成功后显示的是sheet1,需要点击sheet2才能查看刚刚填报的内容,那么如何实现在哪个sheet填报成功就显示哪个sheet呢?

2.2 实现方案

点击模板>模板web属性>填报页面设置,然后在事件设置中添加填报成功事件,在js脚本中输入:

  1. this.refreshAllSheets();  

9.前端JS引用报表主体点事件或参数界面点击事件

参数界面的按钮

1

_g().parameterEl.getWidgetByName("按钮控件名").fireEvent("click");

报表主体的按钮

1

_g().getWidgetByName("按钮控件名").fireEvent("click");

或g()..getWidgetByCell("按钮控件名").fireEvent("click");

填报contentPane.getWidgetByName("按钮控件名").fireEvent("click");

 

10.普通CPT报表JS获取sessionid的方法 : var a=conternPane.currentSessionID   alert(a)

     决策报表session获取方法点击事件 var a=_g().sessionID  alert(a)   

     报表内容可直接按变量取公式 =sessionID

11. 小写自动转换成大写(编辑后事件)

this.setValue(this.getValue().toUpperCase());

你可能感兴趣的:(帆软)