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

QQ登录

只需一步,快速开始

查看: 4766|回复: 5

[结贴] action返回的table转成json后,加载到grid树形结构不显示数据

[复制链接]

170

主题

838

帖子

2136

积分

金牌会员

Rank: 6Rank: 6

积分
2136
QQ
发表于 2020-10-27 10:46:57 | 显示全部楼层 |阅读模式
本帖最后由 hua_love2011 于 2020-10-27 10:49 编辑

参考这个帖子也不行:http://bbs.wex5.com/forum.php?mod=viewthread&tid=75099
问题:action返回的table在前端转成json后,加载到grid中,以树形结构方式展现不出数据?


Action:
        //MES系统的BOM目录树信息
        public static Table loadBomTree(String bmid, String lxid) {
                String sql = "SELECT '0' NODE,'0' NODENAME,'0' PARENTNODE,'0'NODETYPE FROM DUAL";
                Table table = selectBySql(sql);
                Iterator<Row> it = table.iterator();
                Row row = null;
                if (it.hasNext()) {
                        row = it.next();
                        getSCXInfo(table, row, bmid);        //获取生产线信息
                }

                return table;
        }

        //获取生产线信息
        public static void getSCXInfo(Table table, Row row, String bmid) {
                String sql = "SELECT ''||ID ID,NAME FROM PROCESSROUTING WHERE RESOURCEID='" + bmid + "' ORDER BY SEQ";
                Table scxTab = selectBySql(sql);
                Iterator<Row> scxIt = scxTab.iterator();
                Row scxRow = null;
                int i = 0;
                while (scxIt.hasNext()) {
                        if (i != 0)
                                row=table.appendRow();
                        scxRow = scxIt.next();
                        row.setValue("NODE", scxRow.getValue("ID"));
                        row.setValue("NODENAME", scxRow.getValue("NAME"));
                        row.setValue("PARENTNODE", "0");
                        row.setValue("NODETYPE", "");
                        
                        getGDInfo(table, row, bmid, scxRow.getValue("ID").toString());        //获取工段信息
                        i++;
                }
        }

        //获取工段信息
        public static void getGDInfo(Table table, Row row, String bmid, String id) {
                String sql = "SELECT ''||ID ID,NAME,''||PROCESSROUTINGID PARENTNODE FROM PROCESSSEGMENT WHERE PROCESSROUTINGID IN(SELECT ID FROM PROCESSROUTING WHERE RESOURCEID='" + bmid
                                + "' and PROCESSROUTINGID=" + id + ")";
                Table gdTab = selectBySql(sql);
                Iterator<Row> gdIt = gdTab.iterator();
                Row gdRow = null;
                while (gdIt.hasNext()) {
                        row=table.appendRow();
                        gdRow = gdIt.next();
                        row.setValue("NODE", gdRow.getValue("ID"));
                        row.setValue("NODENAME", gdRow.getValue("NAME"));
                        row.setValue("PARENTNODE", gdRow.getValue("PARENTNODE"));
                        row.setValue("NODETYPE", "nkLeaf");
                }
        }


JS:
        //查询按钮事件处理
        Model.prototype.selectBtnClick = function(event) {
                var tjData = this.comp("tjData");
                var bmid = tjData.getValue("bmid");
                var lxid = tjData.getValue("lxid");

                var treeData = this.comp("treeData");
               
                var param = new biz.Request.ActionParam();
                param.setString("bmid", bmid);
                param.setString("lxid", lxid);

                biz.Request.sendBizRequest({
                        action : "loadBomTreeAction",
                        context : this.getContext(),
                        dataType : "json",
                        parameters : param,
                        callback : function(data) {
                                if (data.state) {
                                debugger;
                                        treeData.loadData(JSON.stringify(data.response));
                                } else {
                                        throw new Error("调用失败!|" + data.response.message);
                                }
                        }
                });
                treeData.refreshData();
                this.comp("treeGrid").refresh();
        };


截图:
treeData.png 微信截图_20201027104357.png 微信截图_20201027104438.png 前端转换Json后的数据格式:
QQ截图20201027104858.png



你不向前奔跑,没有人愿意停下来等你!

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

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



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

使用道具 举报

170

主题

838

帖子

2136

积分

金牌会员

Rank: 6Rank: 6

积分
2136
QQ
 楼主| 发表于 2020-10-27 11:57:56 | 显示全部楼层
本帖最后由 hua_love2011 于 2020-10-27 11:59 编辑

按照帖子的要求设置了还是不行,里面的数据是父子关系,
Action:
// MES系统的BOM目录树信息
        public static Table loadBomTree(String bmid, String lxid) {
                String sql = "SELECT '0' NODE,'0' NODENAME,'0' PARENTNODE,'0'NODETYPE FROM DUAL";
                Table table = selectBySql(sql);
                table.getProperties().put(Table.PROP_NAME_ROWID, "NODE");// 设置主键列
               
                Iterator<Row> it = table.iterator();
                Row row = null;
                if (it.hasNext()) {
                        row = it.next();
                        if ("1".equals(lxid)) {
                                getDLInfo(table, row, bmid); // 获取大类+中类+小类+细目类+机型
                        } else if ("2".equals(lxid)) {
                                getSCXInfo(table, row, bmid); // 获取生产线+工段
                        }
                }

                return table;
        }

// 获取生产线信息
        public static void getSCXInfo(Table table, Row row, String bmid) {
                String sql = "SELECT ''||ID NODE,NAME FROM PROCESSROUTING WHERE RESOURCEID='" + bmid + "' ORDER BY SEQ";
                Table scxTab = selectBySql(sql);
                scxTab.getProperties().put(Table.PROP_NAME_ROWID, "NODE");// 设置主键列,这块我注释掉也不管用
                Iterator<Row> scxIt = scxTab.iterator();
                Row scxRow = null;
                int i = 0;
                while (scxIt.hasNext()) {
                        if (i != 0)
                                row = table.appendRow();
                        scxRow = scxIt.next();
                        row.setValue("NODE", scxRow.getValue("NODE"));
                        row.setValue("NODENAME", scxRow.getValue("NAME"));
                        row.setValue("PARENTNODE", "0");
                        row.setValue("NODETYPE", "");

                        getGDInfo(table, row, bmid, scxRow.getValue("NODE").toString()); // 获取工段信息
                        i++;
                }
        }

        // 获取工段信息
        public static void getGDInfo(Table table, Row row, String bmid, String fid) {
                String sql = "SELECT ''||ID NODE,NAME,''||PROCESSROUTINGID PARENTNODE FROM PROCESSSEGMENT WHERE PROCESSROUTINGID IN(SELECT ID FROM PROCESSROUTING WHERE RESOURCEID='" + bmid
                                + "' AND PROCESSROUTINGID=" + fid + ")";
                Table gdTab = selectBySql(sql);
                gdTab.getProperties().put(Table.PROP_NAME_ROWID, "NODE");// 设置主键列,这块我注释掉也不管用
                Iterator<Row> gdIt = gdTab.iterator();
                Row gdRow = null;
                while (gdIt.hasNext()) {
                        row = table.appendRow();
                        gdRow = gdIt.next();
                        row.setValue("NODE", gdRow.getValue("NODE"));
                        row.setValue("NODENAME", gdRow.getValue("NAME"));
                        row.setValue("PARENTNODE", gdRow.getValue("PARENTNODE"));
                        row.setValue("NODETYPE", "nkLeaf");
                }
        }

JS:
        //查询按钮事件处理
        Model.prototype.selectBtnClick = function(event) {
                var tjData = this.comp("tjData");
                var bmid = tjData.getValue("bmid");
                var lxid = tjData.getValue("lxid");

                var treeData = this.comp("treeData");
               
                var param = new biz.Request.ActionParam();
                param.setString("bmid", bmid);
                param.setString("lxid", lxid);


                var tp = new biz.Request.TranslateParam();
                tp.dataType = biz.Request.TranslateParam.DATATYPE_ROW_TREE;
                tp.setTreeOption('tree-parent-relation', "PARENTNODE");

                biz.Request.sendBizRequest({
                        action : "loadBomTreeAction",
                        context : this.getContext(),
                        dataType : "json",
                        translateParam : tp,
                        parameters : param,
                        callback : function(data) {
                                if (data.state) {
                                debugger;
//                                        treeData.loadData(JSON.stringify(data.response));
                                        treeData.loadData(data.response);
                                } else {
                                        throw new Error("调用失败!|" + data.response.message);
                                }
                        }
                });
                alert(treeData.getCount());//弹出来的记录数是有值的
                treeData.refreshData();
                this.comp("treeGrid").refresh();
        };

你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35880
发表于 2020-10-27 13:39:10 | 显示全部楼层
data.response的数据发出来看看是什么?发的链接肯定是测试通过的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

170

主题

838

帖子

2136

积分

金牌会员

Rank: 6Rank: 6

积分
2136
QQ
 楼主| 发表于 2020-10-27 14:07:47 | 显示全部楼层
jishuang 发表于 2020-10-27 13:39
data.response的数据发出来看看是什么?发的链接肯定是测试通过的

嗯,我觉得可能是我某个地方设置的问题。

{@type: "table", rows: Array(3), treeParentRelation: "PARENTNODE", userdata: {…}}
@type: "table"
rows: Array(3)
        0:
                NODENAME: {changed: "1", originalValue: "0", value: "卷包生产线"}
                NODETYPE: {changed: "1", originalValue: "0", value: ""}
                PARENTNODE: {changed: "1", originalValue: "0", value: "0"}
                rows: Array(4)
                        0:
                                NODENAME: {changed: "1", value: "喂丝段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14284936"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        1:
                                NODENAME: {changed: "1", value: "卷接段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14284936"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        2:
                                NODENAME: {changed: "1", value: "包装段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14284936"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        3:
                                NODENAME: {changed: "1", value: "装封箱段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14284936"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        length: 4
                        __proto__: Array(0)
                        userdata: {id: {…}, recordState: "edit"}
                        __proto__: Object
        1:
                NODENAME: {changed: "1", value: "成型发射线"}
                NODETYPE: {changed: "1", value: ""}
                PARENTNODE: {changed: "1", value: "0"}
                rows: Array(2)
                        0:
                                NODENAME: {changed: "1", value: "成型段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14284937"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        1:
                                NODENAME: {changed: "1", value: "发射段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14284937"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        length: 2
                        __proto__: Array(0)
                        userdata: {id: {…}, recordState: "new"}
                        __proto__: Object
        2:
                NODENAME: {changed: "1", value: "辅助生产线"}
                NODETYPE: {changed: "1", value: ""}
                PARENTNODE: {changed: "1", value: "0"}
                rows: Array(1)
                        0:
                                NODENAME: {changed: "1", value: "物流段"}
                                NODETYPE: {changed: "1", value: "nkLeaf"}
                                PARENTNODE: {changed: "1", value: "14326447"}
                                rows: []
                                userdata: {id: {…}, recordState: "new"}
                                __proto__: Object
                        length: 1
                        __proto__: Array(0)
                        userdata: {id: {…}, recordState: "new"}
                        __proto__: Object
                length: 3
                __proto__: Array(0)
                treeParentRelation: "PARENTNODE"
userdata:
        idColumnName: "NODE"
        idColumnType: "String"
        model: "/yjgs/graphinfo/data"
        relationAlias: "NODENAME,PARENTNODE,NODETYPE"
        relationTypes: "String,String,String"
        relations: "EXPRESS,EXPRESS,EXPRESS"
        sys.rowid: "NODE"
        updateMode: "whereVersion"
        __proto__: Object
        __proto__: Object
你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

170

主题

838

帖子

2136

积分

金牌会员

Rank: 6Rank: 6

积分
2136
QQ
 楼主| 发表于 2020-10-27 14:22:56 | 显示全部楼层
jishuang 发表于 2020-10-27 13:39
data.response的数据发出来看看是什么?发的链接肯定是测试通过的

老师,结贴吧,问题找到了,是由于grid控件我从其他地方拷贝过来的,expandColumn属性值原来是NODE_NAME,我改成NODENAME后,但源码的红色部分还是NODE_NAME,也将它改成NODENAME后就可以了。
<div component="$UI/system/components/justep/grid/grid" data="treeData"
                expandColumn="NODENAME" useVirtualRoot="false" virtualRootLabel="BOM目录树"
                xid="treeGrid" class="x-grid-no-bordered" appearance="tree" multiselectWidth="20px"
                width="100%" height="100%">
                <columns xid="columns2">
                  <column name="NODENAME" width="341px" xid="column7"/>
                </columns>
              </div>
你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 13:55 , Processed in 0.087331 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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