定义数据集SQL语句如SELECT * FROM [TableName] WHERE [ColName] = ${para},其中${}中的内容为变量,FineReport会将${}中的内容计算后形成字符串拼接至SQL中形成最终的可执行查询语句,发送到数据库端进行执行。 ${}中可以使用报表中的函数对参数进行处理,此即为参数的强化。 参数与字符串拼接 ${}即为一个公式变量,在数据集sql查询中,输入的参数可能只是一部分,需要与其他固定的信息共同构成最终的参数值,这时,可以在查询语句中进行参数与字符串拼接来达到目的。 1. 新建报表 2. 定义数据集 定义数据库查询ds1,SQL语句为:SELECT * FROM STSCORE WHERE ClassNo = '${"Class"+classno}' 表示将输入的classno参数与字符串"Class"拼接后组成最终的参数值赋给ClassNo 3. 模板设计 设计报表如下 数据列设置如下表
4. 设计器预览 设计器预览,输入参数值1,便可查询出Class1的数据,效果如下 日期参数的格式化处理 日期的表示形式有很多种,有时我们习惯填写的形式与数据库存储的形式可能不同,此时,就需要进行日期的格式化处理。比如,将“2010-02-24”形式的日期转化为“20100224”的形式。 1. 新建报表 2. 定义数据集 定义数据库查询,SQL语句为:SELECT * FROM SALES_BASIC WHERE 日期 = '${format(date,"yyyyMMdd")}' 参数date为日期如2010-02-24,对该日期按照yyyyMMdd进行格式化后作为最终的值赋给日期。 3. 模板设计 如下设计报表 4. 定义参数界面 点击参数设计,使用默认的参数界面,定义日期控件,返回值设置为日期,如下图 5. 保存模板 保存模板,点击设计器分页预览,选择日期,查询数据如下 |
|