历史版本1 :JS实现自定义选项弹窗 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1. 描述

对于数据量较大的报表,此处提供一种文本框与复选框结合的查询方式。
222

选择需要查看的数据后,点击【处理已选中记录】,然后点击查询:
222

目录:

2. 示例之子模板编辑

2.1 模板样式

新建工作簿,新建数据库查询ds1:SELECT * FROM 客户

模板样式如下,B1单元格插入按钮控件,B4单元格插入复选框控件(此处A列隐藏):

222

C4单元格设置数据字典如下:

222
给第四行设置隔行换色,所以在C4添加条件属性如下:
222

设置第一行为重复冻结行:
222

2.2 控件设置

(1)按钮控件

给B1单元格按钮命名为处理已选中记录,并添加初始化后事件和点击事件(根据参数查询出不同报表):
222

window.ceshi=[];

222

window.parent.form.getWidgetByName("p1").setValue(ceshi);//给参数赋值 window.parent.FR.closeDialog();//确定获取值后,关闭取消父窗口的对话框 window.parent.FR.destroyDialog();

(2)复选框控件

设置B4单元格的左父格为C4,并给复选框控件添加状态改变事件,添加参数a=C4:

222

var value = this.getValue();//获取当前参数的值 if (value == true) { ceshi.push(a);//将选中的参数a放入窗口 } else if (value==false){ ceshi.splice($.inArray(a,ceshi),1); }

保存模板,另存为%FR_HOME%\WebReport\WEB-INF\reportlets\demo\parameter\son.cpt

3. 示例之主模板编辑

3.1 模板样式

新建模板,新建数据库查询ds1:SELECT * FROM S订单

                                      ds2:SELECT * FROM S客户

点击模板>模板参数,添加模板参数p1:
222

模板样式如下,需要注意A3单元格数据取自ds2:

222

3.2 模板数据设置

给A3设置过滤条件:
222

将A3数据字典设置如下:

222
给B3设置过滤条件,关联ds1和ds2:
222

将C3数据字典设置如下,显示值为sql("FRDemo", "select 姓氏||名字 from s雇员 where 雇员ID=" + $$$, 1, 1),显示为表s雇员中的姓名:
222
将G3数据字典设置如下,显示值从表运货商中获取:
222

给第三行设置隔行换色,所以给C3单元格添加条件属性:

222

3.3 参数面板设置

在参数面板上添加文本控件、按钮控件和查询按钮,如下:
222

(1)文本控件
文本控件名设为p1,控件值为ANATR,ANTON:
222
(2)按钮控件

按钮控件名字设为...,添加点击事件和初始化后事件:

222

window.form = this.options.form;//把参数界面的form赋值给全局变量 var $iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='no' frameborder='0'>");// iframe参数的命名及宽高等 $iframe.attr("src", "${servletURL}?reportlet=demo/parameter/son.cpt&op=write&__showtoolbar__=false");//点击按钮时,引用js后弹出一个对话框,对话框中的模板为son.cpt var o = { title : "客户信息选择", width : 800, height: 300 }; FR.showDialog(o.title, o.width, o.height, $iframe,o);//首先弹出对话框

222

window.form = this.options.form;

(3)查询按钮

将点击查询前不显示报表内柔后面的勾选去除:

222
保存模板,另存为%FR_HOME%\WebReport\WEB-INF\reportlets\demo\parameter\Father.cpt

在线查看模板效果请点击:Father.cpt