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

QQ登录

只需一步,快速开始

查看: 10060|回复: 13

[结贴] 我报表开发过程以及遇到的问题。求助

[复制链接]

14

主题

51

帖子

81

积分

初级会员

Rank: 2

积分
81
发表于 2012-11-30 11:18:39 | 显示全部楼层 |阅读模式
20金币
我在写纯SQL报表过程中遇到一些问题
现在写出来过程,希望得到指点

注:数据源等配置无误
1.BIZ上新建一个应用。名report
2.report上右键新建一个业务模块,名base_report
3.点开base_report,找到ontology在上面右键新建ontology文件,名:report_ontology
4.在report_ontology上点反向生成本体。选择数据源选择表 ->添加概念->添加关系。映射字段 全选,标准动作设置点添加,新增queryaction   保存
5.process上新建process文件,新建report_process。report_process的动作上和mainactivity上动作 添加queryaction的动作。


进入到UI层:
1.report.function.xml上添加菜单。添加功能菜单,选择上面新建的report_process
2.report子节点的base_report->process->report_process新建W文件。向导选择报表,网格报表。
数据源类型选择action,action选择query的那个action  业务字段。写入一个选择的表的 5个字段,用逗号分割: 为 ID,FBizDate,FYearMonth,FInvCode,FInvName
在转到显示列,把字段都添加进去,确定
3.启动tomcat,进去x5。添加角色功能,注销重新登陆。
4.找到刚添加的报表,点击打开

报错

UIServer错误URI:/x5/report/report/process/report1/mainActivity.w错误码:500错误信息:java.lang.RuntimeException: Excel生成报表定义失败,文件名:E:\X5 v5.2_SP2\v5.2_SP2\x5.2\model\UI\report\report\process\report1\reports/mainActivity_gridReport.xls
隐藏错误详细java.lang.RuntimeException: Excel生成报表定义失败,文件名:E:\X5 v5.2_SP2\v5.2_SP2\x5.2\model\UI\report\report\process\report1\reports/mainActivity_gridReport.xls        at com.justep.report.xls.XLSTransformer.transform(Unknown Source)        at com.justep.xbl.report.Report.generateReportDoc(Report.java:351)        at com.justep.xbl.report.Report.generateReportDefine(Report.java:320)        at com.justep.xbl.report.Report.execute(Report.java:70)        at com.justep.xbl.runtime.TemplateEngine.computeJavaTemplate(Unknown Source)        at com.justep.xbl.runtime.TemplateEngine.exeucte(Unknown Source)        at com.justep.xbl.runtime.XBLEngine.parserBinding(Unknown Source)        at com.justep.xbl.runtime.XBLEngine.parser(Unknown Source)        at com.justep.xbl.runtime.XBLEngine.parser(Unknown Source)        at com.justep.xbl.runtime.XBLEngine.parser(Unknown Source)        at com.justep.xbl.runtime.XBLEngine.parser(Unknown Source)        at com.justep.xbl.runtime.XBLEngine.excute(Unknown Source)        at com.justep.ui.util.UIUtils.xbl(Unknown Source)        at com.justep.ui.WindowCompiler.compile(Unknown Source)        at com.justep.ui.WindowServer.getWindow(Unknown Source)        at com.justep.ui.WindowServer.service(Unknown Source)        at com.justep.ui.servlet.MainServlet.service(Unknown Source)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)        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:102)        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)        at java.lang.Thread.run(Thread.java:595)Caused by: java.lang.RuntimeException: Excel生成报表定义失败        at com.justep.report.xls.XLSTransformer.transform(Unknown Source)        ... 30 moreCaused by: java.lang.NullPointerException        at com.justep.report.xls.XLSTransUtils.initDataSource(Unknown Source)        at com.justep.report.xls.XLSTransModel.a(Unknown Source)        at com.justep.report.xls.XLSTransModel.transform(Unknown Source)        ... 31 more

最佳答案

查看完整内容

刚远程看了下 主要是他的java代码路径写的有问题 报表设置都是好的

226

主题

1000

帖子

1931

积分

金牌会员

Rank: 6Rank: 6

积分
1931
QQ
发表于 2012-11-30 11:18:40 | 显示全部楼层
刚远程看了下
主要是他的java代码路径写的有问题  
报表设置都是好的
回复

使用道具 举报

14

主题

51

帖子

81

积分

初级会员

Rank: 2

积分
81
 楼主| 发表于 2012-11-30 11:22:49 | 显示全部楼层
今天提示 报表执行错误:报表数据获取失败
回复

使用道具 举报

226

主题

1000

帖子

1931

积分

金牌会员

Rank: 6Rank: 6

积分
1931
QQ
发表于 2012-11-30 11:22:50 | 显示全部楼层
2.report子节点的base_report->process->report_process新建W文件。向导选择报表,网格报表。
数据源类型选择action,action选择query的那个action  业务字段。写入一个选择的表的 5个字段,用逗号分割: 为 ID,FBizDate,FYearMonth,FInvCode,FInvName
在转到显示列,把字段都添加进去,确定
这一块的字段应该全部大写
回复

使用道具 举报

226

主题

1000

帖子

1931

积分

金牌会员

Rank: 6Rank: 6

积分
1931
QQ
发表于 2012-11-30 11:23:51 | 显示全部楼层
网格报表制作可以参考这个帖子
http://bbs.justep.com/forum.php? ... &extra=page%3D5
回复

使用道具 举报

14

主题

51

帖子

81

积分

初级会员

Rank: 2

积分
81
 楼主| 发表于 2012-11-30 11:46:23 | 显示全部楼层
xwnabc 发表于 2012-11-30 11:22
2.report子节点的base_report->process->report_process新建W文件。向导选择报表,网格报表。
数据源类型选 ...

谢谢,我试试
回复

使用道具 举报

226

主题

1000

帖子

1931

积分

金牌会员

Rank: 6Rank: 6

积分
1931
QQ
发表于 2012-11-30 11:50:53 | 显示全部楼层
还有报表一般不使用标准的queryaction作为数据来源的,因为queryaction的执行时机在X5底层确定了,比如在刷新的时候。。而且业务也没必要这么干。最好自己自定义action给reportData组件。
回复

使用道具 举报

14

主题

51

帖子

81

积分

初级会员

Rank: 2

积分
81
 楼主| 发表于 2012-11-30 13:30:09 | 显示全部楼层
xwnabc 发表于 2012-11-30 11:50
还有报表一般不使用标准的queryaction作为数据来源的,因为queryaction的执行时机在X5底层确定了,比如在刷 ...

嗯。我先把基础的弄出来就准备自动自定义action
回复

使用道具 举报

185

主题

861

帖子

1022

积分

金牌会员

Rank: 6Rank: 6

积分
1022
发表于 2012-11-30 14:00:29 | 显示全部楼层
其实,在定义报表组件的时候,是可以直接写sql语句的
<data xmlns="" id="dReport" component="/UI/system/components/reportData.xbl.xml#data">  
     <source>
      <SQL id="default1">
        <DEFAULT id="default2"/>  
        <ORACLE id="default3">select fid,fname from demo</ORACLE >  
        <MSSQL id="default4"/>
      </SQL>
     </source>
    </data>
并且用这种方式的话,在切换到报表设计页面的时候,可以显示所查询出来的列,可以直接点击后使用的。
然后,也可以通过js再次改变sql语句:
var sql="select fid,fname,fcode from demo";
justep.xbl('dReport').setSQL(sql, "ORACLE");//报表data
只是需要注意,用这种方法的时候,记得去引用系统的全局action。

建议,用这种方式调试正确以后,再换成action方法。这个方式是以前版本的模式,目前只是处于兼容保留。
回复

使用道具 举报

14

主题

51

帖子

81

积分

初级会员

Rank: 2

积分
81
 楼主| 发表于 2012-11-30 14:51:30 | 显示全部楼层
z2140640 发表于 2012-11-30 14:00
其实,在定义报表组件的时候,是可以直接写sql语句的
  
     

兄弟方便帮我远程看下吗??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 21:10 , Processed in 0.105169 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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