1. 概述编辑
对于数据量较大的报表,可以采用文本控件、按钮控件和单元格复选框结合的方式进行查询,如下图所示,点击选择按钮,弹出数据选择窗口来处理记录:
2. 主模板操作步骤编辑
2.1 数据准备
新建普通报表,新建数据集 ds1,SQL 语句为:SELECT * FROM S订单
2.2 设计表格
2.2.1 如下图设计表格,将字段拖入到对应单元格中:
2.2.2 A3单元格属性设置形态>数据字典>数据库表,选择内置数据库FRDemo的S客户表,实际值为客户ID,显示值为公司名称
2.3 添加模板参数
点击模板>模板参数,添加文本类型参数,命名为【公司名称】
2.4 设置参数面板
2.4.1 添加文本控件
编辑参数面板,点击右侧组件设置上方的全部添加,生成参数控件,点击参数框,选择文本控件
2.4.2 添加按钮控件
拖动按钮控件到参数面板,设置按钮名字为【...】
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,确保子模版为填报预览。
2.5 设置单元格过滤
A3单元格元素增加过滤条件:数据列【客户ID】【包含于】参数【$公司名称】
2.6 设置重复与冻结行
设置前两行重复与冻结
3. 子模板操作步骤编辑
3.1 数据准备
新建普通报表,新建数据集 ds1,SQL 语句为:SELECT * FROM 客户
3.2 设计表格
3.2.1 如下图设计表格,将字段拖入到对应单元格中:
3.2.2 B4单元格属性设置形态>数据字典>数据查询,选择数据集ds1,实际值为客户ID,显示值为公司名称
3.3 添加按钮控件
3.3.1 A1单元格添加按钮控件,按钮名称设置为【处理已选中记录】
3.3.2 按钮控件添加初始化后事件,JS代码为:
window.ceshi=[];
3.3.3 按钮控件添加点击事件,JS代码为:
window.parent.form.getWidgetByName("公司名称").setValue(ceshi);//给主模板的参数赋值
window.parent.FR.closeDialog();//确定获取值后,关闭取消父窗口的对话框
window.parent.FR.destroyDialog();
注:赋值参数的名称必须与主模板的参数名称一致。
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);
}
3.5 设置重复与冻结行
设置前两行重复与冻结
4. 效果预览编辑
保存模板,点击分页预览,效果如下图所示:
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