填报表参数共三个,分别对应“事业”、“三级科目”、“明细科目”,但是选中明细科目会清空三级科目的选项

填报表

事业参数设置:单选下拉,从其他系统传bg参数,控制显示什么,数据集为:

with temp_table as (

select 'LCD' as bg_name

union 

select 'OLED' as bg_name

union 

select '核心部品' as bg_name

union 

select '终端产品' as bg_name

)

select 

bg_name

from temp_table

where 1=1

--and bg_name = ${bg}

${if(len(bg) == 0,"and 1=0","and bg_name in ("+"'"+replace(bg,',',"','")+"'"+")")}

三级科目依据事业筛选框联动,多选下拉,设置的数据集为:

select

distinct third_sub

,order_num

from ods_finereport.to_qa_subject_cfg

where 

second_sub ='外部损失' and data_source ='手工录入'

and is_del = 'N'

--${if(len(事业)=0, "" , "and gp_type in ('"+事业+"')")}

${if(len(bg) = 0,"and 1=2",  "and gp_type in ('"+replace(bg,",","','")+"')")}

${if(len(事业) = 0,"",  "and gp_type ='"+事业+"'")}

order by order_num

四级科目根据三级科目以及事业筛选联动,设置的数据集为:

select

distinct forth_sub

,third_sub

,order_num

from ods_finereport.to_qa_subject_cfg

where 

second_sub ='外部损失' and data_source ='手工录入'

and is_del = 'N'

${if(len(三级科目)=0, "" , "and third_sub in ('"+三级科目+"')")}

${if(len(bg) = 0,"and 1=2",  "and gp_type in ('"+replace(bg,",","','")+"')")}

${if(len(事业) = 0,"",  "and gp_type ='"+事业+"'")}

order by order_num

但是选中四级科目,会清空三级科目的筛选,但是对事业筛选不会造成影响

FineReport liuyunxia827729 发布于 2022-12-16 09:22
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
牛~~~Lv6中级互助
发布于2022-12-16 09:42(编辑于 2022-12-16 09:48)

${if(len(事业) = 0,"",  "and gp_type ='"+事业+"'")}

你检查下你 事业 的那个控件绑定的数据集,是不是加了 四级科目 的筛选,导致连带你 三级科目 也变了

----

上面说错了

${if(len(bg) = 0,"and 1=2",  "and gp_type in ('"+replace(bg,",","','")+"')")}

检查下这个bg

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-12-16 09:46

这个没看出问题 能上传一下模板么?

  • 2关注人数
  • 364浏览人数
  • 最后回答于:2022-12-16 09:48
    请选择关闭问题的原因
    确定 取消
    返回顶部