SPFieldCalculated Class
Represents a calculated field in a list.
Inheritance Hierarchy
System.Object
Microsoft.SharePoint.SPField
Microsoft.SharePoint.SPFieldCalculated
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public Class SPFieldCalculated _
Inherits SPField
Dim instance As SPFieldCalculated
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public class SPFieldCalculated : SPField
Remarks
If you set the properties of the SPFieldCalculated class, you must call the Update method for changes to take effect in the database.
Use the Formula property to implement a formula in a calculated field. For information about the different kinds of formulas that you can use, see Calculated Field Formulas.
Note
Windows SharePoint Services 3.0 does not support inheriting from this class.
Examples
The following example creates a calculated field in a list and adds it to a view. The calculated field displays "Yes" if the value of MyColumn2 is greater than MyColumn1.
Dim webSite As SPWeb = SPContext.Current.Site.AllWebs("MyWebSite")
Try
Dim list As SPList = webSite.Lists("MyList")
Dim fields As SPFieldCollection = list.Fields
Dim newFieldName As String = fields.Add("MyNewColumn", SPFieldType.Calculated, False)
Dim newField As SPFieldCalculated = CType(fields(newFieldName), SPFieldCalculated)
newField.Formula = "=[MyColumn1]<[MyColumn2]"
newField.Update()
Dim view As SPView = list.Views("MyView")
Dim viewFields As SPViewFieldCollection = view.ViewFields
viewFields.Add(newFieldName)
view.Update()
Finally
webSite.Dispose()
End Try
using (SPWeb oWebsite = SPContext.Current.Site.AllWebs["Website_Name"])
{
SPList oList = oWebsite.Lists["MyList"];
SPFieldCollection collFields = oList.Fields;
string strNewFieldName = collFields.Add("MyNewColumn",
SPFieldType.Calculated, false);
SPFieldCalculated strNewField =
(SPFieldCalculated)collFields[strNewFieldName];
strNewField.Formula = "=[Column1]<[Column2]";
strNewField.Update();
SPView oView = oList.Views["MyView"];
SPViewFieldCollection collViewFields = oView.ViewFields;
collViewFields.Add(strNewFieldName);
oView.Update();
}
Note
Certain objects implement the IDisposable interface, and you must avoid retaining these objects in memory after they are no longer needed. For information about good coding practices, see Best Practices: Using Disposable Windows SharePoint Services Objects.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.