以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]限制子表增加行数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41752) |
||||
-- 作者:djyjcl -- 发布时间:2013/10/26 14:04:00 -- [求助]限制子表增加行数 请教各位老大:如何控制父表一个单号,除管理员外的其他用户在子表中增加行少于6行。
|
||||
-- 作者:Bin -- 发布时间:2013/10/26 14:40:00 -- .
|
||||
-- 作者:djyjcl -- 发布时间:2013/10/26 15:16:00 -- 谢bin老师! |
||||
-- 作者:djyjcl -- 发布时间:2013/10/27 17:16:00 -- bin老师:当子表引用了父表的的数据,子表增加超过7行提示运行出错,好象没什么影响,但总是提示出错,也不好,可否增加到6行就不增加,而不用删除。 此主题相关图片如下:运行错误.jpg
|
||||
-- 作者:有点甜 -- 发布时间:2013/10/27 19:32:00 -- 把这段代码放到 beforeadddatarow 事件去 Dim count As Integer = DataTables("入库明细").Compute("count(_Identify)", "入库单编号 = \'" & Tables("入库").Current("入库单编号") & "\'") If count >= 6 Then e.Cancel = True End If
|
||||
-- 作者:djyjcl -- 发布时间:2013/10/27 20:36:00 -- 甜老师的方法可行,谢谢! |
||||
-- 作者:一叶扁舟 -- 发布时间:2013/11/1 11:57:00 -- 我也上一个,初学乍练,请多指教! 一、增加限制:入库明细表作为主表时,不能增加行。 二、改在”增加行前“事件中判断。 三、用”e.Cancel=True“实现,而非删除行。 四、中间遇到些错误,我也不懂,搜索帮助文件,摸索着前进吧! 上传不了附件,贴代码吧! BeforeAddDataRow事件代码 If MainTable.Name="入库明细" MessageBox.Show("作为主表,不能新增记录","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True End If If MainTable.Name="入库" Dim dr1 As Row=Tables("入库明细").Current Dim dr2 As DataRow = DataTables("入库").Find("入库单编号=\'" & dr1.DataRow("入库单编号") & "\'") If dr2.GetChildRows("入库明细").Count >= 6 Then MessageBox.Show("明细记录最多6个","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel=True End If End If [此贴子已经被作者于2013-11-1 12:02:11编辑过]
|