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


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

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

帅哥哟,离线,有人找我吗?
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
按此在新窗口浏览图片


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


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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
supernormalwu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
supernormalwu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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#……等列的中。只要在“整理入库”表中每天输入各[指令单号]各列的数据后,“递减表”中对应[指令单号]的各列相关数据列自动更新!

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


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

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


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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/13 17:24:00 [显示全部帖子]

老师,如果订单表中没有入库表的订单,就忽略报错!怎么处理?

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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/13 17:56:00 [显示全部帖子]

如:欠数表中[指令单号]12333的SIZE1码=订单表中[指令单号]12333的SIZE1码减去整理入库表中[指令单号]12333的SIZE1码的和!
请老师指点如何写代码?谢谢!

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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/13 20:24:00 [显示全部帖子]

谢谢老师!



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


加好友 发短信
等级:婴狐 帖子:26 积分:254 威望:0 精华:0 注册:2015/10/17 19:44:00
  发帖心情 Post By:2017/4/14 18:30:00 [显示全部帖子]

If e.DataCol.Name.StartsWith("SIZE") Then
    Dim filter As String = "指令单号 = '" & e.DataRow("指令单号") & "' and 型体 = '" & e.DataRow("型体") & "'"
    Dim fdr As DataRow = DataTables("订单").Find(filter)
    If fdr IsNot Nothing Then
        Dim sum1 As Double = e.DataTable.Compute("sum(" & e.DataCol.name & ")", filter)
        If sum1 - e.OldValue + e.NewValue > fdr(e.DataCol.name) Then
            msgbox("超出了")
            e.cancel = True
            Return
        End If
        Dim dr = DataTables("欠数").Find(filter)
        If dr Is Nothing Then
            dr = DataTables("欠数").addnew
            dr("指令单号") = e.DataRow("指令单号")
            dr("型体") = e.DataRow("型体")
        End If
        dr(e.DataCol.name) = fdr(e.DataCol.name) - (sum1 - e.OldValue + e.NewValue)
    End If
End If
老师你好!接上问题!如订单表中1井50双,入库表该单1码没有,为空,欠数表中就为空了!应该是50的才对!请老师解惑!谢谢!

 回到顶部
总数 18 1 2 下一页