以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]这样的结果如何实现? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=62471) |
-- 作者:rophy0952 -- 发布时间:2015/1/2 11:49:00 -- [求助]这样的结果如何实现? 有三个表,分切工票信息、成品检验记录表、核数表。 希望在核数表“不良品_只数”值变化的时候,将成品检验记录表中的“不良项目_只数”按照“不良项目_班组”进行合计到分切工票信息表中对应的“不良只数”中。(之前是在成品检验记录表字段值变化的时候进行赋值,因两个表有时录入顺序经常颠倒,所以经常无法值赋到分切工票信息表中去。)为改变现状,欲做此改变。 之前成品检验记录表中的代码为: Select Case e.DataCol.Name Case "不良项目1_只数","不良项目2_只数","不良项目3_只数","不良项目4_只数","不良项目5_只数","不良项目6_只数","不良项目7_只数","不良项目8_只数","不良项目9_只数","不良项目10_只数" Dim dr1 As DataRow Dim bz As String = e.DataCol.Name.Replace("只数","班组") dr1 = DataTables("分切工票信息").SQLFind("[流水号] = \'" & e.DataRow("流水号") & "\' And 分切班组 = \'" & e.DataRow(bz) & "\'") If dr1 IsNot Nothing Then Dim n As Double For Each sdr As DataRow In e.DataTable.Select("流水号=\'" & e.DataRow("流水号") & "\'") For i As Integer = 1 To 10 If sdr("不良项目" & i & "_责任").Contains("分切") AndAlso sdr("不良项目" & i & "_班组") = e.DataRow(bz) Then n = n + sdr("不良项目" & i & "_只数") End If Next Next dr1("不良只数") = n dr1.Save End If End Select 请问如果是在核数表字段的值改变时,该如何写代码? |
-- 作者:狐狸爸爸 -- 发布时间:2015/1/4 10:35:00 -- 一般来说,表A写了计算代码,如果表B的数据变化会影响表A的计算结果,可以在表B写代码,找出表A对应的行,然后用RaiseDataColChanged强行触发表A的DataColChanged时间,表B的代码类似:
Select
Case e.DataCol.Name
你可以看一下这个: http://www.foxtable.com/help/topics/1453.htm http://www.foxtable.com/help/topics/1472.htm
有问题再说话。 |