Foxtable(狐表)用户栏目专家坐堂 → 主表锁定后,关联表还可以添加数据


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

主题:主表锁定后,关联表还可以添加数据

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


加好友 发短信
等级:二尾狐 帖子:582 积分:4439 威望:0 精华:0 注册:2020/4/15 19:53:00
主表锁定后,关联表还可以添加数据  发帖心情 Post By:2021/8/30 17:16:00 [只看该作者]

关联表的DataRowAdding代码如下

Dim dr As DataRow = DataTables("学生排课档案").Datarows(0)
Dim pr As DataRow = dr.GetParentrow("课程档案DAY")
If pr.Locked = True Then
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("数据已锁定,不能添加新行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
e.DataRow("创建时间") = Date.Now()
e.DataRow("创建人") = _UserName
e.DataRow("序号") = e.DataTable.Compute("Max(序号)") + 1
e.DataRow("id") = e.DataRow("序号")

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106187 积分:540058 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/30 17:36:00 [只看该作者]

下面代码是搞笑的么,永远只判断第一行数据?或者说"学生排课档案"永远只有一行数据?

Dim dr As DataRow = DataTables("学生排课档案").Datarows(0)

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


加好友 发短信
等级:二尾狐 帖子:582 积分:4439 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2021/8/30 17:54:00 [只看该作者]

我也发现这个问题了。判断当前行。

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


加好友 发短信
等级:二尾狐 帖子:582 积分:4439 威望:0 精华:0 注册:2020/4/15 19:53:00
帮忙看一下代码,更改了判断当前行。还是有点问题。  发帖心情 Post By:2021/8/30 18:11:00 [只看该作者]

Dim dr As DataRow = Tables("学生排课档案").current.DataRow
Dim pr As DataRow = dr.GetParentrow("课程档案DAY")

If pr.Locked = True Then '判断主表状态
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("已经锁定,不能进行操作了!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Messagebox.Show(pr("课程档案编号"))
End If

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106187 积分:540058 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/30 20:09:00 [只看该作者]

代码在哪个表的事件?和"学生排课档案"有什么关系?

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


加好友 发短信
等级:二尾狐 帖子:582 积分:4439 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2021/8/31 9:09:00 [只看该作者]

主表是  课程档案DAY 关联表是 学生排课档案

代码在 学生排课档案 的BeforeAddDataRow里
[此贴子已经被作者于2021/8/31 9:10:36编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106187 积分:540058 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/31 9:18:00 [只看该作者]

Dim dr As DataRow = Tables("课程档案DAY").current.DataRow
If dr.Locked = True Then '判断主表状态
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("已经锁定,不能进行操作了!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

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


加好友 发短信
等级:二尾狐 帖子:582 积分:4439 威望:0 精华:0 注册:2020/4/15 19:53:00
代码可以了,没看懂代码  发帖心情 Post By:2021/8/31 9:34:00 [只看该作者]

Dim dr As DataRow = Tables("课程档案DAY").current.DataRow
If dr.Locked = True Then '判断主表状态
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("已经锁定,不能进行操作了!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

为什么 Dim dr As DataRow = Tables("课程档案DAY").current.DataRow 这行代码是判断当前新建行的主表行

逻辑不是应该 先判断当前关联行的行号 然后判断 关联行的主表行。然后再判断主表行的状态,在根据主表行的状态进行操作吗。


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106187 积分:540058 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/31 9:45:00 [只看该作者]

2个问题,
1、麻烦先看看帮助:http://www.foxtable.com/webhelp/topics/0629.htmBeforeAddDataRow的说明【增加一行之前执行。】,也就是这个新行还没有生出来,不存在
2、在关联表新增的时候,父表肯定是已经选中对应的行了,为什么不直接取,还要绕几个弯,是嫌电脑性能太好了吗

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


加好友 发短信
等级:二尾狐 帖子:582 积分:4439 威望:0 精华:0 注册:2020/4/15 19:53:00
  发帖心情 Post By:2021/8/31 9:55:00 [只看该作者]

谢谢,明白了

 回到顶部