填报表新弹出页面回写数据

客户在填报系统中填写数据时由于某些原因要求在填写数据时点击某单元格弹出新页面,在新页面中进行数据的填写,这样客户可以在新页面中增加一些自己的特殊插件,然后填写完数据后,将填写后的数据再回写到填报表进行报表的保存。

解决方案:

润乾报表单元格支持html事件,并且润乾报表展现后是纯html格式,这样的话就可以通过页面间的处理实现该需求。

一:定制raq,主要增加html事件,如图:

C3单元格的html事件表达式中写入“onmouseup=\”show_product( ‘” + B3+ “‘ );return false;\” onmouseover=\”this.style.cursor=’hand’\”",鼠标点中时调用js函数show_product,将B3单元格的值作为参数传递过去。

在显示报表的jsp页面中增加show_product函数的定义:

function show_product(num)

{

var strurl=’/demo/jsp/ld2.jsp?num=’+num

window.open(strurl,”_blank”,”Scrollbars=no,Toolbar=no,Location=no,Direction=no,titlebar=no,Resizeable=no,Width=650 ,Height=500,top=”+(window.screen.height-500)/2+”,left=”+(window.screen.width-500)/2);

return false;

}

</script>

可以看到,调用该js函数后会新弹出页面demo/jsp/ld2.jsp,这样就可以在该页面中进行数据的输入。

ld2.jsp中实现输入框,并且要求数据能回写到原页面。

<form action=”ld.jsp” method=”get” name=”form1″>

<input name=”sheng” type=”text”>

地区<input name=”diqu” type=”text”>

<input name=”xian” type=”text”>

<input name=”" type=”button” onClick=”open_product_click(<%=num%>)”>

</form>

function open_product_click(num)

{

opener.document.getElementById(“report1_C”+(num+2)).value=form1.sheng.value;

opener.document.getElementById(“report1_C”+(num+2)).innerText=form1.sheng.value;

opener.document.getElementById(“report1_D”+(num+2)).value=form1.diqu.value;

opener.document.getElementById(“report1_D”+(num+2)).innerText=form1.diqu.value;

opener.document.getElementById(“report1_E”+(num+2)).value=form1.xian.value;

opener.document.getElementById(“report1_E”+(num+2)).innerText=form1.xian.value;

window.close();

}

</script>

这样就能实现客户的业务需求,如图:

弹出页面:

数据回写:

具体文件见附件。

热门文章