随笔 - 225  文章 - 98  trackbacks - 0
<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

随笔分类

相册

报表工具厂商们

搜索

  •  

最新评论

阅读排行榜

 

Java报表工具中,选择特定的参数后,会返回我们要查询的数据,然而假如没有输入参数值,我们却仍需要返回数据时该怎样处理呢?以下就用FineReport报表工具的一个例子实现这种参数为空时返回所有数据的效果,介绍数据源参数与报表参数的实现方法。

1.数据源参数实现参数为空选出全部

1.1 定义数据源

新建名为ds1的数据库查询,SQL语句

SELECT * FROM StScore WHERE 1=1

${if(len(classno) == 0,""," and ClassNo = '" + classno + "'")}

${if(len(studentno)==0,""," and StudentNo = " + studentno )}

说明:

Ÿ         where 1=1表示条件永真,防止没有之后的参数条件时,where多出而导致出错;

Ÿ         len(classno) == 0表示参数为空;

Ÿ         ${if(len(classno) == 0,""," and CLASSNO = '" + classno + "'")}表示当参数classno为空时,就返回空字符串,否则返回查询条件and CLASSNO = ' classno'

1.2 模板设计

报表制作模板定义如下


绑定数据列


   1.3
参数设计界面

1.3.1 打开参数设计界面,按照下图安排参数的位置

 
    
1.3.2 控件设置

定义参数classno控件类型为下拉框,其他定义如下图


定义参数studentno控件类型为下拉框,并以classno的值进行关联查询,定义如下


说明:动态SQL语句SELECT * FROM STSCORE where ClassNo = '${classno}'表示直接从数据表STSCORE选取符合参数classno的数据

1.4 保存并预览

点击设计器上的分页预览,页面如下图,不输入参数值,直接点击查询按钮,返回全部数据:

 
2.报表参数实现参数为空选出全部

2.1 定义数据源

新建名为ds1的数据库查询,SQL语句:SELECT * FROM StScore

2.2 模板设计、绑定数据列,步骤与1.4中完全相同,此处不用赘述

2.3 定义报表参数

在菜单栏选择报表|报表参数,打开报表参数面板,添加classnostudentno两个参数,默认值选择字符串形式,并留空,即表示默认值为空值,如下图

 
2.4 添加过滤

选中A2单元格,添加过滤条件


说明:其中if(len($classno)==0,nofilter,$classno)表示若参数classno为空,则不过滤,否则返回参数值。

2.5 参数设计界面

同步骤1.3

2.6 保存并预览


文章转自:http://blog.vsharing.com/fanfanzheng/A1303633.html



了解Java报表工具就从这里开始
posted on 2011-01-02 09:34 season 阅读(287) 评论(0)  编辑  收藏 所属分类: Java报表—技术知识

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问