- 浏览: 134854 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
蜀山红日:
到varchar的时候它说标识符无效该怎么办呢
Oracle 修改表字段长度 -
心的方向:
我也在做润乾报表开发,有时间加下我q345943980
jsp与润乾报表软件整合 -
ljpandmlx:
页面接收不到username的值,参数username还有其他 ...
如何将web报表查询的参数保存 -
dingherry:
如果不用内置函数,去实现这些功能呢?
java字符串与整数之间的互相转换
报表组的应用在报表开中发越来越广泛,可以实现一些单个报表实现不了的功能。润乾报表设计器中提供用户较全面的报表组设计开发方法,但对于一些客户的个性化需求,有些功能还不能直接实现,比如点击一个sheet页面中的订单ID然后在另一个sheet页面显示该订单的明细。本文就来通过例子说明怎样间接实现该功能。
在报表组开发中,浏览报表组默认情况下是显示第一张报表。通过查看显示报表组的页面源代码了解到报表组是把每个报表sheet的内容放在一个div中,默认显示第一个div,点击第二个报表的tab页就显示第二报表的div。所以要实现上面的功能,我们可以根据下面的思路来做。
大致思路:
首先创建一个包含两个报表的报表组,在第一个报表中创建超链接,连接到报表组本身,把订单ID和需要显示的哪个层的标志传递给报表组,第二个报表根据订单ID查询订单明细,报表组再根据显示层标志来显示相应的div。比如这个超链接:”/reportJsp/showReportGroupTest.jsp?rpg=/group/group.rpg&order=”+A2+”&showFlag=2″。就是显示第二个div并根据订单idA2单元格的值查询显示相应的订单明细。
制作步骤:
第一步、制作sheet报表组
设计报表模板”订单主表”。数据集的sql语句为:”SELECT 订单.订单ID,订单.订购日期,订单.货主名称,订单.货主地区,订单.到货日期 FROM 订单 WHERE 订单.订单ID like ‘105__’ ORDER BY 订单.订单ID ASC”。
单元格中输入内容如下:A1: 订单ID;B1: 订购日期;C1: 货主名称;D1: 货主地区;E1: 到货日期;A2: =ds1.Select(订单ID);B2: =ds1.订购日期;C2: =ds1.货主名称;D2: =ds1.货主地区;E2: =ds1.到货日期。
报表模板如下图所示。
设计另一个报表 “订单明细”,为报表添加一个参数order,用来接收第一个报表传递过来的订单ID,报表数据集的sql语句:SELECT 订单明细.订单ID,订单明细.产品ID,订单明细.单价,订单明细.折扣,订单明细.数量 FROM 订单明细 WHERE 订单明细.订单ID =? ORDER BY 订单明细.订单ID ASC。在数据集编辑界面增加一个参数order。
单元格中输入的内容如下:A1:订单ID;B1: 产品;C1: 单价;D1: 折扣;E1: 数量;A2: =ds1.Select(订单ID) ;B2: =ds1.产品ID;C2: =ds1.单价;D2: =ds1.折扣;E2: =ds1.数量。
增加一个数据集,用于显示产品的中文名字,它的sql语句:”SELECT 产品.产品ID,产品.产品名称 FROM 产品”。将B2单元格的显示值表达式设置为:ds2.select1(产品名称,产品ID==value())。报表设计模板如下图所示。
新建一个报表组,把刚才创建的两个报表添加到报表组中,报表组命名为group,如下图所示。
上图中url类型使用相对路径。
给报表组定义一个参数”order”,用于接收第一个报表传过来的订单ID。设置报表组和报表之间的参数传递,选中下图中的”订单明细”点击右键如下图所示。
选择”报表项设置”,弹出设置对话框,如下图所示。
点击上图中的”+”号,添加报表组和报表之间传递的参数order。
第二步、设置超链接
在设计器打开订单主表.raq,选中A2单元格,在超链接的表达式窗口中输入””/reportJsp/showReportGroupTest.jsp?rpg=/group/group.rpg&order=”+A3+”&showFlag=2″”。如下图:
第三步、制作解析报表组的jsp
在发布报表组的jsp文件中加入如下这段代码,意为当点击触发订单ID时,会通过参数将订单ID和需要显示的哪个层的标志传递给报表组,第二个报表根据订单ID查询订单明细,报表组再根据显示层标志来显示相应的div。
<%
//得到显示哪个div的标志
String showFlag = request.getParameter(”showFlag”);
if(”2″.equals(showFlag)){%>
//标志为2的时候就显示第二张报表,就是div名字为div_item2的层
<script language=”javascript”>
//显示第二个报表的div,隐藏第一个报表的div
document.getElementById( “div_item1″ ).style.display = “none”;
document.getElementById( “div_item2″ ).style.display = “”;
//更改tab页字体的颜色
document.getElementById(”tab_item1″).className=””;
document.getElementById(”tab_item2″).className=”rq_curr”;
</script>
<%}else{%>
//显示第一个报表的div,隐藏第二个报表的div
<script language=”javascript”>
document.getElementById( “div_item1″ ).style.display = “”;
document.getElementById( “div_item2″ ).style.display = “none”;
document.getElementById(”tab_item1″).className=”rq_curr”;
document.getElementById(”tab_item2″).className=””;
</script>
<%}%>
<script language=”javascript”>
//重新定义第二个报表tab页的点击事件
document.getElementById(’tab_item2′).onclick=function()
{ //显示第二个报表的div,隐藏第一个报表的div
document.getElementById( “div_item1″ ).style.display = “none”;
document.getElementById( “div_item2″ ).style.display = “”;
//更改tag标签字体的颜色
document.getElementById(”tab_item1″).className=””;
document.getElementById(”tab_item2″).className=”rq_curr”;
//调用润乾自定义的tab页自定义函数
_groupClicked(document.getElementById(’tab_item2′));
}
//重新定义第一个报表tab页的点击事件
document.getElementById(’tab_item1′).onclick=function(){
document.getElementById( “div_item1″ ).style.display = “”;
document.getElementById( “div_item2″ ).style.display = “none”;
document.getElementById(”tab_item1″).className=”rq_curr”;
document.getElementById(”tab_item2″).className=””;
_groupClicked(document.getElementById(’tab_item1′));
}
</script>
</body>
第四步、将报表组发布预览
运行设计器中内置的tomcat,点击发布,预览图如下图所示。
点击上图框中的订单ID10508,页面会跳转到订单明细,并显示订单ID10508对应的订单明细,如下图所示。
润乾报表设计器提供了完整全面的报表及报表组设计方法,虽然一些特殊的需求无法直接实现,但润乾可通过一些间接的方法或途径来实现,如本文中的需求,以后用户如果再遇到类似的需求,就可以按照上面的方法解决了。
发表评论
-
巧用润乾内置函数获取指定日期所在时间区间
2010-08-27 15:07 1703Web报表设计中,会出现查询一个时间区间内的数据的需求,即获取 ... -
填报表校验
2010-08-27 14:33 1004报表知识库 ... -
润乾序列和主格的设定
2010-08-27 11:40 3289如何使用序号函数给报表加序号 类别:b.设计基础 时间:2 ... -
日期类型转化为字符串形的方法
2010-08-25 15:02 1220'填报时间:' +str(date(NQ_Z6_CGNZTRD ... -
动态改变填报更新数据
2010-08-23 08:33 872在润乾报表实际应用的过程中,有些情况下需要动态改变 ... -
用api实现合并单元格和设置对齐方式
2010-08-23 08:29 1364背景说明 在应用中,有时会遇到用api直接运算 ... -
比参数更灵活的宏
2010-08-22 11:56 927报表参数毫无疑问是所有报表工具都应当提供功能,否则我们就要为每 ... -
日期差的计算
2010-08-22 11:55 1113在实际应用中,计算两个日期相差的天数是十分常见的需求。润乾报表 ... -
动态设置滚动条高度宽度的方法
2010-08-22 11:53 1763如果报表数据量很大, ... -
润乾报表通用查询
2010-08-22 11:52 2732企业中的各种业务所涉及的数据量通常是巨大的。因此对数据进行快速 ... -
如何把查询参数和查询结果做在同一张报表里
2010-08-22 11:51 1126润乾报表提供的参数模板例子通常都是分两张报表做的(如参数报表. ... -
巧用参数实现交叉表行列互换
2010-08-22 11:50 886对于普通报表而言,一旦发布到web页面后,其样式就被固定了,如 ... -
运用参数传递实现查询参数下拉菜单多选
2010-08-22 11:49 1399润乾报表设计的报表模板,可实现用户在web页面输入查询条件来查 ... -
如何将web报表查询的参数保存
2010-08-22 11:47 1030web报表用户在使用带参数的报表查询时,很多时候用到的参数都不 ... -
一个多重参数报表的制作
2010-08-22 11:46 872需求背景 在参数输入界面(如图示) 1、 选择需要在最终统 ... -
多重参数报表的制作
2010-08-22 11:45 826需求背景 在参数输入界面(如图示) 1、 选择需要在最终统 ... -
巧用动态宏实现SQL中传递重复参数
2010-08-22 11:24 1019润乾报表可以通过SQL检索和复杂SQL生成数据集。当SQL中需 ... -
报表与页面一起传递参数给报表(参数传递)
2010-08-22 11:19 1426快逸报表中参数模板的使用可以大大提高报表设计人员设计报表的效率 ... -
如何将web报表查询的参数保存--润乾报表
2010-08-19 17:26 3478web报表用户在使用带 ... -
如何把查询参数和查询结果做在同一张报表里
2010-08-19 17:09 1026润乾报表提供的参数模板例子通常都是分两张报表做的(如参数报表. ...
相关推荐
HSSFSheet sheet = wb.createSheet("汇总页面"); HSSFRow row = sheet.createRow((short)0); /* 连接跳转*/ HSSFCell likeCell = row.createCell((short)0); Hyperlink hyperlink = new HSSFHyperlink...
NULL 博文链接:https://jaykuen.iteye.com/blog/784086
EBS多Sheet页Excel报表开发总结
NULL 博文链接:https://zhangzhongjie.iteye.com/blog/1779891
poi实现sheet页的复制(包含原有样式)和根据sheet表格中的空行来拆分单元格生成excel到指定路径的功能
将多个EXCEL文件,每个文件多个sheet,合并为:一个excel多sheet,每个sheet是源excel中多sheet合并,希望可以帮到有需要的朋友
多 sheet 填报报表可以给每个 sheet 分别设置填报属性,将对应sheet数据分别提交到相对应的库表。该资源包括已完成cpt模板文件,点击下载获取资源练习。
将test1表中的Sheet1中所有内容复制到新表test的Sheet1表中 测试环境: python 3.7 ; import openpyxl ;execl2016 注意事项: openpyxl只能处理.xlsx文件,对于较早的.xls版本需要引入xlrd模块及xlwd模块进行...
GBA 中文datasheet
esp32 中文 文档手册 datasheet
一个在Excel中使用VBA将所有sheet中的数据和sheet信息汇总到总表中的例子,使用VBA编写,在第一个sheet中的宏check,使用时需要打开excel的宏安全,执行时会在合计页填充所有其他sheet的sheet名称,链接,编号,合计...
纯JavaScript实现json格式数据导出到Excel文件,支持多个Sheet页导出
轻轻松松就可以获取EXCEL中的sheet名.
vue实现多sheet页导出所需文件Export2Excel.js
java读取Excel文件中多个sheet,生成xml格式的文件
Cascading Style Sheet 2.0 中文手册 Cascading Style Sheet 2.0 中文手册 Cascading Style Sheet 2.0 中文手册Cascading Style Sheet 2.0 中文手册
里面是代码,有文字性的描述,是winform导出DataTable向现有的excel中添加一个sheet,将其DataTable中的数据放在这个sheet中
STM32文档资料 STM32F103VC_DATASHEET_CNSTM32文档资料 STM32F103VC_DATASHEET_CNSTM32文档资料 STM32F103VC_DATASHEET_CNSTM32文档资料 STM32F103VC_DATASHEET_CNSTM32文档资料 STM32F103VC_DATASHEET_CNSTM32文档...
vue项目实现多sheet页导出所需文件Blob.js
EXCEL2010 VBA常用代码 实战大全 示例文件 第2章 Sheet(工作表)对象