润乾报表如何取单元格的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了润乾报表如何取单元格的值相关的知识,希望对你有一定的参考价值。
如图,我想点击“取A1单元格值”这个按钮,然后弹出对话框显示单元格值的内容我的JSP页面如下:输出“two”后,就不执行下面内容了,而且取单元格的值都是null,请问到底是如何取单元格的值。<%@ page contentType="text/html;charset=GBK" %><%@ taglib uri="/WEB-INF/runqianReport4.tld" prefix="report" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.runqian.report4.usermodel.Context"%><html>
<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>
<%
request.setCharacterEncoding( "GBK" );
String report = request.getParameter( "raq" );
String reportFileHome=Context.getInitCtx().getMainDir();
StringBuffer param=new StringBuffer();
//保证报表名称的完整性
int iTmp = 0;
if( (iTmp = report.lastIndexOf(".raq")) <= 0 )
report = report + ".raq";
iTmp = 0;
Enumeration paramNames = request.getParameterNames();
if(paramNames!=null)
while(paramNames.hasMoreElements())
String paramName = (String) paramNames.nextElement();
String paramValue=request.getParameter(paramName);
if(paramValue!=null)
//把参数拼成name=value;name2=value2;.....的形式
param.append(paramName).append("=").append(paramValue).append(";");
%>
<table id=rpt align=center><tr><td>
<table align="center">
<tr>
<td>
<input type="button" value="取A1单元格值" onclick="_getDispValueByName()"/>
</td>
</tr>
</table>
<table align=center>
<tr><td>sss
<report:html name="report6" reportFileName="<%=report%>"
funcBarLocation="top"
needPageMark="yes"
generateParamForm="no"
params="<%=param.toString()%>"
width="-1"
exceptionPage="/reportJsp/myError2.jsp"
/>
</td></tr>
</table><script language="javascript">
function _getDispValueByName()
alert("one");
var cell = document.getElementById("report6_A1");
alert(cell); //此步输出为null
alert("two"); //输出完"two"后,程序执行中止
alert(cell.value);
alert("three");
alert(cell.innerHTML); //用alert()函数弹出这个单元格的值
alert("four");
</script></body>
</html>
代码好多~~||,你要不试试用finereport吧,不需要写这么多代码也能实现的。
3.1 模板设计
表样设计如下:
设置B2单元格的控件类型为数字型,设置B3单元格的控件类型为文本
3.2 JS事件设置
对B2单元格控件设置事件编辑,添加编辑结束事件,具体JS代码如下:
1.var D2value = contentPane.curLGP.getCellValue("D2"); //获取D2单元格的值
2.if (this.getValue() < D2value) //判断输入值是否小于D2单元格值
3. FR.Msg.alert(FR.i18n.Alert, "该值不能小于" + D2value); //弹出对话框
4.return false;
5.
对B3单元格控件进行事件编辑,添加编辑结束事件,具体JS代码如下:
1.var D3value = contentPane.curLGP.getCellValue("D3"); //获取D3单元格的值
2.if (this.getValue() != D3value) //判断输入是否与D3单元格相等
3.FR.Msg.alert(FR.i18n.Alert, "该值应等于" + D3value); //弹出对话框
4. return false;
5.
其中,D3value是自定义变量,用于获得D3单元格的值,if语句是用来判断该单元格输入后的值是否等于D3value,如果不是是则弹出警告:该值应等于abc。
3.3填报预览
点击填报预览,在B2单元格中输入数字1,并按回车确定,则弹出警告,如下图:
在B3单元格中输入add,并按回车确定,也弹出校验警告,如下图:
参考技术A 你可以在报表的展现界面定义如下js方法<script>
function gValue()
var tab1=document.getElementById("report1_A1").innerHTML; --使用这种方式获取单元格需要在html标签中添加 generateCellId="yes"属性才能获取单元格编号
alert(tab1);
</script>
然后,在报表的“取A1单元格值”的单元格设置HTML事件,调用gValue()方法。
参考文献:
c.raqsoft.com.cn/article/1534918139702
润乾报表之序号固定行数统计
图一图二为例子,请结合自己的需求更改单元格
图一
图二
序号:
报表如果有需求要显示序号,类似图一第一列,在A11的位置赋值=&B11,
并且将单元格的左主格设为B11这样就可以添加序号了;
固定行数:
有时要求表格固定行数,例如图一固定位10行,就是说,如果只有三行数据,
要补上7行空格,生凑成10行;在A12的位置赋值=to(count(A11{})+1,10),
这样,在即使没有数据的情况下也会显示10个空行并且带有序号;
统计:
图一中有俩种类型的统计,一种是个数统计,另一个是内容求和。
个数统计在B13里面赋值=count(B11{}),该函数会统计有内容的单元格的个数,
内容求和在F13里面赋值=sum(F11{}),该函数会累加单元格里面所有内容。
以上是关于润乾报表如何取单元格的值的主要内容,如果未能解决你的问题,请参考以下文章