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

QQ登录

只需一步,快速开始

查看: 4130|回复: 10

[结贴] 主表中数量等于从表中数量的SUM之和,但主表行切换时就错

[复制链接]

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
发表于 2019-5-24 11:02:07 | 显示全部楼层 |阅读模式
本帖最后由 wgs7909 于 2019-5-24 11:36 编辑

问题如图。
这个问题有点不好描述,请管理员仔细看两遍。
未命名1558666799.png
如果这种事情发生在列表详细页面,在详细页面中也需要显示出主表的合计信息(就是从表中数量列的SUM值),如下图
未命名1558668813.png
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2019-5-24 11:20:21 | 显示全部楼层
本帖最后由 wgs7909 于 2019-5-24 11:40 编辑

我之前的解决方案如下 ,但感觉很笨啊!请高手分享一下你们的经验。
  • 主表中加入一个计算列,此列的计算关系等于从表中数量列的SUM.
  • 当主表索引发生改变的时候,拿从表中数量列的SUM值,跟主表中的数据库字段中的数量进行对比,如果不相等,就重新set主表中的数量。
  • 在主表保存前事件中,把所有计算关系中的值,重新给数据库字段set一把。然后再保存。
  • 如果页面是列表详细的话,列表页中的数量是数据库中的关系 ,而详细页面中的数量合计,就是计算关系。

企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35972
发表于 2019-5-24 17:15:20 | 显示全部楼层
sum的时候可以直接设置过滤表达式,而且默认的也只是计算当前主数据的
data.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2019-5-24 19:03:32 | 显示全部楼层
jishuang 发表于 2019-5-24 17:15
sum的时候可以直接设置过滤表达式,而且默认的也只是计算当前主数据的

不是设置过滤表达式的问题。
还劳烦ji老师再把是题干看一遍。
***主表中有一个总数量,是从表中数量的SUM。  在主表的总数量上加入了sum计算关系。
如果主表只有一条数据,这没有问题。但如果主表是以列表的形式表现的话,主表中这个总数量,所有数值都是一样的。因为绑定了计算关系。
只要主表index发生改变,从表中的数据就跟着变了。这时sum得到的结果一定是变化的。所以会导致主表中总数量列里的值就全部相同了。这才是主要的问题!!!!!
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35972
发表于 2019-5-27 09:03:46 | 显示全部楼层
把具体的计算代码发一下
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

57

主题

375

帖子

1515

积分

金牌会员

Rank: 6Rank: 6

积分
1515
QQ
发表于 2019-5-28 15:37:20 | 显示全部楼层
是会有这样的问题存在。
1.不要用计算关系去计算主表SUM,给个事件去计算,然后保存主表SUM
2.个人建议主表不要用计算列,

评分

参与人数 1威望 +20 收起 理由
wgs7909 + 20 很给力!

查看全部评分

回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2019-5-28 23:01:18 | 显示全部楼层
chean 发表于 2019-5-28 15:37
是会有这样的问题存在。
1.不要用计算关系去计算主表SUM,给个事件去计算,然后保存主表SUM
2.个人建议主表 ...

感谢你看懂了我的意思。
关于你说的,给个事件去计算的方法,我没有想到在什么整件里触发计算会更合理。
请高手指点迷津

企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35972
发表于 2019-5-29 11:09:45 | 显示全部楼层
主表中直接显示数据库中的数据,在从data的onValueChanged事件中判断是数量列变化了计算sum给主data的数据列赋值实现不了?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2019-5-29 12:22:16 | 显示全部楼层
jishuang 发表于 2019-5-29 11:09
主表中直接显示数据库中的数据,在从data的onValueChanged事件中判断是数量列变化了计算sum给主data的数据 ...

是个好办法,我试一下。理论上讲应该是可以的
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2019-5-29 13:06:53 | 显示全部楼层
本帖最后由 wgs7909 于 2019-8-6 21:58 编辑
jishuang 发表于 2019-5-29 11:09
主表中直接显示数据库中的数据,在从data的onValueChanged事件中判断是数量列变化了计算sum给主data的数据 ...

根据您的提示,我发现在从表的DataChang事件里做这件事情更合理。
在这时可以捕获取数据删除事件,数据删除后,对SUM结果也是会产生影响的 。注意:图中有一个小错误。indexChange,无法被此方法捕获到仔细想来应该是这样的。这个事件的名字就叫数据改变事件。
QQ截图20190529140202.png




企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-26 17:27 , Processed in 0.075582 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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