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

QQ登录

只需一步,快速开始

楼主: chean

[结贴] action调用存储过程返回集显示为报表

  [复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2014-2-24 15:33:07 | 显示全部楼层
调用存储过程的时候有几个参数就写几个参数

java.sql.SQLException: ORA-06550这个错误是数据库报的错误,存储过程的参数个数不对
19楼发的里面就有输入和输出两种函数,也可以到网上查找java中调用存储过程,给输入输出参数赋值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

57

主题

375

帖子

1515

积分

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
 楼主| 发表于 2014-2-25 09:15:01 | 显示全部楼层
jishuang 发表于 2014-2-24 15:33
调用存储过程的时候有几个参数就写几个参数

java.sql.SQLException: ORA-06550这个错误是数据库报的错误, ...

现在控制台已经可以显示出存储过程的结果了,应该是调用什么都没有问题了。但是报表界面上还是不显示 。请指教
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2014-2-25 10:15:25 | 显示全部楼层
用的是oracle吗?字段都写的大写吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

57

主题

375

帖子

1515

积分

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
 楼主| 发表于 2014-2-25 10:44:32 | 显示全部楼层
本帖最后由 chean 于 2014-2-25 10:49 编辑
jishuang 发表于 2014-2-25 10:15
用的是oracle吗?字段都写的大写吗?

是oracle,存储过程中的SQL语句 :  v_sql :='   select USERID,USERNAME,PASSWORD from ts_user ';
.w文件处代码为::
        var options = {};
         var param = new justep.Request.ActionParam();
         var vchar = 'fdsa';
          param.setString('v1',vchar);
         options.parameters = param;
         options.action = "returntable";
          var result = justep.Request.sendBizRequest2(options);
                 justep.xbl('gridReport').refresh();
360桌面截图20140225104312.gif
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2014-2-25 11:08:08 | 显示全部楼层
参考http://bbs.justep.com/forum.php? ... 0&pid=165048284
看看table中有没有数据
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

57

主题

375

帖子

1515

积分

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
 楼主| 发表于 2014-2-25 11:19:37 | 显示全部楼层
jishuang 发表于 2014-2-25 11:08
参考http://bbs.justep.com/forum.php?mod=redirect&goto=findpost&ptid=56460&pid=165048284
看看table中 ...

我现在是这样写的 System.out.println("<tr><td>" + rs.getString(1) + "</td><td>"+rs.getString(2)+"</td></tr>");

结果为:<tr><td>yl</td><td>杨柳</td></tr><tr><td>lf</td><td>刘峰</td></tr>
<tr><td>000</td><td>admin</td></tr>后面还有。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2014-2-25 13:41:28 | 显示全部楼层
用25楼的方式,把excel文件和table的输出结果发一下看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

57

主题

375

帖子

1515

积分

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
 楼主| 发表于 2014-2-25 14:05:45 | 显示全部楼层
java端action代码如下 :你说让我参照的代码要加到哪里呢??我试了试,没有东西输出,
public static void returntable(String v1,Table t1){
                java.sql.Connection conn;
                try{
                        conn = com.justep.model.ModelUtils.getConnection("/report/reptest/data");
                        java.sql.CallableStatement proc = conn.prepareCall("{call test2 (?,?)}");
                         
                        proc.setString(1, v1);                                       
                        proc.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
                     proc.execute();
                        ResultSet rs = (ResultSet)proc.getObject(2);
                 while(rs.next())
                      {
                     System.out.println("<tr><td>" + rs.getString(1) + "</td><td>"+rs.getString(2)+"</td></tr>");
                      }
                }
                catch (NamingException e) {
                 e.printStackTrace();
            return;
    } catch (SQLException e) {
                       e.printStackTrace();           
            return;}
        }
}

staticActivity1_gridReport.rar

1.24 KB, 下载次数: 102

excel文件

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2014-2-25 14:53:53 | 显示全部楼层
参考

public static Table returntable(String v1){
        java.sql.Connection conn;
        try{
                conn = com.justep.model.ModelUtils.getConnection("/report/reptest/data");
                java.sql.CallableStatement proc = conn.prepareCall("{call test2 (?)}");
                proc.setString(1, v1);                 
                proc.execute();
                  ResultSet rt = proc.executeQuery();
                  Table table = com.justep.system.util.BizUtils.resultSet2Table( rt,"/report/reptest/data");
                  System.out.println(new com.justep.system.transform.Table2Row().transform(table,null).asXML());
                return  table;
        }
        catch (NamingException e) {
    // TODO Auto-generated catch block                                
    e.printStackTrace();
    return null;
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return null;}
}


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



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

使用道具 举报

57

主题

375

帖子

1515

积分

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
 楼主| 发表于 2014-2-25 16:43:37 | 显示全部楼层
jishuang 发表于 2014-2-25 14:53
参考

public static Table returntable(String v1){

你这段的代码已然是有问题的了,,我这个存储过程有一个输入和一个输出参数 。我28楼的代码 已经可以输入结果了。    System.out.println("<tr><td>" + rs.getString(1) + "</td><td>"+rs.getString(2)+"</td></tr>");参照26楼。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 09:44 , Processed in 0.061572 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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