[url=http://www.finereport.com/category/knowledge/design]Java报表工具[/url]的数据源在从数据库获取所需值时,不仅可以在SQL语句中使用单一参数进行筛选,而且可以使用复选参数进行数据筛选。下面我们以FineReport[url=http://www.finereport.com/category/knowledge]报表工具[/url]为例,看一下具体的报表制作过程。
1.    SQL语句中复选参数的定义
SQL查询多个结果的格式为:
SELECT * FROM [Table] WHERE [Para] in ('para1','para2','para3',...)
此语句意思为从数据库表Table中取出字段Para值分别为para1,para2,para3等等的数据记录。
根据最终格式定义SQL查询语句如下:
SELECT * FROM STSCORE WHERE ClassNo in ('${classno}')
定义参数默认值Class1
[img]http://www.finereport.com/forumimages/checkbox_para1.png[/img]

2.    制作报表模板
    使用数据集[url=http://www.finereport.com/category/knowledge/design]制作报表模板[/url]如下  
[img]http://www.finereport.com/forumimages/checkbox_para2.png[/img]

3.    定义参数设计界面
3.1 参数设计
打开[url=http://www.finereport.com/knowledge/acquire/parameter.html]参数设计[/url]面板,按照下图安排参数的位置
 
[img]http://www.finereport.com/forumimages/checkbox_para3.png[/img]

3.2 控件设置
右击B2单元格,选择控件设置,打开控件设置面板,类型选择下拉复选框,返回值类型选择字符串,并以“’,’”分割。
 
[img]http://www.finereport.com/forumimages/checkbox_para4.jpg[/img] 

这样操做的目的是为了将SQL中的参数classno可选值转换为以逗号间隔的单引号字符串形式,型如'Class1','Class2','Class3',符合SQL中参数多值查询的定义格式。
4.预览并保存
    报表工具分页预览效果如下
 
[img]http://www.finereport.com/forumimages/checkbox_para5.png[/img]
文章转自:http://www.blogjava.net/echoseason/archive/2010/11/18/338417.html