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

QQ登录

只需一步,快速开始

查看: 3811|回复: 13

[结贴] 如何将从表中某一个字段值追加到主表中的一个计算列

[复制链接]

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
发表于 2016-1-29 17:19:08 | 显示全部楼层 |阅读模式
这样一种情况:主从表关联查询后生成的结果,我想要把从表中的某一列字段赋给主表新增加的一个计算列,请教下,如何对主表的这个计算列写规则,
$model.baasData1.val("getImageUrl") ==$model.baasData2.val("PIC_URL"),前面baasData1是主表,主表的getImageUrl这一字段是从X5中添加上去一个计算列,这一字段在数据表结构中是没有的,后面baasData2是从表,从表的PIC_URL这一列字段是从后台数据库中查询过来的,在数据表结构中是有的。目标是:将从表的PIC_URL这一字段的值完全同步的给主表的getImageUrl这一计算字段。
谢谢!
发表于 2016-1-29 17:26:00 | 显示全部楼层
请问你的从表确定只有一行数据吗??
如果只有一行,那么在计算列getImageUrl的设置计算规则为从表的这个字段的值即可!!
就是:$model.baasData2.val("PIC_URL")

如果从表是多条数据,那么就需要自定义一个js方法,在这个js方法中循环从表data取出字段,并以某种格式做字符串相加!最后将这个字符串return
计算规则中引用这个js方法即可!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-1-31 10:59:05 | 显示全部楼层
liangyongfei 发表于 2016-1-29 17:26
请问你的从表确定只有一行数据吗??
如果只有一行,那么在计算列getImageUrl的设置计算规则为从表的这个字 ...

从表可以是一条数据,但问题的关键是卡在这里的:当主表加载数据的时候,主表中增加的那个计算列的值应该是跟从表中的那个对应的值同步变化更新的,但实际情况却是:主表这个增加的那个计算列没有动态更新,举详细数据例说明如下:
主表 id 列  两条数据 分别为1和2 ,主表NAME列,两条数据 分别为zs1和zs2
从表 id 列  两条数据 分别为1和2 ,从表关系字段 zid列 ,两条数据 分别为1和2 ,从表内容列content,两条数据 分别为content1和content2
在页面上放一个list后,把主表数据关联到list中,在list组件的li下面显示三个字段:id NAME DATA2CONTENT(新增的计算列,这列的计算规则是:$model.baasData2.val("content"),运行后得到的页面结果是这样的:
第一行:主表id  1, NAME zs1 , DATA2CONTENT content1
第二行:主表id  2, NAME zs2 , DATA2CONTENT content1

问题的关键就是在这,第二行数据是错误的,应该是:
第二行:主表id  2, NAME zs2 , DATA2CONTENT content2

第二行的第三列数值应该是content2而不是content1

请指导解决一下!




回复 支持 反对

使用道具 举报

发表于 2016-2-1 10:07:04 | 显示全部楼层
cnjszd 发表于 2016-1-31 10:59
从表可以是一条数据,但问题的关键是卡在这里的:当主表加载数据的时候,主表中增加的那个计算列的值应该 ...

计算规则中这样写:$model.baasData2.val("content")
表示的获取baasData2组件中当前行字段content的值,
而你的需求是获取baasData2中zid 等于 data1中id哪一行的content的值
所以你必须定义一个js方法,在计算规则中调用这个方法,把当前行id的值传过去,在js方法中根据这个id的值去获取baasData2中对应行的content的值,并返回结果!

参考:http://bbs.wex5.com/forum.php?mo ... 7&pid=165207782
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-2-1 21:44:13 | 显示全部楼层
是的,你回复的这个帖子可以解决我这个问题,但我按照你给的小例子,自己做了一个,报错,你做的那个运行正常的,报错信息如图,到底还有什么设置吗?

报错信息如图

报错信息如图
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-2-2 09:41:10 | 显示全部楼层
cnjszd 发表于 2016-2-1 21:44
是的,你回复的这个帖子可以解决我这个问题,但我按照你给的小例子,自己做了一个,报错,你做的那个运行正 ...

哦,
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-2-2 09:41:30 | 显示全部楼层

哦,我找到原因了,是数据不一致
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-2-2 09:56:04 | 显示全部楼层
cnjszd 发表于 2016-2-2 09:41
哦,我找到原因了,是数据不一致

惨了,还没搞定,还是会报错,那个报错信息到底原因在哪,有什么思路来解决?
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-2-2 09:58:48 | 显示全部楼层
cnjszd 发表于 2016-2-2 09:56
惨了,还没搞定,还是会报错,那个报错信息到底原因在哪,有什么思路来解决? ...

我把你例子中的conut列,字段名修改为count1,其它也相应修改,js代码中也是返回count1,然后就又报这样的错
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2016-2-2 09:59:24 | 显示全部楼层
我把你例子中的count列,字段名修改为count1,其它也相应修改,js代码中也是返回count1,然后就又报这样的错
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-26 20:11 , Processed in 0.059699 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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