|
在帆软Report(FineReport)中,实现两个数据表通过公式联查的核心思路是通过公式函数在报表设计层关联两个数据集,而非直接通过SQL的JOIN。以下是具体步骤和常见方法:
前提条件
方法1:使用select()函数联查(推荐)
select()函数是帆软中用于从数据集中按条件筛选数据的核心函数,语法为:
数据集名.select(返回字段, 过滤条件, 排序条件)
场景示例:
假设ds1是订单表(含order_id、user_id、amount),ds2是用户表(含user_id、username、phone)。需将订单表中的user_id关联到用户表的username。
步骤:
-
创建数据集
-
ds1:SQL为SELECT order_id, user_id, amount FROM 订单表
-
ds2:SQL为SELECT user_id, username, phone FROM 用户表
-
在报表中插入ds1数据
将ds1的字段(order_id、user_id、amount)拖入单元格(如A2、B2、C2)。
-
通过select()函数关联ds2的用户名
在D2单元格输入公式,根据当前行的user_id(即B2)从ds2中获取username:
=ds2.select(username, ds2.user_id = B2)
-
扩展与填充
选中A2:D2区域,向下扩展,自动按行关联数据。
|