参数表单和报表在同一张raq里
润乾报表提供的参数模板例子通常都是分两张报表做的(如reportFiles\基础报表:参数报表.raq和参数报表_arg.raq),参数输入模板为一张报表,查询展现结果为另一张报表,然后通过showreport.Jsp文件把两个报表在一个页面中展现。
但是有些报表用户想在一个报表模板里就实现这两张报表的功能,润乾报表支持这样的方式吗?
本文就来介绍一下润乾报表是如何解决这个需求的。
大致思路:在报表中创建一个超链接按钮,点击按钮触发onClick()事件,然后onClick()事件中定义页面跳转的url,并且把参数和参数值添加到url中,通过onClick()事件实现页面的调转。
1. 下面是具体的实现步骤:首先连接demo数据源,制作一张空白填报表
2. 创建一个数据集ds2,用于查询表单中的下拉数据集,数据集中的内容将被选择作为参数传递。sql语句:SELECT 订单.订单ID FROM 订单
在A2单元格中输入”选择订单ID“,创建一个查询连接,把C2单元格的数据类型设为html,输入”<a href=’#'>查询</a>“。如下图
3. 设置B2单元格可写,并且为它设置的下拉数据集。勾选B2单元格填报属性中的”是否可写”,并且设置它的下拉数据集为刚才新建的数据集ds2,显示列为”订单ID“,数据列也为”订单ID“,如下图
4. 新建一个参数用于接收B2单元格选择的订单ID。新建参数”dingdan“,如下图
5. 新建一个数据集ds1,用于根据订单ID查询订单详细信息,sql语句:SELECT 订单.订单ID,订单.货主名称,订单.运货商,订单.货主地区 FROM 订单 WHERE 订单.订单ID =?
在SQL编辑器中增加一个参数”dingdan“,表格中填写如下
6. 到现在报表已经做完了,下面给单元格C2增加onClick()事件,在onClick事件中先取B2单元格的显示值,然后定义页面跳转的url。修改showReport.jsp,增加如下javascript代码
<script language=”javascript”>
//给C2单元格定义onClick事件
document.getElementById(“report1_C2″).onclick=function()
{
//用document中提供的方法取B2单元格的显示值
var value=document.getElementById(“report1_B2″).innerText;
//定义页面跳转的url,并且把参数和参数值添加到url中
window.location=”showReport.jsp?raq=baobiao.raq&dingdan=”+value;
}
</script>
7. 启动设计器中内置的tomcat,在IE中浏览此报表。选择订单ID,然后点击”查询”,结果如下:
需求到此解决完毕,以后再遇到类似的需求只在一张报表就实现参数模板功能的问题就可以根据本文的做法去解决了。