首先描述一下问题:
我有两个列 Date 和 Status
其中Date是该事件的执行时间,Status是该事件当前的状态(两个值:Past,过期了 Current,还未到期或者正在执行)
我想用公式自动计算Status的值,用Date和当前的时间比较得到结果,如果Date的时间比当前时间小说明过期了,那就将Status改为Past,否则是Current。
我之前查了一下, 验证栏好像可以实现, 参照的博客网址:
http://www.cnblogs.com/redroot/archive/2012/01/31/2334006.html
http://kb.cnblogs.com/a/1666861/
所以我根据这个参照写了之下的语句在Status的验证栏里:
=IF([Date]<TODAY(), "Past", "Current")
但是我点击OK后,系统提示错误,会说“The formula cannot refer to another column.”
公式不允许引用其他列的值,但是我查阅的资料和微软的官方的说明都允许引用同行的其他列的值啊~~~
然后我就不知道怎么办到了,求大家帮助啊~~~ 比较急啊~~~
------解决方案--------------------
列名不对,如果是中文的话 就写中文就好了。
验证是针对整个list ,对每个栏我没有做成功过。
------解决方案--------------------
再不行可以通过代码来试试
------解决方案--------------------
首先,你这个需求应该是用“计算值”类型的字段,而不是栏验证(栏验证是用来验证用户输入是否合法的,如果不合法的话,是不允许保存的)
其次,公式中是不允许使用Today函数的(你贴的那个链接里也说了,你可能没仔细看,呵呵)
实际上,这个需求在SharePoint现有框架下不写代码是无法实现的(因为公式中不支持Today)
SharePoint字段值是不会“自动”发生变化的
所以如果要实现这个需求,一般的做法都是写一个TimerJob,每天跑一次,遍历这个列表,去修改里面的字段值