以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 应该是个Bug BeforeDeleteDataRow (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53749) |
-- 作者:e-png -- 发布时间:2014/7/14 20:38:00 -- 应该是个Bug BeforeDeleteDataRow 1、在订单表的 BeforeDeleteDataRow 设置代码: With Tables("订单") For i As Integer = .BottomPosition To.TopPosition Step -1 output.show(i) If Tables("出库").count > 100 \' 出库表实际没有100行哦。。。 e.Cancel = True End If Next End With 2、在订单表手工选择N行,然后右键删除选择的行,会提示N个: Exception has been thrown by the target of an invocation. 的错误。。。
|
-- 作者:有点甜 -- 发布时间:2014/7/14 20:48:00 -- 思路错了,不能这样写代码。如果是想阻止删除,就直接写
If Tables("出库").count > 100 \' 出库表实际没有100行哦...
每删除一行之前都会触发这儿事件的。 |
-- 作者:e-png -- 发布时间:2014/7/14 21:32:00 -- 订单表的 BeforeDeleteDataRow: 这样也不行呢? With Tables("订单") If .BottomPosition <> .TopPosition msgbox("静止删除多行") e.Cancel = True End If End With
|
-- 作者:有点甜 -- 发布时间:2014/7/14 21:35:00 -- 在这个事件,不能使用Table的一些属性,比如 BottomPosition 和 TopPosition,而且用这两个判断也是不准确的。
用其它方法变通代替。 |
-- 作者:e-png -- 发布时间:2014/7/15 9:36:00 -- 这就有点难了,现成的事件不能用可惜了。 (表的keyup事件也不能用某些属性,在AfterSelRangeChange属性中用,再给变量赋值来确定,再在BeforeDeleteDataRow中判断这个变量情况倒是可以,但是复杂些的判断时,每次选择时都会执行效率很差) 我要求是这样的: 0、要求允许删除多行, 1、在删除行前要判断是否是选择了多行; 2、在选择行中,是否在子表中有对应的记录(比如用编号关联) 3、上面的删除指定是“手工删除”。 注:上面要求的是(操作人)用手工右键删除多行,做个按钮我没问题的,不想按钮太多了。····· 呵呵。 |
-- 作者:有点甜 -- 发布时间:2014/7/15 9:38:00 -- 直接去控制菜单代码。 |
-- 作者:e-png -- 发布时间:2014/7/15 10:10:00 -- 菜单是通用的,无法对具体的个表(包括窗口表)进行操作。 |
-- 作者:有点甜 -- 发布时间:2014/7/15 10:12:00 -- 以下是引用e-png在2014-7-15 10:10:00的发言:
菜单是通用的,无法对具体的个表(包括窗口表)进行操作。
系统菜单,不是可以修改的么?只是修改一下快捷菜单的代码而已。 |