Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表运算事件请教


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

主题:[求助]跨表运算事件请教

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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
[求助]跨表运算事件请教  发帖心情 Post By:2017/4/8 20:24:00 [只看该作者]

如上图:三张表以[指令单号]关联,“订单表中每个[指令单号]只有一条,不重复;“整理入库”表中每个[指令单号]有多条相同,为每天入库的数据录入;

三张表中1#左边各列为字符、日期列,1#1.5#……为数据列

<!--[if !supportLists]-->1、  <!--[endif]-->要求在“订单”中新增一个订单后,将1#左边各列值填充到递减表“中所对应的列中,同样在“递减表”中每个[指令单号]为唯一,不重复,“整理入库”表中的[指令数

]为“订单”中的[订单合计]数量。

<!--[if !supportLists]-->2、  <!--[endif]-->我要将“订单”表中某[指令单号]的数据如1#1.5#……,减去“整理入库”表中相同[指令单号]对应1#1.5#……多条数据对应的和,然后后将结果对应到递减表“中对

应如1#1.5#……的数据中。只要在“整理入库”表中每天输入各[指令单号]的数据后,“递减表”中对应[指令单号]的各相关数据列自动更新!

<!--[if !supportLists]-->3、  <!--[endif]--> 递减表”中某[指令单号] 的数据列“1#1.5#……”等数据值等于“0”时“整理入库”表中各对应列的数据无法再输入数据!其它不为“0“的列可以继续输入数据。

(如需要修改锁定列的数据,如何处理?

<!--[if !supportLists]-->4、  <!--[endif]-->递减表”中某[指令单号] 各数据列“1#1.5#……”等数据值都等于“0”时,此时“递减表”中[完成列] =OK”,并将此[指令单号]所在行所有数据,从“递减表

<!--[if !supportLists]-->5、  <!--[endif]-->中复制到“OK订单表中,并从“递减表”中删除此行。

 

请问以上问题如何写相关事件代码?请各位大神指教!谢谢!(结果如下表)

订单表:

订单NO

订单日期

指令单号

……

1#

1.5#

2#

2.5#

……

2017-03-05

DD201703001

2017-03-05

201703001

 

25

55

65

80

……

2017-02-24

JR20170204001

2017-04-24

JX201704001

……

20

40

50

60

……

整理入库表:

订单NO

订单日期

指令单号

……

1#

1.5#

2#

2.5#

……

2017-03-08

DD201703001

2017-03-05

201703001

……

8

2

3

4

……

2017-03-15

DD201703001

2017-03-05

201703001

……

5

5

6

5

……

2017-03-18

DD201703001

2017-03-05

201703001

……

12

7

9

8

……

2017-03-18

DD201703001

2017-03-05

201703001

……

不能再输入

可以输入

 

 

 

递减表:

订单NO

订单日期

指令单号

……

1#

1.5#

2#

2.5#

……

2017-03-05

DD201703001

2017-03-05

201703001

……

0

41

47

63

……

2017-02-24

JR20170204001

2017-04-24

JX201704001

……

5

4

9

15

……

 

 

 

 

 

 

 

 

 

 

 

 

 

 
此主题相关图片如下:跨表计算问题.png
按此在新窗口浏览图片


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/9 11:08:00 [只看该作者]

编写入库表DataColChanged事件,输入值以后,compute本表的数据,查找订单表的数据,相减,如果小于0,就提示不能输入,否者,就把结果写入到递减表去。

 

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/9 11:09:00 [只看该作者]

 代码不会写,就上传实例。


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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/12 21:54:00 [只看该作者]

接上面问题上传实例!请各位大师指点!谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:订单生产欠数.rar


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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/12 22:08:00 [只看该作者]

如上实例:三张表以[指令单号]关联,“订单”表中每个[指令单号]只有一条,不重复;“整理入库”表中每个[指令单号]有多条相同,为每天入库的数据录入;

三张表中1#左边各列为字符、日期列,1#、1.5#……为数据列

1、  要求在“订单”中新增一个订单后,将1#左边各列值填充到“递减表“中所对应的列中,同样在“递减表”中每个[指令单号]为唯一,不重复,“整理入库”表中的[指令数量]为“订单”中的[订单合计]数量。(我已解决)

2、要将“订单”表中某[指令单号]的数据如1#,1.5#……,等列减去“整理入库”表中相同[指令单号]对应1#,1.5#……等对应列数据的和,然后后将结果对应到“递减表“中1#,1.5#……等列的中。只要在“整理入库”表中每天输入各[指令单号]各列的数据后,“递减表”中对应[指令单号]的各列相关数据列自动更新!

3、“递减表”中某[指令单号] 的数据列“1#,1.5#……”等列数据值等于“0”时“整理入库”表中各对应列的数据无法再输入数据!其它不为“0“的列可以继续输入数据。

4、 “ 递减表”中某[指令单号] 各数据列“1#,1.5#……”等数据值都等于“0”时,此时“递减表”中[完成列]中 =“OK”,并将“递减表”表中该[指令单号]的所有数据,从 ” 递减表”表中复制“OK订单“表中,并从“递减表”中删除此行,且将把“订单”表中该对应的[指令单号]行以绿色填充,且加入已完成列设置为“OK”

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:订单生产欠数.rar


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/12 22:10:00 [只看该作者]

datacolchanging事件,写代码

 

If e.DataCol.Name.StartsWith("SIZE") Then
    Dim sum1 As Double = e.DataTable.Compute("sum(" & e.DataCol.name & ")", "指令单号 = '" & e.DataRow("指令单号") & "' and 型体 = '" & e.DataRow("型体") & "'")
    Dim sum2 As Double = DataTables("订单").Compute("sum(" & e.DataCol.name & ")", "指令单号 = '" & e.DataRow("指令单号") & "' and 型体 = '" & e.DataRow("型体") & "'")
    If sum1 + e.NewValue > sum2 Then
        msgbox("超出了")
        e.cancel = True
    Else
       
    End If
End If


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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/13 16:23:00 [只看该作者]

在整理入库表中吗?没反应!

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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/13 16:42:00 [只看该作者]

、要将“订单”表中某[指令单号]的数据如1#,1.5#……,等列减去“整理入库”表中相同[指令单号]对应1#,1.5#……等对应列数据的和,然后后将结果对应到“递减表“中1#,1.5#……等列的中。只要在“整理入库”表中每天输入各[指令单号]各列的数据后,“递减表”中对应[指令单号]的各列相关数据列自动更新!

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/13 16:59:00 [只看该作者]

以下是引用supernormalwu在2017/4/13 16:23:00的发言:
在整理入库表中吗?没反应!

 

只是一个简单的代码,你看懂,扩展开去。

 

代码的意思是,如果你输入的值大于订单的值,就提出错误。


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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/13 17:22:00 [只看该作者]

谢谢!
老师,第2条问题如何处理


 回到顶部
总数 26 1 2 3 下一页