跳转到制定Sheet页及提交指定sheet页内容
一、跳转到指定Sheet的实现
话不多说,先上效果图

两个按钮的事件分别如下:
_g().loadSheetByName("sheet1") # 跳转至sheet1按钮事件
_g().loadSheetByName("sheet2") # 跳转至sheet2按钮事件
其核心为_g().loadSheetByName("sheet1"),其中sheet1参数值为sheet页的名称。
除此之外,还有部分需求可能希望在进入页面的时候可以根据参数直接跳转到某个指定sheet页。
此时,我们可以在访问报表时在URL中增加一个指定参数,并通过上述跳转代码进行跳转,其大致操作如下:
1、在模板web属性中的填报页面设置增加加载起始事件,其中参数sheetName 的值用公式获取参数$sheetName的值。事件代码填:_g().loadSheetByName(sheetName)

2、在访问报表的时候,在URL后面拼接参数&sheetName=sheet2,访问时会自动跳转到sheet2页面。

二、提交指定sheet的内容
该实现所需两张数据表:
- input_test_1(C1,C2,C3)
- input_test_2(C1,C2,C3)

参数栏中,各控件解释如下:
● 文本框,控件名称为sheet_name,用来传递参数sheet_name的值,在实际应用过程中应该将该控件设置为不可见,本次测试为了方便演示选择可见。
● 切换至sheet1,切换至sheet2 功能如上一节描述。
● 提交sheet1,可以实现只提交sheet1页面中的内容。
● 提交sheet2,可以实现只提交sheet2页面中的内容。
● 提交当前sheet,可以实现提交当前sheet页的内容。
● 提交所有sheet,可以实现提交所有sheet页的内容。
两个sheet页及填报属性如下:
sheet1


sheet2


其中,提交条件设置如下:
FIND("sheet2",$sheet_name)>0 or len($sheet_name)==0
该条件可以限制只有参数sheet_name 中包含当前sheet的名字或该参数为空时才允许提交。
此步骤是指定sheet提交实现过程中很重要的一步。
各按钮事件如下:
切换至sheet1
this.options.form.getWidgetByName("sheet_name").setValue("sheet1");
_g().loadSheetByName("sheet1")
切换至sheet2
this.options.form.getWidgetByName("sheet_name").setValue("sheet2");
_g().loadSheetByName("sheet2")
提交sheet1
_g().parameterEl.getWidgetByName("sheet_name").setValue("sheet1");
_g().parameterCommit();
_g().verifyAndWriteReport(true);
提交sheet2
_g().parameterEl.getWidgetByName("sheet_name").setValue("sheet2");
_g().parameterCommit();
_g().verifyAndWriteReport(true);
提交当前sheet
_g().parameterEl.getWidgetByName("sheet_name").setValue("");
_g().parameterCommit();
_g().verifyAndWriteReport(false);
提交所有sheet
_g().parameterEl.getWidgetByName("sheet_name").setValue("");
_g().parameterCommit();
_g().verifyAndWriteReport(true);
其中:
- 经实际测试
_g().parameterEl.getWidgetByName("sheet_name").setValue("")只能实现修改控件的值,实际控件关联的参数的值并未修改,所以需要执行_g().parameterCommit()来刷新参数值。 _g().verifyAndWriteReport(true)表示验证后提交,其中参数值为false时为提交当前sheet页,值为true时为提交全部sheet页。- 提交当前页或提交全部sheet页之前需要将sheet_name参数的值清空,否则会因为填报的提交条件限制导致无法正常提交。
当然,除此之外,你还可以通过FineReport自带的配置,将保存按钮设置为默认提交当前sheet。

跳转到制定Sheet页及提交指定sheet页内容的更多相关文章
- php分享表单提交到本页的实例
我们在做表单提交时,一般都要设置表单的action属性,改属性用于指定表单提交到服务器上的哪个页面进行处理,但为空时,表示提交到本页进行处理,即提交给自己.本文章向大家分享表单提交给本页的实例. 实例 ...
- 问题:asp.net 点击button按钮调到页面顶部;结果:asp.net点击一个按钮,使页面跳转到本面页上的指定位置
asp.net点击一个按钮,使页面跳转到本面页上的指定位置 (2011-04-19 16:46:51) 转载▼ 标签: it 最近在做一个项目. 用到标题所说的功能. 实现方法: 1.在aspx中 ...
- iOS - 小功能 跳转到淘宝或天猫的商品展示详情页
最近做iOS项目的时候遇到一个需求,点击广告页,跳转到淘宝或天猫的商品详情页. 具体需要是这样: 1)安装了淘宝:跳转到淘宝详情页. 2)没装淘宝,装了天猫:跳转到天猫详情页 3)淘宝.天猫都没装:跳 ...
- GridView自定义分页样式(上一页,下一页,到第几页)
今天要为网站做一个文章列表,发现GridView的分页样式很难看,于是结合网上的例子,自己做了一个.不是很美观,不过还是很实用的,先看下效果吧,如图(1). 图(1)GridView分页效果 自定义G ...
- mxonline实战11,课程详情页2,课程章节页
对应github地址:第11天 一. 课程详情页2 1. 课程详情页第2块中的课程介绍中,修改course-detail.html中代码,搜索课程详情,找到如下代码
- Web Scraper 翻页——利用 Link 选择器翻页 | 简易数据分析 14
这是简易数据分析系列的第 14 篇文章. 今天我们还来聊聊 Web Scraper 翻页的技巧. 这次的更新是受一位读者启发的,他当时想用 Web scraper 爬取一个分页器分页的网页,却发现我之 ...
- react 从商品详情页返回到商品列表页,列表自动滚动上次浏览的位置
现状:目前从商品详情页返回到商品列表页,还需要再去请求服务数据,还需要用户再去等待获取数据的过程,这样用户体验非常不好, 遇到的问题: 1:如何将数据缓存, 2:如何获取和保存列表滑动的高度, 3:判 ...
- 为dedecms文章列表页标题增加序号,第二页开始才显示第x页
想必大伙建站都会写文章,随着时间的推移,你的智慧结晶会越来越多,一般的建站程序早帮你想好了,把这些文章做成一个列表,比如dedecms栏目列表,便于观众浏览,但有个问题就是dedecms文章列表页标题 ...
- Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印
1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...
- 转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)
转载网址:http://blog.csdn.net/bestlxm/article/details/6800077 js jquery 怎么获取当前页面的url,获取frameset中指定的页面的ur ...
随机推荐
- Java I/O 教程(十 一) BufferedWriter和BufferedReader
Java BufferedWriter 类 Java BufferedWriter class 继承了Writer类,为Writer实例提供缓冲. 提升了写字符和字符串性能. 类定义: public ...
- MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
描述: 2021-08-xx 13:31:30.049 DEBUG 9208 : ==> Preparing: SELECT SUM(end_vt) - SUM(start_vt) FROM s ...
- timeit测试函数执行时间
def list_append(): l = [] for i in range(5000): l.append(i) def list_insert(): l = [] for i in range ...
- pymysql基本语法,sql注入攻击,python操作pymysql,数据库导入导出及恢复数据---day38
1.pymysql基本语法 # ### python操作mysql import pymysql ''' # ### 1.基本语法 #(1) 创建连接 host user password datab ...
- celery中异步延迟执行任务apply_anysc的用法
描述 首先说下异步任务执行delay()和apply_anysc()两者区别,其实两者都是执行异步任务的方法,delay是apply_anysc的简写.所以delay中传递的参数会比apply_any ...
- React 组件之属性
如果你想要实现自己的梦想,就必须先拥有勇气去追求它. 1. React Props 属性 props 主要解决两个问题:复用性问题以及可以让组件之间通信. 属性 props 正常是外部传入的,组件内部 ...
- 【C++ OOP 01】封装
封装 封装的意义 封装是C++面向对象三大特性之一 封装的意义: 将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制 封装意义一 在设计类的时候,属性和行为写在一起,表现事物 语 ...
- 用Docker搭建DNS服务器
0.准备工作 如果是全新安装的服务器,先要给root账户设置密码,命令是 sudo passwd root 然后切换到root账户 su root 上述过程屏幕输出如下 1.Docker-Compos ...
- 第119篇: JavaScript 类
好家伙,我们先来复习一下 关于Java,类的三大特征: 1.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 2.继承,继承性更 ...
- rpa使用自带数据抓取方式抓取页面元素
大家好,我是一方. 今天我们一起看一下如何使用rpa自带的功能来抓取自己想要的页面元素,这里我们以抖音为例来抓取某个领域的作者列表. 想要获取页面元素,大概的流程为:确定页面元素.分析页面元素.使用自 ...