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

QQ登录

只需一步,快速开始

查看: 1434|回复: 7

[结贴] 自定义table返回后不能被grid和tree识别

[复制链接]

20

主题

61

帖子

150

积分

初级会员

Rank: 2

积分
150
发表于 2014-6-19 09:19:38 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:

需求描述: 需要在后台动态生成构造table,然后把table返回给grid 或tree显示

目前实现代码如下:

                Table tab = KSQL.select("SELECT p.* FROM B_v_needmaterial p where 1=1 ", null, dataModel, null);
                tab.getMetaData().setStoreByConcept("B_v_needmaterial", true);
                tab.getProperties().put(Table.PROP_NAME_ROWID, "p");
                tab.setUpdateMode(UpdateMode.WHERE_ALL);

                Row rec = tab.appendRow();
                rec.setValue("fID", "1");
                rec.setValue("fParentId", "");
                rec.setValue("fName", "ss");

              //输出table的大小的确是  ksql返回的记录数 n + 1
               System.out.println("tab.size()==="+tab.size());

报错情况:             
ui使用的是grid  前台报错如下:
                                   
           
ui使用的是tree  后台报错如下:
                       
java.lang.StackOverflowError
        at java.util.regex.Pattern.atom(Unknown Source)
        at java.util.regex.Pattern.sequence(Unknown Source)
        at java.util.regex.Pattern.expr(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at com.justep.system.transform.Table2Json.createRow(Unknown Source)
        at com.justep.system.transform.Table2Json.buildTree(Unknown Source)
        at com.justep.system.transform.Table2Json.buildTree(Unknown Source)
        at com.justep.system.transform.Table2Json.buildTree(Unknown Source)
  
分析可能原因:       tab.appendRow() 添加的行和ksql返回的行的描述是不同,返回到ui组件,不能够完全被识别

问题:  基于以上需求  怎么去 描述  Row rec = tab.appendRow();  使得返回的行记录能被grid 和 tree组件识别               
            
QQ图片20140619091052.jpg

20

主题

61

帖子

150

积分

初级会员

Rank: 2

积分
150
 楼主| 发表于 2014-6-19 09:20:28 | 显示全部楼层
ui使用的是grid ,报错情况如图片所示
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
发表于 2014-6-19 09:57:30 | 显示全部楼层
直接上代码吧,前后台的都上!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-6-19 10:29:08 | 显示全部楼层
如下测试没问题
java.png

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



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

使用道具 举报

20

主题

61

帖子

150

积分

初级会员

Rank: 2

积分
150
 楼主| 发表于 2014-6-19 10:33:25 | 显示全部楼层
grid 刚单独做个文件没有问题,树有问题,麻烦看下
回复 支持 反对

使用道具 举报

20

主题

61

帖子

150

积分

初级会员

Rank: 2

积分
150
 楼主| 发表于 2014-6-19 10:36:01 | 显示全部楼层
jishuang 发表于 2014-6-19 10:29
如下测试没问题

树还是有问题

java.lang.StackOverflowError
        at java.util.regex.Pattern.atom(Unknown Source)
        at java.util.regex.Pattern.sequence(Unknown Source)
        at java.util.regex.Pattern.expr(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at java.lang.String.split(Unknown Source)
        at com.justep.system.transform.Table2Json.createRow(Unknown Source)
        at com.justep.system.transform.Table2Json.buildTree(Unknown Source)
        at com.justep.system.transform.Table2Json.buildTree(Unknown Source)
回复 支持 反对

使用道具 举报

20

主题

61

帖子

150

积分

初级会员

Rank: 2

积分
150
 楼主| 发表于 2014-6-19 11:48:29 | 显示全部楼层
解决了,是 设置 grid的时候可以给fID设置值,tree必须是给概念名称赋值
即写成  rec.setString("B_v_needmaterial", "111");

不能写成    rec.setString("fID", "111");

请结贴
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-6-19 11:57:34 | 显示全部楼层
如下测试没有报错
1.java
  1. public static Table addTreeRow(){
  2. String ksql = "select sxsj.* from AP_SXSJ sxsj";
  3. Table table = KSQL.select(ksql, null, "/appdemo/test/data", null);
  4. table.getProperties().put(Table.PROP_NAME_ROWID, "sxsj");

  5. Row rec = table.appendRow();
  6. rec.setValue("sxsj", "1");
  7. rec.setValue("fParentID", "");
  8. rec.setValue("fName", "aaa");

  9. return table;

  10. }
复制代码
2.action调用
  1. mainActivity.trigger1Click = function(event) {
  2. var data = justep.xbl("dataMain");
  3. var tp = new justep.Request.TranslateParam();
  4. tp.dataType = justep.Request.TranslateParam.DATATYPE_ROW_TREE;
  5. tp.setTreeOption("tree-parent-relation", "fParentID");
  6. justep.Request.sendBizRequest2({
  7. translateParam : tp,
  8. contentType : "application/json",
  9. dataType : "json",
  10. action : "addTreeRowAction",
  11. callback : function(result) {
  12. if (result.state) {
  13. data.loadJson(result.response);
  14. data.expandAll();
  15. } else {
  16. throw new Error("调用失败!|" + result.response.message);
  17. }
  18. }
  19. });
  20. };
复制代码
3.运行效果
UI.png



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



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 03:09 , Processed in 0.070666 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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