动态增加分组报表组内数据并刷新主页面

业务场景

在实际的项目需求中,经常用到分组报表,并且要求能动态的增加分组后的某一条数据。

需求展示如图:

动态增加各个类别中的产品

一:实现思路

通过在报表后面添加一个增加数据的超链接,超链接中调用一个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为所其左主格A2ID值。

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”>

//report1tag标签name

function _submitTablejade( report1 ){

//调用润乾提交数据保存的js

_submitTable( report1 );

//以下为关闭当前窗口,刷新主窗口的js代码

window.opener.refresh();

window.focus();

window.opener=null;

window.open(“”,”_self”);

window.close();

}

</script>

三:运行效果

点击增加,弹出新窗口

输入要填报的数据,点击保存按钮

提交成功后刷新主页面

总结:利用此思路不仅可以实现增加数据,也可以实现删除数据,更新数据等等。

热门文章