以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 主表锁定后,关联表还可以添加数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171450) |
|
-- 作者:夜点蚊香 -- 发布时间: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("序号")
|
|
-- 作者:有点蓝 -- 发布时间:2021/8/30 17:36:00 -- 下面代码是搞笑的么,永远只判断第一行数据?或者说"学生排课档案"永远只有一行数据? Dim dr As DataRow = DataTables("学生排课档案").Datarows(0) |
|
-- 作者:夜点蚊香 -- 发布时间:2021/8/30 17:54:00 -- 我也发现这个问题了。判断当前行。 |
|
-- 作者:夜点蚊香 -- 发布时间: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
|
|
-- 作者:有点蓝 -- 发布时间:2021/8/30 20:09:00 -- 代码在哪个表的事件?和"学生排课档案"有什么关系? |
|
-- 作者:夜点蚊香 -- 发布时间:2021/8/31 9:09:00 -- 主表是 课程档案DAY 关联表是 学生排课档案 代码在 学生排课档案 的BeforeAddDataRow里
[此贴子已经被作者于2021/8/31 9:10:36编辑过]
|
|
-- 作者:有点蓝 -- 发布时间: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 |
|
-- 作者:夜点蚊香 -- 发布时间:2021/8/31 9:34:00 -- 代码可以了,没看懂代码
|
|
-- 作者:有点蓝 -- 发布时间:2021/8/31 9:45:00 -- 2个问题, 1、麻烦先看看帮助:http://www.foxtable.com/webhelp/topics/0629.htm,BeforeAddDataRow的说明【增加一行之前执行。】,也就是这个新行还没有生出来,不存在 2、在关联表新增的时候,父表肯定是已经选中对应的行了,为什么不直接取,还要绕几个弯,是嫌电脑性能太好了吗
|
|
-- 作者:夜点蚊香 -- 发布时间:2021/8/31 9:55:00 -- 谢谢,明白了 |