SharePoint Multiple Select Parameter Dropdown with SQL Server Reporting Services
13 Nov 2012 | SharePoint 2010, SQL Server Reporting ServicesWhen leveraging a SharePoint List as an SSRS data source, one major problem is formatting of list items as they appear in reports. This is fairly easy to solve in code. Another issue is leveraging Multiple Lines of Text columns as Report parameters. This is actually fairly tricky and has limitations.
In order to leverage a Multiple Lines of Text column as a Report parameter, the first thing to keep in mind is that an Embedded Data Set is a requirement. A Shared Data Set cannot be used with this solution.
First, add the following code to the Report. As more values are added to the Multiple Lines of Text (e.g. more choices), this code will need to be manually adjusted. Replace “MyField” with the internal field name. The below example is valid for 4 choices in the Report parameter.
Public Function Query(ByVal s()) As String
Dim strQuery
Dim intLength
Dim strBlank(0) As String
strBlank(0) = ""
Dim strVal0,strVal1,strVal2,strVal3
intLength = s.length()
If intLength = 0 Then
strVal0 = s(0)
Else
strVal0 = ""
End If
If intLength = 1 Then
strVal1 = s(1)
Else
strVal1 = ""
End If
If intLength = 2 Then
strVal2 = s(2)
Else
strVal2 = ""
End If
If intLength = 3 Then
strVal3 = s(3)
Else
strVal3 = ""
End If
strQuery = " <Query><Where><Or><Or><Or><Eq><FieldRef Name=""MyField"" /> "
strQuery = strQuery + "<Value Type=""Lookup"">"+strVal0+"</Value></Eq><Eq><FieldRef Name=""MyField"">/>"
strQuery = strQuery + "<Value Type=""Lookup"">"+strVal1
strQuery = strQuery + "</Value></Eq></Or><Eq><FieldRef Name=""MyField""/><Value Type=""Lookup"">"+strVal2+"</Value>"
strQuery = strQuery + "</Eq></Or><Eq><FieldRef Name=""MyField""/><Value Type=""Lookup"">"+strVal3+"</Value></Eq></Or>"
strQuery = strQuery + "</Where></Query></RSSSharePointList>"
Return strQuery
End Function
Next, you’ll need to modify your Data Set Expression, removing a portion of the CAML query until it looks similar to the following:
="<RSSharePointList xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">"
+"<ListName>MyList</ListName>"
+"<ViewFields>"
+"<FieldRef Name=""Title"" />"
+"<FieldRef Name=""MyField"" />"
+"</ViewFields>" + Code.Query(Parameters!MyField.Value)
This example should help you get started to using Multiple Lines of Text as a value for Report parameters. This will allow you to leverage this field type in as a Multiple Select Report Parameter.