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

QQ登录

只需一步,快速开始

楼主: ltt

[结贴] 报表获取参数

  [复制链接]

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-28 16:25:25 | 显示全部楼层
忘了忘了 发表于 2014-10-28 14:38
http://bbs.justep.com/forum.php?mod=viewthread&tid=49855&highlight=交互 看一下这个帖子,可以在window ...

我这样写的  请问 哪不对啊
主页面:
mainActivity.trigger8Click = function(event){
    var listData = justep.xbl("listData");
    var CBFBM = listData.getValue("CBFBM");
    alert(CBFBM);
        justep.xbl("windowDialog2").open(CBFBM);
};
报表页面:
cbfxx.windowReceiver1Receive = function(event){
        var CBFBM = event.data;
        alert(CBFBM);
        var actionParam = new justep.Request.ActionParam();
                actionParam.setString("param", CBFBM);
                justep.Request.sendBizRequest2({
                        dataType : "application/json",
                        action : "querycbfAction",
                        parameters : actionParam,
                         callback: function(result) {
        if (result.state) {
            alert("调用成功!");
        } else {
            throw new Error("调用失败!|" + result.response.message);
        }
        }
                       
        });
};
action方法:
public static Table querycbf(String param){

                String mssql = "SELECT CBFBM,CBFMC,CBFZJHM FROM CBF WHERE CBFBM = '"+param+"'";
               
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
                return SQL.select(sqlMap,null,"/LandManagerSys/LandInfoMgr/data");
        }
报错:
<action direct-execute="false" process="/LandManagerSys/LandInfoMgr/process/CBF/cBFProcess" activity="mainActivity" action-flag="__action_0__" executor="PSN01" execute-context="" name="querycbfAction"><parameters xmlns:xbiz="http://www.justep.com/xbiz#"><parameter name="param"><xbiz:simple type="http://www.w3.org/2001/XMLSchema#String"><![CDATA[210781101200010001]]></xbiz:simple></parameter></parameters></action>
com.justep.exception.BusinessException: 编码: JUSTEP150084; 提示: "/LandManagerSys/LandInfoMgr/process/CBF/querycbfAction"没有定义参数"param"
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.util.Utils.check(Unknown Source)
        at com.justep.system.transform.RequestTransform.transActionParams(Unknown Source)
        at com.justep.system.transform.RequestTransform.transform(Unknown Source)
        at com.justep.system.action.Engine.translateParameters(Unknown Source)
        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.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at com.justep.x.bs.BusinessServerServlet.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)
回复 支持 反对

使用道具 举报

89

主题

1377

帖子

1837

积分

金牌会员

Rank: 6Rank: 6

积分
1837
QQ
发表于 2014-10-28 16:27:42 | 显示全部楼层
ltt 发表于 2014-10-28 16:25
我这样写的  请问 哪不对啊
主页面:
mainActivity.trigger8Click = function(event){

你对应的action.m文件里面的querycbfAction方法没有定义参数吧?

评分

参与人数 1 +4 收起 理由
jishuang + 4 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-10-28 16:33:50 | 显示全部楼层
ltt 发表于 2014-10-28 16:25
我这样写的  请问 哪不对啊
主页面:
mainActivity.trigger8Click = function(event){

首先,你穿过来参数的时候是需要键值对的形式,比如 open(a:CBFBM);
在windowReceive事件中获取的时候用 event.data.a 获取值
其次,你的action中是否有param这个参数呢?
回复 支持 反对

使用道具 举报

发表于 2014-10-28 16:39:28 | 显示全部楼层
本帖最后由 暗夜的忧伤 于 2014-10-28 16:41 编辑
ltt 发表于 2014-10-28 16:24
我这么做的  请帮我看看 哪里不对啊
主页面:
mainActivity.trigger8Click = function(event){

action中定义param这个参数了吗 QQ截图20141028164031.png

这里要有参数的定义
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-28 16:47:41 | 显示全部楼层
暗夜的忧伤 发表于 2014-10-28 16:39
action中定义param这个参数了吗

这里要有参数的定义

我加上了  但是不知道为什么会执行两次  第一次穿进去的是null,第二次才是参数值:
我的报表页面:
cbfxx.windowReceiver1Receive = function(event){
        var CBFBM = event.data;
        alert(CBFBM);
        var actionParam = new justep.Request.ActionParam();
                actionParam.setString("param", CBFBM);
                justep.Request.sendBizRequest2({
                        dataType : "application/json",
                        action : "querycbfAction",
                        parameters : actionParam,
                         callback: function(result) {
        if (result.state) {
            alert("调用成功!");
        } else {
            throw new Error("调用失败!|" + result.response.message);
        }
        }
                       
        });
        justep.Request.sendBizRequest2({
                        dataType : "application/json",
                        action : "queryjtcyAction",
                        parameters : actionParam,
                         callback: function(result) {
        if (result.state) {
            alert("调用成功!");
        } else {
            throw new Error("调用失败!|" + result.response.message);
        }
        }
                       
        });
};
action:
        public static void queryjtcy(String param){
                System.out.println("参数1是"+param);
                //String mssql = "SELECT CYXM, YH.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZD.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN ";
                String mssql1 = "SELECT CBFBM, CYXM, YHZGX.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZ.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN XB XB ON CBF_JTCY.CYXB = XB.DM LEFT JOIN YHZGX YHZGX ON CBF_JTCY.YHZGX = YHZGX.DM LEFT JOIN ZJLX ZJLX ON CBF_JTCY.CYZJLX = ZJLX.DM LEFT JOIN CYBZ CYBZ ON CBF_JTCY.CYBZ = CYBZ.DM where CBFBM like '" + param + "%'";
                System.out.println(mssql1);
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql1);
                SQL.select(sqlMap,null,"/LandManagerSys/LandInfoMgr/data");
        }

        public static void querycbf(String param){
                System.out.println("参数2是"+param);
                String mssql = "SELECT CBFBM,CBFMC,CBFZJHM FROM CBF where CBFBM like '" + param + "%'";
                System.out.println(mssql);
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
            SQL.select(sqlMap,null,"/LandManagerSys/LandInfoMgr/data");
        }
后台显示:
参数1是null
SELECT CBFBM, CYXM, YHZGX.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZ.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN XB XB ON CBF_JTCY.CYXB = XB.DM LEFT JOIN YHZGX YHZGX ON CBF_JTCY.YHZGX = YHZGX.DM LEFT JOIN ZJLX ZJLX ON CBF_JTCY.CYZJLX = ZJLX.DM LEFT JOIN CYBZ CYBZ ON CBF_JTCY.CYBZ = CYBZ.DM where CBFBM like 'null%'
参数2是null
SELECT CBFBM,CBFMC,CBFZJHM FROM CBF where CBFBM like 'null%'
参数2是210781101200010001
SELECT CBFBM,CBFMC,CBFZJHM FROM CBF where CBFBM like '210781101200010001%'
参数1是210781101200010001
SELECT CBFBM, CYXM, YHZGX.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZ.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN XB XB ON CBF_JTCY.CYXB = XB.DM LEFT JOIN YHZGX YHZGX ON CBF_JTCY.YHZGX = YHZGX.DM LEFT JOIN ZJLX ZJLX ON CBF_JTCY.CYZJLX = ZJLX.DM LEFT JOIN CYBZ CYBZ ON CBF_JTCY.CYBZ = CYBZ.DM where CBFBM like '210781101200010001%'
回复 支持 反对

使用道具 举报

发表于 2014-10-28 16:48:33 | 显示全部楼层
ltt 发表于 2014-10-28 16:47
我加上了  但是不知道为什么会执行两次  第一次穿进去的是null,第二次才是参数值:
我的报表页面:
cbfx ...

把报表组件的自动刷新修改为false

评分

参与人数 1 +4 收起 理由
jishuang + 4 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-28 16:48:40 | 显示全部楼层
cyteamo 发表于 2014-10-28 16:27
你对应的action.m文件里面的querycbfAction方法没有定义参数吧?

我加上了  但是不知道为什么会执行两次  第一次穿进去的是null,第二次才是参数值:
我的报表页面:
cbfxx.windowReceiver1Receive = function(event){
        var CBFBM = event.data;
        alert(CBFBM);
        var actionParam = new justep.Request.ActionParam();
                actionParam.setString("param", CBFBM);
                justep.Request.sendBizRequest2({
                        dataType : "application/json",
                        action : "querycbfAction",
                        parameters : actionParam,
                         callback: function(result) {
        if (result.state) {
            alert("调用成功!");
        } else {
            throw new Error("调用失败!|" + result.response.message);
        }
        }
                        
        });
        justep.Request.sendBizRequest2({
                        dataType : "application/json",
                        action : "queryjtcyAction",
                        parameters : actionParam,
                         callback: function(result) {
        if (result.state) {
            alert("调用成功!");
        } else {
            throw new Error("调用失败!|" + result.response.message);
        }
        }
                        
        });
};
action:
        public static void queryjtcy(String param){
                System.out.println("参数1是"+param);
                //String mssql = "SELECT CYXM, YH.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZD.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN ";
                String mssql1 = "SELECT CBFBM, CYXM, YHZGX.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZ.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN XB XB ON CBF_JTCY.CYXB = XB.DM LEFT JOIN YHZGX YHZGX ON CBF_JTCY.YHZGX = YHZGX.DM LEFT JOIN ZJLX ZJLX ON CBF_JTCY.CYZJLX = ZJLX.DM LEFT JOIN CYBZ CYBZ ON CBF_JTCY.CYBZ = CYBZ.DM where CBFBM like '" + param + "%'";
                System.out.println(mssql1);
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql1);
                SQL.select(sqlMap,null,"/LandManagerSys/LandInfoMgr/data");
        }

        public static void querycbf(String param){
                System.out.println("参数2是"+param);
                String mssql = "SELECT CBFBM,CBFMC,CBFZJHM FROM CBF where CBFBM like '" + param + "%'";
                System.out.println(mssql);
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
            SQL.select(sqlMap,null,"/LandManagerSys/LandInfoMgr/data");
        }
后台显示:
参数1是null
SELECT CBFBM, CYXM, YHZGX.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZ.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN XB XB ON CBF_JTCY.CYXB = XB.DM LEFT JOIN YHZGX YHZGX ON CBF_JTCY.YHZGX = YHZGX.DM LEFT JOIN ZJLX ZJLX ON CBF_JTCY.CYZJLX = ZJLX.DM LEFT JOIN CYBZ CYBZ ON CBF_JTCY.CYBZ = CYBZ.DM where CBFBM like 'null%'
参数2是null
SELECT CBFBM,CBFMC,CBFZJHM FROM CBF where CBFBM like 'null%'
参数2是210781101200010001
SELECT CBFBM,CBFMC,CBFZJHM FROM CBF where CBFBM like '210781101200010001%'
参数1是210781101200010001
SELECT CBFBM, CYXM, YHZGX.MC AS YHZGX, XB.MC AS CYXB, ZJLX.MC AS CYZJLX, CYZJHM, CYBZ.MC AS CYBZ FROM CBF_JTCY CBF_JTCY LEFT JOIN XB XB ON CBF_JTCY.CYXB = XB.DM LEFT JOIN YHZGX YHZGX ON CBF_JTCY.YHZGX = YHZGX.DM LEFT JOIN ZJLX ZJLX ON CBF_JTCY.CYZJLX = ZJLX.DM LEFT JOIN CYBZ CYBZ ON CBF_JTCY.CYBZ = CYBZ.DM where CBFBM like '210781101200010001%'
回复 支持 反对

使用道具 举报

89

主题

1377

帖子

1837

积分

金牌会员

Rank: 6Rank: 6

积分
1837
QQ
发表于 2014-10-28 16:52:30 | 显示全部楼层
本帖最后由 cyteamo 于 2014-10-28 17:03 编辑
ltt 发表于 2014-10-28 16:47
我加上了  但是不知道为什么会执行两次  第一次穿进去的是null,第二次才是参数值:
我的报表页面:
cbfx ...

queryjtcyAction这个方法里面的参数本来就空 你两个方法的参数名最好别一样吧一个actionParam1一个actionParam2,queryjtcyAction这个方法你都没有传参,没有set
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2014-10-28 17:26:25 | 显示全部楼层
ltt 发表于 2014-10-28 16:48
我加上了  但是不知道为什么会执行两次  第一次穿进去的是null,第二次才是参数值:
我的报表页面:
cbfx ...

参考14楼把report的auto-load设置为false
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-29 08:45:53 | 显示全部楼层
jishuang 发表于 2014-10-28 17:26
参考14楼把report的auto-load设置为false

改完了  而且 我在报表页面js中也加了刷新语句,后台也收到了传到action里的参数,但是为什么报表页面没有数据显示了呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 06:49 , Processed in 0.105430 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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