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

QQ登录

只需一步,快速开始

查看: 3896|回复: 8

[结贴] js调用自定义Action,返回的数据无法显示

[复制链接]

2

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
发表于 2019-4-10 11:22:20 | 显示全部楼层 |阅读模式
本帖最后由 linwenyao1979 于 2019-4-10 14:29 编辑

js调用Action
Model.prototype.button2Click = function(event){
                var fMBLNR ="4900387064";
                var data=this.comp("Data1");  
                var param = new biz.Request.ActionParam();
                param.setString("fMBLNR",fMBLNR);//把需要过滤的值赋值给action的参数,便于后端过滤
                biz.Request.sendBizRequest({
                        context : this.getContext(),
                        action : "WLPZMXQueryAction",
                        dataType:"json",
                        parameters : param,
                        callback : function(callbackData) {
                                callbackData.ignoreError = false;
                                if (callbackData.state) {
                                        alert("1");
                                        data.loadData(callbackData.response);
                                        //data.loadData(jQuery.parseJSON(callbackData.response));
                                        //data.loadData(jQuery.parseJSON(callbackData.response),false);
                                        alert("2");
                                        data.first();   
                                }
                        }
                });
        };

自定义的Action及调试数据public static Table WLPZMXQuery(String fMBLNR){
                String mssql = "select b.fMATNR,b.fMAKTX";
                mssql =mssql +" from RN_WLPZMXB b  ";
                mssql += " WHERE 1=1 ";
                if(!( fMBLNR==null || fMBLNR.equals(""))){
                        mssql += "and b.fMBLNR = '"+fMBLNR+"' ";
                }
                Table table1=(Table)KSQL.select(mssql,null,"/rnwind/BaseData/data",null);
                return table1;

Action及调试

Action及调试

对Data1进行了编辑列,只有两列,fMATNR,fMAKTX如果alert(callbackData.response),结果是object
问题:可以出现alert("1"),无法出现alert("2"),所以无法进行下一步处理。请问问题出现在哪里?



91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-4-10 14:52:13 | 显示全部楼层
java代码中就已经报错了还能执行到成功回调吗?
row变量在什么地方定义的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

2

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
 楼主| 发表于 2019-4-10 17:14:32 | 显示全部楼层
Action
public static Table WLPZMXQueryAction2222(String fMBLNR){
                String mssql = "select b.fMATNR,b.fMAKTX";
                mssql =mssql +" from RN_WLPZMXB b  ";
                mssql += " WHERE 1=1 ";
                if(!( fMBLNR==null || fMBLNR.equals(""))){
                        mssql += "and b.fMBLNR = '"+fMBLNR+"' ";
                }
                Table table1=(Table)KSQL.select(mssql,null,"/rnwind/BaseData/data",null);
                return table1;
        }

JS
var fMBLNR ="4900387064";
                var data=this.comp("Data1");  
                var param = new biz.Request.ActionParam();  
                param.setString("fMBLNR",fMBLNR);//把需要过滤的值赋值给action的参数,便于后端过滤
                biz.Request.sendBizRequest({
                        context : this.getContext(),
                        action : "WLPZMXQueryAction2222",
                        dataType:"json",
                        parameters : param,
                        callback : function(callbackData) {
                                callbackData.ignoreError = false;
                                if (callbackData.state) {
                                        alert("1");
                                        data.loadData(jQuery.parseJSON(callbackData.response));// 返回的数据
                                        alert("2");
                                }
                        }
                });

重建了动作和JS,还是只能alert("1")
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-4-10 17:35:36 | 显示全部楼层
F12打开浏览器的开发人员调试工具看console中有错误吗?

返回的table类型的直接 data.loadData(callbackData.response);就可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

2

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
 楼主| 发表于 2019-4-15 22:30:55 | 显示全部楼层
本帖最后由 linwenyao1979 于 2019-4-16 10:01 编辑

在一个主从流程UI里,在主表对应mainData,从表对应detailData,主表有一个字段对应一个单据编号input,还有其它的表头字段,点击一个button按钮,弹出一个选择窗口,里面的数据来自另一个单据的表头,选择一个单据,窗口关闭后,根据选择的单据编号,从另一个明细表里选择明细数据,现在loadData成功的把明细数据加载到了这个从表的detailData里了,但是却无法编辑,流程提交后,下一个环节可以编辑,下一个环节回退过来也可以编辑,请问怎么能在刚加载上来时就可以编辑。并且这种方式的流程保存之后,从表数据未保存。
下面是动作代码:
public static Table queryRE_selectMatDocDetail(String fMBLNR){
                String mssql = "select b.fMBLNR,b.fMATNR,b.fMAKTX,b.fMENGE,b.fMEINS,b.fCHARG,b.fHWARE,b.fLGORT";
                mssql =mssql +",b.fWERKS,b.fBWART,b.fEBELN,b.fAUFNR,b.fRSNUM,b.LBKUM,b.fKOSTL,b.fBS,b.fGX,b.fZS from RN_WLPZMXB b where b.fMBLNR = '" + fMBLNR + "'";
                Table table = KSQL.select(mssql,null,"/renergy/wareHouse/data",null);
                return table;
        }

下面是调用动作的代码:
Model.prototype.windowDialog1Close = function(event){
                var param = new biz.Request.ActionParam();
                var data = this.comp("detailData");
                param.setString("fMBLNR",this.comp("input2").val());
                biz.Request.sendBizRequest({
                        context : this.getContext(),
                        action: "queryRE_selectMatDocDetailAction",
                        dataTyep: "json",
                        parameters: param,
                        callback: function(result){
                                if (result.state){
                                        data.loadData(result.response,false);
                                }else{
                                        throw new Error("调用失败"+result.response.message);
                                }
                        }
                });
        };



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-4-16 10:15:12 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

2

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
 楼主| 发表于 2019-4-16 11:48:47 | 显示全部楼层
本帖最后由 linwenyao1979 于 2019-4-16 12:08 编辑

谢谢,可以编辑了。再请教一下,继续上面的步骤,从表数据是通过loadData上来的,流程保存之后,从表数据未保存,只有主表保存了,怎么解决


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-4-16 11:59:16 | 显示全部楼层
1.确认主从关联的关系的值正确吗?
2.http://docs.wex5.com/bex5-ui-question-list-10195/

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



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

使用道具 举报

2

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
 楼主| 发表于 2019-4-16 12:10:12 | 显示全部楼层
按照您提供的这两个方法,完全解决了困惑我已久的问题。
非常感谢及时提供解决方法,请结帖。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 02:07 , Processed in 0.124980 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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