Search code examples
sqlreporting-servicesssrs-2008dynamics-crmssrs-2012

SSRS Expression shows #Error while replacing brackets "(" ")"


I am writing an expression to replace sub string.

I am developing a SSRS report for Microsoft Dynamics 365 using FetchXML. I have a grid on report shows related rows of a record.

I have to remove everything inside brackets.

I have written an expression, it is working good if value contains Brackets but not when value does not contains brackets.

=IIF(InStr(Fields!deal_name.Value, "(") = 0, Fields!deal_name.Value, Replace(Fields!deal_name.Value,Mid(Fields!deal_name.Value,InStr(Fields!deal_name.Value, "("),InStr(Fields!deal_name.Value, ")")),""))

Original Values: enter image description here

After Expression Result: enter image description here


Solution

  • The error is because Iif evaluates all expressions even when false

    You can use regular expression replace

    =  System.Text.RegularExpressions.Regex.Replace(Fields!deal_name.Value , "[(].*[)]", "")