SQL Server 2016 Mobile Reports – Free Maps of the Week, Part 3


Hi everyone – once again, I have a new set of free maps I’ve pulled together to share with all of you as we celebrate the official release of SQL Server 2016.

Use the links below to download the zipped map files.  You’ll need to unzip them and follow the directions here to use them in your mobile reports.

Cayman Islands – Download
South America – Download
Ukraine – Download
Micronesia – Download
Jamaica – Download
Hong Kong – Download

Remember, these maps aren’t officially supported by Microsoft in any way.  This blog series seems to be fairly popular regardless, so look for even more next week.  Thanks!

Free Sample Mobile Reports for SQL Server 2016 Reporting Services


Hi all – I was hoping to get to this over the weekend, since I know a number of folks were looking for some sample mobile report files they could use as a starting point for building new reports in SQL Server 2016 Reporting Services.  While we weren’t able to include any sample files as part of the Mobile Report Publisher install, I do have some sample files I use that I’m happy to share with you to use as you’d like.  Just download the zip file, open one of them in Mobile Report Publisher and you have a great starting point for your own mobile report(s).

The usual disclaimer applies that these samples aren’t officially supported by Microsoft in any way.

Sample Mobile Reports – Download

Enjoy, and I’ll have more sample map files available for you later this week.

SQL Server Mobile Reports – Free Maps of the Week, Part 2


Hi everyone – as promised last week, I have a new set of free maps I’ve pulled together to share with all of you as we get even closer to the GA of SQL Server 2016.

Use the links below to download the zipped map files.  You’ll need to unzip them and follow the directions here to use them in your mobile reports.

World Countries – Download
Europe – Download
Bosnia-Herzegovina – Download
Bulgaria – Download
Spain – Download

Remember, these maps aren’t officially supported by Microsoft in any way.  But if you find these helpful, be sure to check back next week for even more free maps.  Have a great rest of your holiday weekend (well, if you’re in the US, anyways)!

SQL Server Mobile Reports – Free Maps of the Week


Hi all – hopefully, you’re as excited as I am about the upcoming GA of SQL Server 2016 on June 1 and with it, the brand new version of Reporting Services.  We’re finishing up the official release of the Mobile Report Publisher as well, and with that in mind, I wanted to introduce a new blog series I’m doing here.  I’ve taken the time to put together some custom map files you can use for your mobile reports.  I’ll post the files here each week or so.  These will be free for you to download/share, use or repurpose however you’d like.  I’ll post more as I get more created – these maps aren’t officially supported by Microsoft in anyway, so keep that in mind as you download and use them.   I just thought you might find them valuable, and frankly, I needed to do a new blog post.  It’s been awhile.

Use the links below to download the zipped map files.  You’ll need to unzip them and follow the directions here to use them in your mobile reports.

Africa – Download
Argentina – Download
Asia – Download
China – Download

Thanks for reading, and enjoy the free maps.  Be sure to keep following this blog to grab more maps in the future!

How to use custom thumbnails with Mobile Reports in SQL Server 2016

Happy Sunday folks!

In the new Reporting Services web portal, you see thumbnails for each of the mobile reports you’ve published to the server.  Well, here’s a neat hack that allows you to update your mobile reports with custom thumbnails.  Keep in mind, the normal disclaimer applies around the fact it isn’t officially supported and if you break something, you’re on your own, etc.

1. Download the latest version of the Mobile Report Publisher
2. Create your mobile report
3. Save it locally vs. publishing it the server.  It doesn’t matter if you use either Excel data or shared datasets from your server.


4.  Find the file location where you saved it locally.image

Now change the file extension from .rsmobile to .zip

5.  Double-click on the .zip file to view the contents

You’ll see two image files called thumbnail.png and thumbnail-phone.png that look like the following and were generated when I first created this report.  These are the files you’ll want to replace, and you can replace one or both of them.

image        thumbnail-phone

6. Now, pick new images to use.  They need to be named the same as the ones with the file, and need to be in the .png format.  Ideally, they’ll have the same dimensions as the default files, which are –

thumbnail.png file – 1150×555
thumbnail-phone.png file – 550×825

That isn’t a requirement for this to work, but it does mean your pictures might look a little distorted if they don’t match.

I chose one of my son’s favorite stuffed animal to use as the new thumbnail.png file.


Once I saved the file and renamed it, I simply dragged it into the still zipped folder and answered yes when prompted to overwrite the existing file.  You see it has replaced the existing file, and the file size has increased significantly.  Something else to be aware of if you do this for multiple files.


Now, I can rename the file extension back to .rsmobile and then upload the file to my Reporting Services server.


Once uploaded, it will automatically recognize it is a mobile report based on the file extension, and put it in the right category in the portal.


I’ll also now see the new thumbnail I added to the file in place of the one generated by the Mobile Report Publisher.image

Here’s how it looks in My Favorites

And when I click the report tile, the report still renders as I’d expect in the browser:

One thing to keep in mind – if I were to edit this report and re-publish or upload it, new thumbnails will get generated and overwrite the custom one(s) I added to the file.  So I’d have to do this each time I make changes to the report and re-save it.  That’s why this is a hack though, right?  🙂

Hopefully you enjoy this and have some fun playing around with this concept.  Have a great week!

Row level security options for Mobile Reports in SQL Server 2016


Welcome back!

With the latest release candidate of SQL Server 2016 now available for download, let’s take some time to review some options you have to implement row-level security for Mobile Reports.  These options can also be used for paginated reports in Reporting Services, so you don’t have to do the same work twice.

If you’re using SQL Server 2016 (or Azure SQL database) as your data source, you can take advantage of the new, built-in row-level security functionality.  My colleague, Patrick LeBlanc, does an excellent job walking you through how to get this setup in SQL Server 2016 in a blogpost here – http://patrickdleblanc.com/wordpress/?p=90, so I’m not going to redo all the steps he lays out nicely on his blog.  Since the old report manager has been replaced by the sleek new report portal in RC1, I’ve added a new screenshot below to replace the one Patrick included –


If you’re using a version of SQL Server prior to 2016 as your datasource, you can achieve something similar by creating a view that filters out records based on the user name accessing it.  Assuming I used the same dataset I used in the first example, my view would look like this –

SELECT        Student, SchoolRep, Class, Grade

FROM            dbo.Students

WHERE        (SchoolRep = CURRENT_USER)

I also have the option to use row-level security from an Analysis Services data source.  Here’s an example of how you could do this using a tabular AS model

1. Setup the execution account in the Reporting Services Configuration Manager to run as an account of your choosing –

2. Grant this account admin permissions on your Analysis Services instance


3. For the data source you’ll be using for your mobile report, setup roles for your users to be mapped to.


Add users or groups to these roles –


And setup the filters for the roles accordingly.  These are the records anyone assigned to that role will be limited to seeing.


In Reporting Services, when you setup the shared data source for Analysis Services, it’d be setup like this –

Note –  Unless you have Kerberos setup in your organization, the Analysis Services and Reporting Services instance will need to be on the same server for this setup to work.

Regardless of which of these options I choose, I’ll always need to do the following steps to create and publish my mobile report –

1. Create my shared dataset in Report Builder or SQL Server Data Tools –


2. Save it to my RS server –


3. Create my mobile report using the SQL Server Mobile Report Publisher

4. Hook up my shared dataset to the visual elements –

5. Preview It in the Publisher –


6. If everything looks good, I publish it to my server so people can view it –

And there you go!  This is one of a series of articles I’ll be doing both on my personal blog and the Reporting Services team blog over the next few weeks to show you how to get the most out of investment in Reporting Services in SQL Server 2016.

Thanks for reading!

Solved: (500) Internal Server Error in Mobile Report Publisher


This is a quick blog post for a Friday, but one that might help some of you who’ve run into this issue.

Certain users have reported getting an error when connecting from the new Mobile Reports Publisher from a shared dataset they published in Reporting Services


After doing some investigation, we were able to determine the issue comes up only when the data set had been published using SQL Server Data Tools.  The issue does NOT appear when you are using a shared dataset you created and published in Report Builder.  We’ve already fixed the issue for future releases, but for now, there are two ways to workaround this –

1. Use Report Builder to create the shared dataset vs. SSDT

2. Edit the shared dataset .rsd file using an XML/text editor.  For the entry for the dataset in the file, change it from this –

<DataSet Name=””>

To something that doesn’t leave it blank.  It could be this, for example –

<DataSet Name=”DataSet1″>

Then re-save the file to the server, and it will work without issue.  Entering a value there won’t affect anything else around the dataset, including the name you assigned it when you save it.  It just prevents the error from being thrown by the Mobile Reports Publisher around having a blank entry for the dataset name.

Hope this is helpful to anyone having this issue, and thanks for reading!