通过传参数控制单元格的内容及可写属性

来源:互联网 发布:陕西乡土文化数据 编辑:程序博客网 时间:2024/05/29 14:17


最近有的客户提出需求,希望能根据访问的url传递的参数不同,动态控制一个下拉数据集的可使用性,如传过来的参数值为0时,下拉数据集不可写,但是下拉数据集所在的单元格显示参数值的内容,也就是0,而传过来的参数为1-10时,下拉数据集可用,可选择下拉数据集里的内容,下面我们做一个小例子来实现客户需求的功能。

第一步:新建一张简单的填报表。

新建一张填报表,报表的样式如下图所示:


报表中不需要数据集,在F1单元格中写入=ids,然后定义一个参数,参数的名字为ids,类型为字符串,形式如下图所示:


第二步:设置可写表达式和下拉列表框的样式。

选择F1单元格,并选择单元格的填报属性,在填报表的可写属性中写入:if ( value()== "0",true,false),然后设置这个单元格的编辑风格为下拉列表框,下拉列表框的数据和内容的样式如下图所示:


然后在F1单元格的显示值表达式中写入如下内容:map(list("0","570","571","572","573","574","575","576","577","578","579","580"),list("省中心","衢州","杭州","湖州","嘉兴","宁波","绍兴","台州","温州","丽水","金华","舟山")),这个map()和list()函数的作用是把这个单元格里的数据转换成对应的名称。

 

第三步:发布这个报表并传递参数。

用设计器中自带的tomcat发布这个报表,然后在IE浏览器中输入如下的url

http://127.0.0.1:6001/demo/reportJsp/showReport.jsp?raq=/merchantreport_arg.raq&ids=0,就会得到如下的页面,在页面中我们发现,商户所属地区的内容被写入省中心,而省中心所在的位置为下拉数据集,点击这个下拉数据集可以选择我们需要的内容:

 

而如果我们输入的url为:

http://127.0.0.1:6001/demo/reportJsp/showReport.jsp?raq=/merchantreport_arg.raq&ids=571的时候,就会看到如下的页面,商户所属地区的内容被写死,单元格失去可写属性,没有下拉数据集的效果,单元格的内容为数据571所对应的名称:


 

同理,当我们输入的url后面的参数为除了0以外的不同值的时候,商户所属地区的内容还会被写入参数对应的不同的值,而且都将会被写死,没有下拉数据集或者可写的效果,只有按我们事先设置好的传递的参数为0的时候这个内容才是可写的,并且有下拉数据集的效果。

这样,完成以上几个步骤,我们根据访问的url传递的参数不同,动态控制一个下拉数据集的可使用性的目的就达到了。

0 0
原创粉丝点击