以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口中的Table是一个关联表,如何判断Current当前行的子行是否有数据修改过?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=114377)

--  作者:linyunu
--  发布时间:2018/2/5 2:05:00
--  [求助]窗口中的Table是一个关联表,如何判断Current当前行的子行是否有数据修改过?
窗口中的Table是一个关联表,如何判断Current当前行的子行是否有数据修改过?
[此贴子已经被作者于2018/2/5 2:06:00编辑过]

--  作者:有点甜
--  发布时间:2018/2/5 8:49:00
--  
Dim r As Row = Tables("表A").current
For Each dr As DataRow In r.DataRow.GetChildRows("表B")
    If dr.RowState <> DataRowState.Unchanged Then
        msgbox("新增或修改了")
        Exit For
    End If
Next

--  作者:linyunu
--  发布时间:2018/2/5 12:19:00
--  
Dim r As Row = Tables("出库").current
If r IsNot Nothing Then
    If r.DataRow.RowState = DataRowState.Unchanged Then
        For Each dr As DataRow In r.DataRow.GetChildRows("出库明细")
            If dr.RowState = DataRowState.Unchanged Then
                Tables("出库").Position = Tables("出库").Position = 0
                Exit For
            End If
        Next
    End If
End If

老师,麻烦看下哪里出错了

--  作者:有点甜
--  发布时间:2018/2/5 12:23:00
--  

你这段代码要实现什么?

 

你这个代码什么意思?

 

Tables("出库").Position = Tables("出库").Position = 0

 

你要这样?

 

Tables("出库").Position = 0


--  作者:linyunu
--  发布时间:2018/2/5 12:31:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180205122756.jpg
图片点击可在新窗口打开查看
首单的点击代码 

判断是否有过修改,没有就执行代码


--  作者:有点甜
--  发布时间:2018/2/5 14:37:00
--  

Dim r As Row = Tables("出库").current

Dim changed As Boolean = false
If r IsNot Nothing Then
    If r.DataRow.RowState <> DataRowState.Unchanged Then
        For Each dr As DataRow In r.DataRow.GetChildRows("出库明细")
            If dr.RowState <> DataRowState.Unchanged Then
                changed = true
                Exit For
            End If
        Next
    End If
End If

If changed = false then

    msgbox(123)

    Tables("出库").Position = 0

else

    msgbox("修改了")

End If

[此贴子已经被作者于2018/2/5 14:38:05编辑过]

--  作者:linyunu
--  发布时间:2018/2/5 21:31:00
--  
老师,你的代码我试了一直不可以

以下代码就可以 ;如果父行和子行都未曾修改,就执行代码。不知道这个代码有没有错误,在网络多用户同时使用的这个窗口的情况下,【Tables("出库.出库明细").CanUndo】这个代码判断会有影响吗?

With  Tables("出库")
    If .Current IsNot Nothing And e.Form.Controls("Panelsj").Enabled = False Then
        If .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
            If Tables("出库.出库明细").CanUndo = False Then
                .Position = .Position = 0
            End If
        End If
    End If
End With

--  作者:有点蓝
--  发布时间:2018/2/5 21:49:00
--  
CanUndo只能判断本地窗口的编辑状态,对其它用户没有影响,也不会受其它用户影响
--  作者:linyunu
--  发布时间:2018/2/5 22:26:00
--  
好的,谢谢老师的解答