以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于跨表更新的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87973)

--  作者:mayazql
--  发布时间:2016/7/23 22:47:00
--  关于跨表更新的问题
我有一个订单表,希望删除订单的子表行后,对应的申请单的子表行已订购数量同步变为0,下面是代码:
问题是,我需要先将订单后的子表清零后,关掉当前的窗体,这时申请单对应的子表行已订购数量变为0,再打开删除数量为0的子表行才可以
如果直接删除订单的子表行,或者将订单的子表行清零后,删除订单的子表行,关闭当前窗体,对应的申请单的子表行已订购数量并不会变为0.
不知道原因
(因为一个申请单的子表行可能分成几个订单,所以需要有一个sum的过程)
If Tables("pomain.posub").Current IsNot Nothing
    If MessageBox.Show("是否清零?","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
        Tables("pomain.posub").Current("数量") = 0
        
        Dim Val As Integer
        
        Val = DataTables("posub").SQLCompute("Sum(数量)","申请单子表标识 = \'"& tables("posub").Current("申请单子表标识") &"\'")
        
        Dim dr As DataRow = DataTables("prsub").find("pr子表标识 = \'" & Tables("posub").Current("申请单子表标识") & "\' ")
        If dr IsNot Nothing  Then
            
            dr("订单数量") = Val
            DataTables("posub").Save()
        End If
        \' Tables("pomain.posub").Current.Delete   (还不能马上删除清零的行,要先关闭下当前窗体,再打开这个窗体然后删除)
     End If
End If
DataTables("posub").Save()
Tables("pomain").AllowEdit = False
Tables("posub").AllowEdit = False
e.Form.Close  ‘----一定要关闭下当前窗体才可以


[此贴子已经被作者于2016/7/23 22:48:40编辑过]

--  作者:mayazql
--  发布时间:2016/7/24 9:21:00
--  
不知道什么原因
--  作者:大红袍
--  发布时间:2016/7/24 9:31:00
--  
 不清楚你的逻辑。做个例子发上来测试。
--  作者:mayazql
--  发布时间:2016/7/24 20:54:00
--  
订单模块,订单编辑 - 删除子表行
谢谢
好像传不上去,我放云盘了。谢谢

链接: http://pan.baidu.com/s/1kVGsz8F 密码: ujmm
[此贴子已经被作者于2016/7/24 21:01:09编辑过]

--  作者:Hyphen
--  发布时间:2016/7/25 9:04:00
--  
去掉窗口beforeClose事件

订单子表DataRowDeleting


Dim Val As Integer

Val = DataTables("posub").SQLCompute("Sum(数量)","申请单子表标识 = \'"& e.DataRow("申请单子表标识") &"\' And 订单子表标识 <> \'" & e.DataRow("订单子表标识") & "\' " )

Dim dr As DataRow = DataTables("prsub").find("pr子表标识 = \'" &  e.DataRow("申请单子表标识") & "\' ")
If dr IsNot Nothing  Then
    dr("订单数量") = Val
End If

--  作者:mayazql
--  发布时间:2016/7/25 11:37:00
--  
谢谢