tnoons91
tnoons91

Reputation: 51

SSRS - How to show external image based on URL inside column

I am trying to show images for products inside a basic report. The image needs to be dynamic, meaning the image should change based on the SKU value.

Right now I am inserting an image into a table, setting to external, and i've tried:

=Fields!URL.Value
=http://externalwebservername/sku= & Fields!SKU.Value
="http://externalwebservername/sku=" & Fields!SKU.Value

I do not get any images in my table.

My stored proc has all the data, including a URL with the image I wan't to show. Here is a sample of what the URL looks like:

http://externalwebservername/sku=123456

If I enter the URL in the field without "=" it will show that ONE image only.

How should I set up the expression to properly show the external image based on a dynamic URL? Running SQL 2016

Upvotes: 2

Views: 17097

Answers (3)

user24922521
user24922521

Reputation: 11

This is still an issue in Power BI Report Builder. The solution is this:

="http://externalwebservername/sku=" & CStr(Fields!SKU.Value)

Str() will not work. It must be CStr().

Upvotes: 1

tnoons91
tnoons91

Reputation: 51

Alan's answer should work, but in our environment we have strict proxy/firewall rules, so the two servers could not contact each other.

Instead we are navigating to the file stored on our storage system.

We altered the URL column to point to file path in the stored procedure. Insert image, set Source to External and Value set to [URL].

URL= file://server\imagepath.jpg

Upvotes: 3

Alan Schofield
Alan Schofield

Reputation: 21683

As long as the account executing the report has permissions to access the URLs then your 3rd expression should have worked.

I put together a simple example as follows.

I created a new blank report then added a Data Source. It doesn't matter where this points, we won't use it directly.

Then I created a dataset (Dataset1) with the following SQL to give me list of image names.

SELECT        '350x120' AS suffix
UNION SELECT        '200x100' 
UNION SELECT        '500x500' 

Actually, these are just parameters for the website http://placehold.it/ which will generate images based on the size you request, but that's not relevant for this exercise.

We'll be showing three images from the following URLs

http://placehold.it/350x120
http://placehold.it/200x100
http://placehold.it/500x500

Next, create a table, I used 3 columns to give me more testing options. Set the DataSetName to DataSet1 if it isn't already.

In the first column the expression is just =Fields!suffix.Value

In the second column I added an image, set it's source property to External and the Value to ="http://placehold.it/" & Fields!suffix.Value

I then added a 3rd column with the same expression as the image Value so I could see what was being used as the image URL. I also added an action that goes to the same URL, just to check the URL did not have any unprintable characters in it that might cause a problem.

The basic report design looks like this. enter image description here

The rendered result looks like this. enter image description here

Upvotes: 1

Related Questions