以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【代码求助】如何锁定子表对应行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27113)

--  作者:卧美吻花
--  发布时间:2012/12/22 12:11:00
--  【代码求助】如何锁定子表对应行?
有一个订单表,一个订单详情表

代码如下:
    Dim drs As List(of DataRow)
    drs = e.DataRow.GetChildRows("订单详情表")
    For Each dr As DataRow In drs
       
10          dr("状态列") = "锁"
20          Tables("订单详情表").Rows(dr).Locked = True
30         drs("订单详情表").locked = True 
    Next
       
10行运行正常
20或者30行会报错,无法运行

求解。。。。。。。。。



另外,已经反反复复看过帮助文件了,别怪我懒啊图片点击可在新窗口打开查看
[此贴子已经被作者于2012-12-22 12:11:47编辑过]

--  作者:客家阿哥
--  发布时间:2012/12/22 12:37:00
--  

我是这样处理的,看看有没有用?

---------------------------

If Tables("出库单.出库明细").Rows.Count = 0 Then
    MessageBox.Show("当前没有出库明细!")
    Return
End If
Dim dr As DataRow= Tables("出库单").Current.DataRow()
If dr.IsNull("业务员") Or dr.IsNull("业务类型") Then
    MessageBox.Show("请正确选择正确的业务员和业务类型!")
Else
    For Each r As Row In Tables("出库单.出库明细").Rows
        If r.IsNull("小计")Then
            Tables("出库单").Current.Locked=False
            MessageBox.Show("出库明细小计不能为空")
            r.Locked=False
            Return
        Else
            r.Save
            r.Locked = True
            If dr("结清") = True Then
                r("结清")= True
            Else
                r("结清")= False
            End If
            Tables("出库单").Current.Save
            Tables("出库单").Current.Locked=True
        End If
    Next
    If dr("结清") = True Then
        dr("收到货款")= dr("货款合计")
    Else
        dr("收到货款")= 0
    End If


--  作者:卧美吻花
--  发布时间:2012/12/22 13:29:00
--  
谢谢客家阿哥,根据你的代码修改了一下,ok了图片点击可在新窗口打开查看
--  作者:lin_hailun
--  发布时间:2012/12/22 13:34:00
--  
 
Tables("订单详情表").Rows(Tables("订单详情表").FindRows(dr)).Locked = True