开发者

Help for using (exernal images) from the website with SSRS

开发者 https://www.devze.com 2023-01-10 23:11 出处:网络
I have a small web site where i maintain users data. I maintain the users data in table and store there images like /images/users/user_id.jpeg on the server.

I have a small web site where i maintain users data. I maintain the users data in table and store there images like /images/users/user_id.jpeg on the server.

I am using the ReportViewer control in the asp.net page to show the reports from SSRS in the web application.

Now user want reports where they can see the users image in the report so that they can export it as pdf and get it printed.

In report i tried html image tag with full and relative url with option to render HTML however its not worki开发者_StackOverflowng. Also i tried the image control in the toolbox with external url and that too appears to be now working. Can someone please help me get around this problem or guide me to some helpful links. Thanks all,


It will be a lot easier to set up the report so that your users can see the image, if you can see the image in preview in Report Designer.

  1. Make sure you have a working URL that takes you to one of your images. Test it, by pasting the URL into the address bar of your browser and ensure that the image is displayed in the browser.

  2. Delete the existing image from your report. Insert a new image into the report object (normally a list or table) you are using to display your table. (This should be where the old image was.)

  3. Specify Web as the image source, and enter your working URL as the URL of the image.

  4. Preview the report in the report designer. You should be able to see the image (with the hardcoded URL) displayed correctly in the report.

  5. Assuming all images are stored in the same directory on your server, switch to the layout tab of your report designer and click on the image object. In the Properties window, the value attribute should be the harcoded URL.

  6. Click on the <Expression...> option from the dropdown menu for the Value attribute. Edit the expression so that it says ="your URL, without the filename" & Fields!your image filename data field name.Value

  7. Preview the report in the report designer. You should be able to see the appropriate image for your data displayed correctly in the report.

  8. If everything has gone correctly up to this point, deploy the report and try viewing it in the Report Manager. You should be able to see the appropriate image for your data displayed correctly in the report.

At this point, your users should now be able to see the report images.


I tried everything!!! It wasn't working in BIDS, Web Browser nor a Winform Report Viewer control.

I ended up hard-coding the image and it still didn't work:

="http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2fBRAND_Logo.png&RetrieveResource=True"

I am pretty sure the problem was something to do with Active Directory Group Policy propagation. I suggest to leave it overnight if you have the same problem and have tried everything you can think of:

  1. Setup Unattended Execution Account in SSRS Config with a service account who's password wont expire:

Help for using (exernal images) from the website with SSRS

  1. Permissions (both on image and also at Site Settings):

Help for using (exernal images) from the website with SSRS

  1. Can navigate to the image successfully, but it still doesn't show in the report.

Help for using (exernal images) from the website with SSRS

  1. Have the SSRS Image Properties set correctly, with the equal sign and url enclosed in double quotes, ie: ="url"

Help for using (exernal images) from the website with SSRS

  1. Even clear your browsers cache and tried different browsers, etc, etc

Anyway next morning I tried and the hardcoded path works and now this dynamic URL works too:

http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f" & First(Fields!Brand.Value, "ClientAndBrandByAccount") & "_Logo.png&RetrieveResource=True"

The XML in the RDL file is HTML encoded and looks like this:

<Image Name="Logo">
 <Source>External</Source>
  <Value>="http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f" &amp; First(Fields!Brand.Value, "ClientAndBrandByAccount") &amp; "_Logo.png&amp;RetrieveResource=True"</Value>

I tried to make the Server URL dynamic as Alex Z shows, though I had to use this Replace code:

=Replace(Globals!ReportServerUrl,"/ReportServer_","/Reports_") & "/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f" & First(Fields!Brand.Value, "ClientAndBrandByAccount") & "_Logo.png&RetrieveResource=True"


Create a relative url using the expression and global variable Globals!ReportServerUrl

= Globals!ReportServerUrl + "your path to image"

0

精彩评论

暂无评论...
验证码 换一张
取 消