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

QQ登录

只需一步,快速开始

查看: 8125|回复: 12

[结贴] 报表用in传参的问题

[复制链接]

12

主题

42

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
发表于 2017-2-13 18:46:58 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
我在报表要为in传参数,如图
  1. select AQ_NMGGL.*,SA_OPOrg.sName as sName
  2.     from AQ_NMGGL AQ_NMGGL
  3.      optional  join SA_OPOrg SA_OPOrg on AQ_NMGGL.fDWID = SA_OPOrg
  4.     where AQ_NMGGL in (:p)
复制代码

查询其它帖子,要写JAVA,但都没有示例。
in中如果要传多个值就需要分多个参数,不能用一个参数,因为传过来的是字符串,就把多个值当作一个字符串处理了
或者自己在java中获取到传过来的参数的值,自己用,截取字符串判断一下,然后再给in的查询赋值

能给我一份完整的示例吗,论坛找不到。谢谢!

17

主题

104

帖子

277

积分

中级会员

Rank: 3Rank: 3

积分
277
QQ
发表于 2017-2-13 22:00:50 | 显示全部楼层
刚好正在想这个问题,帮顶。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-14 09:28:26 | 显示全部楼层
java中获取到字符串,截取字符串就是java标准的,可以到网上查找
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

12

主题

42

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2017-2-14 11:57:36 | 显示全部楼层
是不是直接在生成的动作代码中操作
  1. public class KSQLProcedure {

  2.         public static Table query(String ksql, Map<String, Object> variables, String dataModel, String fnModel) {
  3.                 Utils.check(Utils.isNotEmptyString(ksql) && Utils.isNotEmptyString(dataModel),
  4.                                 CommonMessages.class, CommonMessages.PARAM_NULL1, "ksql, dataModel");
  5.                 return KSQL.select(ksql, variables, dataModel, Utils.isEmptyString(fnModel) ? null : ModelUtils.getModel(fnModel));

  6.         }
  7. }
复制代码


直接使用并修改String ksql参数,就可以了?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-14 14:13:27 | 显示全部楼层
这样的最好是自己子定义一个action,然后action中直接定义参数,java中对方法的参数进行处理

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

12

主题

42

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2017-2-22 19:34:13 | 显示全部楼层
我自己做了一个action ,还是不行,请各位大侠指点。

  1.         public static Table reportAQ_NMG(String dx,String ksql,Map variables,String dataModel,String fnModel){
  2.                
  3. ///*               
  4.                 String a[] = dx.split(",");
  5.                 int i;
  6.                 String xx="'";

  7.                for( i = 0; i < a.length-1; i++) {  
  8.                       
  9.                    xx = xx +a[i]+"','";
  10.                    

  11.                 }  
  12.                xx = xx + a[i] + "'";
  13. //*/       
  14.                 //String xx = "'"+"0E3E7CFBB43E4F209885C23870D631A7" +"','" + "130F2022840A4DA4BB969D0FC37A5119"+"'";
  15.                 ksql = ksql + " in (" + xx + ")";


  16.                 Utils.check(Utils.isNotEmptyString(ksql) && Utils.isNotEmptyString(dataModel),CommonMessages.class, CommonMessages.PARAM_NULL1, "ksql, dataModel");
  17.                 return KSQL.select(ksql, variables, dataModel, Utils.isEmptyString(fnModel) ? null : ModelUtils.getModel(fnModel));

  18.         }
复制代码

用中间注释的语句生成的ksql就可以执行成功,但是用前面循环语句生成的ksql就不能执行,请大侠指点。下面是不同语句生成ksql,一模一样啊,就是不行,郁闷死了。
  1. select AQ_NMGGL.*,SA_OPOrg.sName as sName from AQ_NMGGL AQ_NMGGL  optional  join SA_OPOrg SA_OPOrg on AQ_NMGGL.fDWID = SA_OPOrg where AQ_NMGGL in ('0E3E7CFBB43E4F209885C23870D631A7','130F2022840A4DA4BB969D0FC37A5119')

  2. select AQ_NMGGL.*,SA_OPOrg.sName as sName from AQ_NMGGL AQ_NMGGL  optional  join SA_OPOrg SA_OPOrg on AQ_NMGGL.fDWID = SA_OPOrg where AQ_NMGGL in ('0E3E7CFBB43E4F209885C23870D631A7','130F2022840A4DA4BB969D0FC37A5119')
复制代码
请指点.......


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-23 10:33:27 | 显示全部楼层
参考
  1.         public static void paramToin(String param){
  2.                 String ksql = "select xb.* from AP_XSXB xb";
  3.                 if(param.indexOf(",")>0){                       
  4.                         String[] strArray = null;   
  5.                         strArray = param.split(",");
  6.                         String newalias =" in('";
  7.                         for(int i=0 ;i<strArray.length;i++){
  8.                                 if(i != strArray.length-1){
  9.                                         newalias += strArray[i]+"','";
  10.                                 }
  11.                                 else
  12.                                         newalias += strArray[i]+"'";
  13.                         }   
  14.                         System.out.println(newalias);
  15.                         ksql += " where xb.fName"+newalias+")";
  16.                 }
  17.                 else
  18.                         ksql +=" where xb.fName= '"+param+"'";
  19.                 System.out.println(ksql);
  20.                
  21.                 Table table = KSQL.select(ksql, null, "/appdemo/test/data", null);
  22.         }
复制代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

12

主题

42

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2017-2-23 13:43:38 | 显示全部楼层
我已按上面的参考修改了action,但还是报错,请帮忙看看,错那里了。
        public static void reportAQ_NMGXX(String dx) {
                String ksql = "select AQ_NMGGL.*,SA_OPOrg.sName as sName from AQ_NMGGL AQ_NMGGL  optional  join SA_OPOrg SA_OPOrg on AQ_NMGGL.fDWID = SA_OPOrg ";
                if (dx.indexOf(",") > 0) {
                        String[] strArray = null;
                        strArray = dx.split(",");
                        String newalias = " in ('";
                        for (int i = 0; i < strArray.length; i++) {
                                if (i != strArray.length - 1) {
                                        newalias += strArray[i] + "','";
                                } else
                                        newalias += strArray[i] + "'";
                        }
                        System.out.println(newalias);
                        ksql += " where AQ_NMGGL" + newalias + ")";
                } else{
                        ksql += " where AQ_NMGGL = '" + dx + "'";
                }
                System.out.println(ksql);

                Table table = KSQL.select(ksql, null, "/aqgl/nmggl/data", null);
               
        }



回复 支持 反对

使用道具 举报

12

主题

42

帖子

170

积分

初级会员

Rank: 2

积分
170
QQ
 楼主| 发表于 2017-2-23 13:44:06 | 显示全部楼层
错误信息如下:
2017-02-23 13:42:15 开始-中间文件生成缓存文件: /UI2/aqgl/nmggl/process/nmgxx/sgrybb.w
2017-02-23 13:42:16 结束-中间文件生成缓存文件: /UI2/aqgl/nmggl/process/nmgxx/sgrybb.w
in ('57C10407ECA8449D8DB8388508385F09','0E3E7CFBB43E4F209885C23870D631A7'
select AQ_NMGGL.*,SA_OPOrg.sName as sName from AQ_NMGGL AQ_NMGGL optional join SA_OPOrg SA_OPOrg on AQ_NMGGL.fDWID = SA_OPOrg where AQ_NMGGL in ('57C10407ECA8449D8DB8388508385F09','0E3E7CFBB43E4F209885C23870D631A7')
2017-02-23 13:42:16 action:<?xml version="1.0" encoding="UTF-8"?>
<action process="/aqgl/nmggl/process/nmgxx/nmgxxProcess" activity="mainActivity" action-flag="__action_0__" executor="" execute-context="" name="reportAQ_NMGXXAction"><parameters xmlns:xbiz="http://www.justep.com/xbiz#"></parameters></action>
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: java.lang.NullPointerException
at Nmggl.reportAQ_NMGXX(Nmggl.java:37)
... 27 more
[ERROR] 2017-02-23 13:42:16,344 com.justep.report.controller.DataController - 报表数据获取失败
null
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)
Caused by: com.justep.report.exception.ReportServerException: null
at com.justep.report.controller.DataController.a(Unknown Source)
at com.justep.report.controller.DataController.a(Unknown Source)
... 20 more
Caused by: java.lang.Exception
... 22 more
2017-02-23 13:42:16 action:<?xml version="1.0" encoding="UTF-8"?>
<action process="/aqgl/nmggl/process/nmgxx/nmgxxProcess" activity="mainActivity" action-flag="__action_0__" executor="" execute-context="" name="reportAQ_NMGXXAction"><parameters xmlns:xbiz="http://www.justep.com/xbiz#"></parameters></action>
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: java.lang.NullPointerException
at Nmggl.reportAQ_NMGXX(Nmggl.java:37)
... 27 more
[ERROR] 2017-02-23 13:42:16,392 com.justep.report.controller.DataController - 报表数据获取失败
null
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)
Caused by: com.justep.report.exception.ReportServerException: null
at com.justep.report.controller.DataController.a(Unknown Source)
at com.justep.report.controller.DataController.a(Unknown Source)
... 20 more
Caused by: java.lang.Exception
... 22 more

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-23 14:27:33 | 显示全部楼层
Nmggl.reportAQ_NMGXX(Nmggl.java:37)
java断点调试跟踪一下
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 03:57 , Processed in 0.077979 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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