<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Data Inspirations &#187; SQL Server 2008 R2</title>
	<atom:link href="http://blog.datainspirations.com/tag/sql-server-2008-r2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.datainspirations.com</link>
	<description>Inspiring Intelligence from Information</description>
	<lastBuildDate>Thu, 02 Feb 2012 01:12:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>The Case of the Missing Date/Time Stamp: Reporting Services 2008 R2 Snapshots</title>
		<link>http://blog.datainspirations.com/2011/01/25/the-case-of-the-missing-datetime-stamp-reporting-services-2008-r2-snapshots/</link>
		<comments>http://blog.datainspirations.com/2011/01/25/the-case-of-the-missing-datetime-stamp-reporting-services-2008-r2-snapshots/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 23:12:37 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/2011/01/25/the-case-of-the-missing-datetime-stamp-reporting-services-2008-r2-snapshots/</guid>
		<description><![CDATA[This week I stumbled upon an undocumented “feature” in SQL Server 2008 R2 Reporting Services as I was preparing a demonstration on how to set up and use report snapshots. If you’re familiar with the main changes in this latest release of Reporting Services, you probably already know that Report Manager got a facelift this [...]]]></description>
			<content:encoded><![CDATA[<p>This week I stumbled upon an undocumented “feature” in SQL Server 2008 R2 Reporting Services as I was preparing a demonstration on how to set up and use report snapshots. If you’re familiar with the main changes in this latest release of Reporting Services, you probably already know that Report Manager got a facelift this time around. Although this facelift was generally a good thing, one of the casualties – in my opinion – is the loss of the snapshot label that served two purposes… First, it flagged the report as a snapshot. Second, it let you know when that snapshot was created.</p>
<p>As part of my standard operating procedure when demonstrating report snapshots, I point out this label, so I was rather taken aback when I didn’t see it in the demonstration I was preparing. It sort of upset my routine, and I’m rather partial to my routines. I thought perhaps I wasn’t looking in the right place and changed Report Manager from Tile View to Detail View, but no – that label was still missing. In the grand scheme of life, it’s not an earth-shattering change, but you’ll have to look at the Modified Date in Details View to know when the snapshot was run. Or hope that the report developer included a textbox to show the execution time in the report. (Hint: this is a good time to add this to your list of report development best practices, whether a report gets set up as a report snapshot or not!) </p>
<p><strong>A snapshot from the past</strong></p>
<p>In case you don’t remember how a snapshot appeared in Report Manager back in the old days (of SQL Server 2008 and earlier), here’s an image I snagged from my <a href="http://www.amazon.com/Microsoft-Server-2008-Reporting-Services/dp/0735626472/ref=sr_1_1?ie=UTF8&amp;qid=1295996994&amp;sr=8-1" target="_blank">Reporting Services 2008 Step by Step</a> manuscript:</p>
<p><a href="http://blog.datainspirations.com/wp-content/uploads/2010/11/82855fa73126_CF9E/clip_image001.gif"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blog.datainspirations.com/wp-content/uploads/2010/11/82855fa73126_CF9E/clip_image001_thumb.gif" width="244" height="52" /></a></p>
<p><strong>A snapshot in the present</strong></p>
<p>A report server running in SharePoint integrated mode had no such label. There you had to rely on the Report Modified date-time stamp to know the snapshot execution time. So I guess all platforms are now consistent. </p>
<p>Here’s a screenshot of Report Manager in the 2008 R2 version. One of these is a snapshot and the rest execute on demand. Can you tell which is the snapshot?</p>
<p><a href="http://blog.datainspirations.com/wp-content/uploads/2010/11/82855fa73126_CF9E/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.datainspirations.com/wp-content/uploads/2010/11/82855fa73126_CF9E/image_thumb.png" width="475" height="208" /></a></p>
<p><strong>Consider descriptions as an alternative</strong></p>
<p>So my report snapshot demonstration has one less step, and I’ll need to edit the Denali version of the Step by Step book. Things are simpler this way, but I sure wish we had an easier way to identify the execution methods of the reports. Consider using the description field to alert users that the report is a snapshot. It might save you a few questions about why the data isn’t up-to-date if the users know that something changed in the source of the report. Notice that the full description doesn’t display in Tile View, so keep it short and sweet or instruct users to open Details View to see the entire description.</p>
<p><a href="http://blog.datainspirations.com/wp-content/uploads/2010/11/82855fa73126_CF9E/image_3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.datainspirations.com/wp-content/uploads/2010/11/82855fa73126_CF9E/image_thumb_3.png" width="474" height="206" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2011/01/25/the-case-of-the-missing-datetime-stamp-reporting-services-2008-r2-snapshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do-It-Yourself Map Gallery in SQL Server 2008 R2 Reporting Services</title>
		<link>http://blog.datainspirations.com/2010/08/31/do-it-yourself-map-gallery-in-sql-server-2008-r2-reporting-services/</link>
		<comments>http://blog.datainspirations.com/2010/08/31/do-it-yourself-map-gallery-in-sql-server-2008-r2-reporting-services/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 01:54:47 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[spatial data]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/2010/08/31/do-it-yourself-map-gallery-in-sql-server-2008-r2-reporting-services/</guid>
		<description><![CDATA[A common question that I get when introducing the map feature in SQL Server 2008 R2 Reporting Services is why the map gallery is limited to maps of the United States and individual states in the US. The reason as I&#8217;ve heard it explained is that the political boundaries for other countries are sometimes in [...]]]></description>
			<content:encoded><![CDATA[<p style="MARGIN: 0in 0in 10pt">A common question that I get when introducing <a href="http://msdn.microsoft.com/en-us/library/ee210581.aspx" target="_blank" title="Working with Map Report Items">the map feature in SQL Server 2008 R2 Reporting Services</a> is why the map gallery is limited to maps of the United States and individual states in the US. The reason as I&#8217;ve heard it explained is that the political boundaries for other countries are sometimes in dispute and it was better to stay away from any legal issues that might arise from publishing a map as part of a software installation. Presumably that means that boundaries between states (and even towns) are not in dispute, but that&#8217;s not entirely true as a <a href="http://www.cbsnews.com/stories/2010/04/26/national/main6432406.shtml" target="_blank" title="Vermont Towns Settle Colonial Boundary Dispute">CBS New report</a> highlights.</p>
<p style="MARGIN: 0in 0in 10pt">Border integrity notwithstanding, the good news is that even though Microsoft doesn&#8217;t give you international maps in the map gallery, you can do it yourself. The files that the Reporting Services installation provides are simply reports created using TIGER/Line Shapefiles available free from the United States Census Bureau and stored in the Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\MapGallery folder. (Look in the Program Files (x36) folder if you&#8217;re developing on a 64-bit computer.) You can add your own reports to this same folder to update the map gallery.</p>
<p style="MARGIN: 0in 0in 10pt">You can&#8217;t add just any report to the Map Gallery for this technique to work. The report must contain a map with embedded spatial data. You can create such a report by creating a map using any of the three options for spatial data &#8211; map gallery, ESRI Shapefile, or a SQL Server spatial query. Then, on the &#8220;Choose spatial data and map view options&#8221; page of the Map Wizard, you must select the &#8220;Embed map data in the report&#8221; option as shown below.</p>
<p style="MARGIN: 0in 0in 10pt"><img src="http://blog.datainspirations.com/wp-content/uploads/2010/05/1_France_MapWizard.png" style="WIDTH: 476px; DISPLAY: inline; HEIGHT: 337px" height="30" width="28"/></p>
<p style="MARGIN: 0in 0in 10pt">Using the map that I created for <a href="http://blog.datainspirations.com/2010/05/11/sql-server-2008-r2-reporting-services-the-word-is-but-a-stage-t-sql-tuesday-006/" target="_blank">my post earlier this year about the map control</a>, I eliminated the point layer and then saved the RDL file to the map gallery folder. Then whenever I want to create a new map for France, I can select it in the Map Wizard as shown below.</p>
<p style="MARGIN: 0in 0in 10pt"><img src="http://blog.datainspirations.com/wp-content/uploads/2010/08/MapWizard2.png" style="WIDTH: 476px; DISPLAY: inline; HEIGHT: 345px" height="345" width="476"/></p>
<p style="MARGIN: 0in 0in 10pt">If you plan to use this option for making additional maps available to report developers, be aware that you must do this on every computer using Business Intelligence Development Studio to create reports. If you have users creating reports with Report Builder 3.0, you also need to store the map RDL in the following location: C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder\RptBuilder_3\MapGallery where MSRS10_50.MSSQLSERVER is the name of the Reporting Services instance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/08/31/do-it-yourself-map-gallery-in-sql-server-2008-r2-reporting-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing SharePoint 2010 and PowerPivot for SharePoint on Windows 7</title>
		<link>http://blog.datainspirations.com/2010/05/23/installing-powerpivot-for-sharepoint-on-windows-7/</link>
		<comments>http://blog.datainspirations.com/2010/05/23/installing-powerpivot-for-sharepoint-on-windows-7/#comments</comments>
		<pubDate>Sun, 23 May 2010 16:38:38 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=171</guid>
		<description><![CDATA[Many people like me want (or need) to do their business intelligence development work on a laptop. As someone who frequently speaks at various events or teaches classes on all subjects related to the Microsoft business intelligence stack, I need a way to run multiple server products on my laptop with reasonable performance. Once upon [...]]]></description>
			<content:encoded><![CDATA[<p>Many people like me want (or need) to do their business intelligence development work on a laptop. As someone who frequently speaks at various events or teaches classes on all subjects related to the Microsoft business intelligence stack, I need a way to run multiple server products on my laptop with reasonable performance. Once upon a time, that requirement meant only that I had to load the current version of SQL Server and the client tools of choice. In today&#8217;s post, I&#8217;ll review my latest experience with trying to make the newly released Microsoft BI products work with a Windows 7 operating system.</p>
<p>The entrance of Microsoft Office SharePoint Server 2007 into the BI stack complicated matters and I started using Virtual Server to establish a &#8220;suitable&#8221; environment. As part of the team that delivered a lot of education as part of the Yukon pre-launch activities (that would be SQL Server 2005 for the uninitiated), I was working with four &#8211; yes, four &#8211; virtual servers. That was a pretty brutal workload for a 2GB laptop, which worked if I was very, very careful. It could also be a finicky and unreliable configuration as I learned to my dismay at one TechEd session several years ago when I had to reboot a very carefully cached set of servers just minutes before my session started. Although it worked, it came back to life very, very slowly much to the displeasure of the audience. They couldn&#8217;t possibly have been less pleased than me.</p>
<p>At that moment, I resolved to get the beefiest environment I could afford and consolidate to a single virtual server. Enter the 4GB 64-bit laptop to preserve my sanity and my livelihood. Likewise, for SQL Server 2008, I managed to keep everything within a single virtual server and I could function reasonably well with this approach.</p>
<p>Now we have SQL Server 2008 R2 plus Office SharePoint Server 2010. That means a 64-bit operating system. Period. That means no more Virtual Server. That means I must use Hyper-V or another alternative. I&#8217;ve heard alternatives exist, but my few dabbles in this area did not yield positive results. It might have been just me having issues rather than any failure of those technologies to adequately support the requirements.</p>
<p>My first run at working with the new BI stack configuration was to set up a 64-bit 4GB laptop with a dual-boot to run Windows Server 2008 R2 with Hyper-V. However, I was generally not happy with running Windows Server 2008 R2 on my laptop. For one, I couldn&#8217;t put it into sleep mode, which is helpful if I want to prepare for a presentation beforehand and then walk to the podium without the need to hold my laptop in its open state along the way (my strategy at the TechEd session long, long ago). Secondly, it was finicky with projectors. I had issues from time to time and while I always eventually got it to work, I didn&#8217;t appreciate those nerve-wracking moments wondering whether this would be the time that it wouldn&#8217;t work.</p>
<p>Somewhere along the way, I learned that it was possible to load SharePoint 2010 in a Windows 7 which piqued my interest. I had just acquired a new laptop running Windows 7 64-bit, and thought surely running the BI stack natively on my laptop must be better than running Hyper-V. (I have not tried booting to Hyper-V VHD yet, but that&#8217;s on my list of things to try so the jury of one is still out on this approach.) Recently, I had to build up a server with the RTM versions of SQL Server 2008 R2 and Sharepoint Server 2010 and decided to follow suit on my Windows 7 Ultimate 64-bit laptop. The process is slightly different, but I&#8217;m happy to report that it IS possible, although I had some fits and starts along the way.</p>
<p>DISCLAIMER 1: <em>These products are NOT intended to be run in production mode on the Windows 7 operating system. The configuration described in this post is strictly for development or learning purposes and not supported by Microsoft. If you have trouble, you will NOT get help from them. I might be able to help, but I provide no guarantees of my ability or availablity to help.</em></p>
<p>DISCLAIMER 2: <em>The instructions below apply only to an environment in which the Windows 7 client is joined to a domain. You must log into the client machine using a valid Windows user account for that domain. Thanks to Kevin who pointed out this requirement which I had neglected to mention in my initial post (Updated May 30, 2010).</em></p>
<p>I won&#8217;t provide the step-by-step instructions in this post as there are other resources that provide these details, but I will provide an overview of my approach, point you to the relevant resources, describe some of the problems I encountered, and explain how I addressed those problems to achieve my desired goal.</p>
<p>Because my goal was not simply to set up SharePoint Server 2010 on my laptop, but specifically PowerPivot for SharePoint, I started out by referring to the <a href="http://powerpivot-info.com/post/66-step-by-step-guide-on-installing-powerpivot-for-sharepoint" target="_blank">installation instructions</a> at the PowerPiovt-Info site, but mainly to confirm that I was performing steps in the proper sequence. I didn&#8217;t perform the steps in Part 1 because those steps are applicable only to a server operating system which I am not running on my laptop. Then, the instructions in Part 2, won&#8217;t work exactly as written for the same reason. Instead, I followed the instructions on MSDN, <a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx" target="_blank">Setting Up the Development Environment for SharePoint 2010 on Windows Vista, Windows 7, and Windows Server 2008</a>. In general, I found the following differences in installation steps from the steps at PowerPivot-Info:</p>
<ul>
<li>You must copy the SharePoint installation media to the local drive so that you can edit the config.xml to allow installation on a Windows client.</li>
<li>You also have to manually install the prerequisites. The instructions provides links to each item that you must manually install and provides a command-line instruction to execute which enables required Windows features.</li>
</ul>
<p>I will digress for a moment to save you some grief in the sequence of steps to perform. I discovered later that a missing step in the MSDN instructions is to install the November CTP Reporting Services add-in for SharePoint. When I went to test my SharePoint site (I believe I tested after I had a successful PowerPivot installation), I ran into the following error:</p>
<p><em> <span style="font-family: Times New Roman;">Could not load file or assembly &#8216;RSSharePointSoapProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91&#8242; or one of its dependencies. The system cannot find the file specified.</span> </em></p>
<p>I was rather surprised that Reporting Services was required. Then I found an article by Alan le Marquand, <a href="http://technet.microsoft.com/en-us/magazine/ff686706.aspx" target="_blank">Working Together: SQL Server 2008 R2 Reporting Services Integration in SharePoint 2010</a>,that instructed readers to install the November add-in. My first reaction was, &#8220;Really?!?&#8221; But I confirmed it in another TechNet article on <a href="http://technet.microsoft.com/en-us/library/cc262485.aspx#section4" target="_blank">hardware and software requirements for SharePoint Server 2010</a>. It doesn&#8217;t refer explicitly to the November CTP but following the link took me there. (Interestingly, I retested today and there&#8217;s no longer any reference to the November CTP. Here&#8217;s the link to <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b3bebf9d-d86d-48cd-94e2-0639a846be80&amp;displaylang=en" target="_blank">download the latest and greatest Reporting Services Add-in for SharePoint Technologies 2010</a>.) You don&#8217;t need to download the add-in anymore if you&#8217;re doing a regular server-based installation of SharePoint because it installs as part of the prerequisites automatically.</p>
<p>When it was time to start the installation of SharePoint, I deviated from the MSDN instructions and from the PowerPivot-Info instructions:</p>
<ul>
<li>On the <strong>Choose the installation you want</strong> page of the installation wizard, I chose <strong>Server Farm</strong>.</li>
<li>On the <strong>Server Type</strong> page, I chose <strong>Complete</strong>.</li>
<li>At the end of the installation, I did <strong> <em>not</em> </strong> run the configuration wizard.</li>
</ul>
<p>Returning to the PowerPivot-Info instructions, I tried to follow the instructions in Part 3 which describe installing SQL Server 2008 R2 with the PowerPivot option. These instructions tell you to choose the <strong>New Server</strong> option on the <strong>Setup Role</strong> page where you add PowerPivot for SharePoint. However, I ran into problems with this approach and got installation errors at the end.</p>
<p>It wasn&#8217;t until much later as I was investigating an error that I encountered Dave Wickert&#8217;s post that <a href="http://powerpivotgeek.com/2010/03/04/powerpivot-and-windows-7/" target="_blank">installing PowerPivot for SharePoint on Windows 7</a> is unsupported. Uh oh. But he did want to hear about it if anyone succeeded, so I decided to take the plunge. Perseverance paid off, and I can happily inform Dave that it does work so far. I haven&#8217;t tested absolutely everything with PowerPivot for SharePoint but have successfully deployed a workbook and viewed the PowerPivot Management Dashboard. I have not yet tested the data refresh feature, but I have installed. Continue reading to see how I accomplished my objective.</p>
<p>I unintalled SQL Server 2008 R2 and started again. I had different problems which I don&#8217;t recollect now. However, I uninstalled again and approached installation from a different angle and my next attempt succeeded. The downside of this approach is that you must do all of the things yourself that are done automatically when you install PowerPivot as a new server. Here are the steps that I followed:</p>
<ul>
<li>Install SQL Server 2008 R2 to get a database engine instance installed.</li>
<li>Run the SharePoint configuration wizard to set up the SharePoint databases.</li>
<li>In Central Administration, create a Web application using classic mode authentication as per a <a href="http://technet.microsoft.com/en-us/library/ee210621(SQL.105).aspx">TechNet article on PowerPivot Authentication and Authorization</a>.</li>
<li>Then I followed the steps I found at <a href="http://msdn.microsoft.com/en-us/library/ee210616(SQL.105).aspx" target="_blank">How to: Install PowerPivot for SharePoint on an Existing SharePoint Server</a>. Especially important to note &#8211; you must launch setup by using <strong>Run as administrator</strong>. I did not have to manually deploy the PowerPivot solution as the instructions specify, but it&#8217;s good to know about this step because it tells you where to look in Central Administration to confirm a successful deployment.</li>
</ul>
<p>I did spot some incorrect steps in the instructions (at the time of this writing) in <a href="http://msdn.microsoft.com/en-us/library/ee210671(v=SQL.105).aspx" target="_blank">How To: Configure Stored Credentials for PowerPivot Data Refresh</a>. Specifically, in the section entitled <strong>Step 1: Create a target application and set the credentials</strong>, both steps 10 and 12 are incorrect. They tell you to provide an actual Windows user name and password on the page where you are simply defining the prompts for your application in the Secure Store Service. To add the Windows user name and password that you want to associate with the application &#8211; after you have successfully created the target application &#8211; you select the target application and then click <strong>Set credentials</strong> in the ribbon.</p>
<p>Lastly, I followed the instructions at <a href="http://msdn.microsoft.com/en-us/library/ff487978(v=SQL.105).aspx">How to: Install Office Data Connectivity Components on a PowerPivot server</a>. However, I have yet to test this in my current environment.</p>
<p>I did have several stops and starts throughout this process and edited those out to spare you from reading non-essential information. I believe the explanation I have provided here accurately reflect the steps I followed to produce a working configuration. If you follow these steps and get a different result, please let me know so that together we can work through the issue and correct these instructions. I&#8217;m sure there are many other folks in the Microsoft BI community that will appreciate the ability to set up the BI stack in a Windows 7 environment for development or learning purposes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/05/23/installing-powerpivot-for-sharepoint-on-windows-7/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2 Reporting Services &#8211; The World is But a Stage (T-SQL Tuesday #006)</title>
		<link>http://blog.datainspirations.com/2010/05/11/sql-server-2008-r2-reporting-services-the-word-is-but-a-stage-t-sql-tuesday-006/</link>
		<comments>http://blog.datainspirations.com/2010/05/11/sql-server-2008-r2-reporting-services-the-word-is-but-a-stage-t-sql-tuesday-006/#comments</comments>
		<pubDate>Tue, 11 May 2010 19:29:56 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[spatial data]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/2010/05/11/sql-server-2008-r2-reporting-services-the-word-is-but-a-stage-t-sql-tuesday-006/</guid>
		<description><![CDATA[Host Michael Coles (blog&#124;twitter) has selected LOB data as the topic for this month&#8217;s T-SQL Tuesday, so I&#8217;ll take this opportunity to post an overview of reporting with spatial data types. As part of my work with SQL Server 2008 R2 Reporting Services, I&#8217;ve been exploring the use of spatial data types in the new [...]]]></description>
			<content:encoded><![CDATA[<p>Host Michael Coles (<a title="Michael Cole's blog" href="http://sqlblog.com/blogs/michael_coles/default.aspx" target="_blank">blog</a>|<a title="@Sergeant_SQL" href="http://twitter.com/Sergeant_SQL" target="_blank">twitter</a>) has selected <a title="MSDN: Working with Large Value Types" href="http://msdn.microsoft.com/en-us/library/a1904w6t(VS.80).aspx" target="_blank">LOB data</a> as the topic for this month&#8217;s <a title="What About Blob?" href="http://sqlblog.com/blogs/michael_coles/archive/2010/05/03/t-sql-tuesday-006-what-about-blob.aspx" target="_blank">T-SQL Tuesday</a>, so I&#8217;ll take this opportunity to post an overview of reporting with spatial data types. As part of my work with <a title="MSDN: What's New (Reporting Services)" href="http://msdn.microsoft.com/en-us/library/ms170438(v=SQL.105).aspx" target="_blank">SQL Server 2008 R2 Reporting Services</a>, I&#8217;ve been exploring the use of spatial data types in the new <a title="MSDN: Working with Map Report Items" href="http://msdn.microsoft.com/en-us/library/ee210581(v=SQL.105).aspx" target="_blank">map data region</a>. You can create a map using any of the following data sources:</p>
<ul>
<li>Map Gallery &#8211; a set of Shapefiles for the United States only that ships with Reporting Services</li>
<li>ESRI Shapefile &#8211; a .shp file conforming to the <a title="ESRI: Getting Started for Developers" href="http://www.esri.com/getting-started/developers/index.html" target="_blank">Environmental Systems Research Institute, Inc. (ESRI)</a> shapefile spatial data format</li>
<li><a title="MSDN: Types of Spatial Data" href="http://msdn.microsoft.com/en-us/library/bb964711(v=SQL.105).aspx" target="_blank">SQL Server spatial data</a> &#8211; a query that includes SQLGeography or SQLGeometry data types</li>
</ul>
<p>Rob Farley (<a title="Rob Farley's Blog" href="http://sqlblog.com/blogs/rob_farley/default.aspx" target="_blank">blog</a>|<a title="@rob_farley" href="http://twitter.com/rob_farley" target="_blank">twitter</a>) points out today in <a title="Spatial data from shapefiles (for T-SQL Tuesday #006)" href="http://sqlblog.com/blogs/rob_farley/archive/2010/05/11/spatial-data-from-shapefiles-for-t-sql-tuesday-006.aspx" target="_blank">his T-SQL Tuesday post</a> that using the SQL geography field is a preferable alternative to ESRI shapefiles for storing spatial data in SQL Server. So how do you get spatial data? If you don&#8217;t already have a GIS application in-house, you can find a variety of sources. Here are a few to get you started:</p>
<ul>
<li>US Census Bureau Website, <a href="http://www.census.gov/geo/www/tiger/">http://www.census.gov/geo/www/tiger/</a></li>
<li>Global Administrative Areas Spatial Database, <a href="http://biogeo.berkeley.edu/gadm/">http://biogeo.berkeley.edu/gadm/</a></li>
<li>Digital Chart of the World Data Server, <a href="http://www.maproom.psu.edu/dcw/">http://www.maproom.psu.edu/dcw/</a></li>
</ul>
<p>In a recent <a title="SQL SERVER – World Shapefile Download and Upload to Database – Spatial Database" href="http://blog.sqlauthority.com/2010/03/30/sql-server-world-shapefile-download-and-upload-to-database-spatial-database/" target="_blank">post</a> by Pinal Dave (<a title="Journey to SQL Authority with Pinal Dave" href="http://blog.sqlauthority.com/" target="_blank">blog</a>|<a title="@pinaldave" href="http://twitter.com/pinaldave">twitter</a>), you can find a link to free shapefiles for download and a tutorial for using <a title="Shape2SQL" href="http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx">Shape2SQL</a>, a free tool to convert shapefiles into SQL Server data.</p>
<p>In my post today, I&#8217;ll show you how to use combine spatial data that describes boundaries with spatial data in AdventureWorks2008R2 that identifies stores locations to embed a map in a report.</p>
<p><strong>Preparing the spatial data</strong></p>
<p>First, I downloaded Shapefile data for the <a title="Spatial Data Download - France - Administrative Areas from DIVA-GIS" href="http://www.diva-gis.org/data/adm/FRA_adm.zip" target="_blank">administrative boundaries in France</a> and unzipped the data to a local folder. Then I used Shape2SQL to upload the data into a SQL Server database called Spatial. I&#8217;m not sure of the reason why, but I had to uncheck the option to create a spatial index to upload the data. Otherwise, the upload appeared to run successfully, but no table appeared in my database.</p>
<p>The zip file that I downloaded contained three files, but I didn&#8217;t know what was in them until I used Shape2SQL to upload the data into tables. Then I found that FRA_adm0 contains spatial data for the country of France, FRA_adm1 contains spatial data for each region, and FRA_adm2 contains spatial data for each department (a subdivision of region).</p>
<p>Next I prepared my SQL query containing sales data for fictional stores selling Adventure Works products in France. The Person.Address table in the AdventureWorks2008R2 database (which you can <a title="AdventureWorks 2008 R2 databases" href="http://msftdbprodsamples.codeplex.com/releases/view/24854" target="_blank">download from Codeplex</a>) contains a SpatialLocation column which I joined &#8211; along with several other tables &#8211; to the Sales.Customer and Sales.Store tables. I&#8217;ll be able to superimpose this data on a map to see where these stores are located. I included the SQL script for this query (as well as the spatial data for France) in the <a title="Spatial Data in SSRS project" href="http://datainspirations.com/uploads/SpatialDataInSSRS.zip" target="_blank">downloadable project</a> that I created for this post.</p>
<p><strong>Step 1: Using the Map Wizard to Create a Map of France</strong></p>
<p>You can build a map without using the wizard, but I find it&#8217;s rather useful in this case. Whether you use Business Intelligence Development Studio (BIDS) or Report Builder 3.0, the map wizard is the same. I used BIDS so that I could create a project that includes all the files related to this post. To get started, I added an empty report template to the project and named it France Stores. Then I opened the Toolbox window and dragged the Map item to the report body which starts the wizard. Here are the steps to perform to create a map of France:</p>
<ol>
<li>On the <strong>Choose a source of spatial data</strong> page of the wizard, select <strong>SQL Server spatial query</strong>, and click <strong>Next</strong>.</li>
<li>On the <strong>Choose a dataset with SQL Server spatial data</strong> page, select <strong>Add a new dataset with SQL Server spatial data</strong>.</li>
<li>On the <strong>Choose a connection to a SQL Server spatial data source</strong> page, select <strong>New</strong>.</li>
<li>In the <strong>Data Source Properties</strong> dialog box, on the <strong>General</strong> page, add a connecton string like this (changing your server name if necessary):<br />
<code>Data Source=(local);Initial Catalog=Spatial</code></li>
<li>Click <strong>OK</strong> and then click <strong>Next</strong>.</li>
<li>On the <strong>Design a query</strong> page, add a query for the country shape, like this:<br />
select * from fra_adm1</li>
<li>Click <strong>Next</strong>. The map wizard reads the spatial data and renders it for you on the <strong>Choose spatial data and map view options</strong> page, as shown below.<br />
<img style="width: 526px; display: inline; height: 431px;" src="http://blog.datainspirations.com/wp-content/uploads/2010/05/1_France_MapWizard.png" alt="Map Wizard with France regional boundaries" width="849" height="622" /><br />
You have the option to add a Bing Maps layer which shows surrounding countries. Depending on the type of Bing Maps layer that you choose to add (from Road, Aerial, or Hybrid) and the zoom percentage you select, you can view city names and roads and various boundaries. To keep from cluttering my map, I&#8217;m going to omit the Bing Maps layer in this example, but I do recommend that you experiment with this feature. It&#8217;s a nice integration feature.</li>
<li>Use the + or &#8211; button to rexize the map as needed. (I used the + button to increase the size of the map until its edges were just inside the boundaries of the visible map area (which is called the viewport). You can eliminate the color scale and distance scale boxes that appear in the map area later.</li>
<li>Select the <strong>Embed map data in this report</strong> for faster rendering. The spatial data won&#8217;t be changing, so there&#8217;s no need to leave it in the database. However, it does increase the size of the RDL. Click <strong>Next</strong>.</li>
<li>On the <strong>Choose map visualization</strong> page, select <strong>Basic Map</strong>. We&#8217;ll add data for visualization later. For now, we have just the outline of France to serve as the foundation layer for our map. Click <strong>Next</strong>, and then click <strong>Finish</strong>.</li>
<li>Now click the color scale box in the lower left corner of the map, and press the Delete key to remove it. Then repeat to remove the distance scale box in the lower right corner of the map.</li>
</ol>
<p><strong>Step 2: Add a Map Layer to an Existing Map</strong></p>
<p>The map data region allows you to add multiple layers. Each layer is associated with a different data set. Thus far, we have the spatial data that defines the regional boundaries in the first map layer. Now I&#8217;ll add in another layer for the store locations by following these steps:</p>
<ol>
<li>If the Map Layers windows is not visible, click the report body, and then click twice anywhere on the map data region to display it.</li>
<li>Click on the New Layer Wizard button in the Map layers window.<br />
<img style="width: 104px; height: 338px;" src="http://blog.datainspirations.com/wp-content/uploads/2010/05/2_NewLayerWizard.png" alt="2_NewLayerWizard.png" width="159" height="400" /><br />
And then we start over again with the process by choosing a spatial data source.</li>
<li>Select <strong>SQL Server spatial query</strong>, and click <strong>Next</strong>.</li>
<li>Select <strong>Add a new dataset with SQL Server spatial data</strong>, and click <strong>Next</strong>.</li>
<li>Click <strong>New</strong>, add a connection string to the AdventureWorks2008R2 database, and click <strong>Next</strong>.</li>
<li>Add a query with spatial data (like the one I included in the <a title="Spatial Data In SSRS project" href="http://datainspirations.com/uploads/SpatialDataInSSRS.zip" target="_blank">downloadable project</a>), and click <strong>Next</strong>.</li>
<li>The location data now appears as another layer on top of the regional map created earlier. Use the + button to resize the map again to fill as much of the viewport as possible without cutting off edges of the map. You might need to drag the map within the viewport to center it properly.</li>
<li>Select <strong>Embed map data in this report</strong>, and click <strong>Next</strong>.</li>
<li>On the <strong>Choose map visualization</strong> page, select <strong>Basic Marker Map</strong>, and click <strong>Next</strong>.</li>
<li>On the <strong>Choose color theme and data visualization</strong> page, in the <strong>Marker</strong> drop-down list, change the marker to diamond. There&#8217;s no particular reason for a diamond; I think it stands out a little better than a circle on this map. Clear the <strong>Single color map</strong> checkbox as another way to distinguish the markers from the map.<br />
You can of course create an analytical map instead, which would change the size and/or color of the markers according to criteria that you specify, such as sales volume of each store, but I&#8217;ll save that exploration for another post on another day.</li>
<li>Click <strong>Finish</strong> and then click <strong>Preview</strong> to see the rendered report. Et voilà&#8230;c&#8217;est fini.<br />
<img style="width: 501px; height: 313px;" src="http://blog.datainspirations.com/wp-content/uploads/2010/05/3_FinalMap.png" alt="3_FinalMap.png" width="584" height="369" /><br />
Yes, it&#8217;s a very simple map at this point, but there are many other things you can do to enhance the map. I&#8217;ll create a series of posts to explore the possibilities.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/05/11/sql-server-2008-r2-reporting-services-the-word-is-but-a-stage-t-sql-tuesday-006/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introducing Microsoft SQL Server 2008 R2 &#8211; Business Intelligence Samples</title>
		<link>http://blog.datainspirations.com/2010/04/30/intro-sql-server-2008-r2-bi-samples/</link>
		<comments>http://blog.datainspirations.com/2010/04/30/intro-sql-server-2008-r2-bi-samples/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 18:34:15 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Microsoft BI]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=145</guid>
		<description><![CDATA[On April 14, 2010, Microsoft Press (blog &#124; twitter) released my latest book, co-authored with Ross Mistry (twitter), as a free ebook download - Introducing Microsoft SQL Server 2008 R2. As the title implies, this ebook is an introduction to the latest SQL Server release. Although you&#8217;ll find a comprehensive review of the product&#8217;s features [...]]]></description>
			<content:encoded><![CDATA[<p>On April 14, 2010, Microsoft Press (<a href="http://blogs.msdn.com/microsoft_press/" target="_blank">blog</a> | <a href="http://twitter.com/MicrosoftPress" target="_blank">twitter</a>) released my latest book, co-authored with Ross Mistry (<a href="http://twitter.com/RossMistry" target="_blank">twitter</a>), as a free ebook download -<a href="http://blogs.msdn.com/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx" target="_blank"> Introducing Microsoft SQL Server 2008 R2</a>. As the title implies, this ebook is an introduction to the latest SQL Server release. Although you&#8217;ll find a comprehensive review of the product&#8217;s features in this book, you will not find the step-by-step details that are typical in my other books. For those readers who are interested in a more interactive learning experience, I have created two samples file for download:</p>
<ul>
<li><a href="http://datainspirations.com/uploads/IntroSQLServer2008R2Samples.zip" target="_blank">IntroSQLServer2008R2Samples project</a></li>
<li><a href="http://datainspirations.com/uploads/Sales Analysis.zip" target="_blank">Sales Analysis workbook</a></li>
</ul>
<p>Here&#8217;s a recap of the business intelligence chapters and the samples I used to generate the screen shots by chapter:</p>
<p><strong>Chapter 6: Scalable Data Warehousing</strong> covers a new edition of SQL Server, <a href="http://www.microsoft.com/sqlserver/2008/en/us/parallel-data-warehouse.aspx" target="_blank">Parallel Data Warehouse</a>. Understandably, Microsoft did not ship me the software and hardware to set up my own Parallel Data Warehouse environment for testing purposes and consequently you won&#8217;t see any screenshots in this chapter. I received a lot of information and a lot of help from the product team during the development of this chapter to ensure its technical accuracy.</p>
<p><strong>Chapter 7: Master Data Services</strong> is a new component in SQL Server. After you install <a href="http://www.microsoft.com/sqlserver/2008/en/us/mds.aspx" target="_blank">Master Data Services</a> (MDS), which is a separate installation from SQL Server although it&#8217;s found on the same media, you can install sample models to explore (which is what I did to create screenshots for the book). To do this, you deploying packages found at \Program Files\Microsoft SQL Server\Master Data Services\Samples\Packages. You will first need to use the Configuration Manager (in the Microsoft SQL Server 2008 R2\Master Data Services program group) to create a database and a Web application for MDS. Then when you launch the application, you&#8217;ll see a Getting Started page which has a Deploy Sample Data link that you can use to deploy any of the sample packages.</p>
<p><strong>Chapter 8: Complex Event Processing</strong> is an introduction to another new component,<a href="http://www.microsoft.com/sqlserver/2008/en/us/r2-complex-event.aspx" target="_blank"> StreamInsight</a>. This topic was way too large to cover in-depth in a single chapter, so I focused on information such as architecture, development models, and an overview of the key sections of code you&#8217;ll need to develop for your own applications. StreamInsight is an engine that operates on data in-flight and as such has no user interface that I could include in the book as screenshots. The November CTP version of SQL Server 2008 R2 included code samples as part of the installation, but these are not the official samples that will eventually be available in <a href="http://streaminsight.codeplex.com/" target="_blank">Codeplex</a>. At the time of this writing, the samples are not yet published.</p>
<p><strong>Chapter 9: Reporting Services Enhancements</strong> provides an overview of all the changes to Reporting Services in SQL Server 2008 R2, and there are many! In previous posts, I shared more details than you&#8217;ll find in the book about new functions (<a href="http://blog.datainspirations.com/2010/03/19/sql-server-2008-r2-reporting-services-look-up-look-down-look-all-around-part-i/" target="_blank">Lookup</a>, <a href="http://blog.datainspirations.com/2010/03/29/sql-server-2008-r2-reporting-services-look-up-part-ii-2/" target="_blank">MultiLookup</a>, and <a href="http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/" target="_blank">LookupSet</a>), <a href="http://blog.datainspirations.com/2010/04/13/ssrs-page-number/" target="_blank">properties for page numbering</a>, and the new global variable <a href="http://blog.datainspirations.com/2010/03/03/sql-server-2008-r2-reporting-services-as-you-like-it/" target="_blank">RenderFormat</a>. I will confess that I didn&#8217;t use actual data in the book for my discussion on the Lookup functions, but I did create real reports for the blog posts and will upload those separately. For the other screenshots and examples in the book, I have created the <a href="http://datainspirations.com/uploads/IntroSQLServer2008R2Samples.zip" target="_blank">IntroSQLServer2008R2Samples project </a>for you to download. To preview these reports in Business Intelligence Development Studio, you must have the <a href="http://msftdbprodsamples.codeplex.com/releases/view/24854" target="_blank">AdventureWorksDW2008R2</a> database installed, and you must download and install <a title="Download SQL Server 2008 R2" href="http://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx" target="_blank">SQL Server 2008 R2</a>. For the map report, you must execute the PopulationData.sql script that I included in the samples file to add a table to the AdventureWorksDW2008R2 database. The IntroSQLServer2008R2Samples project includes the following files:</p>
<ul>
<li>01_AggregateOfAggregates.rdl to illustrate the use of embedded aggregate functions</li>
<li>02_RenderFormatAndPaging.rdl to illustrate the use of page break properties (Disabled, ResetPageNumber), the PageName property, and the RenderFormat global variable</li>
<li>03_DataSynchronization.rdl to illustrate the use of the DomainScope property</li>
<li>04_TextboxOrientation.rdl to illustrate the use of the WritingMode property</li>
<li>05_DataBar.rdl</li>
<li>06_Sparklines.rdl</li>
<li>07_Indicators.rdl</li>
<li>08_Map.rdl to illustrate a simple analytical map that uses color to show population counts by state</li>
<li>PopulationData.sql to provide the data necessary for the map report</li>
</ul>
<p><strong>Chapter 10: Self-Service Analysis with PowerPivot</strong> introduces two new components to the Microsoft BI stack, PowerPivot for Excel  and PowerPivot for SharePoint, which you can learn more about at the <a href="http://www.powerpivot.com/" target="_blank">PowerPivot site</a>. To produce the screenshots for this chapter, I created the <a href="http://datainspirations.com/uploads/Sales Analysis.zip" target="_blank">Sales Analysis workbook </a>which you can download (although you must have Excel 2010 and the PowerPivot for Excel add-in installed to explore it fully). It&#8217;s a rather simple workbook because space in the book did not permit a complete exploration of all the wonderful things you can do with PowerPivot. I used a tutorial that was available with the CTP version as a basis for the report so it might look familiar if you&#8217;ve already started learning about PowerPivot.</p>
<p>In future posts, I&#8217;ll continue exploring the new features in greater detail. If there&#8217;s any special requests, please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/04/30/intro-sql-server-2008-r2-bi-samples/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2 Reporting Services &#8211; I&#8217;ve Got Your Page Number (T-SQL Tuesday #005)</title>
		<link>http://blog.datainspirations.com/2010/04/13/ssrs-page-number/</link>
		<comments>http://blog.datainspirations.com/2010/04/13/ssrs-page-number/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 23:13:42 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>
		<category><![CDATA[T-SQL Tuesday]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=127</guid>
		<description><![CDATA[As you might have guessed if you&#8217;ve been reading my blog lately, I&#8217;ve been spending a lot of time working with the business intelligence features in SQL Server 2008 R2. Not just Reporting Services, but the whole BI stack. However, it just so happens that today is T-SQL Tuesday and the topic this month is Reporting [...]]]></description>
			<content:encoded><![CDATA[<p>As you might have guessed if you&#8217;ve been reading my blog lately, I&#8217;ve been spending a lot of time working with the business intelligence features in <a title="SQL Server 2008 R2" href="http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx" target="_blank">SQL Server 2008 R2</a>. Not just Reporting Services, but the whole BI stack. However, it just so happens that today is <a href="http://sqlvariant.com/wordpress/index.php/2010/04/t-sql-tuesday-005-reporting/" target="_blank">T-SQL Tuesday</a> and the topic this month is Reporting (hosted by Aaron Nelson &#8211; <a href="http://sqlvariant.com/wordpress/" target="_blank">blog </a>| <a href="http://twitter.com/SQLVariant" target="_blank">twitter</a>) , so I thought I&#8217;d use the opportunity to contribute another observation about new <a title="Using Built-in Globals and Users Field References in Expressions" href="http://technet.microsoft.com/en-us/library/dd255216(SQL.105).aspx">properties and globals</a> that you can find in the upcoming release of Reporting Services. Today, I&#8217;ll explain how you can use the <strong>PageName </strong>and <strong>ResetPageNumber</strong> properties to dynamically change the values of <strong>Globals!PageName </strong>(a new global) and <strong>Globals!PageNumber</strong> (a long-time global) respectively during report execution. And I&#8217;ll introduce <strong>Globals!OverallPageNumber </strong>and <strong>Globals!OverallTotalPages</strong>.</p>
<p>One of the problems that I currently have with earlier versions of Reporting Services is the inability to control page numbering when I use subreports. I have a situation where I have many individual reports that I want to combine into a single PDF document for distribution. Page numbering is available only in the page header or page footer of a report, so I can&#8217;t define the page numbering strategy in the report that I define as a subreport. And even if I could, prior to SQL Server 2008 R2, there was no simple way to renumber pages dynamically within the report. That is, the page numbering applies to the entire report. I cannot number the pages in a distinct section of the report separately from other sections.</p>
<p>With the new version of Reporting Services, I can now solve this problem. Not only can I have separate page numbering by &#8220;section&#8221;, but I can also assign names to each &#8220;section&#8221;. For this example, I&#8217;ve taken a very simple approach to prove out what&#8217;s possible. That means it&#8217;s  not pretty or elegant, or meant to illustrate best practices, but it&#8217;s functional and to the point. Let&#8217;s get started.</p>
<p>The master report contains a Tablix data region which has a PageName property that I can use for naming the first section of my report, as shown in Figure 1. You can use static text, as I have done, or you can use an expression. The <strong>PageName </strong>property is a property of a data region or a group. I haven&#8217;t tested it extensively, but it appears to remain constant from page to page until the report execution renders another data region or group where the <strong>PageName </strong>property is set to a new value.</p>
<div id="attachment_128" class="wp-caption alignnone" style="width: 297px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/PageName1.png"><img class="size-full wp-image-128 " title="PageName property" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/PageName1.png" alt="" width="287" height="153" /></a><p class="wp-caption-text">Figure 1</p></div>
<p>In the report that I&#8217;ll use as a subreport, I set the <strong>PageName </strong>property to <em>Sales Summary</em>, on the outermost tablix. You&#8217;ll see later that this property &#8220;pulls through&#8221; to the rendered report. I can also set page breaks (see Figure 2) on the groups in that report which appear in the rendered report, which I have on the group (which breaks on calendar year) of the outermost tablix. The only thing that I cannot define in this report is page numbering because pagination properties are ignored when a report is used as a subreport. Note that the <strong>PageName </strong>is left blank here. It will continue to use <em>Sales Summary </em>which is defined on the Tablix2 object.</p>
<div id="attachment_129" class="wp-caption alignnone" style="width: 701px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/SubreportPageBreak.png"><img class="size-full wp-image-129 " title="SubreportPageBreak" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/SubreportPageBreak.png" alt="" width="691" height="424" /></a><p class="wp-caption-text">Figure 2</p></div>
<p>Now the problem that I have with subreports is that there is no way for me to tell it to 1) insert a page break before rendering the subreport, and 2) reset the page numbering. However, I can use a rectangle to handle the pagination for me. So I add a rectangle to MasterReport, insert a subreport inside the rectangle, and configure the subreport to point to the ResellerSales report. Next, I configure the pagination properties on the rectangle, as shown in Figure 3. I force a page break with <strong>BreakLocation</strong> = Start, and set <strong>ResetPageNumber</strong> to True.</p>
<div id="attachment_130" class="wp-caption alignnone" style="width: 297px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/RectanglePagination.png"><img class="size-full wp-image-130 " title="RectanglePagination" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/RectanglePagination.png" alt="" width="287" height="180" /></a><p class="wp-caption-text">Figure 3</p></div>
<p>The page number reset applies only to the current page counter. You display the value of the current page counter in the page header or footer by using the <strong>Globals!PageNumber</strong>, which has always been a part of Reporting Services. However, in SSRS 2008 R2, you can now reset the current page counter to zero anytime you want to begin a new page numbering sequence in your report. Meanwhile, you can display the running count of ALL pages in your report by using the new globals, <strong>Globals!OverallPageNumber</strong> and <strong>Globals!OverallTotalPages</strong>. To illustrate the two page counters, I have two textboxes in the page footer of my report (which is the only place you can use the globals related to pagination).</p>
<p>The first expression applies the current section of my report which is affected by the page number reset and displays the value of the PageName property:</p>
<pre>=Globals!PageName + " "  + CStr(Globals!PageNumber) + " of " + CStr(Globals!TotalPages)</pre>
<p>The second expression displays the overall page count, which is unaffected by the page number reset:</p>
<pre>=CStr(Globals!OverallPageNumber) + " of " + CStr(Globals!OverallTotalPages) + " Overall"</pre>
<p>Now when I preview the report, I see the footer shown in Figure 4 on the first page of the report. Here you can see the first &#8220;section&#8221; of the report is a total of 5 pages while the overall report is 9 pages.</p>
<div id="attachment_131" class="wp-caption alignnone" style="width: 628px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/ReportPage1.png"><img class="size-full wp-image-131 " title="ReportPage1" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/ReportPage1.png" alt="" width="618" height="58" /></a><p class="wp-caption-text">Figure 4</p></div>
<p>And then paging forward to the first page of the subreport, I find the footer shown in Figure 5. The <strong>PageName </strong>property of the tablix in the subreport now replaces the prior page name. (Remember that you can use an expression instead of static text.)</p>
<div id="attachment_132" class="wp-caption alignnone" style="width: 628px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/ReportPage2.png"><img class="size-full wp-image-132  " title="ReportPage2" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/ReportPage2.png" alt="" width="618" height="71" /></a><p class="wp-caption-text">Figure 5</p></div>
<p>If you want to take a closer look, you can <a href="http://datainspirations.com/uploads/PageNumbering.zip" target="_blank">download my project</a> and try it out yourself. To execute the report, you must have the <a href="http://msftdbprodsamples.codeplex.com/releases/view/24854" target="_blank">AdventureWorksDW2008R2</a> database installed, and you must download and install <a title="Download SQL Server 2008 R2" href="http://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx" target="_blank">SQL Server 2008 R2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/04/13/ssrs-page-number/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2: Reporting Services – Look Up, Look Down, Look All Around (Part III)</title>
		<link>http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/</link>
		<comments>http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 23:44:27 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=107</guid>
		<description><![CDATA[Today&#8217;s post is the 3rd post in a series about the new lookup functions in SQL Server 2008 R2 Reporting Services. I covered the Lookup function in Part I of this series and the MultiLookup function in Part II.  The third and final lookup function is LookupSet. First, a quick review. The Lookup function evaluates one value per row in [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s post is the 3rd post in a series about the new lookup functions in <a title="SQL Server 2008 R2" href="http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx" target="_blank">SQL Server 2008 R2</a> Reporting Services. I covered the <a title="Lookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210575(SQL.105).aspx" target="_blank">Lookup</a> function in <a href="http://blog.datainspirations.com/2010/03/19/sql-server-2008-r2-reporting-services-look-up-look-down-look-all-around-part-i/" target="_blank">Part I</a> of this series and the <a title="MultiLookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210583(SQL.105).aspx" target="_blank">MultiLookup </a>function in <a href="http://blog.datainspirations.com/2010/03/29/sql-server-2008-r2-reporting-services-look-up-part-ii-2/" target="_blank">Part II</a>.  The third and final lookup function is <a title="LookupSet Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210576(SQL.105).aspx" target="_blank">LookupSet</a>.</p>
<p>First, a quick review. The Lookup function evaluates one value per row in the source to find one value for that row in the destination and the MultiLookup function evaluates one set of values per row, finds each matching value in the destination, and returns the matches in a set. LookupSet evaluates each row in the source and looks for all matches in the destination, returning the resulting matches as a set.</p>
<p>To illustrate how to use LookupSet, I want to produce a list of the sales by state and include a count of customers so that I can compare the average sales per customer by state. In Dataset1, I have a list of the states&#8217; two-letter codes and total sales. In Dataset2, I have a list of customer IDs and the state associated with the customer. You can see a sample of data in each of these datasets below in Figure 1.</p>
<div id="attachment_108" class="wp-caption alignnone" style="width: 555px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/LookupSet-Datasets.png"><img class="size-full wp-image-108" title="LookupSet Datasets" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/LookupSet-Datasets.png" alt="" width="545" height="243" /></a><p class="wp-caption-text">Figure 1</p></div>
<p>If you look at the report layout and a portion of the report shown in Figure 2, you can infer that I have a combination of lookups in play. The report is a simple table that includes StateProvinceCode in the first column. In the State column, I  use the Lookup function in an expression to get the state name from a third dataset. In the Customer Count column, I have an expression that includes the LookupSet function to retrieve the set of customers for the state on the current row and then I use a Count function on that set. Of course, if I wanted a list of those customers, I could use the Join function to convert the array that returns from the LookupSet function into a string. Continuing on with this example, though, I have SalesAmount from Dataset1, and then another expression for &#8220;Avg Sale Per Customer&#8221; that divides SalesAmount by Customer Count.</p>
<div id="attachment_109" class="wp-caption alignnone" style="width: 595px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/LookupSet-Diagram.png"><img class="size-full wp-image-109  " title="LookupSet Diagram" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/LookupSet-Diagram.png" alt="" width="585" height="104" /></a><p class="wp-caption-text">Figure 2</p></div>
<p>The expression in the Customer Count column uses the LookupSet function and looks like this:</p>
<pre>=LookupSet(Fields!StateProvinceCode.Value,Fields!StateProvinceCode.Value,
Fields!CustomerID.Value,"Dataset2").Length</pre>
<p>LookupSet takes four arguments, much like the Lookup function except that Lookup returns a single value per row whereas LookupSet returns an array:</p>
<ol>
<li>The first argument, Fields!StateProvinceCode.Value,  is a field in the dataset that is bound to the data region (Dataset1 in this example).</li>
<li>The second argument is the StateProvinceCode field in Dataset2 that you use as the lookup field. The LookupSet function matches each value in the Dataset1 field with a value in the Dataset2 field. The values to match must have the same data type.</li>
<li>The third argument, Fields!CustomerID.Value, is the field in Dataset2 that you want to return as the function result. The difference here between the Lookup and LookupSet functions is that the Lookup function returns the first value it finds, but LookupSet returns an array of all matching values that it finds.</li>
<li>The fourth and final argument is the name of the second dataset which must be enclosed in quotes and is case-sensitive.</li>
</ol>
<p>LookupSet returns an array, so you can&#8217;t use the results directly in the table but must use some other function to operate on the array to get a single value.</p>
<p>I like pictures to help me understand how things work, so I created Figure 3 below as another way to visualize what the LookupSet function does.</p>
<div>
<dl id="attachment_89">
<dd>
<div id="attachment_111" class="wp-caption alignnone" style="width: 562px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/04/LookupSet-Diagram-21.png"><img class="size-full wp-image-111 " title="LookupSet Diagram 2" src="http://blog.datainspirations.com/wp-content/uploads/2010/04/LookupSet-Diagram-21.png" alt="" width="552" height="342" /></a><p class="wp-caption-text">Figure 3</p></div>
</dd>
</dl>
</div>
<p>And that concludes this series on the new Lookup functions in SQL Server 2008 R2 Reporting Services. I hope you find these explanations useful. I admit that I haven&#8217;t had a compelling need for them, but that&#8217;s because I do the necessary integration in the back-end first &#8211; either by querying a data mart/warehouse or by joining the data in the dataset. However, I can imagine scenarios where those two options aren&#8217;t available in which case having the Lookup functions as an alternative is helpful. What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2: Reporting Services – Look Up, Look Down, Look All Around (Part II)</title>
		<link>http://blog.datainspirations.com/2010/03/29/sql-server-2008-r2-reporting-services-look-up-part-ii-2/</link>
		<comments>http://blog.datainspirations.com/2010/03/29/sql-server-2008-r2-reporting-services-look-up-part-ii-2/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 18:43:51 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=101</guid>
		<description><![CDATA[In today&#8217;s post, I&#8217;m continuing an exploration of the lookup functions in SQL Server 2008 R2 Reporting Services. I began with the Lookup function in Part I of this series.  In general, the lookup functions allow you to combine data from two datasets in a single data region in report. There are three lookup functions available: Lookup MultiLookup LookupSet Today, [...]]]></description>
			<content:encoded><![CDATA[<p>In today&#8217;s post, I&#8217;m continuing an exploration of the lookup functions in <a title="SQL Server 2008 R2" href="http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx" target="_blank">SQL Server 2008 R2</a> Reporting Services. I began with the <a title="Lookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210575(SQL.105).aspx" target="_blank">Lookup</a> function in <a href="http://blog.datainspirations.com/2010/03/19/sql-server-2008-r2-reporting-services-look-up-look-down-look-all-around-part-i/" target="_blank">Part I</a> of this series.  In general, the lookup functions allow you to combine data from two datasets in a single data region in report. There are three lookup functions available:</p>
<ul>
<li><a title="Lookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210575(SQL.105).aspx" target="_blank">Lookup</a></li>
<li><a title="MultiLookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210583(SQL.105).aspx" target="_blank">MultiLookup</a></li>
<li><a title="LookupSet Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210576(SQL.105).aspx" target="_blank">LookupSet</a></li>
</ul>
<p>Today, we&#8217;ll take a closer look at the MultiLookup function. Remember from the discussion in Part I that the Lookup function evaluates one value per row in the source to find one value for that row in the destination. By contrast, the MultiLookup function evaluates one set of values per row, finds each matching value in the destination, and returns the matches in a set. To better understand how to use it, let&#8217;s look at an example of how to use this function. In this example, I want to produce a list of the sales of each salesperson and include a list of the states in each person&#8217;s sales territory. In my first dataset, I have a comma-delimited list of two-letter codes for the states in each person&#8217;s sales territory. In the second dataset, I have a list of states with their corresponding two-letter codes. The two datasets are shown below in Figure 1.</p>
<div>
<dl id="attachment_87">
<dt><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/MultiLookup-Datasets.png"><img title="MultiLookup Datasets" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/MultiLookup-Datasets.png" alt="" width="601" height="148" /></a></dt>
<dd>Figure 1</dd>
</dl>
</div>
<p>Next, I create a simple table that contains the SalesPerson and the SalesAmount field from Dataset1. I also have an expression in the first column. The layout and a portion of the report are shown in Figure 2.</p>
<div>
<dl id="attachment_86">
<dt><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/MultiLookup.png"><img title="MultiLookup" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/MultiLookup.png" alt="" width="573" height="185" /></a></dt>
<dd>Figure 2</dd>
</dl>
</div>
<p>The expression uses the MultiLookup function and looks like this:</p>
<pre>=Join(MultiLookup(Split(Fields!StateList.Value, ","), Fields!StateProvinceCode.Value,
Fields!Name.Value,"Dataset2"), chr(10))</pre>
<p>The MultiLookup function takes four arguments:</p>
<ol>
<li>The first argument, Split(Fields!StateList.Value, &#8220;,&#8221;), is an expression based on the StateList field found in the dataset that is bound to the data region, which is Dataset1 in this example. The StateList field contains a comma-delimited list which is transformed into an array by using the Split function.</li>
<li>The second argument is the StateProvinceCode field in Dataset2 that you use as the lookup field. In other words, you are matching each item in the array made from the StateList field in Dataset1 with a StateProvinceCode in Dataset2. The values to match must have the same data type.</li>
<li>The third argument, Fields!Name.Value, is the field (or expression) in the second dataset that you want to return as the function result. The difference here between the Lookup and MultiLookp functions is that the Lookup function returns a single value but MultiLookup returns an array.</li>
<li>The fourth and final argument is the name of the second dataset which must be enclosed in quotes and is case-sensitive.</li>
</ol>
<p>Because this function returns an array of values, the Join function is used to convert the array back to a string of values. For presentation purposes, rather than use a comma separator, I used chr(10) to present each state on a separate line.</p>
<p>Figure 3 shows another way to visualize what the MultiLookup function does.</p>
<div>
<dl id="attachment_89">
<dt><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/MultiLookup-Diagram.png"><img title="MultiLookup Diagram" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/MultiLookup-Diagram.png" alt="" width="483" height="326" /></a></dt>
<dd>Figure 3</dd>
</dl>
</div>
<p>In <a title="SQL Server 2008 R2: Reporting Services – Look Up, Look Down, Look All Around (Part III)" href="http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/" target="_blank">my next post</a>, I&#8217;ll explain the last of the lookup functions, LookupSet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/03/29/sql-server-2008-r2-reporting-services-look-up-part-ii-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2: Reporting Services &#8211; Look Up, Look Down, Look All Around (Part I)</title>
		<link>http://blog.datainspirations.com/2010/03/19/sql-server-2008-r2-reporting-services-look-up-look-down-look-all-around-part-i/</link>
		<comments>http://blog.datainspirations.com/2010/03/19/sql-server-2008-r2-reporting-services-look-up-look-down-look-all-around-part-i/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 21:54:19 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=75</guid>
		<description><![CDATA[SQL Server 2008 R2 Reporting Services is loaded with features for the report author. In today&#8217;s post and two posts that will appear next week, I&#8217;ll explore the lookup functions which enable you to combine data from two datasets in a single data region which not possible in earlier versions of Reporting Services. If all of [...]]]></description>
			<content:encoded><![CDATA[<p><a title="SQL Server 2008 R2" href="http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx" target="_blank">SQL Server 2008 R2</a> Reporting Services is loaded with features for the report author. In today&#8217;s post and two posts that will appear next week, I&#8217;ll explore the lookup functions which enable you to combine data from two datasets in a single data region which not possible in earlier versions of Reporting Services. If all of the data in a report comes from a single data source, then it&#8217;s probably easier to create a single dataset by using a SQL query that joins the data from multiple tables. However, there might be situations when you can&#8217;t write the query to join the data in advance. For example, you might have some data coming from a relational source and other data in a CSV file. Or perhaps you&#8217;re taking advantage of <a title="Managing Shared Datasets (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee636147(SQL.105).aspx" target="_blank">shared datasets</a> in Reporting Services 2008 R2 and need a way to link together data from two shared datasets in one data region. That&#8217;s where the new Reporting Services lookup functions come in handy.</p>
<p>There are three lookup functions available:</p>
<ul>
<li><a title="Lookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210575(SQL.105).aspx" target="_blank">Lookup</a></li>
<li><a title="MultiLookup Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210583(SQL.105).aspx" target="_blank">MultiLookup</a></li>
<li><a title="LookupSet Function (MSDN)" href="http://msdn.microsoft.com/en-us/library/ee210576(SQL.105).aspx" target="_blank">LookupSet</a></li>
</ul>
<p>My focus today is on the Lookup function. This function is in effect a join between two datasets where there is a one-to-one relationship between the source and destination. Let&#8217;s say that I want to produce a report of sales by state, but the dataset that I have for sales provides the two-letter code for state. Let&#8217;s say also that I find another dataset that provides a list of states and the two-letter code for each state. Now I have two datasets available, shown below in Figure 1, for my report.</p>
<div id="attachment_76" class="wp-caption alignnone" style="width: 542px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/Lookup-Datasets.png"><img class="size-full wp-image-76" title="Lookup Datasets" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/Lookup-Datasets.png" alt="" width="532" height="213" /></a><p class="wp-caption-text">Figure 1</p></div>
<p>Next, I create a simple table, add the SalesAmount field from Dataset1 to the table, and add an expression in the first column. The layout and a portion of the report are shown in Figure 2.</p>
<div id="attachment_79" class="wp-caption alignnone" style="width: 523px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/Lookup.png"><img class="size-full wp-image-79" title="Lookup" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/Lookup.png" alt="" width="513" height="188" /></a><p class="wp-caption-text">Figure 2</p></div>
<p>The expression uses the Lookup function and looks like this:</p>
<pre style="padding-left: 30px;">=Lookup(Fields!StateProvinceCode.Value,Fields!StateProvinceCode.Value,Fields!Name.Value,"Dataset2")</pre>
<p>The Lookup function takes four arguments:</p>
<ol>
<li>The first argument, Fields!StateProvinceCode, is a field (or expression based on a field) from the dataset that is bound to the data region, which is Dataset1 in this example.</li>
<li>The second argument is a field (or expression) from the dataset that you want to use for the lookup. In this example, the second dataset also contains a field called StateProvinceCode, but it&#8217;s okay if the field names are different in each dataset. They should, of course, contain data that matches up and they must have the same data type. You can think of the first and second arguments as analogous to two columns that you want to use to define a join between two tables.</li>
<li>The third argument, which is Fields!Name.Value in this example, is the field (or expression) in the second dataset that you want to return as the function result.</li>
<li>The fourth and final argument is the name of the second dataset which must be enclosed in quotes and is case-sensitive.</li>
</ol>
<p>If you need to match two fields in the first dataset to two fields in the second dataset, that&#8217;s okay. You simply create an expression to concatenate the pair of fields and use that expression in the argument in the Lookup function. Your expression cannot include report or group variables, however, nor can it include another lookup function.</p>
<p>Figure 3 shows another way to visualize what the Lookup function does.</p>
<div id="attachment_80" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/LookupDiagram.png"><img class="size-medium wp-image-80 " title="LookupDiagram" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/LookupDiagram-300x175.png" alt="" width="450" height="265" /></a><p class="wp-caption-text">Figure 3</p></div>
<p>Note that Reporting Services processes the Lookup function on the scope of the expression, which is in this case is the detail rows of the table which correspond to the rows of Dataset1. Using the Lookup function, Reporting Services uses a single value for the current row in the first dataset to find the <span style="text-decoration: underline;">first</span> match in the second dataset and returns a single value. By contrast, the other two lookup functions, MultiLookup and LookupSet work with arrays. Next week, I&#8217;ll continue with <a title="SQL Server 2008 R2: Reporting Services – Look Up, Look Down, Look All Around (Part II)" href="http://blog.datainspirations.com/2010/03/29/sql-server-2008-r2-reporting-services-look-up-part-ii-2/" target="_blank">Part II</a> and <a title="SQL Server 2008 R2: Reporting Services – Look Up, Look Down, Look All Around (Part III)" href="http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/" target="_blank">Part III</a> to explain how to use these functions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/03/19/sql-server-2008-r2-reporting-services-look-up-look-down-look-all-around-part-i/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 R2: Reporting Services &#8211; Testing-Testing, 1-2-3</title>
		<link>http://blog.datainspirations.com/2010/03/12/sql-server-2008-r2-reporting-services-testing-testing-1-2-3/</link>
		<comments>http://blog.datainspirations.com/2010/03/12/sql-server-2008-r2-reporting-services-testing-testing-1-2-3/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 16:21:47 +0000</pubDate>
		<dc:creator>Stacia Misner</dc:creator>
				<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://blog.datainspirations.com/?p=72</guid>
		<description><![CDATA[In earlier versions of Reporting Services, when you create or modify a data source in Report Manager, you don&#8217;t have a straightforward way to confirm that the connection string or credentials are valid at the time that you save the data source. Instead, you must open a report that uses that data source to ensure [...]]]></description>
			<content:encoded><![CDATA[<p>In earlier versions of Reporting Services, when you create or modify a data source in Report Manager, you don&#8217;t have a straightforward way to confirm that the connection string or credentials are valid at the time that you save the data source. Instead, you must open a report that uses that data source to ensure that it works.</p>
<p>In SQL Server 2008 R2, a simple, but oh so important, feature is now available. The data source page in Report Manager now has a Test Connection button, shown in the figure below, that lets you know right away whether the data source is working or not.  This feature makes its debut appearance in the RC0 version of Reporting Services.</p>
<p><a href="http://blog.datainspirations.com/wp-content/uploads/2010/03/testconnection.png"><img class="size-full wp-image-73" title="Report Manager Data Source page" src="http://blog.datainspirations.com/wp-content/uploads/2010/03/testconnection.png" alt="Report Manager Data Source page" width="606" height="536" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datainspirations.com/2010/03/12/sql-server-2008-r2-reporting-services-testing-testing-1-2-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

