url传参控制报表展示数据范围问题

我在url里拼接了一个参数,传我的部门id,比如我拼了一个A公司的id过来,这样报表的下拉查询框里就会显示A公司,但是A公司下面还有一个不选,我点一下不选,在选择查询下拉框就显示所有公司了,这样的问题怎么解决呢?

我的现在想实现的是,如果传的部门参数是A那下拉框里就可以筛选所有的部门,如果不是A就传什么下拉框里显示什么,不能筛选其他部门。

这是我数据集参数   ${if(len(Code) == 0,"","and so.code = '" + Code + "'")}

FineReport 北屿 发布于 2025-7-11 15:23 (编辑于 2025-7-11 15:30)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
runnerLv7资深互助
发布于2025-7-11 15:24

你需要在数据集里也添加过滤,你现在应该是为空查询全部,你为空 查询为空就行了 1=2

  • 北屿 北屿(提问者) 怎么设置?
    2025-07-11 15:26 
  • runner runner 回复 北屿(提问者) 你参数的数据集是怎么写的?
    2025-07-11 15:29 
  • 北屿 北屿(提问者) 这是我数据集参数 ${if(len(Code) == 0,"","and so.code = '" + Code + "'")}
    2025-07-11 15:30 
  • runner runner 回复 北屿(提问者) 你这个不就是,为空查询全部么,你可以改为 ${if(len(Code) == 0,"1=2","and so.code = '" + Code + "'")}
    2025-07-11 15:38 
  • 北屿 北屿(提问者) 回复 runner 那我这样设置,我如果传特定参数,比如传A的话,我想的是下拉框查询列表可以查出来所有的部门,这样就没办法实现了
    2025-07-11 15:45 
最佳回答
0
CD20160914Lv8专家互助
发布于2025-7-11 15:28(编辑于 2025-7-11 15:38)

你把下拉框设置成不要用户编辑呀!!取消这两个勾,那么永远只会接收传过来的参数了,用户也编辑不了!!

image.png

传过来中国,点击查询是不会让查询的!!

image.png

下拉框只有

image.png

  • 北屿 北屿(提问者) 补充了一下问题,您说的这个设置我设置过,但是当我A传过来之后就不能用了
    2025-07-11 15:34 
  • CD20160914 CD20160914 回复 北屿(提问者) 传过来的可以的呀,允许自定义值也不要勾!!!
    2025-07-11 15:35 
  • CD20160914 CD20160914 回复 北屿(提问者) 你下拉框设置数据字典,比如最后只有 A ,B ,C 三个值,那么用户传D过来,这个下拉框会提示的,说不在范围内的
    2025-07-11 15:36 
  • CD20160914 CD20160914 回复 北屿(提问者) 还可以设置控件隐藏。用户都选择不了参数
    2025-07-11 15:38 
  • 北屿 北屿(提问者) 回复 CD20160914 是这样的,我的A只是一个模糊的概念,我其实就是如果部门是A的话,这个数据范围权限就是最大,可以看全部部门的数据,并不是我传A过来接收到A了直接查询就是全部门的,是查不到的,反而是传过来A了参数框里直接显示A或者是显示空,然后下拉的话可以选择任意一个部门,也可以不选,查询全部数据
    2025-07-11 15:51 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-7-11 15:29

URL上用的id作为参数名,控件就不要用id作为控件名,可以用id_,然后控件的默认值用公式=$id

SQL改为

SELECT * FROM TABLE WHERE 1=1 ${IF(LEN(id)==0,""," and 部门='"+id+"'")}${IF(LEN(id_)==0,""," and 部门='"+id_+"'")}

最佳回答
0
孤陌Lv6资深互助
发布于2025-7-11 15:37

那你的SQL把参数为空选择全部去了啊  不然就是把参数面板不显示 让他选择不了

最佳回答
0
iQianLv4初级互助
发布于2025-7-11 16:06

${if(len(Code) == 0, "1<>1" , "")}

${Code== 'A',""," and code ='"+ code +"'")}

这样,写 2 个条件就可以了。

  • 5关注人数
  • 59浏览人数
  • 最后回答于:2025-7-11 16:06
    请选择关闭问题的原因
    确定 取消
    返回顶部