数据集中使用if结合value函数问题

软件版本:8.0.0

问题描述:

有两个数据集【A,B】,想要达成的效果是,在A中使用B执行结果来动态组装SQL,例如:

B:select 是否正确 from recordB where id = '{id}'

A:select recordA.code, recordA.name from recordA

where 1=1

${if ( value("B", 1, 1) == "是",

"-- 是的sql",

"-- 否的sql"

)}

其中id是从url传入的,可以不做深究。

预期的结果是,数据集A根据value函数执行结果组装不同的sql执行;

实际结果是,value函数执行结果一直是空的,无法实现组装sql;


可能的原因:

1、if与value函数无法配合使用;这个我寻思value也算是函数,if之前和len以及其他函数都可以配合使用,这个可能性不大(吧);

2、数据集加载顺序问题;这个我也不太知道是不是,尝试过把A的顺序放在B的后面,也无法解决;

不知道广大网友有没有解决方案或者之前踩过类似的坑,麻烦分享下!

FineReport 超级无敌停车场 发布于 2020-10-22 14:45
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
超级无敌停车场Lv2见习互助
发布于2020-10-22 15:28

使用关联数据集解决了。

由于A需要根据B判断然后组装SQL,组装的SQL还挺复杂的。

目前大致做法:

新增一个控件,用来存储B的查询结果;

A组装SQL分为两个,A1,A2。关联为mutil数据集。

mutil数据集根据$type=1(或者2)来区分A1还是A2。

最佳回答
0
luojian0323Lv7资深互助
发布于2020-10-22 14:46

数据集里不能套别的数据集。

在单元格中可以加判断。

  • 超级无敌停车场 超级无敌停车场(提问者) 啊这。A是作用于查询条件来着。我再试试
    2020-10-22 14:48 
  • luojian0323 luojian0323 回复 超级无敌停车场(提问者) 两个sql写在一个数据集里不行吗? 你是在测试value的功能吗
    2020-10-22 14:49 
  • 超级无敌停车场 超级无敌停车场(提问者) 回复 luojian0323 只是想试试这个函数能不能用哈哈。我写在一个里面吧!
    2020-10-22 14:54 
最佳回答
0
shirokoLv6资深互助
发布于2020-10-22 14:48

有必要这样吗,这样循环嵌套系统接收不了的。。你B也是sql ,A里面用到的B也是sql,直接a里面关联sql就行了呀

  • 2关注人数
  • 771浏览人数
  • 最后回答于:2020-10-22 15:28
    请选择关闭问题的原因
    确定 取消
    返回顶部