动态增加分组报表组内数据并刷新主页面
业务场景
在实际的项目需求中,经常用到分组报表,并且要求能动态的增加分组后的某一条数据。
需求展示如图:
动态增加各个类别中的产品
一:实现思路
通过在报表后面添加一个增加数据的超链接,超链接中调用一个js方法,弹出一个小窗口,在新弹出的页面中实现添加产品,保存成功后返回并刷新主页面。
二:实现步骤
1:创建报表模板,设置超链接
数据源使用润乾自带的demo
数据集为:SELECT 产品.类别ID,产品.产品名称,产品.产品ID FROM 产品
A2表达式为:ds1.group(类别ID,false,类别ID!=NULL)
B2表达式为:ds1.select(产品ID)
C2表达式为:ds1.产品名称
D2的左主格设置为A2,
超链接表达式为:“javascript:openNewWindow(‘showReportdky.jsp?raq=/dky/product_add.raq&类别ID=”+A2+”‘,800,600)”
此超链接的目的:弹出一个新窗口,url为:http://127.0.0.1:6001/demo/reportJsp/showReportdky.jsp?raq=/dky/product_add.raq&类别ID=1
其中类别ID为所其左主格A2的ID值。
2:定义弹出新窗口的JavaScript
打开新窗口的JavaScript为:
//打开新窗口
function openNewWindow(URL,width,Height)
{
var top,left;
left=(window.screen.width-width)/2;
top=(window.screen.height-Height)/2-40;
window.open(URL,”",”left=”+left+”,top=”+top+”,width=”+width+”,height=”+Height+”,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes, resizable=no”);
}
3:创建新增产品的填报表
数据源为demo,数据集为:SELECT 产品.产品ID,产品.产品名称FROM 产品
增加一个类别ID的参数,并设置更新属性。
4:增加保存后返回并刷新主页面的JavaScript
增加保存后返回并刷新主页面的js,所以自定义提交保存的js。
<script language=”javascript”>
//report1为tag标签name值
function _submitTablejade( report1 ){
//调用润乾提交数据保存的js
_submitTable( report1 );
//以下为关闭当前窗口,刷新主窗口的js代码
window.opener.refresh();
window.focus();
window.opener=null;
window.open(“”,”_self”);
window.close();
}
</script>
三:运行效果
点击增加,弹出新窗口
输入要填报的数据,点击保存按钮
提交成功后刷新主页面
总结:利用此思路不仅可以实现增加数据,也可以实现删除数据,更新数据等等。