一、跳转到指定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的内容

该实现所需两张数据表:

  1. input_test_1(C1,C2,C3)
  2. 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);

其中:

  1. 经实际测试_g().parameterEl.getWidgetByName("sheet_name").setValue("")只能实现修改控件的值,实际控件关联的参数的值并未修改,所以需要执行_g().parameterCommit()来刷新参数值。
  2. _g().verifyAndWriteReport(true)表示验证后提交,其中参数值为false时为提交当前sheet页,值为true时为提交全部sheet页。
  3. 提交当前页或提交全部sheet页之前需要将sheet_name参数的值清空,否则会因为填报的提交条件限制导致无法正常提交。

当然,除此之外,你还可以通过FineReport自带的配置,将保存按钮设置为默认提交当前sheet。

跳转到制定Sheet页及提交指定sheet页内容的更多相关文章

  1. php分享表单提交到本页的实例

    我们在做表单提交时,一般都要设置表单的action属性,改属性用于指定表单提交到服务器上的哪个页面进行处理,但为空时,表示提交到本页进行处理,即提交给自己.本文章向大家分享表单提交给本页的实例. 实例 ...

  2. 问题:asp.net 点击button按钮调到页面顶部;结果:asp.net点击一个按钮,使页面跳转到本面页上的指定位置

    asp.net点击一个按钮,使页面跳转到本面页上的指定位置 (2011-04-19 16:46:51) 转载▼ 标签: it   最近在做一个项目. 用到标题所说的功能. 实现方法: 1.在aspx中 ...

  3. iOS - 小功能 跳转到淘宝或天猫的商品展示详情页

    最近做iOS项目的时候遇到一个需求,点击广告页,跳转到淘宝或天猫的商品详情页. 具体需要是这样: 1)安装了淘宝:跳转到淘宝详情页. 2)没装淘宝,装了天猫:跳转到天猫详情页 3)淘宝.天猫都没装:跳 ...

  4. GridView自定义分页样式(上一页,下一页,到第几页)

    今天要为网站做一个文章列表,发现GridView的分页样式很难看,于是结合网上的例子,自己做了一个.不是很美观,不过还是很实用的,先看下效果吧,如图(1). 图(1)GridView分页效果 自定义G ...

  5. mxonline实战11,课程详情页2,课程章节页

    对应github地址:第11天   一. 课程详情页2   1. 课程详情页第2块中的课程介绍中,修改course-detail.html中代码,搜索课程详情,找到如下代码

  6. Web Scraper 翻页——利用 Link 选择器翻页 | 简易数据分析 14

    这是简易数据分析系列的第 14 篇文章. 今天我们还来聊聊 Web Scraper 翻页的技巧. 这次的更新是受一位读者启发的,他当时想用 Web scraper 爬取一个分页器分页的网页,却发现我之 ...

  7. react 从商品详情页返回到商品列表页,列表自动滚动上次浏览的位置

    现状:目前从商品详情页返回到商品列表页,还需要再去请求服务数据,还需要用户再去等待获取数据的过程,这样用户体验非常不好, 遇到的问题: 1:如何将数据缓存, 2:如何获取和保存列表滑动的高度, 3:判 ...

  8. 为dedecms文章列表页标题增加序号,第二页开始才显示第x页

    想必大伙建站都会写文章,随着时间的推移,你的智慧结晶会越来越多,一般的建站程序早帮你想好了,把这些文章做成一个列表,比如dedecms栏目列表,便于观众浏览,但有个问题就是dedecms文章列表页标题 ...

  9. Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

    1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...

  10. 转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)

    转载网址:http://blog.csdn.net/bestlxm/article/details/6800077 js jquery 怎么获取当前页面的url,获取frameset中指定的页面的ur ...

随机推荐

  1. Java设计模式-观察者模式Observer

    介绍 观察者模式是行为设计模式之一.当您对对象的状态感兴趣并希望在任何更改时得到通知时,观察者设计模式非常有用.在观察者模式中,观察另一个对象状态的对象被称为观察者,而被观察的对象则被称为主体. 优点 ...

  2. 微信小程序引入iconfont实现添加自定义颜色图标

    说明 最近搞微信小程序,需要添加一些图标,发现引入iconfont还是有几个步骤,就记录下来分享以下. 以下配置方法支持自定义颜色的. 操作步骤 1. 在iconfont网站挑选自己需要的图标,添加到 ...

  3. SecureCRT很好用的几个快捷键

    以下是我在使用SecureCRT这个SSH工具时用到的很实用的快捷键,与大家分享: [Alt]+[Enter]:全屏 [Alt]+[B]: 快速打开新的连接 [Alt]+[1/2/3/4/5.../9 ...

  4. Django之第三方平台QQ授权登录的实现

    接入指南:https://wiki.connect.qq.com/成为开发者 准备工作 成为开发者 首先要有一个开发者账号,https://connect.qq.com/ 登录后点击用户头像,修改个人 ...

  5. 【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)

    问题描述 使用StackExchange.Redis 作为Redis客户端SDK,连接Azure Redis服务,长期运行后发现,每天都偶发 Timeout Error. 错误消息如下: StackE ...

  6. 【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)

    问题描述 为了保护Redis资源,把它与VNET集成后,实现只能通过VNET内网访问.在东二的区域中部署两个Redis服务后,发现一个奇怪的现象:东1区中的VM资源通过全局对等互联(Peering)实 ...

  7. 使用OpenFeign远程调用时请求头处理报错问题

    1. 错误信息 basic.result.exception.OtherException: feign error:系统异常:Content type 'multipart/form-data;bo ...

  8. Sagas论文原文读后总结

    一.引子 分布式事务组件seata最近社区很活跃,刚好公司有对接seata的计划.刚好借此机会,彻底了解下seata的价值.其中有一个比较特殊的模式叫SAGA模式,听起来就很懵逼,按照官网的介绍起源于 ...

  9. centos7 开机自动执行脚本

    1.因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2.赋予脚本可执行权限假设/usr/loc ...

  10. 视觉slam十四讲CH5 ---相机与图像

    视觉slam十四讲 ---CH5 相机与图像 视觉slam中,作为主要传感器的相机自然起到着重要的作用,而相机拍摄的图像及其处理也是我们要做的工作之一. 1. 相机模型 单目相机的针孔模型 上图中的模 ...