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

QQ登录

只需一步,快速开始

查看: 8229|回复: 14

[结贴] reportdata数据修改

[复制链接]

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
发表于 2017-11-24 18:52:37 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
这是我的reportdata关联的方法,我要将数据中的/都去掉,然后在打印报表
String ksql = "select t.* from ITEMRESULT_VIEW t where  t.SAMPLY_PLANINFOID='" + fid + "' and t.MDS_CHKITEMID is null and t.SAMPLY_BARNO2 like 'Y%' order by t.INDEXNO";
                Table t = KSQL.select(ksql, null, "/watleinfo/samplyPlan/selectitem/data", null);
                Iterator<Row> row = t.iterator();

                while (row.hasNext()) {
                        Row r = row.next();
                        r.setInteger("INDEXNO", r.getInteger("INDEXNO"));
                        String s1 = r.getString("CHK_ITEMNAME");
                        if (s1 != null && s1 != "") {
                                s1.replaceAll("[SUB]", "");
                                s1.replaceAll("/", "");

                        }
                        r.setString("CHK_ITEMNAME", s1);
                        String n1 = r.getString("SAMPLY_BARNO1");
                        if (n1 != null && n1 != "") {

                                n1.replaceAll("[SUP]", "");
                                n1.replaceAll("/", "");
                                n1.replaceAll("10", "E");
                        }

}
return t;
}
可是我执行这个方法后也没有报错,数据也没有修改,导出来的数据还是有 /
请问这是怎么回事?
发表于 2017-11-25 12:23:57 | 显示全部楼层
replaceAll  应该会返回一个新的字符串!!你把这个新的字符串,重新赋值给当前行字段
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
 楼主| 发表于 2017-11-27 09:10:26 | 显示全部楼层
嗯。好的
回复

使用道具 举报

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
 楼主| 发表于 2017-11-27 18:57:25 | 显示全部楼层
String ksql = "select t.* from STATIC_SAMPLY_VIEW t   where t.SAMPLY_BAR_NO='" + fid+"'" ;
                                Table t= KSQL.select(ksql, null, "/watleinfo/samplyPlan/SelectSamlpyNo/data", null);
                                 Iterator<Row> row=t.iterator();
                                 while (row.hasNext()) {
                                        Row r=row.next();
                                        if (r.getString("WATERSAMPLYTYPE")=="01") {
                                                r.setValue("WATERSAMPLYTYPE", "出厂水");
                                        }
                                        if (r.getString("WATERSAMPLYTYPE")=="02") {
                                                r.setValue("WATERSAMPLYTYPE", "管网水");
                                        }
                                        if (r.getString("WATERSAMPLYTYPE")=="03") {
                                                r.setValue("WATERSAMPLYTYPE", "二次供水");
                                        }
                                }
                                return t;
我现在这样修改了,可是生成的报表没数据,为什么啊,这样写对吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-28 08:59:11 | 显示全部楼层
你这样的直接ksql中用case when实现就可以,不需要遍历table
ksql.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
 楼主| 发表于 2017-11-28 09:19:44 | 显示全部楼层
这个是varchar2类型的需要进行字符集转换吗,在比较时
回复 支持 反对

使用道具 举报

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
 楼主| 发表于 2017-11-28 09:25:01 | 显示全部楼层
这是我的sql语句
"select m.*,case when m.CHK_ITEMNAME='[SUB]总硬度(以CaCO/3/计)' then '总硬度' when m.CHK_ITEMNAME='[SUB]耗氧量(COD/Mn/法,以O/2/计)' then '耗氧量' " +
                                " when m.CHK_ITEMNAME='[SUB]臭氧(O/3/)'  then '臭氧' else m.CHK_ITEMNAME end as ITEMNAME from (select z.MDS_CHKITEM_INFO_ID,t.SAMPLY_BAR_NO,z.AVG_VALUE from WATERCHKRESULTMAIN t " +
                                "optional join WATERSOURCECHKITEM z on t=z.WATERCHKRESULTMAINID) y optional join MDS_CHKITEMLAB_INFO " +
                                "m on y.MDS_CHKITEM_INFO_ID=m where y.SAMPLY_BAR_NO='"+fid+"'";
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-11-28 09:42:36 | 显示全部楼层
sql执行报错?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
 楼主| 发表于 2017-11-28 09:42:59 | 显示全部楼层
这是报的错
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        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: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: select m.*,case when m.CHK_ITEMNAME='[SUB]总硬度(以CaCO/3/计)' then '总硬度' when m.CHK_ITEMNAME='[SUB]耗氧量(COD/Mn/法,以O/2/计)' then '耗氧量'  when m.CHK_ITEMNAME='[SUB]臭氧(O/3/)'  then '臭氧' else m.CHK_ITEMNAME end as ITEMNAME from (select z.MDS_CHKITEM_INFO_ID,t.SAMPLY_BAR_NO,z.AVG_VALUE from WATERCHKRESULTMAIN t optional join WATERSOURCECHKITEM z on t=z.WATERCHKRESULTMAINID) y optional join MDS_CHKITEMLAB_INFO m on y.MDS_CHKITEM_INFO_ID=m where y.SAMPLY_BAR_NO='Y125-20170816'
--> sql: SELECT  m.fID AS m, m.CHK_ITEMNAME AS CHK_ITEMNAME, m.CHK_LLEVUNIT AS CHK_LLEVUNIT, m.CHK_LLEVVALUE AS CHK_LLEVVALUE, m.CHK_CLEVUNIT AS CHK_CLEVUNIT, m.CHK_CLEVVALUE AS CHK_CLEVVALUE, m.CHK_VALIDBIT AS CHK_VALIDBIT, m.CHK_METHOD AS CHK_METHOD, m.REMARK AS REMARK, m.CREATED_BY AS CREATED_BY, m.CREATION_DATE AS CREATION_DATE, m.LAST_UPDATED_BY AS LAST_UPDATED_BY, m.LAST_UPDATE_DATE AS LAST_UPDATE_DATE, m.LAST_UPDATE_IP AS LAST_UPDATE_IP, m.VERSION AS VERSION, m.ISRESULT AS ISRESULT, m.INDEXNO AS INDEXNO, CASE WHEN m.CHK_ITEMNAME = ? THEN ? WHEN m.CHK_ITEMNAME = ? THEN ? WHEN m.CHK_ITEMNAME = ? THEN ? ELSE m.CHK_ITEMNAME END  AS ITEMNAME FROM (SELECT  z.MDS_CHKITEM_INFO_ID AS MDS_CHKITEM_INFO_ID, t.SAMPLY_BAR_NO AS SAMPLY_BAR_NO, z.AVG_VALUE AS AVG_VALUE FROM WATERCHKRESULTMAIN t LEFT JOIN WATERSOURCECHKITEM z ON t.fID = z.WATERCHKRESULTMAINID) y LEFT JOIN MDS_CHKITEMLAB_INFO m ON y.MDS_CHKITEM_INFO_ID = m.fID  WHERE y.SAMPLY_BAR_NO = ?
--> binds: [[SUB]总硬度(以CaCO/3/计), 总硬度, [SUB]耗氧量(COD/Mn/法,以O/2/计), 耗氧量, [SUB]臭氧(O/3/), 臭氧, Y125-20170816]
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.KSQL.select(Unknown Source)
        at SelectSamlpyNo.queryChkItem(SelectSamlpyNo.java:39)
        ... 27 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: SELECT  m.fID AS m, m.CHK_ITEMNAME AS CHK_ITEMNAME, m.CHK_LLEVUNIT AS CHK_LLEVUNIT, m.CHK_LLEVVALUE AS CHK_LLEVVALUE, m.CHK_CLEVUNIT AS CHK_CLEVUNIT, m.CHK_CLEVVALUE AS CHK_CLEVVALUE, m.CHK_VALIDBIT AS CHK_VALIDBIT, m.CHK_METHOD AS CHK_METHOD, m.REMARK AS REMARK, m.CREATED_BY AS CREATED_BY, m.CREATION_DATE AS CREATION_DATE, m.LAST_UPDATED_BY AS LAST_UPDATED_BY, m.LAST_UPDATE_DATE AS LAST_UPDATE_DATE, m.LAST_UPDATE_IP AS LAST_UPDATE_IP, m.VERSION AS VERSION, m.ISRESULT AS ISRESULT, m.INDEXNO AS INDEXNO, CASE WHEN m.CHK_ITEMNAME = ? THEN ? WHEN m.CHK_ITEMNAME = ? THEN ? WHEN m.CHK_ITEMNAME = ? THEN ? ELSE m.CHK_ITEMNAME END  AS ITEMNAME FROM (SELECT  z.MDS_CHKITEM_INFO_ID AS MDS_CHKITEM_INFO_ID, t.SAMPLY_BAR_NO AS SAMPLY_BAR_NO, z.AVG_VALUE AS AVG_VALUE FROM WATERCHKRESULTMAIN t LEFT JOIN WATERSOURCECHKITEM z ON t.fID = z.WATERCHKRESULTMAINID) y LEFT JOIN MDS_CHKITEMLAB_INFO m ON y.MDS_CHKITEM_INFO_ID = m.fID  WHERE y.SAMPLY_BAR_NO = ?, binds: [[SUB]总硬度(以CaCO/3/计), 总硬度, [SUB]耗氧量(COD/Mn/法,以O/2/计), 耗氧量, [SUB]臭氧(O/3/), 臭氧, Y125-20170816]出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.ksql.KSQLUtils.execSqlSelect(Unknown Source)
        ... 32 more
Caused by: java.sql.SQLException: ORA-12704: 字符集不匹配

        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:796)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1031)
        at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:836)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        ... 33 more
回复 支持 反对

使用道具 举报

32

主题

133

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
QQ
 楼主| 发表于 2017-11-28 09:44:28 | 显示全部楼层
[ERROR] 2017-11-28 09:43:20,444 com.justep.report.controller.DataController - 报表数据获取失败
执行KSQL出错, KSQL: select m.*,case when m.CHK_ITEMNAME='[SUB]总硬度(以CaCO/3/计)' then '总硬度' when m.CHK_ITEMNAME='[SUB]耗氧量(COD/Mn/法,以O/2/计)' then '耗氧量'  when m.CHK_ITEMNAME='[SUB]臭氧(O/3/)'  then '臭氧' else m.CHK_ITEMNAME end as ITEMNAME from (select z.MDS_CHKITEM_INFO_ID,t.SAMPLY_BAR_NO,z.AVG_VALUE from WATERCHKRESULTMAIN t optional join WATERSOURCECHKITEM z on t=z.WATERCHKRESULTMAINID) y optional join MDS_CHKITEMLAB_INFO m on y.MDS_CHKITEM_INFO_ID=m where y.SAMPLY_BAR_NO='Y125-20170816'
--> sql: SELECT  m.fID AS m, m.CHK_ITEMNAME AS CHK_ITEMNAME, m.CHK_LLEVUNIT AS CHK_LLEVUNIT, m.CHK_LLEVVALUE AS CHK_LLEVVALUE, m.CHK_CLEVUNIT AS CHK_CLEVUNIT, m.CHK_CLEVVALUE AS CHK_CLEVVALUE, m.CHK_VALIDBIT AS CHK_VALIDBIT, m.CHK_METHOD AS CHK_METHOD, m.REMARK AS REMARK, m.CREATED_BY AS CREATED_BY, m.CREATION_DATE AS CREATION_DATE, m.LAST_UPDATED_BY AS LAST_UPDATED_BY, m.LAST_UPDATE_DATE AS LAST_UPDATE_DATE, m.LAST_UPDATE_IP AS LAST_UPDATE_IP, m.VERSION AS VERSION, m.ISRESULT AS ISRESULT, m.INDEXNO AS INDEXNO, CASE WHEN m.CHK_ITEMNAME = ? THEN ? WHEN m.CHK_ITEMNAME = ? THEN ? WHEN m.CHK_ITEMNAME = ? THEN ? ELSE m.CHK_ITEMNAME END  AS ITEMNAME FROM (SELECT  z.MDS_CHKITEM_INFO_ID AS MDS_CHKITEM_INFO_ID, t.SAMPLY_BAR_NO AS SAMPLY_BAR_NO, z.AVG_VALUE AS AVG_VALUE FROM WATERCHKRESULTMAIN t LEFT JOIN WATERSOURCECHKITEM z ON t.fID = z.WATERCHKRESULTMAINID) y LEFT JOIN MDS_CHKITEMLAB_INFO m ON y.MDS_CHKITEM_INFO_ID = m.fID  WHERE y.SAMPLY_BAR_NO = ?
--> binds: [[SUB]总硬度(以CaCO/3/计), 总硬度, [SUB]耗氧量(COD/Mn/法,以O/2/计), 耗氧量, [SUB]臭氧(O/3/), 臭氧, Y125-20170816]
com.justep.report.exception.ReportServerException: 报表数据获取失败
        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)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 13:40 , Processed in 0.099558 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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