最后更新日期:
2019-10-16
|
有
人发表评论
|
重新加载,重新加载sheet,重新加载当前sheet,刷新sheet,
1. 描述
多sheet报表在实际项目中应用是比较广泛的,相比较于单sheet报表,多sheet报表一般性功能不会特别的复杂,下面介绍几个多sheet里面的典型应用。
2. 重新加载当前sheet
在对当前sheet进行编辑的时候,比如说需要点击某个按钮刷新重新加载当前sheet,如下图:
刷新当前sheet会清除当前sheet的编辑痕迹,而不影响到其他sheet。
打开设计器,选中刷新按钮,为该按钮添加一个点击事件,如下图:
3. 跨sheet校验
在对多sheet进行填报的时候,往往需要从其他sheet取数参与计算,或者以其他sheet的数据为依据,对当前sheet的填报数据进行一定的约束,这个就是跨sheet校验。
在提交数据之前对数据进行校验,比如说,当前模板有2个sheet,sheet1里面的某个数据与sheet2里面的某个数据的和必须满足特定条件。
如下图,点击模板>报表填报属性,切换到数据校验标签,添加一个内置校验,校验公式为sheet1!A2+sheet2!B2>1000,校验出错信息为shee1的A2单元格与sheet2的B2单元格和值太小:
使用js对多sheet进行校验,原理是将其他sheet的数值通过FR取数方法赋值给js里面定义的参数,然后参与校验。
比如说,在编辑sheet2里面的B2单元格的时候,如果sheet1的A2单元格与sheet2的B2单元格的和小于1000,则提示警告,如下图:
在sheet2的B2单元格的控件添加一个编辑结束事件,如下图:
js代码为:
由上图的js代码可知,在js中进行跨sheet校验,获取其他sheet的单元格值可通过方法contentPane.getCellValue(sheet号,列号,行号); //sheet号行号列号是从0开始 来获取,详细请参照填报预览JS实例