填报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. 示例链接
索引: