关于参数用法的解释


${if(len(tp)=0,"","and vs.ID = '"+tp+"'")}

上面的语句中tp是从上一级传来的参数,麻烦给解讲一下 语句中if 及 tp的应用格式吧,谢谢。

FineReport clzzl 发布于 2020-4-10 14:43
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
axingLv6专家互助
发布于2020-4-10 14:45

参考这个

下拉框参数为空选择全部-https://help.finereport.com/doc-view-2394.html

image.png

  • 冥王星 冥王星 向老司机致敬!
    2020-04-10 14:50 
  • clzzl clzzl(提问者) 1、以上= 和 == 有什么区别吗? 2、语句中 if and 是一个语法吗? 3、‘ 和\"\" 有好多,没太明白是怎么样的一个应用,麻烦再指教,谢谢。
    2020-04-10 14:56 
  • axing axing 回复 clzzl(提问者) 1.=和==没区别,都是判断是否相等的意思 2.if是帆软公式,and是字符串拼接,最终拼接完后事sql中where子句的and,表示两个条件的且关系 3.帆软公式中单引号和双引号可以互用,引起来表示字符串,因为拼接的sql条件中需要用到单引号,所以这里外层使用双引号比较美观,当然要使用单引号也行,了解一下引号的各种嵌套使用场景就好
    2020-04-10 15:08 
最佳回答
0
grjhr994857761Lv5见习互助
发布于2020-4-10 14:59

这边的if是报表里的函数,引号里面的是sql语句,你分开看就知道了。

最佳回答
0
snrtuemcLv8专家互助
发布于2020-4-10 15:02(编辑于 2020-4-10 15:04)

if(条件,值1,值2)这个是判断语句,条件为真true,取值1,为假flase,取值2

and 是sql中where条件语句,例如:where vsID=1 and vsID1=2

=和==是差不多意思

“”引号,就是,引号里面是固定写死的文字,语句,引号外面是一个参数,两个加好+中间是参数,例如:你给TP=1.这时tp就是1,tp=2,这时tp就是2

最佳回答
0
willgood1986Lv2初级互助
发布于2020-4-12 16:26(编辑于 2020-4-12 16:27)

就是一个语法而已。

${para} 表示定义 名为 para的参数,且该参数是非字符串的

'${para}' 表示定义一个 名为para的参数,参数的数据类型是字符串

上面这这两种是固定参数,就是要求参数一定有值

${if()} 定义一个条件参数,if函数的的逻辑 if(condition_true, do_true, do_false)

 len(tp)=0 这个条件成立,意味着前端没有给这个参数赋值,那么 " " 意味着忽略该参数, 否则,意味着参数已经赋值了,就拿来进行数据过滤,过滤的逻辑是一个 字符串拼凑的条件, " and vs.ID='" + TP + "'", 可以看出 这个tp 是字符串,拼凑条件的时候,给参数 增加了 引号, '" ;"'"

这种定义参数的方式比较灵活,前端可以进行条件过滤,也可以不进行条件过滤。


  • 5关注人数
  • 629浏览人数
  • 最后回答于:2020-4-12 16:27
    请选择关闭问题的原因
    确定 取消
    返回顶部