以文本方式查看主题

-  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的情况下,必须按照你说的第一种方法去思考。