起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22961|回复: 24

[结贴] 报表问题

[复制链接]

38

主题

109

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
QQ
发表于 2019-6-3 09:37:57 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
获取了图片的url,在report组件excel单元格里,放置url,如果单元格的display-type不设置为image,打印报表能出来,但显示的是url的字符串,如果设置为image,打印报表直接出不来,控制台报错:
[ERROR] 2019-06-03 09:37:01,671 com.justep.report.controller.OutputController - 报表输出失败
报表转换文件失败
com.justep.report.exception.ReportServerException: 报表输出失败
        at com.justep.report.controller.OutputController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.controller.CacheController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.controller.ReportController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.controller.DataController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.controller.InitController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.Servlet.a(Unknown Source)
        at com.justep.report.Servlet.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: 报表转换文件失败
        ... 26 more
Caused by: java.lang.RuntimeException: 生成PDF文件失败,文件名:D:\bex53.8\apache-tomcat\temp\com.justep.report.convertor.StreamCache-8795685258876341364.temp
        at com.justep.report.convertor.PDFConvertor.generateByte(Unknown Source)
        ... 26 more
Caused by: java.lang.RuntimeException: FO生成PDF文件失败
        at com.justep.report.convertor.PDFConvertor.a(Unknown Source)
        ... 27 more
Caused by: org.w3c.dom.DOMException: The current document is unable to create an element of the requested type (namespace: http://www.w3.org/2000/svg, name: root).
        at org.apache.batik.dom.AbstractNode.createDOMException(Unknown Source)
        at org.apache.batik.dom.svg.SVGDOMImplementation.createElementNS(Unknown Source)
        at org.apache.batik.dom.svg.SVGOMDocument.createElementNS(Unknown Source)
        at org.apache.batik.dom.svg.SVGDOMImplementation.createDocument(Unknown Source)
        at org.apache.batik.dom.util.SAXDocumentFactory.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(Unknown Source)
        at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown Source)
        at org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Unknown Source)
        at org.apache.fop.image.loader.batik.PreloaderSVG$Loader.getImage(PreloaderSVG.java:122)
        at org.apache.fop.image.loader.batik.PreloaderSVG$Loader.access$100(PreloaderSVG.java:105)
        at org.apache.fop.image.loader.batik.PreloaderSVG.preloadImage(PreloaderSVG.java:73)
        at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:165)
        at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:96)
        at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:112)
        at org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:79)
        at org.apache.fop.fo.FObj.processNode(FObj.java:126)
        at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:286)
        at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:163)
        at net.sf.saxon.event.ContentHandlerProxy.startContent(ContentHandlerProxy.java:362)
        at net.sf.saxon.event.NamespaceReducer.startContent(NamespaceReducer.java:197)
        at net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:367)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:404)
        at net.sf.saxon.event.Sender.send(Sender.java:214)
        at net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:30)
        ... 28 more

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-6-3 10:14:08 | 显示全部楼层
具体的图片url是什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

38

主题

109

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
QQ
 楼主| 发表于 2019-6-3 11:01:15 | 显示全部楼层
/UI2/system/components/justep/blob/server/download.j?process=/V3ERP/SCM/process/PR/pRProcess&activity=businessActivity4&action=blobDownloadAction&blobDataModel=/system/data&blobConcept=SA_OPPerson&blobRelation=sPhoto&blobConceptValue=PSN01&$query-version=82957555B8DD45C49AACC2CA4A8AE3FB
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-6-3 13:31:31 | 显示全部楼层
这个问题是报表加载的数据有记录的blob字段是空的,可以在java中判断如果为空就放回一个空白的或者固定图片的url,参考
  1.         public static Table reportBolbImage() throws SQLException {

  2.                 Table t = KSQL.select("select AP_BLOBTP.* from AP_BLOBTP AP_BLOBTP where AP_BLOBTP.fName <> 'ddd'", null, "/appdemo/test/data", null);
  3.                 Iterator<Row> it = t.iterator();
  4.                 while (it.hasNext()) {
  5.                         Row r = it.next();
  6.                         if(r.getBlob("fBLOBTP")!=null){               
  7.                                 try {
  8.                                         String url = "/UI2/system/service/common/bizAction.j?" + "blobDataModel=/appdemo/test/data" // 数据模块目录
  9.                                                         + "&blobConcept=AP_BLOBTP" // 概念名
  10.                                                         + "&blobRelation=fBLOBTP" // 关系名
  11.                                                         + "&blobConceptValue=" + r.getValue("AP_BLOBTP") // 行ID
  12.                                                         + "&process=/appdemo/test/process/reportBlobIMage/reportBlobIMageProcess" // 流程名称
  13.                                                         + "&activity=mainActivity" // 环节名称
  14.                                                         + "&action=blobDownloadAction" // 调用的Action
  15.                                                         + "&$query-version=" + com.justep.system.util.CommonUtils.createGUID();
  16.                                         r.setString("fCode", addBsessionid(url)); // 将url存入table对象
  17.                                         System.out.println(url + "blob的url");
  18.                                 } catch (Exception e) {
  19.                                         // TODO Auto-generated catch block
  20.                                         e.printStackTrace();
  21.                                 }
  22.                         }else
  23.                                 r.setString("fCode", "/UI2/appdemo/test/process/reportBlobIMage/empty.png");
  24.                                
  25.                 }
  26.                 return t;
  27.         }
复制代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

38

主题

109

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
QQ
 楼主| 发表于 2019-6-3 14:53:47 | 显示全部楼层
的确是获取到的sphoto字段值是空的,但是为什么获取到的sphoto是空的,我数据库里面是有值得啊
psn01.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-6-3 15:10:36 | 显示全部楼层
ksql查询数据库获取到的是空值?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

38

主题

109

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
QQ
 楼主| 发表于 2019-6-3 15:19:09 | 显示全部楼层
是的,加上你给的参考案列里的if条件,前端给我返回的是else里面的url
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-6-3 15:31:59 | 显示全部楼层
确认ksql是否正确,不加判断的时候你运行时能显示出图片来?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

38

主题

109

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
QQ
 楼主| 发表于 2019-6-3 15:40:44 | 显示全部楼层
ksql是这样写的:select SA_OPPerson.* from SA_OPPerson SA_OPPerson where SA_OPPerson.sName ='"+name+"'",
不加判断也显示不出图片来
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-6-3 15:54:23 | 显示全部楼层
这个图片是怎么来的?组织管理中人员页面通过blobImage上传的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-28 03:49 , Processed in 0.066742 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表