以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]自定义函数中怎么引用列名条件-已解决 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109616) |
-- 作者:shenyl0211 -- 发布时间:2017/11/15 18:10:00 -- [求助]自定义函数中怎么引用列名条件-已解决 有一个允许修改当前行的条件:当前用户是“申请人”且(“复核日期”是空白或要修改的列名是“附件”) 在列表情况下,PrepareEdit事件中,有e参数,可以这样引用列名: If _username = e.Row("申请人") AndAlso (e.Row.isnull("复核日期") OrElse e.Col.name="附件") Then 但在窗口情况下,修改后,通过执行自定义函数保存修改时,上述代码需要修改,请问下列代码该怎么完善: If _username = r("申请人") AndAlso (r.isnull("复核日期") OrElse r.???=“附件” ) Then 谢谢!
[此贴子已经被作者于2017/11/16 11:30:16编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/11/15 22:07:00 --
你应该在enter事件处理了吧?而不是在保存的时候
http://www.foxtable.com/webhelp/scr/2342.htm
如果你要在保存的时候处理,你需要检查对比哪些列的数据被修改过了,可以通过判断之前的值和之后的值,如 http://www.foxtable.com/webhelp/scr/2369.htm
|
-- 作者:shenyl0211 -- 发布时间:2017/11/16 11:30:00 -- 谢谢甜版。第二种方法是不行的,因为有e参数,就不用这么复杂了。 [此贴子已经被作者于2017/11/16 11:31:27编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/11/16 12:11:00 -- 以下是引用shenyl0211在2017/11/16 11:30:00的发言:
谢谢甜版。第二种方法是不行的,因为有e参数,就不用这么复杂了。 [此贴子已经被作者于2017/11/16 11:31:27编辑过]
那你怎么做的?你在什么时候出发保存修改函数的?怎么来的e参数。 |
-- 作者:shenyl0211 -- 发布时间:2017/11/16 14:12:00 -- 甜版:
怪我没有表达清楚。我的意思是:你的第二种方法采用了e.col.name,但如果用于解决我现在的问题会有些复杂,也容易失控。而采用自定义函数是行不通的,所以,在不能采用e.col.name的情况下,必须按照你说的第一种方法去思考。
|