Background Images in Reporting Services


Adding images to a Reporting Services report is easy, just drop the image

control onto the report and you get a nice wizard that gives you the four

options (project, embedded, web, database) for sourcing the image. Pick the storage technique that suites your situation, point to

the image and you're done. But if you want to set a background image you'll find

no convenient wizard. This article will demo the techniques for setting

background images.

Start up BI Design Studio and add a blank report. No data source needed, just

an empty RDL file. Right click on the body of the report, click properties, and then

expand the Background Image property to see the details, as follows:

The first think you might notice is that the project option seems to have

disappeared. It's not listed, but we can still achieve the same affect using

external source as you'll see in a moment. Let's start with the easiest, an

external image that will be sourced from a URL. We'll set the value to our

favorite web logo:

Switch to the preview tab and you'll see this absolutely nothing! Amend the

URL by adding the http:// prefix and it works. Because the backgroundrepeat

property is set to repeat we'll see something like this:

RS actually ignores the MimeType when the source is set to external, though

it will let you enter a value. Now let's use an image that is part of our

project. Download the SSC logo and add to your project in the same folder as

your test report. Change the property to just the image name:

If you deploy the report in this state you'll see both the report and the

image file we added to the project.

There's nothing wrong with having the image visible in Report Manager, the

worst that will happen is a user will click on it and just see the logo

rendered. There is a way to hide it if you want. Click Show Details, then

properties of the image and select 'Hide in List view'. Interesting;y if you

redeploy the project the hidden setting seems to be preserved, though I can find

no setting in the project itself to control the behavior.

Now let's move to the embedded option. The concept here is to embed the image

directly into the RDL file, making it easy to send a complete report to someone

since the image dependencies are included. The downside is that if you're

embedded your logo in all your reports and the logo changes, well, you've got a

a lot of reports to alter. There are two simple ways to add an embedded image.

The first is to click Reports, Embedded Images, and browse to the image. The

other method is to drop an  image control on the report, set the embedded option, and then once

done, just remove the image control. The embedded image remains in the RDL file.

If you click view code on the RDL and look for the embedded tag, you'll see

something like this:

Now back to the properties window where we set the background image

properties. If you click the drop down for the value property, you'll see that

you can now select 'sqlservercentral_logo' - make sure you don't type in the

full file name of sqlservercentral_logo.gif. The image should display the same

as before.

The last technique is to retrieve the image from a database. You'll need to

create a datasource that points to a table containing images. For my example I

had a small table containing a number of PNG formatted images. Once you have the

data source you'll see the possible values in the drop down list; in this

example we'll use the image column which is filestream.value. Remember, you need

the field that contains the image, not the image name.

To get images from the database to work the MimeType property has to be set.

If it's blank you'll receive a processing error, but in my limited testing it

didn't seem to matter if the mime type matched the image type or not. In the

next image you can see I've marked it as a JPG, but the source image is PNG and

works just fine.

To wrap up, the last thing you can set is the BackgroundRepeat property.

You've seen an example above of it set to repeat, but there are also options for

norepeat, repeatx, and repeaty, the latter two control if the image is tiled

horizontally or vertically. Don't over do the usage of background images in your

reports but if you need them, now you know enough to get going quickly.


1 (1)




1 (1)