润乾所有问题汇总.docx
- 文档编号:27071984
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:26
- 大小:27.21KB
润乾所有问题汇总.docx
《润乾所有问题汇总.docx》由会员分享,可在线阅读,更多相关《润乾所有问题汇总.docx(26页珍藏版)》请在冰豆网上搜索。
润乾所有问题汇总
参数和宏
参数在SQL语句中如何使用?
答:
在sql语句中需要用到参数的地方,写上"?
",然后在参数的tab页中,根据?
的顺序,
依次写入含参数或者不含参数的表达式,如下图所示:
参数能在单元格中使用吗?
和在SQL语句中的用法有什么区别?
答:
可以,直接引用参数名即可,把参数作为表达式的一个变量来使用,例如:
=arg1+1
sql语句中写上
问号
根据问号顺序写
入含参数的表达
式
宏和参数有什么区别?
怎么使用宏?
答:
参数是有数据类型的变量,在报表运算过程中作为变量来使用。
宏是一个字符串标识,
没有数据类型,报表运算之前,引擎会搜索报表定义,检索到宏名,替换成宏值,全部替换
结束后,才进行报表运算。
宏的引用方式:
${macroName}
宏和参数在网页中如何传递?
答:
方法一:
通过tag标签来传递,
html…… params="param1=value1;param2=value2;……;macro1=value1;……" …… /> 参数及宏的个数应该与报表中的参数及宏个数相同,参数名及宏名大小写一致。 如果参数值或宏值是变化的,那么应该先在JSP代码中将参数串拼好,再传入Tag中, 如下所示: <% Stringparams="param1="+value1+";param2="+value2+";"……";macro1="+ value1+…… %> html…… params="<%=params%>" …… /> WEB发布时,如果我自己定制参数输入页面,如何把参数值传递给报表? 答: 在jsp中获得参数值,然后先在JSP代码中将参数串拼好,再传入Tag中,如下所 示: <% Stringparams="param1="+value1+";param2="+value2+";"……";macro1="+ value1+…… %> html…… params="<%=params%>" …… /> 如何使用润乾报表定制参数输入页面? 答: 假如有一张显示学生成绩的报表,名为student.raq,此报表有三个参数: 性别(sex)、班 级(class)、出生月份(month)。 性别的输入方式为下拉列表框(1代表男,2代表女),班级的 输入方式为下拉数据窗口,月份的输入方式为简单输入框。 下面我们先来定义一个参数表单: 运行报表设计器,新建一张“填报或参数表单”报表,如下图所示: 在此报表中,输入参数名标签,删除多余的行列后,如下图所示: 使A1、C1、E1单元格的“是否可写”属性为false,将此报表存为studentParam.raq。 选中B1单元格,在右边的属性列表中“参数名/JSP引用变量名”填入此格对应的报表 参数名sex,如下图所示。 同样,对D1填入class,F1填入month。 选中B1单元格,点击右键在弹出菜单中选择“数据类型及编辑风格”,在弹出窗口中 设置其编辑风格为“下拉列表框”,编辑代码值和显示值如下图所示: 选中D1单元格,点击右键在弹出菜单中选择“数据类型及编辑风格”,在弹出窗口中 设置其编辑风格为“下拉数据窗口”,编辑各项如下图所示: 最后保存此报表,完成参数表单的定制。 现在来看如何在网页中发布,如下JSP文件所示: <%@pagecontentType="text/html;charset=GBK"%> <%@tagliburi="/WEB-INF/runqianReport.tld"prefix="report"%> paramname="studentParam"paramFileName="studentParam.raq" /> htmlname="student"reportFileName="student.raq" funcBarLocation="boTh" needPageMark="yes" functionBarColor="#fff5ee" funcBarFontSize="9pt" funcBarFontColor="blue" separator=" " needSaveAsExcel="yes" needSaveAsPdf="yes" needPrint="yes" pageMarkLabel="页号{currpage}/{totalPage}" printLabel="打印" displayNoLinkPageMark="yes" params="class=2;sex=1" saveAsName="学生成绩表" /> 运行结果如下图所示: 如何实现模糊查询? 答: 需要模糊时,在sql中使用"like? ",然后在参数tab页中写上"%"+arg1+"%",如下图所 示: 我希望用户不输入参数值时,相当于全部选出,该怎么做? 答: 在sql中使用wherecoln=? or? isnull等类似的语句 参数tab页中使用 "%"+arg1+"%" sql语句中使 用? 集成性和web发布 启动Tomcat的时候数据源绑定出错是什么原因 答: tomcat不同版本的数据源jndi设置方式不相同,首先请参考tomcat相关配置手册,确 认tomcat的数据源配置正确。 另外需要特别注意的是在配置数据源之后,启动tomcat之前需要把相关的jdbc驱动jar包拷 贝到tomcat的系统库目录下面,例如tomcat5需要将相关的jar包拷贝到 其次,查看web应用目录下/WEB-INF/web.xml文件里配置的datasource的名称和您实际配 置的tomcat数据源名称是否一致 为什么提交填报报表数据之后网页显示结果仍然是旧的数据 答: 这个和ie浏览器的设置有关系,可以通过修改ie访问属性为”每次访问此页时候检查” 润乾报表如何实现权限控制? 答: 润乾报表本身不提供权限角色的管理,方便和web应用集成。 web应用的用户名、角 色名通过报表参数传递进来,报表中的任意一个单元格、任意一行、任意一列的所有属性都 有属性值和表达式两种定义方式,可以在属性的表达式中采用if()或者case()函数来对不同 的用户、角色进行定义。 润乾报表如何实现连接池的管理? 答: 润乾报表本身不提供连接池的管理,方便用户使用webserver的连接池,用户可以在 webserver中配置datasource,然后把datasource的名字在web.xml里配置一下,如下所示: 配置datasource 的名字、数据库 类型、数据编码 如何将定义好的润乾报表在web上进行发布? 答: 将润乾报表安装包里web目录下的所有文件(除了web.xml),拷贝到你的web应用目 录下,将润乾报表提供的web.xml文件中的内容拷贝到你的web.xml文件中;把报表文件部 署在web应用的reportFiles目录下,在jsp中调用tag标签来发布报表。 tag标签的写法参照 《润乾报表在web中的使用说明》。 在webserver中配置datasource,将datasource的名字在web.xml中进行配置。 报表工具是单线程的还是多线程的? 答: 多线程的。 日志文件的位置我可以调整吗? 还是就是规定好的? 答: 可以在web.xml里进行配置。 html标签里面的属性,可以使用变量吗? 类似 htmlname="report" reportFileName="tmp.raq"width="2000"params="Time=jsp变量" 答: 和html语法相同,需要用到变量的地方,用<%=变量名%>;但是一个属性里只能用一 个变量,所以如果你的属性值是由多个变量组成的,你要在java代码里先把这些变量拼成 一个变量 例如: htmlname="report"reportFileName="tmp.raq"width="2000" params="Time=jsp变量" 要在java代码里先这样写: jsp变量="time="+jsp变量 然后在标签中这样写: htmlname="report"reportFileName="tmp.raq" width="2000"params="<%=jsp变量%>" 报表在编辑器中预览正常,但是在WEB发布时,从数据库中取出的汉字乱码 答: 检查web.xml文件中,对应datasource的数据编码配置是否正确。 设计器端报表预览可以出来数据,但是服务器端发布的时候数据出不来: 答: 先看应用服务器启动的时候,有没有报错,可能是授权证书没有拷贝到WEB-INF的目 录下;然后,再比较runqianReport.jar看是否一致;最后检查datasource的配置是否正确。 在页面发布的时候,把结果形成PDF文件,但会出现乱码。 语句如下: ServerletOutputStreamoutputstream=response.getOutputStream(); response.setContentType("application/pdf"); report.exportToPDF(outputstream); outputstream.flush(); outpurstream.close(); 错在哪里? 答: 应该首先设置response.setContentType("application/pdf");然后再获得数据输出流。 常见错误信息 outofmemeryerror内存溢出 答: 该问题可能是由于web服务器javavm的内存设置太小,也可能是由于报表数据量过大; 解决办法: 1、java虚拟机的设置: java-Xms128m-Xmx384m,根据实际机器的内存配置,灵活调 整 2、如果虚拟机设置后依旧出现内存溢出,可能是你的报表数据量过大,可以采取数据 集分页的办法或者数据集缓存的办法解决,如下图所示: 通过设置起始行和结 束行来控制数据集分 页,这两个属性可以通 过参数来传递 可以设置数据集 是否需要缓存, 此方法可以解决 内存溢出的问题 java.lang.ClassNotFoundException: com.newatlanta.jturbo.driver.Driverat org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav a: 1428) 答: 没有将数据库的jdbc包部署在classpath目录下。 单元格C4中有错误,表达式ds1.select(contractno)中数据集未产生,可能因为 未连接数据库 答: 编辑器没有连接数据库 java.sql.SQLException: [JTurbo3.0.1JDBC2.1Driver]: Parameter#2has notbeenset 答: sql语句的定义有误,sql语句里定义的问号个数比参数tab页中定义的参数表达式的条 数多 数据集ds1的sql异常: Line1: Incorrectsyntaxnear'contract'. 答: 类似这样的错误,往往是sql语句的语法出现了错误,请检查sql语句。 [JTurbo3.0.1JDBC2.1Driver]: CommunicationLinkFailure.Nobuffer spaceavailable(maximumconnectionsreached? ): JVM_Bind 答: sql语句的定义有误,sql语句里定义的问号个数比参数tab页中定义的参数表达式的条 数少 org.apache.jasper.JasperException: com/runqian/report/view/DataServlet at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java: 248), 后台没有任何错误信息,所有jsp网页不能显示,但是html网页可以显示;或者 org.apache.jasper.JasperException: /index.jsp(4,0)Unabletoloadclasshtml 答: 检查WEB-INF目录名是否写成了小写,或者runqianReport.jar包是否正确的部署在了 web应用的classpath目录下。 Therequestedresource(/web/report.jsp)isnotavailable. 答: 此时的现象: 所有的jsp网页、html网页、应用根目录都无法访问,应用没有正确启动 原因: 应用没有正确部署或者runqianReport.tld文件没有正确部署 org.apache.jasper.JasperException: /defaultArg.jsp(22,0)Unabletoloadtag handlerclass"com.runqian.report.tag.HtmlTag"fortag"report: html" 答: 检查web应用下的classpath目录,看看是否所有的jar包都已经放置在了classpath目录 下 java.lang.NullPointerExceptionat com.runqian.report.view.ReportCalculator.calc(ReportCalculator.java: 74)at com.runqian.report.tag.HtmlTag.doStartTag(HtmlTag.java: 195)at org.apache.jsp.defaultArg_jsp._jspService(defaultArg_jsp.java: 106)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java: 94)at javax.servlet.http.HttpServlet.service(HttpServlet.java: 802) 答: 没找到License文件,请把xrq_license.dat文件放到WEB-INF目录中! java.lang.NullPointerExceptionat com.runqian.report.usermodel.ReportDataSetConfigs.calcDataSet(ReportDataSetC onfigs.java: 99)at com.runqian.report.engine.CalcRpt.calcRpt(CalcRpt.java: 24)at com.runqian.report.usermodel.Engine.calc(Engine.java: 144)at com.runqian.report.ide.ReportEditor._$5157(ReportEditor.java: 551) 答: 请检查报表模板中自定义的数据集用到的类,看看是否正确的放在了classpath目录下 java.lang.NullPointerExceptionat com.runqian.report.view.excel.ExcelReport._$16606(ExcelReport.java: 205) at com.runqian.report.view.excel.ExcelReport.createWorkbook(ExcelReport.java: 67) atcom.runqian.report.view.excel.ExcelReport. 40) atcom.runqian.report.view.excel.ExcelReport. 52) atcom.runqian.report.ide.CellSetConverter._$50529(CellSetConverter.java: 42) atcom.runqian.report.ide.CellSetConverter.convert(CellSetConverter.java: 76) 答: 因为该报表是从excel导入的,一些页面设置的默认值没有: 例如纸张大小、纸张方向 等,请设置一下这些值,点击保存即可。 在weblogic下发布时,如果更新了类,没有重起web服务,就会出现如下错误信息: java.lang.NullPointerExceptionat com.runqian.report.view.ReportCalculator.calc(ReportCalculator.java: 61)at com.runqian.report.tag.HtmlTag.doStartTag(HtmlTag.java: 193) 答: 将web.xml里的reportFileHome配成绝对路径,就可以避免这一问题。 java.lang.ClassNotFoundException: com.runqian.report.ide.ReportFrame atStartReportEditor.loadClass(StartReportEditor.java: 187)at java.lang.ClassLoader.loadClass(ClassLoader.java: 255)at StartReportEditor.main(StartReportEditor.java: 262) 答: 润乾报表安装目录下,web/web-inf/lib目录下的runqianReport.jar包可能被破坏,请更 新此包。 报表编辑 编辑器运行时提示无效的授权文件 答: jdk的版本低,换成jdk1.4.1及以上版本 编辑器里报表预览出现乱码什么原因 答: 请检查系统/数据源连接设置是否选择了正确的数据编码 我定义的自由式报表,为什么当出现多条记录时,不能成片重复 答: 把需要被重复的行的第一个单元格的左主格属性设成该记录的主动扩展格。 如下图所示: 上图中,c4单元格是记录的主动扩展格,因此如果希望从第五行到第十行都随着c4的扩展 而被复制,那么从第五行到第十行的第一个单元格(a5: a10)的左主格属性都设成c4 当单元格中的数据过长,超出格子的宽度时,我该怎么办? 答: 可以为单元格设置自动换行属性 报表里合计的行应该是属于页尾区还是数据区? 答: 看你这个合计行是否需要被复制,是否需要每页显示;如果会随着主单元格的扩展而被 复制出很多合计行,例如分组报表里的组合计,那么应该放在数据区;如果只在最后合计, 但是每页显示,那么放在表尾区;如果只要最后一页显示,那么放在数据区;除了数据区, 其它区域都是每页重复显示 编辑器运行时,一启动就莫名其妙的关闭了,怎么办? 答: 此时往往是java环境或者编辑器的包存在问题,最好的解决办法是在dos命令行下, 执行“润乾报表.bat”文件,然后根据错误信息寻找解决办法 编辑器要求jdk1.4.1及以上版本,也可以先检查jdk的版本是否正确。 报表中,希望单元格中存的是编码,显示成中文,要如何做? 答: 通过定义单元格的显示值属性来实现, 做法一: 为显示值属性表达式定义一个map(list(exp1,exp2......),list(exp1,exp2,...)),第一个list 是真实值列表,第二个list是显示值列表 做法二: 从数据集中获得显示值,dsn.select_one(nameCol,@value=idCol),@value代表当前 单元格的真实值 做法三: 直接写入显示值,例如“中国” 报表中,我希望引用某个单元格的显示值,要如何做? 答: 可以采用disp函数,例如: =disp(A1)+"——中国" 展现 你们导出XLS格式单元格怎么比显示的要大的多呢? 答: 因为微软的软件界面显示都有放大的效果,例如excel、word、看起来都比实际的大, 但是导出到pdf就是一样大,而且打印到纸上和excel、word是一样大的 网页上导出到excel文件时,是否分页页面报错 答: runqianReport.jar包里缺少文件,更新最新的jar文件 以分页的方式导出到excel时,如何设置页面大小? 答: 在tag标签里设置属性,如下表所示: width否报表分页宽度 整数,单位为px,负数 表示无穷大 报表设计 页面宽度 height否报表分页高度 整数,单位为px,负数 表示无穷大 报表设计 页面高度 excelUsePaperSize否 存为EXCEL时: yes 按报表设计时的纸张 尺寸,no采用本TAG 标签中指定的width, height值 yes或nono 导出到文本文件时,能否设置打印机控制码? 如何设置? 答: 可以。 先建一个printer.ini文件,文件格式如下图所示: 然后在报表编辑器中,点中报表首格,在右边的属性列表中,选择你要设置的打印机,如下 图所示: 编辑器中预览报表时,从数据库中取出的汉字乱码,如何解决? 答: 点击系统/数据源,选择您当前连接的数据源,点击配置,如下图所示: 查看您设置的数据编码是否正确,如果不正确,会导致数据乱码。 点击导出到excel后出现是否分页窗口,选择以后就什么都不出现了 答: 一般是poi包的版本不对,必须用润乾公司提供的poi包,因为润乾公司在poi包的基 础上做了一些修改 还有一种可能是java的classpath下有多个poi包,冲突了。 导出到pdf出现中文字符不对 答: 一般是webserver端的操作系统安装有问题,往往是英文的操作系统,相应的中文字符 集没安装。 此时往往出现网页预览的中文是对的,因为网页上用的是客户端操作系统的中文字符 集。 对于某些数据库,例如sqlsvr,其varchar和nvarchar字段,总有一种字段出来的 中文不对 答: 请详细阅读jdbc包的说明文档,例如对于sqlsvr数据库,可在url里这么配置: jdbc: JTurbo: /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 所有 问题 汇总