SharePoint列是否可以从日期/时间更改为计算日期/时间

SharePoint列是否可以从日期/时间更改为计算日期/时间,sharepoint,Sharepoint,我有一个SharePoint列表,其中的列最初定义为日期/时间,并已手动填充日期/时间信息。我真的很想根据另一个字段的状态变化(例如=IF([theStatus]=“Closed”,[Modified]),自动填充此列 编辑要添加上述代码的日期字段时,我将脚本粘贴到“计算”字段中,保存时出现以下错误: 公式包含对字段的引用 如果知道我做错了什么,或者SharePoint不允许进行此类修改,我将不胜感激。对于DateTime字段,“计算”默认值主要用于=Today+1之类的内容。您不能引用其他字段

我有一个SharePoint列表,其中的列最初定义为日期/时间,并已手动填充日期/时间信息。我真的很想根据另一个字段的状态变化(例如=IF([theStatus]=“Closed”,[Modified]),自动填充此列

编辑要添加上述代码的日期字段时,我将脚本粘贴到“计算”字段中,保存时出现以下错误:

公式包含对字段的引用


如果知道我做错了什么,或者SharePoint不允许进行此类修改,我将不胜感激。

对于DateTime字段,“计算”默认值主要用于
=Today+1
之类的内容。您不能引用其他字段,不幸的是,您唯一可以作为变量引用的是
Today
。为了在计算中引用字段,您需要使用配置为显示DateTime的计算字段类型,而不是DateTime字段很遗憾,您无法将现有的DateTime字段转换为计算字段,因此必须创建一个新字段


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

对于DateTime字段,“计算的”默认值主要用于
=Today+1
之类的内容。您不能引用其他字段,不幸的是,您唯一可以作为变量引用的是
Today
。为了在计算中引用字段,您需要使用配置为显示DateTime的计算字段类型,而不是DateTime字段很遗憾,您无法将现有的DateTime字段转换为计算字段,因此必须创建一个新字段


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

实际上,我是这样做的。根据用户输入的日期和时间,我必须构建一个用户定义代码,类似于“2009/12/13 07:05-AVATG23”比如说

我没有别的办法:

  • 创建一个自定义操作(在VS2005中),在给定日期时间的情况下,该操作以我想要的格式和操作返回一个字符串。由于您正在编写自定义操作并返回一个字符串,因此您几乎可以做任何您想做的事
  • 创建对象时,将启动一个工作流,该工作流将填充我的“自定义代码”字段
所以,对于任何简单的事情,比如获取一个列值、格式化它并填充另一个列值,我必须开发一个自定义活动并创建一个工作流。。。。 很多工作,但几乎是我能找到的唯一方法


希望这有帮助!

事实上,我做了类似的事情。根据用户输入的日期和时间,我必须构建一个用户定义的代码,例如“2009/12/13 07:05-AVATG23”

我没有别的办法:

  • 创建一个自定义操作(在VS2005中),在给定日期时间的情况下,该操作以我想要的格式和操作返回一个字符串。由于您正在编写自定义操作并返回一个字符串,因此您几乎可以做任何您想做的事
  • 创建对象时,将启动一个工作流,该工作流将填充我的“自定义代码”字段
所以,对于任何简单的事情,比如获取一个列值、格式化它并填充另一个列值,我必须开发一个自定义活动并创建一个工作流。。。。 很多工作,但几乎是我能找到的唯一方法


希望这有帮助!

您的评论对于“默认”值是正确的,但这不是OP想要的(或者至少我是这样理解他的问题的)@Ryan默认值仅在前两句中提到。我阅读了他的问题,和你一样,但我建议使用一种方法来替代工作流或事件处理程序,这是一种计算字段类型。你的注释对于“默认”值是正确的,但这不是OP的目的(或者至少我是这样理解他的问题的)@Ryan默认值只在前两句中提到。我读他的问题和你读的一样,但我建议使用一种方法来替代工作流或事件处理程序,这是一种计算字段类型。只需重新阅读大约六遍,我想你需要澄清一下你在这里试图做什么。我读它的时候就知道了n状态更改为关闭,然后将当前数据放入名为“关闭日期”的字段中所以你有一个记录关闭时间的永久记录。如果是这样,那么事件接收者/工作流程是你能够做到这一点的唯一方法。请澄清你的问题。只需重新阅读大约六次,我认为你需要澄清你在这里试图做什么。我阅读它就像状态更改为“关闭”时,然后将当前将数据输入一个名为“关闭日期”的字段,这样您就有了记录关闭时间的永久记录。如果是这样,那么事件接收者/工作流是您唯一能够做到这一点的方法。请澄清您的问题。