不预定义参数变量的参数 |
| |
前面所述参数,都是预先在模板中定义一个参数变量,设置类型、默认值等,如图 1(b)所示。实际上,你不一定得先定义参数变量,请看下面的SQL,注意,使用该SQL的报表模板没有定义year参数变量。 select * from 订单查询 where 年份=${iif(year,1996)} Sql里面有一个宏,宏里有一个iif全局脚本函数,该函数方法的定义如下: //如果val1不存在,则取val2值,如果存在,则取val1值Object iif(val1,val2)则当指定year与不指定year的url,上述sql等价于: // http://localhost:8189/jrs2008/server?file=d:/test3.xml&as=dhtml// year参数值没指定,使用val2值,上述sql等价于select * from 订单查询 where 年份=1996 // http://localhost:8189/jrs2008/server?file=d:/test3.xml&as=dhtml&year=1995// year参数值被指定为1995,上述sql等价于select * from 订单查询 where 年份=1995 |
不指定参数则不过滤 | ||||
有时,用户在web页面上,没有指定某一参数值,这时,不需要任何过滤,比如: select * from 订单查询 where 1==1 ${has(year)?(”and 年份=”+year):””)}宏里面是一个三元运算符(?:),前面has(year)表示用户是否指定了year参数,has是一个判断一个变量是否存在的全局函数,请仔细体会指定与不指定year参数时的sql: // http://localhost:8189/jrs2008/server?file=d:/test3.xml&as=dhtml// year参数值没指定,宏返回空串,上述sql等价于select * from 订单查询 where 1==1 // http://localhost:8189/jrs2008/server?file=d:/test3.xml&as=dhtml&year=1995// year参数值被指定为1995,上述sql等价于select * from 订单查询 where 1==1 and 年份=1995提示:
| ||||
欢迎光临 杰表技术论坛 (http://bbs.jatools.com/) | Powered by Discuz! 6.1.0 |