Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口中的Table是一个关联表,如何判断Current当前行的子行是否有数据修改过?


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

主题:[求助]窗口中的Table是一个关联表,如何判断Current当前行的子行是否有数据修改过?

帅哥哟,离线,有人找我吗?
linyunu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:249 积分:1859 威望:0 精华:2 注册:2018/1/16 20:53:00
[求助]窗口中的Table是一个关联表,如何判断Current当前行的子行是否有数据修改过?  发帖心情 Post By:2018/2/5 2:05:00 [只看该作者]

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:249 积分:1859 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By: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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/5 12:23:00 [只看该作者]

你这段代码要实现什么?

 

你这个代码什么意思?

 

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

 

你要这样?

 

Tables("出库").Position = 0


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


加好友 发短信
等级:童狐 帖子:249 积分:1859 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By:2018/2/5 12:31:00 [只看该作者]


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

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:249 积分:1859 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By: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

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/2/5 21:49:00 [只看该作者]

CanUndo只能判断本地窗口的编辑状态,对其它用户没有影响,也不会受其它用户影响

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


加好友 发短信
等级:童狐 帖子:249 积分:1859 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By:2018/2/5 22:26:00 [只看该作者]

好的,谢谢老师的解答

 回到顶部