多语言展示
当前在线:413今日阅读:99今日分享:20

定制报表软件FineReport中下拉框数据量大的问题

在使用下拉框,若遇到下拉框中的数据量很大时,比如有上万条选项,这时浏览器加载就会很慢甚至出现死机。需说明的是:其在正常情况下,最多是8000条左右。倘若超过此上限时,怎么解决使之在数据量大时能够快速定位呢?下面就通过定制报表软件FineReport来介绍一下。
工具/原料
1

定制报表软件FineReport7.1.1

2

大小:148.2M 适用平台:windows/linux

方法/步骤
1

用文本框,点击一个按钮时,引用一个js,使其弹出一个对话框,对话框中嵌入下拉项的模板(因模板中的数据量是不受限制的),在此模板列出的所有下拉项中,选择某条记录,点击确定后,就把选择的对应值赋给文本框,且与此同时也会把对话框关闭。效果如下:下面介绍如上问题的解决方案,如上两个模板的制作:下拉选项的模板与参数界面选择的模板

2

子模板设计新建工作簿,添加数据集ds1,SQL语句:SELECT * FROM [STSCORE]将数据列name拖拽到B1单元格中并设置其控件类型为文本型,控件名称为record。点击模板>模板web属性>填报页面设置,添加自定义按钮将按钮名称设置为确定,并添加其它按钮,给自定义按钮增加如下js代码:var currentCell = contentPane.curLGP.currentTDCell; //当前选中的单元格var val = FR.getCellValue(currentCell); //拿取当前选中的单元格var form = window.parent.form; //拿取当前页面的父窗口(即获取参数界面的form)form.getWidgetByName('p1').setValue(val); //给文本控件的格子(A2)赋值valwindow.parent.FR.closeDialog(); //确定获取值后,关闭取消父窗口的对话框window.parent.FR.destroyDialog();

3

主模板设计切换到参数设计界面,添加一个文本类型控件,并将控件命名为p1。再添加一个按钮类型控件,并将按钮命名为选择记录, 添加点击事件,在function fun(){}函数中写入如下JS语句:window.form = this.options.form; //把参数界面的form赋值给全局变量var $iframe = $('