2010-04-13 193 views
0

我有一个最初定义为日期/时间并已用日期/时间信息手动填充的列的SharePoint列表。我真的想根据另一个字段更改的状态自动填充此列(例如= IF([theStatus] =“Closed”,[Modified])。可以将SharePoint列从日期/时间更改为计算日期/时间

当我编辑此日期字段时,要添加上面的代码,我的脚本粘贴到“计算”栏,保存时,我得到以下错误:

配方中含有引用(S)到现场(S)

会。感谢我知道我做错了什么或SharePoint只是不允许这种类型的修改

+0

只需重新阅读大约六次,我想你需要澄清你在这里要做的事情。当状态变为关闭状态时,我将其读取,然后将当前数据放入称为“关闭日期”的字段中,这样您就可以永久记录关闭记录的时间。如果是这样,那么事件接收器/工作流程是您能够做到这一点的唯一方法。请澄清你的问题。 – Ryan 2010-04-14 13:56:40

回答

2

在DateTime字段的情况下,“计算”defau这个值主要用于像=Today+1这样的东西。不幸的是,您不能引用其他字段,您可以引用作为变量的唯一东西是Today。为了引用计算中的字段,您需要使用配置为显示日期时间而不是日期时间字段类型的计算字段类型。不幸的是,您不能将现有的DateTime字段转换为计算字段,因此您必须创建一个新字段。

但是,如果您想在对象模型中玩游戏,则始终可以使用工作流或事件处理程序。我认为如果你走了这条路线,SharePoint Designer工作流程也可以做到这一点。

+0

你的评论对于'默认'值是正确的,但那不是什么OP后(或至少这是我读他的问题)。 – Ryan 2010-04-14 13:49:00

+0

@Ryan缺省值仅在前2个句子中得到解决。我和他们一样阅读他的问题,但我建议的方法是工作流或事件处理程序的替代方法,这是一个计算字段类型。 – 2010-04-15 13:58:29

1

其实,我做了这样的事情。从用户输入的日期和时间,我不得不建立一个用户定义代码,例如“2009/12/13 07:05-AVALTG23”。

我没有附带任何其他方式:

  • 创建一个自定义操作(在VS2005),给定一个日期时间,格式,并与我想要的操作返回一个字符串。既然你正在编写你的自定义动作并返回一个字符串,你可以做任何你想做的事情。
  • 创建对象时,会启动工作流程,填充我的“自定义代码”字段。

因此,对于任何作为得到一个列值,格式化和populting另一这么简单,我不得不开发自定义的活动,创建工作流.... 大量的工作,但相当多的唯一途径我能找到。

希望这会有所帮助!