Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 

Background Images in Reporting Services

By Andy Warren,

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.

Total article views: 9553 | Views in the last 30 days: 13
 
Related Articles
FORUM

SSRS Language Report Properties - Where???

Cannot change the Report properties for languages

FORUM

SSRS Language Report Properties - Where???

Cannot change the Report properties for languages

FORUM

Link click is not loading second report

If I click on the link in front end same report is loading instead of second report

FORUM

Double click on row to navigate to sub-report.

Double click on row to navigate to sub-report.

FORUM

Export data into the xls Sheet Directly without click on the View Report.

Export data into the xls Sheet Directly without click on the View Report.

 
Contribute

Join the most active online SQL Server Community

SQL knowledge, delivered daily, free:

Email address:  

You make SSC a better place

As a member of SQLServerCentral, you get free access to loads of fresh content: thousands of articles and SQL scripts, a library of free eBooks, a weekly database news roundup, a great Q & A platform… And it’s our huge, buzzing community of SQL Server Professionals that makes it such a success.

Join us!

Steve Jones
Editor, SQLServerCentral.com

Already a member? Jump in:

Email address:   Password:   Remember me: Forgotten your password?
Steve Jones