您的位置:首页 > Web前端 > JavaScript

博计报表数据回填的实现方法

2010-04-11 11:44 507 查看
在web报表项目的填报流程中,用户经常会遇到需要按照某个模板来填报内容,本文用博计报表做一个简单的回填的例子,介绍如何实现数据的回填功能。

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

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

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



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



第二步设计两个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文件的样式如下图所示:



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



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







引自:润乾报表知识库
其他相关内容: 润乾 ; 商业智能BI联盟 报表软件Java报表商业智能解决方案web报表的扩展功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息