2010-12-15 129 views
0

在生產部署中,我們有一個計算字段,該字段由引用其他兩個隱藏字段的公式組成。這是用少量邏輯簡單級聯,用於確定版本基於另一個隱藏字段的SharePoint計算字段

=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" />

我知道這是可能部署一個功能,它將使這些列可見,解決問題,然後重新隱藏它們。但是,有很多紅色磁帶可以讓這種情況發生。任何人都知道如何在不部署代碼的情況下做到這一點?我也考慮重新創建列表,但是在這個列表中有成千上萬的SPListItems。

任何建議,將不勝感激!

回答

1

取消隱藏字段(使用某種實用工具,寫入非常簡單),保存公式並隱藏回去。但我認爲你應該用其他方式來填補計算的領域,例如SPD工作流程或事件接收器。