发新话题
打印

关于简表是否支持动态sql或者说支持sql的参数传入问题

你在数据集节点定义时,写下面的SQL,
select * from 订单查询 where 年份=${iif(year,1996)}


则当指定year与不指定year的url,上述sql等价于:

// http://localhost:8189/jor/reportviewer?file=d:/test3.xml&as=dhtml
// year参数值没指定,使用val2值,上述sql等价于
select * from 订单查询 where 年份=1996      

// http://localhost:8189/jor/reportviewer?file=d:/test3.xml&as=dhtml&year=1995
// year参数值被指定为1995,上述sql等价于
select * from 订单查询 where 年份=1995  


Sql里面有一个宏,宏里有一个iif全局脚本函数,该函数方法的定义如下:

//如果val1不存在,则取val2值,如果存在,则取val1值
Object iif(val1,val2)

TOP

如果 proj_id是字符型字段   则
    proj_id='${has......}'

如果 proj_id是数值型字段, 则
    proj_id=${has....}

TOP

注意几点:
1.   ${} 里面的内容,必须是java兼容的表达式,has(misCode)?misCode:'C0826626'   是错误的,因为字符串不该用单引号,而应该用双引号,同理 '阜阳...工程' 也是错误的.
2.  ${} 里面的东西,会被替换成字符,如:
   proj_id = ${"C026626"}    解析成   proj_id=C026626     显然,这是错误的sql
      proj_id = '${"C026626"}'    解析成   proj_id='C026626'   正确
        
     proj_id = '${123}'     =>     proj_id='123'
     proj_id=${123}     =>    proj_id=123

TOP

发新话题