如何将下拉数据集中的显示值作为参数传递

 

在润乾报表中,我们提供了多种多样的填报编辑风格,其中下拉数据集是较为常见的一种。在下拉数据集中,我们可单独设置数据列和显示列,这样在传递的时候传递的是数据列,而在页面中显示的是显示列。

imagepng

但有在有一些情况下,我们需要传递显示列的值,那要如何做呢?

这里我们就用到了动态参数的概念。

动态参数是一个表达式(不用等号开头),报表运算时先解析该表达式,然后将表达式计算出的结果作为参数值传给报表进行运算,用动态参数的时候要注意参数的数据类型。动态参数适用于需要动态解析表达式的场合。

我们无需修改参数模版,只需在主报表中增加一个动态参数:

imagepng

其实,整个过程就是,参数模版中的下拉数据集还是传递的数据列(真实值),我们在主报表接收参数时,做一个转换,用 query 来查询出数据列的显示值即可。

query 函数说明:

函数说明:
    执行sql语句,返回结果数据集合,只能返回单列数据,如果sql语句中有多个字段,则返回第一个字段的结果值
语法:
   query(sqlStatement{,arg1{,arg2{,arg3{,……}}}}{;dbName})
参数说明: 
    sqlStatement        合法的sql语句
    arg(n)              sql语句的参数,可以是常数也可以是表达式
    dbName              数据库逻辑名,为null表示缺省数据库
返回值:
    一组数据的集合,数据类型由sql语句的第一个选出字段决定
示例:
    例1:query("select NAME from EMPLOYEE where GENDER =?","F";"demo")
       表示从demo数据库的EMPLOYEE表中选出GENDER ="F"的记录,返回其NAME字段值
    例2:query("select * from EMPLOYEE where GENDER =? and EID <?","F",11;"demo")
       表示从demo数据库的EMPLOYEE表中选出GENDER ="F"并且EID <11的记录,返回其第一个字段的值