润乾报表:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了润乾报表:相关的知识,希望对你有一定的参考价值。

我在一单元格写的表达式是: ds1.bselect1(CASE_ID,"TRANSFER_DATE,false,B2;ORG_ID,false,C1;year(TRANSFER_DATE),false,A2")报错,但是给函数表达式就是这样的啊。。我用的润乾runqian-V4.2.1,知道原因的说下,谢谢。
API给的例子:
例2:ds1.bselect1(name,"id,false,value();class,false,A1;sex,true,B1")

采用二分法,找到数据集ds1中id和当前格的值相等、class和A1相等且sex和B1相等的记录,返回其name字段值。注意这三个条件在表达式中的顺序必需和它们在数据集中的排序先后相同,也就是说,在数据集中是先对id升序排序,再对class升序排序,最后对sex进行降序排序的。

参考技术A 这就是润乾最大的弱点啊,根本不考虑用户感受,全是密密麻麻的数学公式,难学难用啊

润乾报表如何取单元格的值

如图,我想点击“取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

以上是关于润乾报表:的主要内容,如果未能解决你的问题,请参考以下文章

润乾报表 4.0 与润乾报表 V2018 函数对照

乾润乾报表服务器怎么计算两个单元格之间的除法

润乾报表基础知识

润乾报表如何取单元格的值

润乾报表大数据量展现报错内存溢出怎么办呀?

润乾报表美化设置 -- 样式