Foxtable(狐表)用户栏目专家坐堂 → 跨表锁定


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

主题:跨表锁定

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/12 17:34:00 [显示全部帖子]

1、代码放在采购订单表的DataColChanged事件,判断的是【Case "勾选"】勾选这个列的数据变化才会触发事件。

而仓库账表使用的是【Dim dts As List(Of DataRow) = DataTables("采购订单").SQLSelect("[单号] ='" & e.DataRow("单号") & "'")】。SQLSelect查询后台数据库的,查询结果和界面的主表没有任何关系,SQLSelect查询结果是无法触发任何事件的,改为Select

2、在删除的时候,已经把名称删除了,下面还使用名称进行查询,肯定是无法查询到任何数据的

        If dr.IsNull("进仓数量") OrElse dr.IsNull("进仓单价") Then
            'dr("名称") = Nothing 名称已经清空
            'dr("规格") = Nothing
            'dr("计量单位") = Nothing
            'dr("单号") = Nothing
            'dr("进仓单价") = Nothing
            dr("进仓金额") = Nothing
        Else
下面还使用名称进行条件查询肯定是无法查询到任何数据的
            'Dim ds As DataRow = DataTables("采购订单").SQLFind("[单号] ='" & e.DataRow("单号") & "' And [名称] ='" & e.DataRow("名称") & "' And [规格]" & IIF(e.DataRow.IsNull("规格")," Is Null"," ='" & e.DataRow("规格")  & "'") & "'","",0)
            'If ds IsNot Nothing Then

自己考虑使用什么条件进行查询合适,或者不要清空名称和规格

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/12 20:28:00 [显示全部帖子]

如果要触发表事件,在表事件里处理,就必须操作已加载的数据。

如果是直接改后台数据的,需要重新加载,前台表格才能刷新

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/13 8:49:00 [显示全部帖子]

勾选和锁定使用的是SQLSelect,更改数据后没有保存

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/13 9:59:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/13 10:43:00 [显示全部帖子]

        Else
msgbox(“这里有弹出吗”)
            dt.Locked = False
            dt("勾选") = False
        End If

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/13 10:56:00 [显示全部帖子]

什么样的条件才解锁?自己判断好这个条件

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/13 12:09:00 [显示全部帖子]

这种代码不适合用在表事件,更加不适合做重置列,适合放到按钮处理。

A表查询B数据然后重新加载B表,B表受触发又查询A数据然后重新加载A表,而A表这时还没有处理完毕,数据却被重新加载了。

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/13 14:36:00 [显示全部帖子]

理论上不需要了。


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/14 8:46:00 [显示全部帖子]

msgbox(e.DataRow.OriginalValue("单号"))
msgbox(e.DataRow.OriginalValue("名称"))
msgbox(e.DataRow.OriginalValue("规格"))
   Dim dts1 As List(Of DataRow) = DataTables("采购订单").SQLSelect("[单号] ='" & e.DataRow.OriginalValue("单号") & "' And [名称] ='" & e.DataRow.OriginalValue("名称") & "' And [规格]" & IIF(e.DataRow.OriginalValue("规格") IsNot Nothing," Is Null"," ='" & e.DataRow.OriginalValue("规格")  & "'"))

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/14 11:15:00 [显示全部帖子]

我只能指出语法问题。业务逻辑的处理只能靠自己了

逻辑列不需要加单引号

OrElse [结账] = false) And 

 回到顶部
总数 15 1 2 下一页