This topic has not yet been rated - Rate this topic

SPFieldCalculated Class

Represents a calculated field in a list.

System.Object
  Microsoft.SharePoint.SPField
    Microsoft.SharePoint.SPFieldCalculated

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online
[SubsetCallableTypeAttribute]
[ClientCallableTypeAttribute(Name = "FieldCalculated", ServerTypeId = "{F9EE4627-2914-46cd-806A-4921F96A0C72}")]
public class SPFieldCalculated : SPField

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 Note

Windows SharePoint Services 3.0 does not support inheriting from this class.

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.

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();
}   
NoteNote

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 Disposing Objects.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
HTML output? Is there a better way?
If you're looking to inherit from the class you've probably seen the solution on pathtosharepoint where a JS solution rewrites field values as html if needed.

Or, sharepoint designer can be used to disable output escaping in the xslt for the field on the display.

Why make the class sealed?  What if you want to make a list that composes a URL out of values in the other columns?  Seems like that would be such a small change from MSFT.


MOSS 2010 does not support inheriting from this class.

Plese update the note to

Windows SharePoint Services 3.0 and MOSS 2010 does not support inheriting from this class.

reason:class haven't public constructor.