Foxtable(狐表)用户栏目专家坐堂 → [求助]限制子表增加行数


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

主题:[求助]限制子表增加行数

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


加好友 发短信
等级:童狐 帖子:222 积分:2038 威望:0 精华:0 注册:2011/3/4 19:40:00
[求助]限制子表增加行数  发帖心情 Post By:2013/10/26 14:04:00 [只看该作者]

请教各位老大:如何控制父表一个单号,除管理员外的其他用户在子表中增加行少于6行。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:限制子表增加行数.foxdb


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/26 14:40:00 [只看该作者]

.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:限制子表增加行数.foxdb


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


加好友 发短信
等级:童狐 帖子:222 积分:2038 威望:0 精华:0 注册:2011/3/4 19:40:00
  发帖心情 Post By:2013/10/26 15:16:00 [只看该作者]

谢bin老师!


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


加好友 发短信
等级:童狐 帖子:222 积分:2038 威望:0 精华:0 注册:2011/3/4 19:40:00
  发帖心情 Post By:2013/10/27 17:16:00 [只看该作者]

bin老师:当子表引用了父表的的数据,子表增加超过7行提示运行出错,好象没什么影响,但总是提示出错,也不好,可否增加到6行就不增加,而不用删除。
图片点击可在新窗口打开查看此主题相关图片如下:运行错误.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:限制子表增加行数bin.foxdb




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


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


加好友 发短信
等级:童狐 帖子:222 积分:2038 威望:0 精华:0 注册:2011/3/4 19:40:00
  发帖心情 Post By:2013/10/27 20:36:00 [只看该作者]

甜老师的方法可行,谢谢!

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


加好友 发短信
等级:幼狐 帖子:184 积分:3279 威望:0 精华:0 注册:2011/2/20 6:24:00
  发帖心情 Post By: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编辑过]

 回到顶部