1. 描述
制作模板时,希望单元格可以根据前列数据动态获取后列的值。实现效果如下:

2. 思路
将单元格的值作为参数传递给数据查询 SQL 语句。
3. 操作步骤
3.1 示例一
根据前列数据动态获取后列下拉框选项
1)新建数据集
建立数据查询 ds1,SQL 语句:SELECT * FROM 订单 where 订单ID='${A2}';在下方参数界面,设置参数 A2 的值为 10001;如下图:

2)制作模板
给 A2、B2 单元格添加下拉框控件,设置模板样式如下:

3)设置数据字典
给 A2、B2 单元格下拉框控件分别设置数据字典,A2 的类型设置为:数据库表;数据库为:FRDemo;其余设置如图:

B2 的数据类型为:数据查询;数据集为:ds1;其余设置如图所示:

3.2 示例二
根据前列数据动态显示后列数据
1)新建数据集
新建数据查询ds2,SQL 语句:SELECT * FROM 订单 limit 5,如下图:

新建数据查询ds3,SQL语句:SELECT * FROM 订单 where 订单ID="${A7}" ,如下图:

2)制作模板
设置模板样式,将数据库 ds2 中的订单 ID 拖动到 A7 单元格中,同理,ds3 中的客户 ID 拖动到 B7 单元格中,如下:

3)设置参数注入
给 B7 单元格设置动态参数,如下:

4. 预览效果
1)示例一
保存模板,填报预览,根据前列数据订单 ID:10001、动态获取后列下拉框选项:

2)示例二
保存预览,查看效果,发现客户 ID 值根据订单 ID 中的值显示对应的值。如下所示:

5. 已完成模板
填报预览,效果如上图。
在线查看请点击:单元格值作为参数传递给sql
已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Form\单元格值作为参数传递给sql.cpt。