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

目录:

1. 概述编辑

对于数据量较大的报表,可以采用文本控件、按钮控件和单元格复选框结合的方式进行查询,如下图所示,点击选择按钮,弹出数据选择窗口来处理记录:

00.gif

2. 主模板操作步骤编辑

2.1 数据准备

新建普通报表,新建数据集 ds1,SQL 语句为:SELECT * FROM S订单

1-1.jpg

2.2 设计表格

2.2.1 如下图设计表格,将字段拖入到对应单元格中:

1-2.jpg

2.2.2 A3单元格属性设置形态>数据字典>数据库表,选择内置数据库FRDemoS客户表,实际值为客户ID,显示值为公司名称

1-3.jpg

2.3 添加模板参数

点击模板>模板参数,添加文本类型参数,命名为【公司名称】

1-4.jpg

2.4 设置参数面板

2.4.1 添加文本控件

编辑参数面板,点击右侧组件设置上方的全部添加,生成参数控件,点击参数框,选择文本控件

1-5.jpg

2.4.2 添加按钮控件

拖动按钮控件到参数面板,设置按钮名字为【...】

1-6.jpg

2.4.3 按钮控件添加事件

点击按钮控件,添加点击事件,JS代码为:

window.form = this.options.form;//当前的form赋值给全局变量
var $iframe = $(
"<iframe id='inp' name='inp' width='100%' height='100%' scrolling='no' frameborder='0'>");
$iframe.attr("src", 
"${servletURL}?viewlet=demo/parameter/批量处理数据.cpt&op=write&__showtoolbar__=false");
var o = {title : "客户信息选择",width : 800,height: 300};
FR.showDialog(o.title, o.width, o.height, $iframe,o);

注:【?viewlet=】后面的路径和文件名为「子模板」所在路径及文件名,且需加&op=write,确保子模板为填报预览。

1-7.jpg

2.5 设置单元格过滤

A3单元格元素增加过滤条件:数据列【客户ID】【包含于参数【$公司名称】

1-.jpg

2.6 设置重复与冻结行

设置前两行重复与冻结

1--.jpg

3. 子模板操作步骤编辑

3.1 数据准备

新建普通报表,新建数据集 ds1,SQL 语句为:SELECT * FROM 客户

2-1.jpg

3.2 设计表格

3.2.1 如下图设计表格,将字段拖入到对应单元格中:

2-2.jpg

3.2.2 B4单元格属性设置形态>数据字典>数据查询,选择数据集ds1,实际值为客户ID,显示值为公司名称

2-3.jpg

3.3 添加按钮控件

3.3.1 A1单元格添加按钮控件,按钮名称设置为【处理已选中记录】

2-4.jpg

3.3.2 按钮控件添加初始化后事件,JS代码为:

window.ceshi=[];

2-5.jpg

3.3.3 按钮控件添加点击事件,JS代码为:

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

注:赋值参数的名称必须与主模板的参数名称一致。

2-6.jpg

3.4 添加复选按钮控件

A4单元格添加复选按钮控件,添加状态改变事件,设置参数a,值为公式=B4,JS代码为:

var value = this.getValue();//获取当前参数的值 
if (value == true) {
 ceshi.push(a);//将选中的参数a放入窗口 

else if (value==false){
 ceshi.splice($.inArray(a,ceshi),1); 
}

2-7.jpg

3.5 设置重复与冻结行

设置前两行重复与冻结

2-.jpg

4. 效果预览编辑

保存模板,点击分页预览,效果如下图所示:

00.gif

5. 模板下载编辑

5.1 主模板

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\parameter\大数据量查询.cpt

点击下载模板:大数据量查询.cpt

5.2 子模板

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\parameter\批量处理数据.cpt

点击下载模板:批量处理数据.cpt