【问题标题】:SharePoint calculated field based on another hidden field基于另一个隐藏字段的 SharePoint 计算字段
【发布时间】:2010-12-15 19:22:19
【问题描述】:

在生产部署中,我们有一个计算字段,该字段由引用其他两个隐藏字段的公式组成。这是一个简单的连接,带有一点用于确定版本的逻辑

=CONCATENATE(IF(_MajorVersion="","0",_MajorVersion),".",IF(_MinorVersion="","0",_MinorVersion))

用户无意中修改了列表数据表视图中的公式,现在公式已损坏,如下所示

=CONCATENATE(IF(#NAME="","0",#NAME),".",IF(#NAME="","0",#NAME))

如果将这个公式替换为损坏前的版本,它不会保存,并给出以下错误

The formula refers to a column that does not exist. Check the formula for spelling mistakes or change the non-existing column to an existing column. at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateField(String bstrUrl, String bstrListName, String bstrXML) at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)

_MajorVersion 和 _MinorVersion 列确实存在,但被隐藏并定义如下:

<Field SourceID="http://schemas.microsoft.com/sharepoint/3.0" ID="{GUID}" Name="_MajorVersion" StaticName="_MajorVersion" DisplayName="_MajorVersion" Group="ApplicationStuff" Type="Number" Required="FALSE" ReadOnly="FALSE" Sealed="FALSE" Hidden="TRUE" ShowInListSettings="FALSE" ShowInEditForm="FALSE" ShowInDisplayForm="FALSE" ShowInNewForm="FALSE" />

我知道可以部署一项功能,使这些列可见,解决问题,然后重新隐藏它们。然而,要做到这一点,需要很多繁文缛节。任何人都知道在不部署代码的情况下做到这一点的方法吗?我也考虑过重新创建列表,但是这个列表中有数千个 SPListItem。

任何建议将不胜感激!

【问题讨论】:

    标签: sharepoint sharepoint-2007 spfield


    【解决方案1】:

    取消隐藏字段(使用某种实用程序,编写起来非常简单),保存公式并隐藏回来。但我认为您可能应该以其他方式填充计算字段,例如 SPD 工作流或事件接收器。

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      相关资源
      最近更新 更多