利用参数模版来完成模糊查询的demo
需求描述:
参数模版中应用了下拉数据集的编辑属性,但下拉数据集会把所有数据全部查询出来返回到前台进行报表展现与输出" target="_blank" class="geeznLink8">展现,当数据量过多时(成百上千),就会造成加载速度较慢,下拉数据集窗口较长,有时与客户项目进行集成时,会不太美观。
客户希望设计出一种弹出窗口控件,在里面完成模糊查询做一下过滤,在把符合条件的数据返回给参数模版来进行最终查询。
控件样式大致如下:
我们下面来介绍一种,单纯利用报表所带的功能来进行一个组合,完成上图的功能。
实现步骤:
第一步,父页面中的参数模版和主报表:
参数模版:
这里的参数模版与普通的参数模版并无不同,其中,C2单元格放置一张图片,单元格的超链接设置:
触发一个js函数方法,在js函数里设置弹出一个固定大小的窗口。
B2单元格用来传递参数用,所以web属性中设置变量名为arg1.
然后我们看一下主报表的设置:
主报表参数设置:
数据集中的参数设置:
这样,父页面的报表我们就基本完成了。
第二步:我们在父页面的jsp中,加入之前定义的js函数:
<script language=”javascript”>
function queryData(){
window.open(“../jsp/enum_font.jsp”,”_blank”,”menubar=no,status=no,scrollbars=no,toolbar=no,location=no,resizeable=yes,width=600,height=260,top=220,left=300″);
}
</script>
当点击图片时,触发这个js函数,打开一个指定大小的页面。
第三步:我们设置一下弹出页面里用于模糊查询的报表模版:
数据集参数的设计:
这里的意思是,在弹出页面中,我们也同样设置一个报表,让用户进行模糊查询后,把结果显示到弹出页面中。
然后,我们把显示数据的单元格设置上触发时间,点击(相当于选择)后,把结果返回到父页面中的参数模版单元格中:
第四步:我们设计一下弹出页面的jsp:
最后,我们来看一下整体效果:
点击小图标弹出模糊查询页面,输入1,显示模糊查询结果:
鼠标点击10返回到父页面参数模版中:
点击查询,得到最终结果;
需求总结:
利用报表现有自带的功能,进行了一下组合,即可完成一个较复杂的功能,这在实际应用中并不少见。当然,针对此需求还有以下几个也很好的解决办法:
1、重新自定义一个form填报表单,按照润乾报表中提供的自定义参数模版来实现,
并在form表单中引用jQuery来做。网上有一些介绍的例子,用form与jQuery的
autocomplete来结合使用。
2、自定义编写控件,并与报表现有的自定义控件接口结合使用。