finereport如何联动实现控件值随着单元格的值改变而变化

有两种思路:

第一个是使用控件下面的事件,有编辑前事件和编辑后事件,分别获取单元格的值进行比较,如果改变说明单元格值被修改。

第二个是建一张中间表,通过编辑后事件获取单元格的值与中间表的值进行对比,判断是否修改。

 

第一种思路的具体实现:

首先得知道如何通过js获取单元格的值:如果获取当前单元格的值可以通过下面js

this.getValue();

如果想要获取指定单元格的值,则通过下面js

contentPane.getCellValue(sheet号,列号,行号);  //sheet号行号列号是从0开始  
contentPane.curLGP.getCellValue(列号,行号);   
contentPane.curLGP._get$TDCell(col,row).text()//获取单元格显示值 
var cell = FR.columnRow2CellStr({col:Number(col) ,row:number(row)}) 
contentPane.curLGP._get$TDCell(cell).text()

则行号与列号则可以通过事件里面的参数添加参数,参数的值使用函数中的报表函数ROW()和COL()。

接下来使用判断if来修改控件值

if(r4!=r2){contentPane.setCellValue(col-1,row-1,"Y");}

col和row是要修改的控件所在的列和行,注意要减一才能获取正确的行和列。

还可以通过数组来纪录是否修改,然后再要修改的控件下面添加事件根据数组纪录的确定是否改变值。

未完,待续!

 

你可能感兴趣的:(finereport,finereport)