finereport7.1报表端和web端的交互



这个章节讲的很详细,可以仔细看看,重点,其实最后所有的报表都转化为了html,所以和web端的交互, 即我们的项目中直接通过js获取里面的所有元素。


代码如下:

先引入finereport的js文件(这个文件是内置的,不用去找到放入项目,是内置的,切记)


<script type="text/javascript" src="<%=request.getContextPath()%>/ReportServer?op=emb&resource=finereport.js"></script> 



然后在body中加入ifream


<iframe id="myframe" src="<%=request.getContextPath()%>/ReportServer?reportlet=szyb/insuredmgmt/grgl/p60ylbzcbpz.cpt" width="450" height="400" >
</iframe>


下面的js就可以实现调用里面的代码以及获取里面的元素了:


function test(){

//调用里面的打印方法,以及分页、跳转等等
document.getElementById('myframe').contentWindow.contentPane.printPreview();  
 
//获得里面的参数 ,SFZH参数身份证号
var obj = document.getElementById("myframe").contentWindow.document.getElementsByName('SFZH'); 

alert(obj[0].value);

}

其实用jquery查找元素更加方便,如果需要的话,那么就需要映入jquery的js文件,,jquery的版本自己随意,我这里是1.7.2

<script type="text/javascript" language="javascript" src="<%=request.getContextPath()%>/basejs/jquery-1.7.2.js"></script>


//获取报表里面元素的值, 假设报表工具中加入了一个时间控件,名字叫JSNY,获取方法如下

//这里特别强调一下,如果报表工具中添加的是普通的文本框,那么直接var obj = document.getElementById("myframe").contentWindow.document.getElementsByName('SFZH'); 

这样就可以获取到了,如果是一些特殊控件,就要看实际的html元素代码了,这里的时间控件,并不是一个input ,而是一个div,所以这里我先找到div,再找到里面的input


function  test1(){

var obj = $('#myframe').contents().find("[widgetname='JSNY']");


alert($(obj[0]).find(":text")[0].value);

}


附加一些在报表工具中可以用的js方法


//获得下拉控件中选中的索引

 var a = this.options.form.getWidgetByName("xlsj").selectedIndex;

//获得下拉控件的值
var value = this.options.form.getWidgetByName("xlsj").options.data.records[a].data.text;

alert(value);


//万能的获取控件的值

//var value = this.options.form.getWidgetByName("xb").getValue();
 //alert(value);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值