知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 填报技术 > 快逸数据回填的实现方法

快逸数据回填的实现方法

在web报表项目的填报流程中,用户经常会遇到需要按照某个模板来填报内容。本文介绍用快逸报表如何实现数据的回填功能。

第一步设计两张填报表,第一张作为接受回填数据的报表,第二张张作为填入数据的模板,其中第二张报表是通过第一张报表的超链接打开的。

首先制作一张接收数据回填的填报表,在B2单元格输入:”单击此处打开填报模板”,并在右侧B2单元超链接的表达式中输入如下内容:”javascript:openNewWindow(’showReport.jsp?raq=/填报模板.raq&refreshFather=yes’,800,600)”

调用JS函数openNewWindow打开填报模板。第一张报表的样式如下图所示:

1.png

然后设计第二张填报模板,在C2单元格内填入”回填” ,设置C1单元格为可写属性,在C2单元格的超链接属性的表达式里写入:”javascript:changePTCellValue(’B4′,’B2′,’B2′,’0′,4)”,调用JS函数实现数据的回填。提问模板的样式如下图所示:

2.png

第二步需要设计两个JS函数来实现这个回填的功能,其中在超链接中打开新窗口的JS函数,本文起名叫openNewWindow,代码内容如下:

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”);}

第二个函数是回填的函数,其代码如下:

function changePTCellValue (aimCell,showValue,realValue,count,oldNumber)
{ var cell=’report1_’+showValue; var aimData=document.getElementById(cell).value; count=parseInt(count); var aimCell=”B”+(oldNumber+count*10).toString();
window.parent.opener.document.all["report1_"+aimCell].value=aimData;//保存数据库的值,提交的值
window.parent.opener.document.all["report1_"+aimCell].innerText=aimData;//页面显示值
window.parent.close();
}

这段代码的含义是取到模板中填入数据的单元格的ID,通过遍历要回填的模板中单元格ID,取到这些ID对应的单元格的值,然后赋给接受回填的报表中相应的单元格。然后把这两段JS函数的代码放到一个新建的JS文件中,把这个JS文件起名为appQuicker.js,JS文件的样式如下图所示:

3.png

第三步用快逸自带的showReport.jsp发布这两个报表,要在JSP里引入刚才写好的JS文件,在JSP中加入如下内容:<script src=”appQuicker.js”></script>,并把JS文件appQuicker.js放在reportJSP文件夹中,与showReport.jsp在同一路径下即可。JSP引入JS文件的方式如下图所示:

4.png

然后用快逸自带的tomcat发布这两张报表,单击”单击此处打开填报模板”,弹出提问模板,在提问模板中填入:测试回填,然后点击回填按钮,就会看到数据自动回填到接受回填的报表中,这样回填功能就实现了。测试过程的截图如下面三个图所示:

5.png

6.png

7.png

本文标签:
发布日期:2010/03/29
本文分类: 填报技术