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

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

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

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

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

1.png

然后再制作第二张填报模板,在C3单元格内填入 ,设置C2单元格为可写属性,在C3单元格的超链接属性的表达式里写入:”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.aspx发布这两个报表,要在ASPX里引入刚才写好的JS文件,在ASPX中加入如下内容:<script src=”appQuicker.js”></script>,并把JS文件appQuicker.js放在人reprotAspx文件中,与showReport.jsp在同一路径下即可。aspx引入JS文件的方式如下图所示:

4.png

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

5.png

6.png

7.png

引自:润乾报表知识库

其他相关内容: 润乾 ; 商业智能BI联盟 报表软件Java报表商业智能解决方案web报表的扩展功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于数据回填,通常有两种常见方法: 1. 使用SELECT语句和UPDATE语句组合进行回填: 首先,使用SELECT语句检索需要回填数据。然后,使用UPDATE语句将检索到的数据更新到目标表中。具体的SQL语句可以根据您的需求和数据结构进行编写。 例如,假设您有一个名为"source_table"的表,其中包含待回填数据,并且有一个名为"target_table"的表,需要将数据回填到该表的特定列中。您可以使用以下SQL语句实现: ```sql UPDATE target_table SET target_column = ( SELECT source_column FROM source_table WHERE <条件> ) WHERE <条件> ``` 在上述SQL语句中,您需要根据实际情况替换"<条件>"、"source_table"、"source_column"、"target_table"和"target_column"等部分。 2. 使用INSERT INTO SELECT语句进行回填: 如果需要将数据从一个表复制到另一个表中,可以使用INSERT INTO SELECT语句进行回填。 例如,假设您有一个名为"source_table"的表,其中包含待回填数据,并且有一个名为"target_table"的表,需要将数据回填到该表中。您可以使用以下SQL语句实现: ```sql INSERT INTO target_table (column1, column2, ...) SELECT column1, column2, ... FROM source_table WHERE <条件> ``` 在上述SQL语句中,您需要根据实际情况替换"<条件>"、"source_table"、"target_table"以及需要回填的列名。 这些方法可以根据您的具体需求和数据库系统进行调整和扩展。希望能对您有所帮助!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值