发新话题
打印

关于链接的多参数获取方法以及显示格式问题

你这个问题,参照:
http://www.jatools.com/doc/guide/paratab1307.htm

TOP

不预定义参数变量的参数
  • Previous Page
  • Next Page

前面所述参数,都是预先在模板中定义一个参数变量,设置类型、默认值等,如图 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  

TOP

不指定参数则不过滤
有时,用户在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提示:
  • 不指定参数不过滤,只能用于不预定义参数的情况;
  • 你可以使用全局函数判断一个变是否存在;
  • where 1==1 是一个技巧,可以简化不指定不过滤sql的写法;
  • 在一个sql中,可以出现多个宏。比如 select * from 订单查询 where 1==1 ${has(year)?(”and 年份=”+year):””)} ${has(region)?(”and 地区=’”+region+”’”:””)}




[ 本帖最后由 jennifer 于 2010-11-24 14:12 编辑 ]

TOP

发新话题