【问题标题】:Can SharePoint column be changed from date/time to calculated date/timeSharePoint 列是否可以从日期/时间更改为计算的日期/时间
【发布时间】:2015-08-27 05:09:48
【问题描述】:

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

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

公式包含对字段的引用。

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

【问题讨论】:

  • 只需重新阅读这篇文章大约六遍,我认为您需要澄清您要在这里做什么。我将其读取为状态更改为已关闭,然后将当前数据放入名为“关闭日期”的字段中,这样您就可以获得记录何时关闭的永久记录。如果是这样,那么事件接收器/工作流是您能够做到这一点的唯一方法。请澄清您的问题。

标签: sharepoint


【解决方案1】:

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

不过,如果您想在对象模型中发挥作用,您始终可以使用工作流或事件处理程序。我认为,如果您走这条路,SharePoint Designer 工作流也可以解决问题。

【讨论】:

  • 您的评论对于“默认”值是正确的,但这不是 OP 所追求的(或者至少我是这样阅读他的问题的)。
  • @Ryan 默认值仅在前 2 句中解决。我读他的问题和你读的一样,但我建议一种方法可以替代工作流或事件处理程序,这是一种计算字段类型。
【解决方案2】:

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

我没有用其他方式来:

  • 创建一个自定义操作(在 VS2005 中),给定一个日期时间,返回一个格式为我想要的操作的字符串。由于您正在编写自定义操作并返回一个字符串,因此您几乎可以做任何您想做的事情。
  • 创建对象后,会启动一个工作流,它会填充我的“自定义代码”字段。

因此,对于获取列值、对其进行格式化和填充另一个如此简单的事情,我必须开发一个自定义活动并创建一个工作流...... 很多工作,但几乎是我能找到的唯一方法。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多