Exercise: A long embedded code function to summarise films

This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.

The answer to the exercise will be included and explained if you attend the Wise Owl course listed below!

Category ==> SSRS Reporting Services  (53 exercises)
Topic ==> Embedding code  (3 exercises)
Level ==> Harder than average
Course ==> Advanced SSRS
Before you can do this exercise, you'll need to download and unzip this file (if you have any problems doing this, click here for help).

You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.

Create a report called Five Words to list out film names and their truncated synopses.  To do this, create and use an embedded code function to return the first n words of each film's synopsis (where n can be any integer):

First 5 words of film names

Here we're showing the first 5 words of each film's synopsis.


The expression for the second column's textbox above could be:

Using the Prefix function

This expression finds the first 5 words of the given field.

This is anything but straightforward - if you want some help with the VB coding, turn the page!

Here's an example of a function which would do the trick (if you copy it into the Report Properties dialog box, you will, of course, lose all the formatting):

Function Prefix(What As String, PrefixCount As Integer) As String


'WHAT - the film synopsis or other string of text passed in

'PREFIXCOUNT - the number of words to return


'split the text passed into an array of single words

Dim Words() As String = What.Split(" ")

'create a variable to hold the final prefix

Dim StartString As String = ""

'loop over all of these words, adding each to the prefix ...

Dim i As Integer = 0

Dim Word As String

For Each Word In Words

'add 1 to the count of number of words

i += 1

'add this word onto list accumulating

StartString &= " " & Word

'if we've reached the maximum number of words requested, stop

If i >= PrefixCount Then

'add ellipsis (...) if not reached limit

If i < words.length="">Then StartString &= " ..."

Exit For

End If


'strip off leading space, and return

Return StartString.Trim

End Function

Ask your friendly tutor if this code doesn't make sense!

This page has 0 threads Add post