在控件的编辑结束事件中通过js动态地给单元格或其他控件赋值。
不管是单元格还是控件,都是用contentPane.setCellValue([reportIndex], columnIndex, rowIndex, cv);或者contentPane.setCellValue("单元格",null, cv);来赋值。
reportIndex指定单元格或控件所在的sheet,从0开始。
columnIndex指定单元格或控件所在的列,从0开始。
rowIndex指定单元格或控件所在的行,从0开始。
cv表示需要赋给单元格或控件的值。
示例:
contentPane.setCellValue(1,2,3,"abc");表示给sheet2的第3列第4行即单元格C4赋值abc。
范例:
给第一个文本框控件添加编辑后事件,JS代码:
- var a=this.getValue();//获取该控件的值
- contentPane.setCellValue(4,1, a); //第五列第2行的控件赋值
- contentPane.setCellValue(4, 3, "1"); //第五列第4行的控件赋值
扩展的单元格编辑
在控件的编辑结束事件中,动态地将行号与列号作为参数传递给js函数,使用contentPane.setCellValue(col, row, value);来给单元格赋值。
其中col、row都从0开始。
这里当编辑控件的值大于10时,受控单元格置数为1;反之,置数为0。
这里当编辑控件的值大于10时,受控单元格置数为1;反之,置数为0。
3.2 编辑结束事件设置
给文本框控件添加编辑结束事件,传入行号row与列号col参数,值分别为:=row()-1,=col():
- if(this.getValue()>10){
- contentPane.setCellValue(col,row,1);
- }else{
- contentPane.setCellValue(col,row,0);
- }
3. 插入行扩展的单元格
在填报web属性中增加加载结束事件,使用FineReport的监听事件获取到当前编辑单元格的行号和列号,保存在全局变量中,然后在单元格的编辑结束事件中拿到该行号列号给单元格赋值,FineReport监听事件获取单元格行号列号请查看获取当前编辑行单元格行号。
4.2 添加监听事件
点击模板>模板web属性>填报页面设置,新增一个加载结束事件,js如下:
- contentPane.on("cellselect", function(td) {
- var row =contentPane.curLGP.getTDRow(td);
- var col =contentPane.curLGP.getTDCol(td);
- window.row=row;
- window.col=col;
- });
注:全局变量必须在前面加一个window。