博计报表数据回填的实现方法
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报表的扩展功能
第一步设计两张填报表,第一张作为接收回填数据的报表,第二张作为填入数据的模板,其中第二张报表是通过第一张报表的超链接打开的。
首先设计第一个填报表,在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报表的扩展功能
相关文章推荐
- 数据以报表形式展现的实现方法研究
- 数据以报表形式展现的实现方法研究
- WINCC中数据EXCEL报表的实现方法
- Python实现导出数据生成excel报表的方法示例
- CSS实现圆柱型数据报表的方法
- 数据以报表形式展现的实现方法研究
- 数据以报表形式展现的实现方法研究
- SQL行转列 数据统计方法与实现(采购报表--四厂延迟交货)
- PB中实现数据窗口动态排序的三种方法
- C#中水晶报表实现动态传递参数的简单方法
- VC++中数据访问互斥的简单实现方法
- PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
- 使用JDBC插入多数据测试的3种实现方法
- vue与vue-i18n结合实现后台数据的多语言切换方法
- Dojo Grid 一列中同时有checkbox 和数据的实现 和 设置checkbox 可用与不可用(disable) 的方法
- 使用共享变量实现主报表及子报表之间的数据共享
- EASYUI TREEGRID异步加载数据实现方法
- 弹出窗口,点击确定在删除数据的实现方法
- C#实现Excel表数据导入Sql Server数据库中的方法
- PHP使用3种方法实现数据采集