1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
1.2 预期效果
选择任意一个表名进行查询,能够查出该表对应的内容。如下图所示:
1.3 实现思路
使用 TABLEDATAFIELDS() 公式获取数据集每一列的列名
使用 ds1.select() 公式获取对应列的内容。关于 ds1.select() 公式的使用,请参见 ds1.select() 和 ds1.group() 函数的使用 。
2. 操作步骤
2.1 数据准备
在 FineReport 设计器中,点击「文件>新建普通报表」,新建模板数据集 ds1 ,SQL 语句为:select * from ${table},如下图所示:
2.2 模板设计
1)鼠标右键点击 A1 单元格,选择「单元格元素>插入公式」,公式为:TABLEDATAFIELDS("ds1") 。如下图所示:
2)鼠标右键点击 A2 单元格,选择「单元格元素>插入公式」,公式为:ds1.select(A1)。如下图所示:
3)A1 单元格扩展方向设置为横向, A2 单元格扩展方向设置为纵向。以 A1 单元格为例,如下图所示:
2.3 参数面板
1)在参数面板中添加参数「table」,如下图所示:
2)控件选择「下拉框控件」,控件值为「sale」;
数据字典设置时类型设置选择为「公式」,实际值的公式为:TABLES("FRDemo")。如下图所示:
2.4 预览效果
2.4.1 PC 端
保存模板,点击「分页预览」,效果如本文中 1.2 节所示。
2.4.2 移动端
App 与 HTML5 端效果相同,如下图所示:
3. 已完成模板
已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\参数查询数据库任一表.cpt
点击下载模板:参数查询数据库任一表.cpt