4.3.1 参数
在大多数情下,我们设置数据集时不需要把数据库中的数据全部呈现,而是需要根据一些参数去动态地过滤出我们所需要的数据;因此,我们需要了解如何在数据集的SQL查询语句中定义参数和为报表配置查询条件控件。
1.定义参数
新建数据集ds1,在数据库查询中对话框中写入SQL查询语句:select * from transcript where 学期 = '${学期}'
然后点击 '保存' 或者 '预览' 按钮,会弹出参数窗口,让用户能够设置参数的默认值,作为报表制作过程的临时参数组。
注:在数据集 SQL 语句中,使用 ${f1} 做为一个参数宏,其中变量f1为参数名,若字段值为字符串则加上引号如'${f1}'。</span>
数据预览结果如下:
2.使用条件语句构建不同的SQL查询语句
当用户设置了参数,查询语句就会按照已设置的参数进行数据过滤,但是往往会存在一些情况,用户希望不传递参数值时SQL语句不进行数据过滤,这时候就需要用到了条件语句。
我们调整SQL入下图,并在参数弹窗中删除参数值:
数据预览结果如下:
可以看出,加入了条件语句后,当传入的参数为空或者为空字符串时,执行的SQL不会进行数据过滤,这是因为参数为空,实际执行的SQL语句为select * from transcript
。
条件语句格式如下:
[#if condition1 ]
.....
[#elseif condition2 ]
....
[#else]
...
[#/if]
elseif 和 else 是可选的。