已经投票
二次开发 >> JavaScript >> FR的JS实例 >> 填报预览JS实例

填报预览JS实例

顶( )
最后更新日期: 人发表评论 (点击查看)

填报js,获取填报控件,控件js,js,给单元格赋值,获取单元格的值,获取实际值,获取显示值,重置,设置可见,设置不可见,行列转换,单元格转换
1. 描述
在对数据进行填报的时候,经常会需要使用js对一些功能进行二次开发,比如说设置填报单元格是否可以编辑,给单元格控件进行赋值等等。
参数面板类似,首先需要获取填报预览下的控件或者单元格,才能对其进行各种方法操作。
不同于参数界面js的是,填报页面下有一个特殊性,既有单元格又有控件,通过控件来输入数据,编辑数据,控件编辑结束之后,会自动将值传递给控件所在的单元格,所以,js获取的时候即可获取到单元格也可以获取到控件,获取单元格只能取值和赋值。
2. 单元格
2.1 获取单元格的值
获取填报页面的单元格的值,有以下几种方法:
由于单元格可以设置形态来改变其显示值,故js获取单元格有获取实际值和显示值的区分。
2.2 给单元格赋值
赋值的方式也分为赋显示值和赋实际值,如下:
2.3 获取当前单元格行列号
上述给取单元格的值和赋值均是确切知道单元格行列号的,那么,如果单元格行列号是动态的,比如说,修改当前编辑行的单元格的值,那么怎么才能定位到该单元格呢?js如下:
2.4 单元格行列号和单元格的转换
能够获取到一个行号row和一个列号col,希望得到该行列号对应的单元格,js如下:
知道具体的单元格,希望得到定位该单元格的行列号,js如下:
3. 控件
获取填报页面的控件,首先要获取到当前的填报页面对象
3.1 获取填报页面控件
首先获取到填报页面对象,直接在FR模板中使用js,其填报页面对象直接使用contentPane即可获取到,那么获取控件的js为:
填报控件是与单元格绑定的,如果单元格可扩展,那么控件也可以扩展,故为扩展出多个同名的填报控件,类似这种获取多个同名控件的js方法为:
注:使用contentPane.getWidgetsByName的时候,返回的是数组。
在web页面中获取FineReport填报报表对象的js为:
那么其获取控件的js为:
获取多个同名控件的js为:
注:其中reportFrame是web页面中嵌入FineReport报表的iframe
3.2 填报控件方法列表
获取到控件之后,需要对该控件进行再操作,可以获取其控件值,赋值,设置是否可见等等方法,如下列表:
方法名方法 说明
取实际值Widget.getValue()获取控件实际值
取显示值Widget.getText()获取控件的显示值
赋实际值Widget.setValue()给参数控件赋值,不建议给填报控件赋实际值
赋显示值Widget.setText()()给参数控件赋显示值
可见Widget.visible()设置控件可见
不可见Widget.invisible()设置控件不可见
是否可见Widget.isVisible()返回控件是否可见,返回true可见,false不可见
设置可见Widget.setVisible(boolean)设置控件是否可见,参数为true可见,false不可见
设置可用Widget.setEnable(boolean)设置控件是否可用,参数为true可用,false不可用
是否可用Widget.isEnabled()返回控件是否可用,返回true可用,false不可用
调用控件事件Widget.fireEvent("事件名称")设置控件触发指定名字的事件
其中Widget为获取到的控件
注:如果用setValue()给下拉树赋值,需要添加一个false参数,即setValue(value,false);value为需要赋给下拉树的值
提醒:填报页面上最后显示填报入库的值都是单元格的值,通过填报控件编辑数据,当编辑结束之后,控件会自动将值传递给当前单元格,故,如果通过js给控件赋值,只有被赋值的控件处于被编辑的状态时,最后才能在单元格中显示出来,如果控件处于非编辑状态,使用控件赋值,是不起作用的,所以,强烈建议用户在获取填报单元格的值或赋值的时候尽量使用getCellValue和setCellValue
4. 示例链接
获取填报预览单元格应用请查看获取填报预览单元格
给填报单元格赋值请查看填报控件(单元格)赋值给扩展单元格置数给文本框赋多个值
js对填报数据进行校验请查看js及时校验

索引:
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3