Foxtable(狐表)用户栏目专家坐堂 → [求助]多线程的问题


  共有5544人关注过本帖树形打印复制链接

主题:[求助]多线程的问题

帅哥哟,离线,有人找我吗?
chnfo
  51楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2198 积分:18058 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/3/15 15:21:00 [只看该作者]

哪不太可行。现在是要显示5列,万一哪天用户说想看第6引,还去妀数据库啊?而且,把太多字段冗余到数据库的表里也不合适吧

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  52楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/15 16:06:00 [只看该作者]

以下是引用chnfo在2019/3/15 15:21:00的发言:
哪不太可行。现在是要显示5列,万一哪天用户说想看第6引,还去妀数据库啊?而且,把太多字段冗余到数据库的表里也不合适吧

 

计算一次(比如做一个刷新按钮),需要的时候,重新计算。

 

平时使用的时候,直接查找旧数据显示和计算。和库存那种一样,难道每次都要重新计算几年前的库存数据?


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  53楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2198 积分:18058 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/3/16 11:35:00 [只看该作者]

可能是我没表述清楚。
例如入库表,设计的字段包括:入库日期、仓库、物资编号、入库数量、入库单价、入库金额。

但在填写入库单的时候,要显示物资编号、名称、规格、单位、原计划量、截止入库日期之前已经调整了多少数量,填写本次入库数量、入库单价、入库金额。
可以用直接更新后台、界面直接加载的方式,提高效率。

但这样一来,就表示物资名称、规格、单位都要冗余到入库表中,同时要设置原计划量、已调整量才可以。

更明显的问题是,如果用户使用之后,提出在填入入库单的时候,还希望看到之前已经入库了多少,由不是还要修改入库表的数据库?万一使用又过一段时间,用户还希望再查看某一列信息,又要改,那得多痛苦?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  54楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/16 11:50:00 [只看该作者]

不知道您的业务逻辑和表结构到底怎么设计的。越看越不知道您到底要做什么?只是要看看历史的入库数据而已,为什么要修改入库表的数据?

不过这条思路不通,是否应该换个思路呢。

撇开业务不管,就说一个存储流程数据的表,正常来说,1年、2年....越久的历史数据就越是静止的,也就是说这些数据基本不会被改动,那么我们就可以建立一些统计表,把这部分历史数据根据需要每年/季/月..做一次统计,然后保存下来。以后需要的时候直接调用就可以了。如果要合并最新的数据,把历史的统计数据和最新的数据的统计结果合并到一起就可以了。也就是说只需要计算最新的那部分数据即可,不需要重新计算所有的数据。

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  55楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2198 积分:18058 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/3/16 13:45:00 [只看该作者]

只是要看看历史的入库数据而已,为什么要修改入库表的数据?

----所以,入库表不应当有已调整数量这一列。
它在界面上登记入库明细表的时候,可以看到相应的物资在此之前调整过多少,这是一个后台查询在界面赋值。
所以,前面所说的在后台更新完成后再在界面上展现的思路走不通---因为不可能设置太多冗余。

那么接下来的路就只有一条了,后台计算完在此之前调整过多少之后,在界面上赋值。
能这样理解吗?
问题是,异步函数不能用于界面表处理,那就表示赋值只能依次执行。

但依次执行赋值方法在界面数据行很多的时候,用时太长。

那么开启多个线程去做界面赋值,比如线程1赋A列的值,线程2赋B列的值行不行?
或者开启线程1赋A列的1-100行的值,线程2赋A列的101-200行的值,是否可行呢?

当然,可以每个月存一次历史调整值、已入库值进来,随时备用。但这个月调整了2次、已入库3次,到第4次入库的时候,依然要从上个月的汇总调整表A、上个月的汇总入库表B(当然,也可以把表A、B的数据合成一个表)中分别把已调整量、已入库量取出来,然后再加上本月的调整量、入库量,就是第4次入库之前的累计调整量、累计入库量。----这样,可能计算值的用时会少一些

然后,还要把这两个值赋到界面上呀。----其实,真正耗时的是界面赋值,后台计算可以多线程,耗时不会太长了。
[此贴子已经被作者于2019/3/16 13:55:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  56楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/16 14:05:00 [只看该作者]

试试给界面表对应的后台表赋值呀,处理完毕,界面再重新加载数据

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  57楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2198 积分:18058 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/3/16 14:10:00 [只看该作者]

界面表---界面表就是入库表啊。
设置一个入库的窗口,窗口中有一个表,它的datasource,要么是入库表,要么是物资目录表。咋去更新后台哟

1、直接用入库表----但显然是不行的,刚才也说了,频繁修改数据库结构问题更多。
2、用物资目录表,在界面中增加临时列(已调整量、已入库量、本次入库量)-----但如果直接在物资目录表的源表中增加三列,涉及到多人同时操作的时候,岂不乱套
了。

除非在全局代码中设置一个public TA as datatable 

然后执行SQL生成TA,这个TA包括了所有的列
然后把窗口表的datasource 设为TA。
[此贴子已经被作者于2019/3/16 14:48:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  58楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/16 14:45:00 [只看该作者]

为什么一定要在现有的表里做文章呢。需要的只是一些查询结果,用作参考的,另外建一个查询表不行么。

1、类似帮助的模拟关联用法一样,点击入库表后,查询表显示对应的计算结果。这样只需要即时计算入库表这一行对应的统计结果即可

2、如果需要同时看所有行的记录,可以类似帮助的“在单元格绘制甘特图”一样,把入库表和查询表放到一起,同步滚动呗

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  59楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2198 积分:18058 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2019/3/16 15:21:00 [只看该作者]

蓝版主有才。
这次的解决方案是一个新的思路了,虽然界面表现可能不太美观。

方式一,是能够实现功能,交互体验感不好
方式二,如果我是用户,肯定会选它了。

我再试试吧,有什么困惑再来请教。
[此贴子已经被作者于2019/3/16 15:21:09编辑过]

 回到顶部
总数 59 上一页 1 2 3 4 5 6