I should also mention that while SSRS is expression-based, there are several areas of functionality which overlap with Crystal's formula functionality.
In addition to what I outlined aboved, you can add calculated fields to your dataset itself. So instead of typing
=Fields!Field1.Value + Fields!Field2.Value + Fields!Field3.Value and =SUM(Fields!Field1.Value + Fields!Field2.Value + Fields!Field3.Value), you can create a calculated field with the expression:
=Fields!Field1.Value + Fields!Field2.Value + Fields!Field3.Value and then reference it in your report like
=Fields!MyCalculatedField.Value and =SUM(Fields!MyCalculatedField.Value). This has the potential for more accuracy (your expression is stored in just one place) and can save you a bit in development time.
Another overlap area is adding custom code. You can add Visual Basic functions to manipulate values (let's say for example you simply want to multiply a field by two). You can create a function to accept a value as input and return another value as output. So your function would look like the following:
Code:
Function NewValue(ByVal SomeValue As Integer) As Integer
Return SomeValue * 2
End Function
You would then call the function as follows:
=Code.NewValue(Fields!MyField.Value). Of course, you might not want to waste your time creating functions for a simple multiplication, but when it comes to more complex business rules, custom code and functions are a great tool to encapsulate your logic.