<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ak4GRXo5fSp7ImA9WhVUGUo.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184</id><updated>2012-05-25T16:48:44.425-04:00</updated><category term="Personal" /><category term="Book / Tool / Software Reviews" /><category term="Denali" /><category term="Spatial / Map Reports" /><category term="DAX" /><category term="Power View" /><category term="Activities / Whitepapers / Events" /><category term="SSAS" /><category term="My Sessions" /><category term="SSRS" /><category term="SQL Server" /><category term="PowerPivot" /><category term="Interview Questions" /><category term="MDX" /><title>Some Random Thoughts</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://road-blogs.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>84</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/Jason" /><feedburner:info uri="blogspot/jason" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/3.0/" /><feedburner:emailServiceId>blogspot/Jason</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;A08CRH49eCp7ImA9WhVUGUs.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-3626971496260058161</id><published>2012-05-25T14:15:00.000-04:00</published><updated>2012-05-25T14:17:45.060-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-25T14:17:45.060-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Activities / Whitepapers / Events" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerPivot" /><title>PowerPivot Training</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;A quick word to all those guys in the USA who are looking to get trained in PowerPivot. PowerPivot is the buzz word in the industry right now and companies are drawn to it like bees to nectar because of it’s in-memory and self-service BI capabilities. My company, &lt;a href="http://mariner-usa.com"&gt;Mariner&lt;/a&gt; in partnership with &lt;a href="http://www.sqlbi.com/"&gt;SQLBI&lt;/a&gt; are offering PowerPivot workshops and you can find more details in the flyer below. Feel free to reach out to me in case you have any questions.&lt;/font&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="0" bgcolor="#e6eaeb"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td bgcolor="#c0c0c0"&gt; &lt;table style="width: 650px" border="0" cellspacing="0" cellpadding="10" bgcolor="#ffffff" align="center"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;table style="width: 633px" border="0" cellspacing="0" cellpadding="20"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="letter-spacing: 0px; font-family: verdana, sans-serif; color: #e3e3e3; font-size: 12px" bgcolor="#373737" valign="middle" width="447" align="left"&gt;&lt;a style="color: #e3e3e3; text-decoration: underline" href="http://forward.coremotivesmarketing.com/57534/1374331/TEST/27250481/m"&gt;&lt;span style="color: #ffc000"&gt;Forward to a friend&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #e3e3e3"&gt;&lt;span style="color: #ffc000"&gt; | &lt;/span&gt;&lt;/span&gt;&lt;a style="color: #e3e3e3; text-decoration: underline" href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e6960de666190aa7f5c9"&gt;&lt;span style="color: #ffc000"&gt;Visit our website &lt;/span&gt;&lt;/a&gt;&lt;span style="color: #e3e3e3"&gt;&lt;span style="color: #ffc000"&gt;| &lt;/span&gt;&lt;/span&gt;&lt;a style="color: #e3e3e3; text-decoration: underline" href="http://link.coremotivesmarketing.com/v/306/1e97b7eb98c66279c0387c14e111a26f788d45aafe7d7cfa"&gt;&lt;span style="color: #ffc000"&gt;View as&amp;nbsp; a webpage&lt;/span&gt;&lt;/a&gt;&lt;/td&gt; &lt;td style="letter-spacing: 0px; font-family: verdana, sans-serif; color: #e3e3e3; font-size: 12px" bgcolor="#373737" valign="middle" width="184" align="right"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="letter-spacing: -1px; font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#ffffff" width="447" align="left"&gt;&lt;a href="http://lh3.ggpht.com/-F-mSu3vHkx4/T7_Ms45QtkI/AAAAAAAADgc/Ww9_kPmN0QI/s1600-h/Mariner.jpg3.png"&gt;&lt;span id="goog_613702316"&gt;&lt;/span&gt;&lt;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="Mariner.jpg" border="0" alt="Mariner.jpg" src="http://lh5.ggpht.com/-90J3NLdL368/T7_Mx1KClAI/AAAAAAAADgk/nhbmjvuUNqs/Mariner.jpg_thumb1.png?imgmax=800" width="240" height="28"&gt;&lt;span id="goog_613702317"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt; &lt;td style="letter-spacing: 0px; font-family: verdana, sans-serif; color: #e3e3e3; font-size: 12px" bgcolor="#ffffff" width="184" align="right"&gt; &lt;div align="center"&gt;&lt;span style="color: #ffc000"&gt;&lt;strong&gt;PowerPivot Training&lt;/strong&gt;&lt;/span&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table style="width: 633px" border="0" cellspacing="0" cellpadding="15" bgcolor="#f5f4f0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="width: 468px; letter-spacing: -0.05em; font-family: verdana, sans-serif; height: 81px; color: #373737; font-size: 24px" valign="middle" align="left"&gt;PowerPivot Training Comes to NC!&lt;/td&gt; &lt;td style="letter-spacing: 0px; font-family: verdana, sans-serif; color: #373737; font-size: 24px" valign="middle" width="105" align="right"&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f8174b527c9c606a4688079e36f6aa85b"&gt;&lt;img border="0" alt="" src="http://storage.coremotivesmarketing.com/library/47f7bbb0-02a9-4c67-a3af-cb5d482a8f27/144/registerbutton.PNG" width="166" height="45"&gt;&lt;/a&gt;&lt;a style="color: #488c94" href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e696d0f8e32401b01532"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table style="width: 633px" border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td height="20" colspan="3"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="width: 424px; height: 512px" valign="top"&gt; &lt;table style="width: 421px" border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td bgcolor="#c6930a" height="40" width="10"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#373737" height="40" valign="middle" width="8" align="left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#373737" valign="middle" width="402" align="left"&gt;Public Course Now Available&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td height="10" colspan="3"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 18px; font-family: verdana, sans-serif; color: #373737; font-size: 13px" height="87" valign="top" colspan="3" align="left"&gt;&lt;img style="border-bottom: medium none; border-left: medium none; width: 114px; height: 116px; border-top: medium none; border-right: medium none" border="0" hspace="10" alt="pad" vspace="10" align="left" src="http://storage.coremotivesmarketing.com/library/47f7bbb0-02a9-4c67-a3af-cb5d482a8f27/144/PowerPivot_icon.PNG" width="114" height="116"&gt;&lt;span style="line-height: 25px; font-family: verdana, sans-serif; color: #488c94; font-size: 20px"&gt;Be a PowerPivot Power User &lt;/span&gt;&lt;br&gt;&lt;span style="line-height: 25px; font-family: verdana, sans-serif; color: #488c94; font-size: 20px"&gt;&lt;/span&gt;In 2 days, learn the basics concepts and progress to complex data models and DAX formulas. At the end of the training, you will know how to use PowerPivot in the real world.&amp;nbsp; &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f11de0d709ff9140f90c4670ab6c52f1d"&gt;Download the workshop outline&lt;/a&gt;. &lt;br&gt;&lt;span style="line-height: 25px; font-family: verdana, sans-serif; color: #488c94; font-size: 20px"&gt;&lt;br&gt;Ideal for Business &amp;amp; Data Analysts, IT Pros&lt;/span&gt; &lt;br&gt;&lt;span style="line-height: 25px; font-family: verdana, sans-serif; color: #488c94; font-size: 20px"&gt;&lt;/span&gt;It is designed for people like you eager to use PowerPivot’s full capabilities. You'll learn the concepts and techniques needed to implement PowerPivot and make critical business decisions using the most popular BI tool on the planet, &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e696dc1fefa8945a0624"&gt;Excel&lt;/a&gt;. &lt;br&gt;&lt;br&gt;&lt;span style="color: #488c94; font-size: large"&gt;Learn from Leaders&lt;/span&gt; &lt;br&gt;In partnership with &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e6964b6cc0a93c906f04"&gt;SQLBI&lt;/a&gt;, Mariner offers PowerPivot workshops in the southeastern US.&amp;nbsp; &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e696e117d7d66b664d63"&gt;Offered on-site&lt;/a&gt; at your location or at these new public venues.&amp;nbsp; Mariner is the &lt;em&gt;exclusive provider&lt;/em&gt; of the &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f11de0d709ff9140f4ff61705787075e9"&gt;PowerPivot Workshop&lt;/a&gt; in the southeastern US &lt;br&gt; &lt;div style="margin: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: x-small"&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f8174b527c9c606a4688079e36f6aa85b"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size: x-small"&gt;Register by June 13, 2012&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; to guarantee your seat.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;&lt;br&gt;Mariner is 1 of just 2 companies in the US with access to the training materials developed by PowerPivot &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f8174b527c9c606a4a87c6d9f1b48a8e2"&gt;gurus and authors&lt;/a&gt;, &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f11de0d709ff9140f4ff61705787075e9"&gt;Alberto Ferrari and Mark Russo&lt;/a&gt;.&amp;nbsp; This exclusive partnership enables us to run these workshops for you.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt; &lt;td width="20"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="192"&gt; &lt;table style="width: 192px" border="0" cellspacing="0" cellpadding="0" bgcolor="#f5f4f0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td bgcolor="#c6930a" height="40" width="10"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#373737" height="40" valign="middle" width="8" align="left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#373737" valign="middle" width="174" align="left"&gt;Details&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td colspan="3"&gt; &lt;table border="0" cellspacing="0" cellpadding="10"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="line-height: 18px; font-family: verdana, sans-serif; color: #373737; font-size: 11px" valign="top" align="left"&gt;&lt;span style="line-height: 30px; font-family: verdana, sans-serif; color: #373737; font-size: 18px"&gt;Price &lt;/span&gt;&lt;br&gt;&lt;span style="font-size: 10pt"&gt;$1,300 per student &lt;br&gt;includes workshop and training manual &lt;br&gt;&lt;br&gt;&lt;span style="line-height: 30px; font-family: verdana, sans-serif; color: #373737; font-size: 18px"&gt;Date &amp;amp; Time&lt;/span&gt; &lt;br&gt;&lt;span style="font-size: 10pt"&gt;June 18 &amp;amp; 19, 2012&lt;/span&gt;8:30am-5:00pm &lt;br&gt;(with an hour for lunch)&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;&lt;span style="line-height: 30px; font-family: verdana, sans-serif; color: #373737; font-size: 18px"&gt;Location &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f11de0d709ff9140fc853f20b904b9216"&gt;&lt;span style="font-size: 10pt"&gt;Aloft Hotel-Ballantyne&lt;/span&gt;&lt;/a&gt; &lt;span style="font-size: 10pt"&gt;13139 Ballantyne Corp Pl&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;br&gt;Charlotte, NC&lt;/span&gt;&lt;span style="font-size: 10pt"&gt; &lt;br&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f11de0d709ff9140fc73273a821518e87"&gt;&lt;span style="font-size: 10pt"&gt;Get directions&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;em&gt;&lt;/em&gt; &lt;br&gt; &lt;div align="center"&gt;&lt;/div&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f8174b527c9c606a4688079e36f6aa85b"&gt;&lt;img style="width: 140px; height: 38px" border="0" alt="" src="http://storage.coremotivesmarketing.com/library/47f7bbb0-02a9-4c67-a3af-cb5d482a8f27/144/registerbutton.PNG" width="140" height="38"&gt;&lt;/a&gt; &lt;br&gt;&lt;span style="font-size: 10pt"&gt;&lt;br&gt;Prefer another city? &lt;br&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="mailto:theresa.cromie@mariner-usa.com?subject=PowerPivot%20Training%20Location%20Request"&gt;&lt;span style="font-size: 10pt"&gt;Let us know!&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table style="width: 633px" border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td height="20" colspan="3"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td bgcolor="#c6930a" height="40" width="10"&gt;&amp;nbsp;&lt;/td&gt; &lt;td bgcolor="#373737" height="40" width="8"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#373737" height="40" valign="middle" width="615" align="left"&gt;Your Trainer, &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e6961593c5867c99c201"&gt;&lt;span style="color: white"&gt;Javier Guillén&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 16px; font-family: verdana, sans-serif; color: #373737; font-size: 13px" height="10" colspan="3"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 18px; font-family: verdana, sans-serif; color: #373737; font-size: 13px" valign="top" colspan="3" align="left"&gt;&lt;img style="width: 112px; height: 150px" border="0" hspace="5" alt="" vspace="5" align="left" src="http://www.vconferenceonline.com/speakerimages/javier_guillen.jpg" width="112" height="150"&gt;Javier is a Business Intelligence Specialist (MCTS / MCITP SQL Server 2008 BI) at Mariner, dedicated to helping people maximize SSAS &amp;amp; PowerPivot (including MDX and DAX). A Microsoft Community Contributor, you may have seen him speak at PASS events and most recently at Carolina Code Camp.&amp;nbsp; Check out his &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e6961593c5867c99c201"&gt;blog&lt;/a&gt;, connect with him on LinkedIn or follow him on Twitter. &lt;br&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e696d1bcc1978da5fd50"&gt;&lt;img id="linkedIn" class="icon" alt="Linkedin" src="http://www.mariner-usa.com/images/icon_linkedin.png" width="22" height="22"&gt;&lt;/a&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e6966efe1892892c1ec0"&gt;&lt;img id="twitter" class="icon" alt="Twitter" src="http://www.mariner-usa.com/images/icon_twitter.png" width="22" height="22"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 16px; font-family: verdana, sans-serif; color: #373737; font-size: 13px" colspan="3"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table style="width: 633px" border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td height="20" colspan="3"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td bgcolor="#c6930a" height="40"&gt;&amp;nbsp;&lt;/td&gt; &lt;td bgcolor="#373737" height="40" width="8"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-family: verdana, sans-serif; color: #e3e3e3; font-size: 24px" bgcolor="#373737" height="40" valign="middle" width="615" align="left"&gt;&lt;span style="font-family: verdana"&gt;About&lt;/span&gt; Us&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 16px; width: 640px; font-family: verdana, sans-serif; height: 171px; color: #373737; font-size: 13px" bgcolor="#f5f4f0" valign="top" colspan="3" align="left"&gt; &lt;table style="width: 633px" border="0" cellspacing="0" cellpadding="10"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="width: 618px; height: 176px" valign="top" align="left"&gt;&lt;span style="font-family: verdana, sans-serif; font-size: 10pt"&gt;&lt;span style="color: black"&gt;For more than a decade, Mariner has been helping clients leverage their data - from any data source to any device - through the use of business intelligence, analytics, data warehousing, business scorecards and performance management dashboards. Mariner serves clients in a variety of industries including utility, healthcare, education, media and manufacturing sectors. Singularly focused on providing analytic solutions, we help business people organize, use, analyze and share data to improve sales, customer service, logistics, productivity and financial insight. Mariner is a Microsoft Certified Gold Partner with competencies in Business Intelligence and Data Platform. Mariner-Insight to Achieve. &lt;/span&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e6960de666190aa7f5c9"&gt;&lt;span style="color: blue"&gt;www.mariner-usa.com&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #262626"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 16px; font-family: verdana, sans-serif; color: #373737; font-size: 13px" height="10" colspan="3" align="center"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="line-height: 16px; font-family: verdana, sans-serif; color: #868686; font-size: 11px" colspan="3" align="center"&gt;Copyright&amp;nbsp; 2012 Mariner All Rights Reserved. &lt;br&gt;2719 Coltsgate Road | Charlotte | NC 28211 &lt;a href="mailto:|info@mariner-usa.com"&gt;|info@mariner-usa.com&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e69680273721feb7bdf4" target="_blank"&gt;&lt;img id="facebook" class="icon" alt="Facebook" src="http://www.mariner-usa.com/images/icon_facebook.png" width="22" height="22"&gt;&lt;/a&gt; &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e696109a11015b08ead2" target="_blank"&gt;&lt;img id="twitter" class="icon" alt="Twitter" src="http://www.mariner-usa.com/images/icon_twitter.png" width="22" height="22"&gt;&lt;/a&gt; &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e69649a3501b62c424f3" target="_blank"&gt;&lt;img id="linkedIn" class="icon" alt="Linkedin" src="http://www.mariner-usa.com/images/icon_linkedin.png" width="22" height="22"&gt;&lt;/a&gt; &lt;a href="http://link.coremotivesmarketing.com/c/306/1e97b7eb98c66279c0387c14e111a26f97ee8f7af5b4e69605077bee1a7f21de" target="_blank"&gt;&lt;img id="youtube" class="icon" alt="YouTube" src="http://www.mariner-usa.com/images/icon_youtube.png" width="22" height="22"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-3626971496260058161?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=sa_q5KjW-QU:gXZboACT8GY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=sa_q5KjW-QU:gXZboACT8GY:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=sa_q5KjW-QU:gXZboACT8GY:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/sa_q5KjW-QU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/3626971496260058161/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/05/powerpivot-training.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3626971496260058161?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3626971496260058161?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/sa_q5KjW-QU/powerpivot-training.html" title="PowerPivot Training" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-90J3NLdL368/T7_Mx1KClAI/AAAAAAAADgk/nhbmjvuUNqs/s72-c/Mariner.jpg_thumb1.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/05/powerpivot-training.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUBSH47cSp7ImA9WhVWGUo.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-3102066615492206596</id><published>2012-05-02T12:27:00.001-04:00</published><updated>2012-05-02T12:30:59.009-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-02T12:30:59.009-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSAS" /><category scheme="http://www.blogger.com/atom/ns#" term="DAX" /><title>Changing Granularity of Leaf Level Calculations in SSAS Tabular</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;My company is awesome!!! Everyday that I go to work, I discover something new and exciting from the people around me and come back home thinking – wow, today was just legendary! The best part of the day is when I get to discuss ideas with my colleagues, it is so fulfilling intellectually. So last month, I was having one of those discussions with PowerPivot/Tabular expert and my colleague, Javier Guillen (&lt;a href="http://javierguillen.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="https://twitter.com/#!/javiguillen" target="_blank"&gt;twitter&lt;/a&gt;) on Last Non Empty functionality in multi-dimensional and one thing led to the other. Before we knew, we had discussed a lot of interesting things in both multi-dimensional and tabular about the Last Non Empty functionality and I am pretty sure that you will hear a lot on that field from us soon. Meanwhile, I decided to blog a quick post on one of the basic principles that we will be using for that. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-bTJYIoa1ns8/T5c8QQx07vI/AAAAAAAADVI/qr91O9jXKBU/s1600-h/Changing%252520grain%252520in%252520SSAS%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Changing grain in SSAS" border="0" alt="Changing grain in SSAS" src="http://lh5.ggpht.com/-GjhWvrCld3U/T5c8Q9gmt0I/AAAAAAAADVQ/s-F6s5wTSQ8/Changing%252520grain%252520in%252520SSAS_thumb%25255B4%25255D.jpg?imgmax=800" width="300" height="216"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;Leaf level calculations in multi-dimensional usually impact the performance and hence, are advised to be done in the ETL part. You might be lucky to get away with such sort of calculations in your DSV also as named calculations. But changing the granularity of such calculations from leaf level to an intermediate level usually requires it to be done in the ETL if we are using the multi-dimensional mode (unless you want to impact the performance by a Scope statement or god forbid, a cross join in the calculation script). In scenarios like &lt;a title="Click here to learn more about protyping in BI with PowerPivot" href="http://javierguillen.wordpress.com/2011/09/13/business-intelligence-prototyping-with-powerpivot/" target="_blank"&gt;prototyping&lt;/a&gt; where we are still discovering about the data, changing the granularity of the calculations can be expected and it implies a lot of time lost in re-working the ETL. That is where the Tabular mode is such a big boon and I will be illustrating that fact in the following example. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;Consider the AdventureWorks database where there is Order Quantity for the Products and Customers, and the client would like to see the distribution of products across the customers. Now you can make a simple numerical distribution measure which is the number of customers that have data for that product by the total number of customer.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;a href="http://lh5.ggpht.com/-TexBCpbuArk/T5c8RUnsXBI/AAAAAAAADVY/OTb8sz0xN7k/s1600-h/gif%25255B2%25255D.gif"&gt;&lt;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="gif" border="0" alt="gif" src="http://lh3.ggpht.com/-v97onXX1QEM/T5c8RtPZESI/AAAAAAAADVg/5I46XYBtyIY/gif_thumb.gif?imgmax=800" width="292" height="39"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;The DAX formula is given below&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;NumericalDistribution:=100 * &lt;font color="#c0504d"&gt;SumX&lt;/font&gt; (&lt;br&gt;&lt;font color="#c0504d"&gt;Values&lt;/font&gt; ( Customer[CustomerID] ),&lt;br&gt;&lt;font color="#c0504d"&gt;If&lt;/font&gt; ( [Sum of OrderQty] &amp;gt; 0, 1, 0 )&lt;br&gt;) / &lt;font color="#c0504d"&gt;DistinctCount&lt;/font&gt; (&lt;br&gt;&amp;nbsp; Customer[CustomerID]&lt;br&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;a href="http://lh6.ggpht.com/-WCNx6kSssvM/T5c8SHRiVsI/AAAAAAAADVo/IFZgX-EDKpw/s1600-h/Numerical%252520Distribution%25255B7%25255D.jpg"&gt;&lt;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="Numerical Distribution" border="0" alt="Numerical Distribution" src="http://lh5.ggpht.com/-kF3YJJJ9DRY/T5c8StPzAsI/AAAAAAAADVw/EkTYGBltzB4/Numerical%252520Distribution_thumb%25255B6%25255D.jpg?imgmax=800" width="504" height="208"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Let us look at the results when I analyze the same measure for all the Territories filtered by the Category – Accessories and Bikes&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-IElgoBDAkwM/T5c8TFQVYYI/AAAAAAAADV4/eMdGETE8h6U/s1600-h/Numerical%252520Distribution%252520Result%25255B2%25255D.jpg"&gt;&lt;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="Numerical Distribution Result" border="0" alt="Numerical Distribution Result" src="http://lh6.ggpht.com/-t_8elO55LKc/T5c8Tq0YNZI/AAAAAAAADWA/_lfIhCoRLJA/Numerical%252520Distribution%252520Result_thumb.jpg?imgmax=800" width="409" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now, let us assume a hypothetical situation where the goal of this year for the Country Sales Managers is to make their customers buy different products and the client wants to analyze the performance of the Sales Managers based on a new Distribution KPI. The numerical distribution measure is not a good indicator for this as it just checks whether the customer has order quantity or not for either Accessories or Bikes. A better indicator might be to assign a weight to each customer based on the different number of products that has order quantity by the total number of products. The formula for the new distribution is given below&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?100%20*%20\frac{\sum_{C0}^{Cn}%20\frac{Products%20with%20Order%20Quantity}{Total%20Number%20of%20Products}}%20{TotalCustomers}"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The new distribution takes the sum of weights for each customer and divides it by the total number of customer. The DAX formula for the same is given below&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#c0504d"&gt;&lt;font color="#000000"&gt;Distribution:=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;If&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt; ( Customer[CustomerID] ) = &lt;font color="#ff0000"&gt;Blank&lt;/font&gt; ( ),&lt;br&gt;&lt;font color="#ff0000"&gt;Blank&lt;/font&gt; ( ),&lt;br&gt;&amp;nbsp; 100 * &lt;font color="#ff0000"&gt;SumX&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;Values&lt;/font&gt; ( Customer[CustomerID] ),&lt;br&gt;&lt;font color="#ff0000"&gt;Calculate&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt;&lt;font color="#ff0000"&gt; &lt;/font&gt;( SalesOrderDetail[ProductID] )&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) / &lt;font color="#ff0000"&gt;DistinctCount &lt;/font&gt;( Product[ProductID] )&lt;br&gt;&amp;nbsp; ) / &lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt; ( Customer[CustomerID] )&lt;br&gt;)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-FtAvuGSfpvc/T6FgaeowDlI/AAAAAAAADY8/MYqAhWpwSLU/s1600-h/Distribution%25255B3%25255D.jpg"&gt;&lt;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="Distribution" border="0" alt="Distribution" src="http://lh3.ggpht.com/-LX5qZIhcyLg/T6FgbUmsQxI/AAAAAAAADZE/nwvBuJkpp-k/Distribution_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="189"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;The results for the above formula is given below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-kBOroNhg2n0/T5c8U2srIuI/AAAAAAAADWY/7mXAzKgftOg/s1600-h/Product%252520Wt%252520Distribution%252520result%25255B2%25255D.jpg"&gt;&lt;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="Product Wt Distribution result" border="0" alt="Product Wt Distribution result" src="http://lh4.ggpht.com/-u5aUeUQBCQI/T5c8VQPjU9I/AAAAAAAADWg/JnCTevbecZg/Product%252520Wt%252520Distribution%252520result_thumb.jpg?imgmax=800" width="504" height="260"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;We can see that the distribution values have become very low because of the low weight, as it is almost impossible to expect a customer to buy every product. So the client can come back and ask to calculate the distribution at the level of the Country instead of Customer. This will ensure that the distribution is more appropriately calculated. The new formula for the distribution will become&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?100%20*%20\frac{\sum_{CNTRY0}^{CNTRYn}%20\frac{Products%20with%20Order%20Quantity}{Total%20Number%20of%20Products}}%20{TotalCountry}"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;The DAX formula is given below&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#c0504d"&gt;&lt;font color="#000000"&gt;Distribution:=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;If&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt; ( SalesTerritory[CountryRegionCode] ) = &lt;font color="#ff0000"&gt;Blank&lt;/font&gt; ( ),&lt;br&gt;&lt;font color="#ff0000"&gt;Blank&lt;/font&gt; ( ),&lt;br&gt;100 * &lt;font color="#ff0000"&gt;SumX&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;Values&lt;/font&gt; ( SalesTerritory[CountryRegionCode]),&lt;br&gt;&lt;font color="#ff0000"&gt;Calculate&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt;&lt;font color="#ff0000"&gt; &lt;/font&gt;( SalesOrderDetail[ProductID] )&lt;br&gt;) / &lt;font color="#ff0000"&gt;DistinctCount &lt;/font&gt;( Product[ProductID] )&lt;br&gt;) / &lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt; ( SalesTerritory[CountryRegionCode] )&lt;br&gt;)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;The results for the Distribution formula with the changed granularity analyzed by Country Code and Territory Name is given below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-iBinjbFxenM/T6Fgb9HMRfI/AAAAAAAADZM/N-99xl-Xipc/s1600-h/Distribution%252520with%252520Country%25255B3%25255D.jpg"&gt;&lt;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="Distribution with Country" border="0" alt="Distribution with Country" src="http://lh5.ggpht.com/-SkMRIFyz22A/T6FgcWRKhnI/AAAAAAAADZU/eV-mMpdlojs/Distribution%252520with%252520Country_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="287"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now, the client may again come back and ask for the formula to be re-calculated on a territory level, as that looks more appropriate for them after seeing the data. Take the case of US for example. The distribution value for US is 96.03 but the average distribution based on the territories is 91.90. So the changed formula is shown below&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://latex.codecogs.com/gif.latex?100%20*%20\frac{\sum_{ST0}^{STn}%20\frac{Products%20with%20Order%20Quantity}{Total%20Number%20of%20Products}}%20{TotalSalesTerritory}"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The DAX formula is given below&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#c0504d"&gt;&lt;font color="#000000"&gt;Distribution1:=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;If&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt; ( SalesTerritory[Name] ) = &lt;font color="#ff0000"&gt;Blank&lt;/font&gt; ( ),&lt;br&gt;&lt;font color="#ff0000"&gt;Blank&lt;/font&gt; ( ),&lt;br&gt;100 * &lt;font color="#ff0000"&gt;SumX&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;Values&lt;/font&gt; ( SalesTerritory[Name]),&lt;br&gt;&lt;font color="#ff0000"&gt;Calculate&lt;/font&gt; (&lt;br&gt;&lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt;&lt;font color="#ff0000"&gt; &lt;/font&gt;( SalesOrderDetail[ProductID] )&lt;br&gt;) / &lt;font color="#ff0000"&gt;DistinctCount &lt;/font&gt;( Product[ProductID] )&lt;br&gt;) / &lt;font color="#ff0000"&gt;DistinctCount&lt;/font&gt; ( SalesTerritory[Name] )&lt;br&gt;)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The result of the formula is given below and we can see that the new values takes the average from the territories at the country level.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-4ZuzB6aBVpM/T6Fgc3fKfhI/AAAAAAAADZc/OrkBYr0laaA/s1600-h/Distribution%252520with%252520TerritoryName%25255B3%25255D.jpg"&gt;&lt;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="Distribution with TerritoryName" border="0" alt="Distribution with TerritoryName" src="http://lh6.ggpht.com/-oo0RpMbmDm8/T6FgdqMSLQI/AAAAAAAADZk/kQ6mGH8qP8k/Distribution%252520with%252520TerritoryName_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="269"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now after making all these changes, the client is happy with the end results. The important thing to note here is that we had this whole hypothetical process completed within half an hour and not days. Consider how much time we would have required to accomplish this in the multi-dimensional mode! Now if you are still in the mood for more DAX after this, make sure that you run by Javier’s latest &lt;a href="http://javierguillen.wordpress.com/2012/05/02/scoping-at-different-granularities-in-dax-part-i/"&gt;blog&lt;/a&gt; where he uses a similar technique to mimic the MDX Scope behavior in DAX.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-3102066615492206596?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=GmqKpMF2uQE:yEYCN2oV0cc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=GmqKpMF2uQE:yEYCN2oV0cc:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=GmqKpMF2uQE:yEYCN2oV0cc:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/GmqKpMF2uQE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/3102066615492206596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/05/changing-granularity-of-leaf-level.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3102066615492206596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3102066615492206596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/GmqKpMF2uQE/changing-granularity-of-leaf-level.html" title="Changing Granularity of Leaf Level Calculations in SSAS Tabular" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-GjhWvrCld3U/T5c8Q9gmt0I/AAAAAAAADVQ/s-F6s5wTSQ8/s72-c/Changing%252520grain%252520in%252520SSAS_thumb%25255B4%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/05/changing-granularity-of-leaf-level.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDRH4yfSp7ImA9WhVXFk8.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-1125093946646188510</id><published>2012-04-16T20:29:00.001-04:00</published><updated>2012-04-16T20:29:35.095-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-16T20:29:35.095-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="My Sessions" /><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>I am speaking at…</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;And so, it has been an eventful 3 months since I reached the US, and I must say I am really settling in well to my new job and life here. Also, it has been a full two years since I started blogging and a big shout to all those lovely people out there who have been tolerating me and my “random thoughts”. I decided that it is time to start meeting all those great guys around me and what better way than to come and speak at an event near you?&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-6K3Er7sQxXo/T4y5bNHQWEI/AAAAAAAADSo/p9JJlhFZtNw/s1600-h/DSC_01127%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="DSC_01127" border="0" alt="DSC_01127" src="http://lh3.ggpht.com/-NqFo4gr3sSg/T4y5bmGYgZI/AAAAAAAADSw/cZ0myuI-87w/DSC_01127_thumb.jpg?imgmax=800" width="449" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;So just as an FYI, I would like to let you know that I am speaking at the following events :-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;1)&lt;/strong&gt; &lt;strong&gt;Charlotte SQL Server User Group&lt;/strong&gt; : Thursday, April 19, 2012 from 5:30 PM to 7:30 PM &lt;/font&gt;&lt;a href="http://apr2012cssug.eventbrite.com/"&gt;&lt;font size="2"&gt;http://apr2012cssug.eventbrite.com/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;2)&lt;/strong&gt; &lt;strong&gt;SQL Saturday 118 (Madison, WI) &lt;/strong&gt;: Saturday, April 21, 2012 from 9:30 AM to 10:30 AM &lt;/font&gt;&lt;a href="http://www.sqlsaturday.com/118/schedule.aspx"&gt;&lt;font size="2"&gt;http://www.sqlsaturday.com/118/schedule.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;3)&lt;/strong&gt; &lt;strong&gt;SQL Saturday 130 (Jacksonville, FL)&lt;/strong&gt; : Saturday, April 28, 2012 from 3:45 PM to 4:45 PM &lt;/font&gt;&lt;a href="http://www.sqlsaturday.com/130/schedule.aspx"&gt;&lt;font size="2"&gt;http://www.sqlsaturday.com/130/schedule.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;4)&lt;/strong&gt; &lt;strong&gt;SQL Saturday 129 (Rochester, NY)&lt;/strong&gt; : Saturday, May 12, 2012 from 10:15 AM to 11:15 AM &lt;/font&gt;&lt;a href="http://www.sqlsaturday.com/129/schedule.aspx"&gt;&lt;font size="2"&gt;http://www.sqlsaturday.com/129/schedule.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;Don’t forget to come and talk to me if you are attending any of these events, nothing makes me more happy than getting to know my readers better. Well, actually I am lying, a mug of beer makes me happier. But then there is no reason why we can’t have a talk over a beer, right?&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-1125093946646188510?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=ziSbYfq50b4:yIfICFe7YlM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=ziSbYfq50b4:yIfICFe7YlM:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=ziSbYfq50b4:yIfICFe7YlM:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/ziSbYfq50b4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/1125093946646188510/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/04/i-am-speaking-at.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/1125093946646188510?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/1125093946646188510?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/ziSbYfq50b4/i-am-speaking-at.html" title="I am speaking at…" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-NqFo4gr3sSg/T4y5bmGYgZI/AAAAAAAADSw/cZ0myuI-87w/s72-c/DSC_01127_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/04/i-am-speaking-at.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ACQH0-eyp7ImA9WhVRGE0.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-730677900173509918</id><published>2012-03-26T19:49:00.001-04:00</published><updated>2012-03-26T19:49:21.353-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-26T19:49:21.353-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spatial / Map Reports" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Finding Nearest Stores using SSRS Map Reports</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;April is turning out to be a busy month for me. Apart from taking the beta SQL Server 2012 certification exams and some reviews, I am also speaking at the Charlotte SSUG and at SQL Saturday #118 (Madison) and #130 (Jacksonville). I have also submitted at a couple of other SQL Saturdays, so if you do see me speaking at a SQL Saturday close to you, don’t forget to give a shout! As my topic for the first two sessions are on Spatial Reporting in SSRS, I was preparing for it and that is when I thought of posting one of my demos as a blog.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-DYDGyjqZjMk/T3EAWxigZ7I/AAAAAAAADLc/lBz2sIEimnM/s1600-h/Finding-nearest-stores-in-SSRS2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Finding nearest stores in SSRS" border="0" alt="Finding nearest stores in SSRS" src="http://lh6.ggpht.com/-udG0oB6A0bo/T3EAXqVGEbI/AAAAAAAADLk/suQ885suhjk/Finding-nearest-stores-in-SSRS_thumb.jpg?imgmax=800" width="401" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;This post will teach you how to implement a report to find the nearest stores using the spatial features in SQL Server and SSRS. As some of you might know, I am living in Charlotte and Harris Teeter is one of the grocery stores that I frequent. For this demo, I would be finding some of the nearest Harris Teeter stores from a list of my hangouts. Follow the instructions below to replicate it:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Create the table structure for storing the locations of Harris Teeter.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;CREATE TABLE [dbo].[Harris Teeter](&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ID] [int] IDENTITY(1,1) NOT NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Location] [varchar](255) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Latitude] [float] NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Longitude] [float] NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [PostCode] [varchar](20) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [GeoL] [geography] NULL&lt;br&gt;) ON [PRIMARY]&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;Also, create the table structure for storing a list of the hangouts.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;CREATE TABLE [dbo].[MyHangouts](&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ID] [int] IDENTITY(1,1) NOT NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Location] [varchar](255) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Latitude] [float] NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Longitude] [float] NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [PostCode] [varchar](20) NULL,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [GeoL] [geography] NULL&lt;br&gt;) ON [PRIMARY]&lt;/font&gt; &lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Load some sample data for Harris Teeter stores in Charlotte.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;INSERT INTO [dbo].[Harris Teeter] ( [Location], [PostCode], [Latitude], [Longitude] )&lt;br&gt;VALUES ('Quail Corners - 204','NC 28210-5803',35.116603,-80.858247),&lt;br&gt;('Old Towne Mall - 294','NC 28226-7159',35.117117,-80.824515),&lt;br&gt;('Morrocroft Village - 160','NC 28211-3570' ,35.152698,-80.825796),&lt;br&gt;('Park Selwyn Terrace - 35', 'NC 28209',35.1616695,-80.8492303),&lt;br&gt;('Colony Place - 4','NC 28226',35.106549,-80.806327),&lt;br&gt;('Park Road - 218','NC 28209-2229',35.1767066,-80.8510191),&lt;br&gt;('Cotswold Mall - 208','NC 28211-2802',35.177524,-80.801119),&lt;br&gt;('Arboretum - 30','NC 28226',35.096321,-80.78463),&lt;br&gt;('Myers Park - 12','NC 28207',35.1901493,-80.8231644),&lt;br&gt;('Kenilworth Commons - 61','NC 28203',35.2026843,-80.8455712),&lt;br&gt;('Ballantyne Commons - 11','NC 28277',35.05313,-80.848995),&lt;br&gt;('Stonecrest Shopping Center - 66','NC 28277',35.059911,-80.816675),&lt;br&gt;('Providence Commons - 45','NC 28277',35.066452,-80.7717459),&lt;br&gt;('Sardis Crossing - 171','NC 28270',35.138476,-80.740138),&lt;br&gt;('Central Avenue Location - 201','NC 28205-5108',35.219757,-80.809982),&lt;br&gt;('The Shops at Blakeney - 27','NC 28277',35.036336,-80.806711),&lt;br&gt;('Uptown Charlotte - 205','NC 28202-1603',35.2330664,-80.846148),&lt;br&gt;('Rea Village Shopping Center - 40','NC 28277',35.052441,-80.770867),&lt;br&gt;('The Shoppes at Ardrey Kell - 317','NC 28277',35.02431,-80.847881),&lt;br&gt;('Plantation Market - 147','NC 28105-6725',35.082745,-80.732972),&lt;br&gt;('Steele Croft - 88','NC 28278',35.103305,-80.990847),&lt;br&gt;('Matthews Township - 157','NC 28105',35.125179,-80.710001),&lt;br&gt;('Mintworth Commons - 174','NC 28227',35.172913,-80.709081),&lt;br&gt;('Weddington Corners Shopping Center - 343','NC 28104',35.023379,-80.760665)&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For getting the data, I used the Harris Teeter website to get the address of the stores in Charlotte and then used this &lt;a title="Find Laltitude and Longitude from Address" href="http://www.findlatitudeandlongitude.com/batch-geocode/" target="_blank"&gt;site&lt;/a&gt; to geocode the address to latitude and longitude. Using the same method, I also populated the MyHangouts table with the data below&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;INSERT INTO [dbo].[MyHangouts] ( [Location], [PostCode], [Latitude], [Longitude] )&lt;br&gt;VALUES ('Home','NC 28210',35.1537875,-80.8502022),&lt;br&gt;('Office','NC 28211',35.1493742,-80.8272008),&lt;br&gt;('PetSmart','NC 28217',35.1385661,-80.8764557),&lt;br&gt;('The EpiCentre','NC 28202-2538',35.225324,-80.842187),&lt;br&gt;('Library','NC 28211',35.1513557,-80.8225257)&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;&lt;font color="#000000" size="2"&gt;3) Once that is done, we will have to convert the Latitude and Longitude to spatial data of type geography. Execute the code below for the same:-&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;UPDATE [Harris Teeter] &lt;br&gt;SET [GeoL] = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326) &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;UPDATE [MyHangouts] &lt;br&gt;SET [GeoL] = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326)&lt;/font&gt; &lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Create a new report and a datasource pointing to the database where the tables are stored. Create a dataset query named DST_Hangouts for selecting the data from the [MyHangouts] table.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Create a new report parameter which will source data from DST_Hangouts. The value will be the spatial field - GeoL while the label will be the Location.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-PnIOxfAH6JU/T3EAYHVwt1I/AAAAAAAADLs/Y800MnEyaRw/s1600-h/RP_MyLoc%252520parameter%252520properties%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="RP_MyLoc parameter properties" border="0" alt="RP_MyLoc parameter properties" src="http://lh6.ggpht.com/-_hv8ZE4nTQY/T3EAYuLGYRI/AAAAAAAADL0/GukEba7EIWM/RP_MyLoc%252520parameter%252520properties_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="334"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Create another report parameter – RP_Cnt which will be of integer data type. This will be used for specifying the number of closest stores you want to see.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-z8_adyUDIPE/T3EAZBzlKCI/AAAAAAAADL8/SSXXTStQgm4/s1600-h/RP_Cnt%252520parameter%252520properties%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="RP_Cnt parameter properties" border="0" alt="RP_Cnt parameter properties" src="http://lh3.ggpht.com/-3ZpFPUnGUUs/T3EAZvgDTbI/AAAAAAAADME/dOW6AgJJTqU/RP_Cnt%252520parameter%252520properties_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="332"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) Make another dataset query – DST_HT which will filter the list of hangouts based on the parameter selected. This dataset query will be used in the map to show the selected hangout.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;8) Now, make the pivotal dataset query of this post – DST_TopHT which will be used in the map to calculate the closest stores from the selected hangout&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TOP (@RP_Cnt) Location, GeoL.STDistance(@RP_MyLoc) AS distance, GeoL, Latitude, Longitude&lt;br&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Harris Teeter]&lt;br&gt;ORDER BY distance&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;9) Optionally, we can also include a spatial query – DST_Circle which will draw a circle of 1 km diameter around the selected hangout so that we get an idea of the scale.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID, Location, Latitude, Longitude, PostCode, GeoL.STBuffer(1000) AS GeoLocation&lt;br&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyHangouts AS H&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;I have filtered this dataset by the selected hangout in the Filters tab of the daataset properties.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-qDdX4c_JV7U/T3EAZ3ePIZI/AAAAAAAADMM/mJBzrWP5o8U/s1600-h/Filtering%252520the%252520dataset%252520query%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Filtering the dataset query" border="0" alt="Filtering the dataset query" src="http://lh4.ggpht.com/-705MQ5Oku2E/T3EAai68FdI/AAAAAAAADMU/XXRwF1EJEFg/Filtering%252520the%252520dataset%252520query_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="410"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;10) Now drag and drop a map from the toolbox and then add two point layers based on the datasets - DST_Top HT and DST_HT. Also add a Bing maps layer and a polygon layer for the dataset DST_Circle.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh5.ggpht.com/-ZAGe3y8f5NM/T3EAbbwyrYI/AAAAAAAADMc/flZY_wihYZI/s1600-h/Map%252520report%252520design%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Map report design" border="0" alt="Map report design" src="http://lh4.ggpht.com/-JxttqEPVPdU/T3EAbzWbpKI/AAAAAAAADMk/xHDYiDoDHgM/Map%252520report%252520design_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="289"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;You can see that I have used the marker type as PushPin for the DST_HT point layer and circles for the DST_TopHT point layer to differentiate both of them. It would be good to add a table also which will show the top stores and the distance.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;11) Now preview the report and you should be able to see the top N stores nearest to your selected hangout.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-cedsOlp8GiI/T3EAcjb2xMI/AAAAAAAADMs/5Aw97HFExa0/s1600-h/SSRS%252520Nearest%252520store%252520report%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SSRS Nearest store report" border="0" alt="SSRS Nearest store report" src="http://lh6.ggpht.com/-qFtFMzh__E8/T3EAdAJcMEI/AAAAAAAADM0/E34x7MOcLhM/SSRS%252520Nearest%252520store%252520report_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="316"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You can change the selections or the top count value and see that your report changes accordingly. You will also notice that the Bing Maps layer is data aware and centres / zooms dynamically based on the data.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-8i-5Q9owPfQ/T3EAd0aGwQI/AAAAAAAADM8/QQa8SLi5xYE/s1600-h/SSRS%252520Nearest%252520store%252520report%252520-%252520selection%252520change%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SSRS Nearest store report - selection change" border="0" alt="SSRS Nearest store report - selection change" src="http://lh3.ggpht.com/-6anx28bYNgY/T3EAefqMzaI/AAAAAAAADNE/mb7FQ6KX9j4/SSRS%252520Nearest%252520store%252520report%252520-%252520selection%252520change_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="338"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You can do much more like visualizing the colour of your points based on the distance or any other measure in your warehouse, which will be helpful in making a decision. For eg, there might be a store which is not the closest but is running a sale as shown in the image below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-ZRdm8AH8fmg/T3EAfL7e7GI/AAAAAAAADNM/JFDLJPkkYd8/s1600-h/Sale%252520in%252520stores%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Sale in stores" border="0" alt="Sale in stores" src="http://lh4.ggpht.com/-t2337uMKRtg/T3EAfgus-FI/AAAAAAAADNU/yO8rW0AQu_o/Sale%252520in%252520stores_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="339"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;I have visualized the colors of the stores based on the distance, and in addition to that, stores running a sale are shown with a thick black border. So from this, I can see that the nearest store is at Morrocroft Village, but if I drive an extra 2 miles, I can shop at the Park Selwyn Terrace where I can save some money potentially. The choice of colors or the visualization in itself might not be appropriate, but hopefully this helps to explain the available features. As this turned out to be a pretty long post, I haven’t included all the steps as I normally do. If you do feel lost, feel free to mail me and I can send a copy of the report rdl to you. Time to give my aching fingers some rest now &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh5.ggpht.com/-wTqIbYLigsg/T3EAgKoDF6I/AAAAAAAADNc/4g7cdd95ZtM/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-730677900173509918?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=73k7kUy6aL0:KoztUhY5qhI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=73k7kUy6aL0:KoztUhY5qhI:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=73k7kUy6aL0:KoztUhY5qhI:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/73k7kUy6aL0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/730677900173509918/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/03/finding-nearest-stores-using-ssrs-map.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/730677900173509918?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/730677900173509918?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/73k7kUy6aL0/finding-nearest-stores-using-ssrs-map.html" title="Finding Nearest Stores using SSRS Map Reports" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-udG0oB6A0bo/T3EAXqVGEbI/AAAAAAAADLk/suQ885suhjk/s72-c/Finding-nearest-stores-in-SSRS_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/03/finding-nearest-stores-using-ssrs-map.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ABRn06cSp7ImA9WhVREUw.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-1071215316457845904</id><published>2012-03-18T21:15:00.001-04:00</published><updated>2012-03-18T21:15:57.319-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-18T21:15:57.319-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Overlapping Charts in SSRS using Range Charts</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;How fast time flies! &lt;/font&gt;&lt;font color="#000000"&gt;Another new version of SQL Server has been launched and it seems like it was only a few days ago that SQL Server 2008 was released. Those days, I was mainly focussing on SSRS, and I can’t express in words how happy I was when I saw all the new features in SSRS 2008 and 2008 R2. Today, I was reading through a great post by one of my favourite bloggers, &lt;a href="http://ms-olap.blogspot.com/" target="_blank"&gt;Hilmar Buchta&lt;/a&gt; on &lt;a href="http://ms-olap.blogspot.com/2012/03/ssrs-bar-charts-tips-and-tricks.html" target="_blank"&gt;SSRS Bar Chart Tips and Tricks&lt;/a&gt; and this prompted me to add a chart tip of my own here – Overlapping charts in SSRS.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-FIiqjRc0Clc/T2aIrDYW9oI/AAAAAAAADH4/e7Dd0dyUhNw/s1600-h/Overlapping%252520charts%252520in%252520SSRS%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Overlapping charts in SSRS" border="0" alt="Overlapping charts in SSRS" src="http://lh5.ggpht.com/-kn9F0ooC5kg/T2aIr7gDNwI/AAAAAAAADIA/4PEQwgRx9yU/Overlapping%252520charts%252520in%252520SSRS_thumb.jpg?imgmax=800" width="429" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;A quick look into this requirement and many of the BI professionals would say that it is not possible to implement this chart in SSRS. Quite often we underestimate the power of SSRS (I myself didn’t know how to implement some of the charts that Hilmar mentioned in his post) and hence I feel it is important to share and increase awareness through blog posts and other mediums. Follow the instructions below to replicate this chart:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Make a new report and use the query below to make a new dataset.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2009' AS Year, 'Q1' AS Quarter, 45 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2009' AS Year, 'Q2' AS Quarter, 30 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2009' AS Year, 'Q3' AS Quarter, 25 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2009' AS Year, 'Q4' AS Quarter, 50 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2010' AS Year, 'Q1' AS Quarter, 50 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2010' AS Year, 'Q2' AS Quarter, 30 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2010' AS Year, 'Q3' AS Quarter, 35 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2010' AS Year, 'Q4' AS Quarter, 60 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2011' AS Year, 'Q1' AS Quarter, 55 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2011' AS Year, 'Q2' AS Quarter, 50 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2011' AS Year, 'Q3' AS Quarter, 65 AS Sales&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '2011' AS Year, 'Q4' AS Quarter, 75 AS Sales&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Make a column chart and use Sales in the Data Values, Year in the Category and Quarter in the series.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-y8lon4xwB9I/T2aIsc2gjAI/AAAAAAAADII/tMBjNylvMOg/s1600-h/Column%252520Chart%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Column Chart" border="0" alt="Column Chart" src="http://lh4.ggpht.com/-3_qfsJZpGe0/T2aItXjgUgI/AAAAAAAADIQ/vPtEj98-Viw/Column%252520Chart_thumb.jpg?imgmax=800" width="504" height="257"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;3) Right click on the Year category group and check the category group name. Rename it to a user friendly name like Year as shown below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-CXC89W8yxJw/T2aIt9iUFKI/AAAAAAAADIY/NDy_J8k8eAs/s1600-h/Change%252520category%252520group%252520name%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Change category group name" border="0" alt="Change category group name" src="http://lh3.ggpht.com/-CWor7OKup2M/T2aIuqI6naI/AAAAAAAADIg/ewhEiaDBttg/Change%252520category%252520group%252520name_thumb%25255B2%25255D.jpg?imgmax=800" width="504" height="394"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Create a new calculated measure by adding a new data value and enter the code below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;=Sum(Fields!Sales.Value, "Year")&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-egzJLDFufIE/T2aIvOcHqsI/AAAAAAAADIo/FglaJXjoFDA/s1600-h/Measure%252520expression%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Measure expression" border="0" alt="Measure expression" src="http://lh5.ggpht.com/-P750YKRfEjs/T2aIvoj4YNI/AAAAAAAADIw/Nt518ERcCXg/Measure%252520expression_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="268"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Change the chart type of the new measure to Range Column. Ensure that the chart type of the Sales measure is still column. Also bring the Sales measure to the bottom as shown in the image below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-7KY9ln6DCq0/T2aIwD_6B3I/AAAAAAAADI4/gXJ3UBWVP3k/s1600-h/Column%252520and%252520range%252520chart%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Column and range chart" border="0" alt="Column and range chart" src="http://lh6.ggpht.com/-8uFjkr9zu7g/T2aIwjNN4sI/AAAAAAAADJA/3GojOP6qes4/Column%252520and%252520range%252520chart_thumb.jpg?imgmax=800" width="504" height="220"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Change the color of the Range Column as Aqua (or any color you like) from Automatic, so that all bars of the range column have the same color.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-NSnVBzdQe2s/T2aIwyASbzI/AAAAAAAADJI/UNmV1-r-XeI/s1600-h/Change%252520color%252520of%252520Range%252520chart%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Change color of Range chart" border="0" alt="Change color of Range chart" src="http://lh3.ggpht.com/-kiK_nlFh-Nk/T2aIxiRS0QI/AAAAAAAADJQ/N7ZMOe3h8S8/Change%252520color%252520of%252520Range%252520chart_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="266"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) You can enable the data labels for the Sales measure and disable the legend for the new calculated measure. Now if you preview the report, you will get the required result.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-QGAsZlJmeZA/T2aIx4egctI/AAAAAAAADJY/UQvCFepxmtc/s1600-h/Overlapping%252520bar%252520chart%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Overlapping bar chart" border="0" alt="Overlapping bar chart" src="http://lh6.ggpht.com/-kMuYxyq_DUc/T2aIyfPK2mI/AAAAAAAADJg/PF59Dm0AoNk/Overlapping%252520bar%252520chart_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="335"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You can use the same technique (with a little modification in the dataset query) to implement charts like shown below&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-kZ8p6RkPgmA/T2aIyi7YS6I/AAAAAAAADJo/qXNr6KXgb_A/s1600-h/Overlapping%252520stacked%252520charta%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Overlapping stacked charta" border="0" alt="Overlapping stacked charta" src="http://lh4.ggpht.com/-2cPMBClsZts/T2aIzNG1rMI/AAAAAAAADJw/niBb9QPJ01w/Overlapping%252520stacked%252520charta_thumb.jpg?imgmax=800" width="504" height="216"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Hopefully, this post will help in getting your creative juices flow when you are faced with a tough SSRS chart requirement!&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-1071215316457845904?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=2nfW_YdgmcI:B_Ec4PzSYko:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=2nfW_YdgmcI:B_Ec4PzSYko:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=2nfW_YdgmcI:B_Ec4PzSYko:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/2nfW_YdgmcI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/1071215316457845904/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/03/overlapping-charts-in-ssrs-using-range.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/1071215316457845904?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/1071215316457845904?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/2nfW_YdgmcI/overlapping-charts-in-ssrs-using-range.html" title="Overlapping Charts in SSRS using Range Charts" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-kn9F0ooC5kg/T2aIr7gDNwI/AAAAAAAADIA/4PEQwgRx9yU/s72-c/Overlapping%252520charts%252520in%252520SSRS_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/03/overlapping-charts-in-ssrs-using-range.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MBQXw4eSp7ImA9WhVSFU0.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-5844774976067424088</id><published>2012-03-10T12:34:00.001-05:00</published><updated>2012-03-11T17:30:50.231-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-11T17:30:50.231-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spatial / Map Reports" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Heat Maps for SSRS using Map Control</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;I have always been inspired by a particular quote from &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Arthur_C._Clarke" target="_blank"&gt;&lt;font color="#0000ff"&gt;Arthur C Clarke&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000"&gt; - “&lt;em&gt;The only way of finding the limits of the possible is by going beyond them into the impossible&lt;/em&gt;”. The more you think of it, the more you make sense out of it. If you decide in your mind that something is impossible, you will never even try to make it happen. Consider the example of the 10-second barrier in athletics. Rather than a physical barrier, it has always been more of a psychological barrier. How else can you explain the significantly high numbers of athletes that have broken the barrier in the last 2-3 years when compared to the 20 years between 1968 and 1988? Being mindful of that, I have always tried to be open when discussing requirements and always keep a secret list with me of the requirements that I have not been able to fulfil. One of my earliest list items was that of a squarified Heat Map (or &lt;a href="http://en.wikipedia.org/wiki/Treemapping" target="_blank"&gt;Treemap&lt;/a&gt; as they are generally called) in SSRS. Even though there is no out of the box way to do it in SSRS, it was said to be possible by using the map controls and has been shown by &lt;a title="Heat Maps as Reports" href="http://prologika.com/CS/blogs/blog/archive/2009/08/30/heat-maps-as-reports.aspx" target="_blank"&gt;Teo Lachev&lt;/a&gt; a long time ago. I had even progressed as far as making a T-SQL procedure which calculates the coordinates of the heat maps but it just wasn’t that elegant enough to be used in a production system. However, a recent &lt;a title="Squarified Heat Maps SQL Reporting Services Part 2" href="http://richmintzbi.wordpress.com/2012/01/30/squarified-heat-maps-sql-reporting-services-part-2/" target="_blank"&gt;blog&lt;/a&gt; by &lt;a href="http://richmintzbi.wordpress.com" target="_blank"&gt;&lt;strong&gt;Richard Mintz&lt;/strong&gt;&lt;/a&gt; on the Squarified Heat Maps has finally made me strike off this requirement from my list as completed.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-jwL8uc8mR_U/T1uQfJpYEEI/AAAAAAAADEI/uwYt9WprnBo/s1600-h/HeatMaps%252520in%252520SSRS%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="HeatMaps in SSRS" border="0" alt="HeatMaps in SSRS" src="http://lh5.ggpht.com/-Jz4i8yJEFg8/T1uQfsPnS7I/AAAAAAAADEQ/WWPz7krhb4I/HeatMaps%252520in%252520SSRS_thumb.jpg?imgmax=800" width="323" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;To implement heat maps in your reports, follow the steps below:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Download the HeatMap.dll file from &lt;a title="Download HeatMap.dll by clicking here" href="https://docs.google.com/open?id=0B1k6zmQ4NXQlaE5pYWNYcURRcnVHazFkTXdFaURWZw" target="_blank"&gt;here&lt;/a&gt; and save it in a location in your hard-drive, say C:\HeatMap (You should see the Download option on the File Menu). This dll file is the compiled version of the code given in Richard’s blog.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Open SQL Server Management Studio and then execute the following code in the database that you want to create the assembly.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;CREATE ASSEMBLY HeatMap from 'c:\HeatMap\HeatMap.dll' WITH PERMISSION_SET = SAFE&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) After that, execute the following code to register the stored procedure &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;CREATE PROCEDURE dbo.CreateHeatMap (@Width real, @Height real, @SqlStrng nvarchar(4000))&lt;br&gt;AS&lt;br&gt;EXTERNAL NAME HeatMap.StoredProcedures.TreeMapGeography&lt;/font&gt; &lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;In case you get an error saying that CLR is not enabled run the code below to enable CLR before creating the procedure again&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;EXEC sp_configure 'show advanced options' , '1';&lt;br&gt;go&lt;br&gt;reconfigure;&lt;br&gt;go&lt;br&gt;EXEC sp_configure 'clr enabled' , '1'&lt;br&gt;go&lt;br&gt;reconfigure;&lt;br&gt;-- Turn advanced options back off&lt;br&gt;EXEC sp_configure 'show advanced options' , '0';&lt;br&gt;go&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Now create a new report and a new dataset. For this report, I am going to be using a SQL query from the AdventureWorks database which will give me the Subcategory Name and Order Quantity. Order quantity will be the measure which will determine the size of the rectangles within the heat map. Enter the code below for the dataset&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#9b00d3" size="1"&gt;exec dbo.CreateHeatMap 20, 25, 'select&amp;nbsp; sum(FIS.OrderQuantity), EnglishProductSubcategoryName &lt;br&gt;from dbo.DimProductSubCategory SC &lt;br&gt;inner join DimProduct P&lt;br&gt;on SC.ProductSubcategoryKey=P.ProductSubcategoryKey&lt;br&gt;inner join dbo.FactResellerSales FIS&lt;br&gt;on FIS.ProductKey =P.ProductKey &lt;br&gt;group by EnglishProductSubcategoryName &lt;br&gt;order by&amp;nbsp; sum(FIS.OrderQuantity)&amp;nbsp; desc'&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;The first 2 parameters within the CreateMap procedure are used for setting the width and the height of the heat map and this can be customized as per your needs. The third parameter is basically the select statement which should return the measure used for determining the rectangle sizes as well as the names used for labelling the rectangles within the heat map. Ensure that the Text option has been selected for the query and it should look like shown below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-DLE-Vfew6IY/T1uQgVTqPhI/AAAAAAAADEY/6R4AbbgG870/s1600-h/Spatial%252520Dataset%25255B3%25255D.jpg"&gt;&lt;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="Spatial Dataset" border="0" alt="Spatial Dataset" src="http://lh3.ggpht.com/-583e8YuXNIs/T1uQg0bs6JI/AAAAAAAADEg/YjoJwAIKSqo/Spatial%252520Dataset_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="352"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Now make another dataset which will have the analytical data used for visualizing the rectangles with colours. For this demo, I am using a MDX query from the AdventureWorks cube which will return the Subcategory Names and Reseller Gross Profit.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-achtXzDvsQ4/T1uQhlSMkXI/AAAAAAAADEo/-_gd4yjCoZE/s1600-h/Analyticaal%252520Dataset%25255B3%25255D.jpg"&gt;&lt;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="Analyticaal Dataset" border="0" alt="Analyticaal Dataset" src="http://lh5.ggpht.com/-2N09Wn_6Ghs/T1uQiPPJ1lI/AAAAAAAADEw/Cs8JBnkKufQ/Analyticaal%252520Dataset_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="462"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Drag and drop a Map report item from the toolbox to the design layout and select SQL Server Spatial query as the data source. On the next screen, select the&amp;nbsp; spatial dataset which we had created in Step 4.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-WLiBtJj-hwM/T1uQij9c5oI/AAAAAAAADE4/hQ_4VpEWx90/s1600-h/Choose%252520spatial%252520dataset%25255B3%25255D.jpg"&gt;&lt;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="Choose spatial dataset" border="0" alt="Choose spatial dataset" src="http://lh4.ggpht.com/-_5G2qrddAAY/T1uQjPzs1-I/AAAAAAAADFA/bN7FzQtHYs8/Choose%252520spatial%252520dataset_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="372"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) On the next screen, ensure that Geo is the spatial field and the Layer type is Polygon. Click next.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;8) Choose Color Analytical Map&amp;nbsp; the map visualization and click next. Then choose the dataset that we created in step 5 as the analytical dataset.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-tOfN9h9NC2w/T1uQjrvhihI/AAAAAAAADFI/85XeKjURwRg/s1600-h/Choose%252520analytical%252520dataset%25255B3%25255D.jpg"&gt;&lt;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="Choose analytical dataset" border="0" alt="Choose analytical dataset" src="http://lh6.ggpht.com/-W7s8QXS-nCI/T1uQkAnSzqI/AAAAAAAADFQ/vg976SkMyG4/Choose%252520analytical%252520dataset_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="377"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;9) Specify the match fields as Name and SubCategory as shown in the screenshot below and click on Next&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-ESNwTQnRBsk/T1uQksvq6GI/AAAAAAAADFY/M89ZrFTx7OQ/s1600-h/Specify%252520the%252520match%252520fields%25255B3%25255D.jpg"&gt;&lt;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="Specify the match fields" border="0" alt="Specify the match fields" src="http://lh6.ggpht.com/-gcstUmKXV8s/T1uQlG9iOTI/AAAAAAAADFg/O3afUBDtdQs/Specify%252520the%252520match%252520fields_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="477"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;10) In the next screen, choose the field to visualize as Reseller Gross Profit and click on Finish.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-uJjKfL9qjVM/T1uQlsA44LI/AAAAAAAADFo/8BLDWTINz20/s1600-h/Fields%252520to%252520visualize%25255B3%25255D.jpg"&gt;&lt;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="Fields to visualize" border="0" alt="Fields to visualize" src="http://lh4.ggpht.com/-klFJph5rDRU/T1uQmCCkNwI/AAAAAAAADFw/eLC2BiYSb1s/Fields%252520to%252520visualize_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="477"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;11) Now if the report is previewed, you can see a nice heat map which will have the dimension size based on the Order Quantity and the colours visualized based on the Gross Profit.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-J8gNVsdTYig/T1uQmvnCArI/AAAAAAAADF4/qxLBm2uIylI/s1600-h/HeatMap%252520Preview%25255B3%25255D.jpg"&gt;&lt;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="HeatMap Preview" border="0" alt="HeatMap Preview" src="http://lh4.ggpht.com/-aOEp5KU7n5E/T1uQnEzIdPI/AAAAAAAADGA/aQoOrkZO1-4/HeatMap%252520Preview_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="457"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;If are interested in map/spatial reports, you might want to check out some of my related posts &lt;strong&gt;&lt;a title="My posts related to Spatial / Map Reports" href="http://road-blogs.blogspot.com/search/label/Spatial%20%2F%20Map%20Reports" target="_blank"&gt;here&lt;/a&gt;&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;u&gt;Update (11/03/2012)&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;To make it culture insensitive, the code has been modified and a new version of the compiled code has been posted &lt;a href="https://docs.google.com/open?id=0B1k6zmQ4NXQlaE5pYWNYcURRcnVHazFkTXdFaURWZw" target="_blank"&gt;here&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-5844774976067424088?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=cXtB3EjkueU:UYZ7HbaNd-g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=cXtB3EjkueU:UYZ7HbaNd-g:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=cXtB3EjkueU:UYZ7HbaNd-g:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/cXtB3EjkueU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/5844774976067424088/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/03/heat-maps-for-ssrs-using-map-control.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5844774976067424088?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5844774976067424088?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/cXtB3EjkueU/heat-maps-for-ssrs-using-map-control.html" title="Heat Maps for SSRS using Map Control" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-Jz4i8yJEFg8/T1uQfsPnS7I/AAAAAAAADEQ/WWPz7krhb4I/s72-c/HeatMaps%252520in%252520SSRS_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/03/heat-maps-for-ssrs-using-map-control.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4MQ3s7fyp7ImA9WhVSEE0.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-7287564346002236108</id><published>2012-03-05T12:35:00.000-05:00</published><updated>2012-03-05T21:29:42.507-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T21:29:42.507-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Making a Tag Cloud with SSRS Rich Text</title><content type="html">&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;One of my first blogs here was based on the &lt;/font&gt;&lt;a title="Rich Text in SSRS 2008" href="http://road-blogs.blogspot.com/2010/04/rich-text-in-ssrs-2008.html" target="_blank"&gt;&lt;font size="2"&gt;Rich Text functionality in SSRS 2008&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;. However I found very little use of that in my projects and did not explore that area much. However a recent question in the forums made me rethink on the way I thought about the rich text functionality.&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/-qAOmy-oDAfI/T1FxrXl8v6I/AAAAAAAADBE/21sfGDeKF3o/s1600-h/SSRS%252520Tag%252520Cloud%25255B3%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="SSRS Tag Cloud" border="0" alt="SSRS Tag Cloud" src="http://lh5.ggpht.com/-PbHKQ44lVyo/T1FxrzhMd8I/AAAAAAAADBM/mFrI6hv7gtU/SSRS%252520Tag%252520Cloud_thumb%25255B1%25255D.jpg?imgmax=800" width="304" height="190"&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;The question was whether we could create tag clouds in SSRS. A tag cloud (word cloud, or weighted list in visual design) is a visual representation for text data, typically used to depict keyword metadata (tags) on websites, or to visualize free form text. 'Tags' are usually single words, and the importance of each tag is shown with font size or colour. This format is useful for quickly perceiving the most prominent terms and for locating a term alphabetically to determine its relative prominence. I have attached an image of my blog’s tag cloud below:-&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-N4RaXN2sN_s/T1FxsUPnZ2I/AAAAAAAADBU/0Sf9g_W8h08/s1600-h/My%252520Blog%252527s%252520tag%252520cloud%25255B2%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="My Blog's tag cloud" border="0" alt="My Blog's tag cloud" src="http://lh5.ggpht.com/-bCkCe402n6A/T1Fxs1PgkeI/AAAAAAAADBc/_5S1-7FKP3w/My%252520Blog%252527s%252520tag%252520cloud_thumb.jpg?imgmax=800" width="274" height="170"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;Follow the steps below to reproduce the solution:-&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;1) Create a new report and use the query below for the dataset so that we can get the keywords as well as the count&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;font size="2"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'SSRS' AS Keyword, 36 AS Cnt&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'SSAS' AS Keyword, 26 AS Cnt&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'MDX' AS Keyword, 20 AS Cnt&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Interview Questions' AS Keyword, 18 AS Cnt&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Personal' AS Keyword, 17 AS Cnt&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Activities' AS Keyword, 16 AS Cnt&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'SQL' AS Keyword, 15 AS Cnt&lt;/span&gt;&lt;br&gt;&lt;/font&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;Name the dataset as DataSet1&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;2) Click on Report on the top menu, and then click on Report Properties. Select the code tab and then paste the code given below&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;font size="2"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;Dim public SMax as Integer = 7&lt;br&gt;Dim public SMin as Integer = 1&lt;br&gt;Dim public HtmlTag as String = ""&lt;br&gt;Dim Public FontSize as Integer = 5&lt;/span&gt;&lt;br&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;Public Function GetFontSize(ByVal NMin AS Integer, ByVal NMax AS Integer,ByVal Num AS Integer) AS Integer&lt;br&gt;FontSize =&amp;nbsp; (SMin + ((Num-NMin) * (SMax-SMin)/(NMax-NMin)))&lt;br&gt;Return Num&lt;br&gt;End Function&lt;/span&gt;&lt;br&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;Public Function BuildHtmlTag(ByVal Keywrd as String, ByVal Num as Integer) AS String&lt;br&gt;HtmlTag = HtmlTag &amp;amp; "&amp;lt;font size=""" &amp;amp; FontSize &amp;amp; """&amp;gt;" &amp;amp; Keywrd &amp;amp; " (" &amp;amp;&amp;nbsp; Num &amp;amp; ") &amp;lt;/font&amp;gt;"&lt;br&gt;Return Keywrd&lt;br&gt;End Function&lt;br&gt;&lt;br&gt;Public Function DisplayHtml() as String&lt;br&gt;return HtmlTag&lt;br&gt;End Function&lt;/span&gt;&lt;br&gt;&lt;/font&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;It should look like below once that is done&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-AWZT2gq84zA/T1FxtoFq8SI/AAAAAAAADBk/6Hdlipv45fM/s1600-h/Report%252520Properties%25255B3%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="Report Properties" border="0" alt="Report Properties" src="http://lh6.ggpht.com/-VnWfoWYgMYE/T1FxueeLFgI/AAAAAAAADBs/CNdlGkEV8mY/Report%252520Properties_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="313"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;3)&amp;nbsp; Drag and drop a table to the layout. Enter the header of the first column as KeywordCount and in the expression for the data value, enter the code below&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;&lt;font size="1"&gt;=Code.GetFontSize(Min(Fields!Cnt.Value, "DataSet1"), Max(Fields!Cnt.Value, "DataSet1"), Fields!Cnt.Value)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;Now, enter the header of the second column as Keyword and in the expression for the data value, enter the code below&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;&lt;font size="1"&gt;=Code.BuildHtmlTag(Fields!Keyword.Value, Fields!Cnt.Value)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;Make sure to place the table in the top left corner and ensure it looks like below&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-s05ad4nNvzA/T1Fxv06m1tI/AAAAAAAADB0/Rf1EJArDrmI/s1600-h/Table%252520which%252520calls%252520the%252520report%252520code%25255B2%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="Table which calls the report code" border="0" alt="Table which calls the report code" src="http://lh5.ggpht.com/-Fk3WsmqVQXc/T1FxwuVN4JI/AAAAAAAADB8/1oTEcN6bcJo/Table%252520which%252520calls%252520the%252520report%252520code_thumb.jpg?imgmax=800" width="418" height="226"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;font size="2"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;4) Change the Border Style property for both the columns to None from Solid. Then resize the columns and rows of the tablix to be as small as you can (but still in the top left corner so that it is the first report item to be evaluated when the report runs). The end result should look like shown below&lt;/font&gt;.&lt;/span&gt;&lt;br&gt;&lt;/font&gt;&lt;a href="http://lh6.ggpht.com/-LO9RuDYK4co/T1FxxguqrxI/AAAAAAAADCE/tP2s5jVrxig/s1600-h/Resized%252520tablix%25255B6%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="Resized tablix" border="0" alt="Resized tablix" src="http://lh4.ggpht.com/-5wnpcGWdKxk/T1FxyPoSJ8I/AAAAAAAADCI/pef5eXaK2JA/Resized%252520tablix_thumb%25255B2%25255D.jpg?imgmax=800" width="304" height="344"&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;Ideally, after this the tablix should be hidden when the report is previewed. You might also want to set the font colour to white and delete the headers in case the tablix is still shown. Now when you view the deployed report in Internet explorer, the tablix might push other report items down or to the left. So care should be taken to align your report items in rectangles. &lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;5) Drag and drop a textbox wherever you want into the report and set the width of the textbox as required. Then enter the following expression&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;font size="2"&gt;&lt;span style="color: #9b00d3; font-size: xx-small"&gt;=Code.DisplayHtml()&lt;/span&gt;&lt;br&gt;&lt;/font&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;6) Click on OK. Then select the expression and right click as shown in the image below.&lt;/font&gt;&lt;/span&gt;&lt;a href="http://lh5.ggpht.com/-dZQJtbFG5eI/T1Fxy5AEPyI/AAAAAAAADCY/hetQZN00CLI/s1600-h/Placeholder%252520properties%25255B2%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="Placeholder properties" border="0" alt="Placeholder properties" src="http://lh5.ggpht.com/-S4wprah_uJU/T1FxzWEaxcI/AAAAAAAADCk/L_Qj4b4dK0c/Placeholder%252520properties_thumb.jpg?imgmax=800" width="392" height="265"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;7) Click on the Placeholder Properties and then select the HTML option as shown in the image below.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-yKXu-SQKOsU/T1Fx0gqPGCI/AAAAAAAADCs/Jz4ymLMtm7c/s1600-h/Interpret%252520HTML%252520tags%252520as%252520style%25255B3%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="Interpret HTML tags as style" border="0" alt="Interpret HTML tags as style" src="http://lh3.ggpht.com/-XIRwubzvSfs/T1Fx1FMlAII/AAAAAAAADCw/YC-0aiCnLYY/Interpret%252520HTML%252520tags%252520as%252520style_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="303"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;8) With that last step, we are done and on clicking preview, we should see our neat little tag cloud.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-R0kmYN-ldIg/T1Fx1gLMmMI/AAAAAAAADC8/jii_DEKYyGI/s1600-h/Tag%252520Cloud%252520in%252520SSRS%25255B3%25255D.jpg"&gt;&lt;font size="2"&gt;&lt;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="Tag Cloud in SSRS" border="0" alt="Tag Cloud in SSRS" src="http://lh5.ggpht.com/-8dA6tA6_ny4/T1Fx2O1vtII/AAAAAAAADDE/Z0VuzZR4ASY/Tag%252520Cloud%252520in%252520SSRS_thumb%25255B1%25255D.jpg?imgmax=800" width="304" height="242"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;The tag cloud can also be sorted on the basis of keywords or keyword counts also by just sorting the results of the tablix. The code can also be modified to show different colours for each of the keywords and do further more stuff, as all you need to do is to generate the html tags. An example is given in the original &lt;/font&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/9a709cf1-2a4d-49c3-87d4-dba5162c1741" target="_blank"&gt;&lt;font size="2"&gt;forum post&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;. Now I really deserve a mug of beer after this!&lt;/font&gt;&lt;/span&gt;&lt;/div&gt; &lt;div align="justify"&gt;&lt;span style="color: black; font-size: x-small"&gt;&lt;font size="2"&gt;Note: I don’t really know much of VB.net coding, so optimization tips for the code part are welcome in the comments section.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-7287564346002236108?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=i73eLHJQwvg:NzX7lsIKBqA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=i73eLHJQwvg:NzX7lsIKBqA:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=i73eLHJQwvg:NzX7lsIKBqA:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/i73eLHJQwvg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/7287564346002236108/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/03/making-tag-cloud-with-ssrs-rich-text.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/7287564346002236108?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/7287564346002236108?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/i73eLHJQwvg/making-tag-cloud-with-ssrs-rich-text.html" title="Making a Tag Cloud with SSRS Rich Text" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-PbHKQ44lVyo/T1FxrzhMd8I/AAAAAAAADBM/mFrI6hv7gtU/s72-c/SSRS%252520Tag%252520Cloud_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/03/making-tag-cloud-with-ssrs-rich-text.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QEQnk-cSp7ImA9WhVSE08.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-8393646274932341938</id><published>2012-03-01T21:06:00.001-05:00</published><updated>2012-03-09T15:35:03.759-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-09T15:35:03.759-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spatial / Map Reports" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Adding Maps to SSRS Map Gallery</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I love working with map reports and I don’t miss a chance to fiddle around with it. In fact, I am such a big fan that I think there would be very few sessions (in English, of course!) involving SSRS and maps that I would have missed, both online and live. Also, this is one of those topics that can make me reply on the SSRS forum even when I am at my lazy best. So the other day, someone was asking for a map of Continental Europe that could be used for making his SSRS report. As usual, I tried to go to the site that I always turn when I need a shapefile – &lt;a href="http://diva-gis.org"&gt;http://diva-gis.org&lt;/a&gt;. But this was one of those rare occasions where I couldn’t find what I wanted.But that is when I thought of an alternative – create a map of Europe from my database (which already had a world map), embed the spatial data in a report and then send him that report so that he could add it in his Map Gallery.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-68V92WeFn1I/T1Aq54VjlJI/AAAAAAAAC-U/rjSqhO88gug/s1600-h/Add%252520Maps%252520to%252520SSRS%252520Map%252520Gallery%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Add Maps to SSRS Map Gallery" border="0" alt="Add Maps to SSRS Map Gallery" src="http://lh5.ggpht.com/-8meLRFSLcN4/T1Aq6b73eII/AAAAAAAAC-c/g5ZaHT1jDnI/Add%252520Maps%252520to%252520SSRS%252520Map%252520Gallery_thumb.jpg?imgmax=800" width="380" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The source for the maps can either be a shapefile or spatial data. Though I am picking the spatial data as the source for this demonstration, the process of adding a map to the map gallery is going to be similar for both the type of sources. Follow the steps below on how you can add an existing map in your report to the Map Gallery:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) I had already got a table called dbo.World which has the spatial data at a country level for all the countries of the world. I ran a query to filter out only for Europe (minus Russia as it was taking up the entire map space, no offence meant) and got the following result.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-9LWSZLSGLpA/T1Aq6_frQAI/AAAAAAAAC-k/zl8_6Phye44/s1600-h/1%252520Filtered%252520query%252520for%252520Europe%25255B3%25255D.jpg"&gt;&lt;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="1 Filtered query for Europe" border="0" alt="1 Filtered query for Europe" src="http://lh6.ggpht.com/-d89LOsX64ls/T1Aq7toH65I/AAAAAAAAC-s/qq07dzwKteM/1%252520Filtered%252520query%252520for%252520Europe_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="468"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Create a new report and name it Europe.rdl. Make a new data source and dataset after that. Use the same query that was used above as the dataset query.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-bIVuuifkqls/T1Aq8WwIO-I/AAAAAAAAC-0/qJ5PibtwUPQ/s1600-h/2%252520Dataset%252520query%25255B3%25255D.jpg"&gt;&lt;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="2 Dataset query" border="0" alt="2 Dataset query" src="http://lh5.ggpht.com/-pbWRaCvyK9s/T1Aq-B50oTI/AAAAAAAAC-8/rZSyiaJNoAI/2%252520Dataset%252520query_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="363"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Drag and drop the Map report item from the toolbar and select the SQL Server spatial query as the data source in the map wizard. Click on next.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-JG_91Vfvqs0/T1Aq-jMXe_I/AAAAAAAAC_E/_AElmKPYCGc/s1600-h/3%252520Source%252520for%252520spatial%252520data%25255B3%25255D.jpg"&gt;&lt;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="3 Source for spatial data" border="0" alt="3 Source for spatial data" src="http://lh4.ggpht.com/-kk1e2h40Q5g/T1Aq_WbmLII/AAAAAAAAC_M/5IWIGUvYd8w/3%252520Source%252520for%252520spatial%252520data_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="389"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Choose the existing dataset in the next screen and click on next.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-v-xH5ShESi0/T1Aq_6RkDoI/AAAAAAAAC_U/ISXwh5aJIOw/s1600-h/4%252520Choose%252520dataset%25255B3%25255D.jpg"&gt;&lt;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="4 Choose dataset" border="0" alt="4 Choose dataset" src="http://lh5.ggpht.com/-eW44hxDqVjY/T1ArAUqbFRI/AAAAAAAAC_c/xFgujK7Ro8Q/4%252520Choose%252520dataset_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="384"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) In the next screen, remember to check the tick box for &lt;em&gt;&lt;strong&gt;Embed Map Data in this Report&lt;/strong&gt;&lt;/em&gt; option.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-TVG1bp36Ogc/T1ArAx6pSPI/AAAAAAAAC_k/9UI3AJvZnGM/s1600-h/5%252520Embed%252520map%252520data%252520in%252520report%25255B3%25255D.jpg"&gt;&lt;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="5 Embed map data in report" border="0" alt="5 Embed map data in report" src="http://lh3.ggpht.com/-PQX2nk6Rtek/T1ArBZOta_I/AAAAAAAAC_o/A8iRp-XsY5c/5%252520Embed%252520map%252520data%252520in%252520report_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="330"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) After that, keep on clicking next till you reach the Finish button. Click on Finish and you should get the result as shown below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-Qc7uqtYPkys/T1ArBzgA5WI/AAAAAAAAC_0/cYrEZxVDz90/s1600-h/6%252520Report%252520design%25255B3%25255D.jpg"&gt;&lt;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="6 Report design" border="0" alt="6 Report design" src="http://lh3.ggpht.com/-DNmWtI34S_M/T1ArDZfFGaI/AAAAAAAAC_8/ywJiEnqVOEQ/6%252520Report%252520design_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="279"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) Now save the report and then copy the report rdl from it's source location to &lt;/font&gt;&lt;font color="#000000" size="2"&gt;&lt;em&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\MapGallery&lt;/font&gt;&lt;/u&gt;&lt;/em&gt;. Note that the location would be in &lt;font color="#0000ff"&gt;&lt;u&gt;&lt;em&gt;Program Files&lt;/em&gt;&lt;/u&gt;&lt;font color="#000000"&gt; and not&lt;/font&gt; &lt;u&gt;&lt;em&gt;Program Files (x86)&lt;/em&gt;&lt;/u&gt;&lt;/font&gt; if you are developing in a 32 bit machine. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-R9ouTR1RsG0/T1ArDwQN-iI/AAAAAAAADAE/NSJiJ33z9C8/s1600-h/7%252520Add%252520report%252520to%252520map%252520gallery%25255B2%25255D.jpg"&gt;&lt;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="7 Add report to map gallery" border="0" alt="7 Add report to map gallery" src="http://lh4.ggpht.com/-DIsOvEoBZgA/T1ArEdQCRJI/AAAAAAAADAM/R_wkMwgdeMY/7%252520Add%252520report%252520to%252520map%252520gallery_thumb.jpg?imgmax=800" width="504" height="121"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;8) Now you should be able to see the map of Europe in the map gallery when you create a new map in any other report on the same system.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-Rr9S9tCUZ6o/T1ArE_FcPXI/AAAAAAAADAU/PzjXOKQd_ig/s1600-h/8%252520View%252520map%252520in%252520map%252520gallery%25255B3%25255D.jpg"&gt;&lt;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="8 View map in map gallery" border="0" alt="8 View map in map gallery" src="http://lh6.ggpht.com/-b4Nz8woxRw8/T1ArFSAwfTI/AAAAAAAADAc/gKecFrFearE/8%252520View%252520map%252520in%252520map%252520gallery_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="297"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;Note that you will need to move the map to&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;em&gt;C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder\RptBuilder_3\MapGallery&lt;/em&gt; &lt;font color="#000000"&gt;if you need to use within ReportBuilder 3.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now this rdl that has been created can be shared and that is what I intended to send to the person in the forum, but I found a project in &lt;a href="http://www.codeplex.com/" target="_blank"&gt;Codeplex&lt;/a&gt; which already had a map for Europe - &lt;a href="http://mapgallery.codeplex.com/" target="_blank"&gt;MapGallery of Reporting Services in SQL Server 2008 R2&lt;/a&gt; and sent him a direct link to this. Have a look at the site and also contribute to the project if you have some shapefile which is not there already, so that others can also benefit from it.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-8393646274932341938?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=_A36iFAm6OA:L8ErK_MqOBI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=_A36iFAm6OA:L8ErK_MqOBI:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=_A36iFAm6OA:L8ErK_MqOBI:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/_A36iFAm6OA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/8393646274932341938/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/03/adding-maps-to-ssrs-map-gallery.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/8393646274932341938?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/8393646274932341938?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/_A36iFAm6OA/adding-maps-to-ssrs-map-gallery.html" title="Adding Maps to SSRS Map Gallery" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-8meLRFSLcN4/T1Aq6b73eII/AAAAAAAAC-c/g5ZaHT1jDnI/s72-c/Add%252520Maps%252520to%252520SSRS%252520Map%252520Gallery_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/03/adding-maps-to-ssrs-map-gallery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcHQ3c5fCp7ImA9WhRaGE8.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-5185524140749301956</id><published>2012-02-21T07:23:00.001-05:00</published><updated>2012-02-21T07:23:52.924-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-21T07:23:52.924-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book / Tool / Software Reviews" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Review: OfficeWriter v8</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;As a BI consultant specializing in SSRS, I have had lots of frustrations and hard times because of Excel. Every now and then, I have some or other business user coming up to me and asking for some feature which is there in Excel but not in SSRS. If you have been following my blog, you would already know that I am more of a work-around man, trying to find some alternative for features which are not supported out of the box. But when it comes to Excel related features, most of my attempts end in disappointment. So naturally, my ears perked up when I was asked to review a plugin which claimed to build SSRS reports using excel and word.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-dd8CuNzEpI8/T0GXxk1cdxI/AAAAAAAAC0s/kVmmSnWYMU8/s1600-h/reporting-services-diagram%25255B2%25255D.gif"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="reporting-services-diagram" border="0" alt="reporting-services-diagram" src="http://lh5.ggpht.com/-UfV3FG1OoEs/T0GXyQGuBvI/AAAAAAAAC00/KVKT38dzSAo/reporting-services-diagram_thumb.gif?imgmax=800" width="504" height="172"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;So I downloaded OfficeWriter v8 and spent close to a week playing around with it. Even though I encountered some minor quirks (v8.0 doesn’t run on the 64 bit version of Office 2010 yet – luckily I had a home pc with a 32 bit version of Office; got some minor issues when editing and deploying an existing SSRS report with shared data sources – got around it by setting the data sources once again from the report manager), overall I have been very pleased and of course, excited at the different prospects that this plugin opens up. You can quickly have a look at one of the reports created with OfficeWriter by clicking on the image below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a title="Open Sample Report" href="https://skydrive.live.com/redir.aspx?cid=d7a8c1dab8e16e1d&amp;amp;resid=D7A8C1DAB8E16E1D!232&amp;amp;parid=undefined" target="_blank"&gt;&lt;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="OW Sample Report" border="0" alt="OW Sample Report" src="http://lh3.ggpht.com/-c3d7jQ5lk6c/T0OM2NYfcMI/AAAAAAAAC8U/xepjXDR2DUI/OW%252520Sample%252520Report%25255B5%25255D.jpg?imgmax=800" width="504" height="275"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Let me note down quickly what I thought of it:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Advantages&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;1) &lt;strong&gt;XLSX support&lt;/strong&gt; – Right now, xlsx support is available only for SQL 2012, but with OfficeWriter, you can take advantage of all the features including overcoming the 65,326 row limit (listed here) in your current version of SSRS.&lt;br&gt;2)&lt;strong&gt; Full excel features support&lt;/strong&gt; including charts and pivot tables – Since excel is fully supported, you can make use of all the charts, macros and other features which are there in Excel but not in SSRS.&lt;br&gt;3) Ability to have &lt;strong&gt;2 views for a report&lt;/strong&gt; -&amp;nbsp; If we are editing a report with OfficeWriter from an existing report made through BIDS, then we will have 2 views for it – one which is displayed in report manager and other would be when exported to Excel. It can be helpful in scenarios where you view a fixed report and want to drill down and play around with the data further, in which case you can export to excel and then use a pivot table.&lt;br&gt;4) Charts are &lt;strong&gt;not rendered as images&lt;/strong&gt; when exported to excel. The export to Excel feature in SSRS will return images rendered as a static image. However, with OfficeWriter, you get the chart exactly as you designed in Excel with all the the interactivity and even tooltips.&lt;br&gt;5) Can enable &lt;strong&gt;subscriptions, security&lt;/strong&gt; – The tight integration with SSRS ensures that we can use subscriptions and other security features available in SSRS for the OfficeWriter reports.&lt;br&gt;6) &lt;strong&gt;Workbook Protection&lt;/strong&gt; – You can password protect your workbook or lock your cells for edit, which is an often requested feature by SSRS power users for subscription.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Limitations &lt;/u&gt;&lt;/strong&gt;&lt;br&gt;1) Can’t build MDX queries in OfficeWriter, will have to make in BIDS and then use them.&lt;br&gt;2) Will not work on the 64 bit version of Office, as of now.&lt;br&gt;3) This is not a limitation actually and is by design, but I couldn't help wishing if only the charts and data designed through OfficeWriter in excel would display properly in SSRS also.&lt;/font&gt; &lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Even though OfficeWriter has more features including integration with Word and SharePoint, I have reviewed &lt;strong&gt;&lt;u&gt;only&lt;/u&gt;&lt;/strong&gt; the integration with SSRS for Excel part. For folks who are further interested in this, I will show you how to create a sample report using OfficeWriter and post some useful links below it.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Creating / Editing&amp;nbsp; a sample report&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For the demo purpose, I am using OfficeWriter v8.0, the 32 bit version of Excel 2010 and SQL Server 2008 R2. Once the installation of OfficeWriter is done, you can find a new toolbar like shown below in the Add-Ins tab of Excel.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-Enj-2TIJpdE/T0GXy54nOSI/AAAAAAAAC08/x1zQ3wdAI84/s1600-h/1%252520OfficeWriter%252520Toolbar%25255B2%25255D.jpg"&gt;&lt;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="1 OfficeWriter Toolbar" border="0" alt="1 OfficeWriter Toolbar" src="http://lh5.ggpht.com/-V1LytetEXg4/T0GXzl9pa4I/AAAAAAAAC1E/4hWLOP-5o20/1%252520OfficeWriter%252520Toolbar_thumb.jpg?imgmax=800" width="504" height="78"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now, there are two ways in which you can proceed from here - &lt;br&gt;I) Create a new report in Excel with OfficeWriter&lt;br&gt;II) Edit an existing report created with BIDS (Business Intelligence Development Studio) and deployed to the server&lt;/font&gt; &lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The steps to create a new report is shown below:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Click on Add Query in the OfficeWriter toolbar and enter a name for your query.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/--xGScQ2hmIA/T0GXzyw9rHI/AAAAAAAAC1M/DBN9i4eX2Is/s1600-h/2%252520Add%252520Query%25255B2%25255D.jpg"&gt;&lt;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="2 Add Query" border="0" alt="2 Add Query" src="http://lh4.ggpht.com/-WdYHa5mw6dE/T0GX0gW45mI/AAAAAAAAC1U/D2grY5E5qag/2%252520Add%252520Query_thumb.jpg?imgmax=800" width="424" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;2) Add a new Database connection if there is none existing, enter the server information and add the required tables for the SQL query. Once that is done, select the required columns. In this example, I have connected to the AdventureWorks database and used the English Product Name in DimProduct table &amp;amp; Order quantity measure in the FactInternetSales.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-MrjZqTRVVXM/T0GX1BZplfI/AAAAAAAAC1c/5AcuXyh7IvE/s1600-h/3%252520Add%252520DB%252520and%252520query%25255B4%25255D.jpg"&gt;&lt;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="3 Add DB and query" border="0" alt="3 Add DB and query" src="http://lh5.ggpht.com/-4QvPII6SF0A/T0GX1XXqIcI/AAAAAAAAC1k/mpPXVCLSuVo/3%252520Add%252520DB%252520and%252520query_thumb%25255B2%25255D.jpg?imgmax=800" width="504" height="167"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Even though you can group using the OfficeWriter features, I edited the SQL query directly to group by the English Product Name, as shown below and click on OK. Close the query editor after that.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-tCZtZHpgjPo/T0GX19g_pCI/AAAAAAAAC1s/19wgGsEUVtQ/s1600-h/4%252520Modifying%252520SQL%252520Query%25255B2%25255D.jpg"&gt;&lt;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="4 Modifying SQL Query" border="0" alt="4 Modifying SQL Query" src="http://lh3.ggpht.com/-XkxdzLxuAdc/T0GX2KhxTeI/AAAAAAAAC10/7RDZMps27c0/4%252520Modifying%252520SQL%252520Query_thumb.jpg?imgmax=800" width="402" height="265"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Click on Insert Field and select the English Product Name in cell A1 and Order Quantity in B1.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-h6An1sRr4EM/T0GX20puvDI/AAAAAAAAC18/DdlO1uP297k/s1600-h/5%252520Insert%252520fields%252520to%252520excel%252520sheet%25255B2%25255D.jpg"&gt;&lt;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="5 Insert fields to excel sheet" border="0" alt="5 Insert fields to excel sheet" src="http://lh6.ggpht.com/-Mg5W-lpjXf4/T0GX3dQvYTI/AAAAAAAAC2E/3k8_EMAjzd8/5%252520Insert%252520fields%252520to%252520excel%252520sheet_thumb.jpg?imgmax=800" width="504" height="181"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Click on View. This will prompt you to enter the name of your report and save it in your local drive. Click on Save and a new dialog box opens which will prompt you to enter the name of your report server. Click on OK to publish your report to the report server.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-NcPh95D-MGw/T0GX4L9cDkI/AAAAAAAAC2M/yrp75JGzLdA/s1600-h/6%252520Save%252520the%252520report%25255B3%25255D.jpg"&gt;&lt;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="6 Save the report" border="0" alt="6 Save the report" src="http://lh5.ggpht.com/-B4jwa19JxOo/T0GX45NoxMI/AAAAAAAAC2U/lYuAZehF_Bc/6%252520Save%252520the%252520report_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="293"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Once that is done, the report preview would be shown in Excel. You can click on Close Report View to go back to the designer.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-Xv1LpWy2_nk/T0GX5jSfiiI/AAAAAAAAC2c/QtdMPhR4iQo/s1600-h/7%252520Preview%252520report%25255B3%25255D.jpg"&gt;&lt;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="7 Preview report" border="0" alt="7 Preview report" src="http://lh6.ggpht.com/-rzA9uPcMQqE/T0GX6DaIJLI/AAAAAAAAC2k/diO_YyjYm0g/7%252520Preview%252520report_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="278"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;7) You can also preview the report from the report manager, which will display a message that the report was made in OfficeWriter and would display correctly only when exported to Excel with OfficeWriter.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-omVh_7jrmb0/T0GX62iJhTI/AAAAAAAAC2w/OcVHhKoNY0Q/s1600-h/8%252520Preview%252520report%252520in%252520IE%25255B3%25255D.jpg"&gt;&lt;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="8 Preview report in IE" border="0" alt="8 Preview report in IE" src="http://lh6.ggpht.com/-k8u68XEdU2g/T0GX7WELo4I/AAAAAAAAC24/hvFwlPPz9m0/8%252520Preview%252520report%252520in%252520IE_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="275"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Editing an existing report is also simple but you would not be able to edit the queries made through BIDS. Follow the steps below to edit an existing report.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Click on Open Report and then click on Retrieve as shown in the image below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-GScqQCW0Ruc/T0GX9HLkQHI/AAAAAAAAC3A/ZQluWhDmLQg/s1600-h/9%252520Open%252520existing%252520report%25255B3%25255D.jpg"&gt;&lt;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="9 Open existing report" border="0" alt="9 Open existing report" src="http://lh5.ggpht.com/-ruvT0vrrI-k/T0GX94kslvI/AAAAAAAAC3Q/UoKlTwYd9Es/9%252520Open%252520existing%252520report_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="456"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Enter the report server url and click on Refresh. The list of existing reports would be displayed below and you can select from them.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-2ourGaSXF2o/T0GX_Bi8vyI/AAAAAAAAC3c/wjQEIU0NKiQ/s1600-h/10%252520Select%252520existing%252520report%25255B3%25255D.jpg"&gt;&lt;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; margin-left: 0px; border-left-width: 0px; margin-right: 0px; padding-top: 0px" title="10 Select existing report" border="0" alt="10 Select existing report" src="http://lh4.ggpht.com/-QBrILhOvu3Y/T0GX_Q9tF1I/AAAAAAAAC3o/UZDZYZYCpOc/10%252520Select%252520existing%252520report_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="394"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Insert the fields after selecting the datasets (notice that Add Query and Edit Query is disabled). You can also include charts as shown below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-MA2mfj4ywbQ/T0GYAXOEmJI/AAAAAAAAC30/9v7y8Xttirg/s1600-h/11%252520Insert%252520fields%252520and%252520chart%25255B2%25255D.jpg"&gt;&lt;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="11 Insert fields and chart" border="0" alt="11 Insert fields and chart" src="http://lh3.ggpht.com/-n_qmZ2nHVj8/T0GYBX4gKdI/AAAAAAAAC38/ezRg6T9qJj8/11%252520Insert%252520fields%252520and%252520chart_thumb.jpg?imgmax=800" width="504" height="259"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Click on View to save and publish your reports. You can then preview the report in excel.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-ni0_3ql0hiM/T0GYB6OEt9I/AAAAAAAAC4M/OWNoCH3vEJg/s1600-h/12%252520Report%252520Preview%25255B2%25255D.jpg"&gt;&lt;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="12 Report Preview" border="0" alt="12 Report Preview" src="http://lh6.ggpht.com/-Y0Us3OjZslM/T0GYCf07hzI/AAAAAAAAC4Y/fSVGFJoUnm8/12%252520Report%252520Preview_thumb.jpg?imgmax=800" width="477" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Useful Links&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;1) &lt;a href="http://www.officewriter.com/" target="_blank"&gt;OfficeWriter Home Page&lt;/a&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#000000" size="2"&gt;2) &lt;a href="http://wiki.softartisans.com/display/Docs/OfficeWriter+Docs" target="_blank"&gt;OfficeWriter tutorials and Documentation&lt;/a&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#000000" size="2"&gt;3) &lt;a href="http://wiki.softartisans.com/display/RS8/FAQ" target="_blank"&gt;OfficeWriter FAQ&lt;/a&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#000000" size="2"&gt;4) &lt;a href="http://wiki.softartisans.com/display/RS8/System+Requirements" target="_blank"&gt;OfficeWriter System Requirements&lt;/a&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#000000" size="2"&gt;5) &lt;a href="http://www.officewriter.com/officewriter-free-evaluation.aspx" target="_blank"&gt;OfficeWriter Download Evaluation version&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;u&gt;P.S.&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;This is a paid review. However, I have tried to maintain a totally neutral review, and if there is any point that you disagree with me, I would be pleased to hear about in the comments section.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-5185524140749301956?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=KJJwz5Czkhc:f8nM_4c66JM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=KJJwz5Czkhc:f8nM_4c66JM:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=KJJwz5Czkhc:f8nM_4c66JM:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/KJJwz5Czkhc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/5185524140749301956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/02/review-officewriter-v8.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5185524140749301956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5185524140749301956?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/KJJwz5Czkhc/review-officewriter-v8.html" title="Review: OfficeWriter v8" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-UfV3FG1OoEs/T0GXyQGuBvI/AAAAAAAAC00/KVKT38dzSAo/s72-c/reporting-services-diagram_thumb.gif?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/02/review-officewriter-v8.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDRHozfCp7ImA9WhRbEEk.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-284773284660689685</id><published>2012-01-31T15:02:00.001-05:00</published><updated>2012-01-31T15:04:35.484-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-31T15:04:35.484-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSAS" /><title>Set the Slice on your SSAS Cube Partitions now!</title><content type="html">&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;I am pretty sure that most of you would have heard or read about this at least once in your SSAS career, but how many of you actually do set slices for your partitions? Well, I am also guilty of the charge and seldom did&lt;/font&gt; set slices till a recent issue. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-ghljul88NYc/TyhI1WPIHtI/AAAAAAAACys/g4BldGibAo8/s1600-h/1-Setting-slice-in-SSAS-cube-partiti%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="1 Setting slice in SSAS cube partitions" border="0" alt="1 Setting slice in SSAS cube partitions" src="http://lh3.ggpht.com/-RsasYhEdjzQ/TyhI1te4GMI/AAAAAAAACy0/B11Phmf6ShQ/1-Setting-slice-in-SSAS-cube-partiti%25255B1%25255D.png?imgmax=800" width="244" height="166"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008040"&gt;Situation : Duh, that’s strange!&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;It’s a sunny day in Charlotte and I was just playing around with SQL Server Profiler for learning some performance tuning stuff. I executed this simple MDX query on the sample Adventure Works DB for some purpose which is beyond the scope of this post - &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;&lt;strong&gt;select {[Measures].[Internet Sales Amount]} on 0,&lt;br&gt;{[Ship Date].[Calendar].[Month].&amp;amp;[2008]&amp;amp;[4]} on 1&lt;br&gt;from [Adventure Works]&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now while I was going through the Profiler trace, I noticed something strange – three partitions (2005, 2006 and 2008) were being read while I expected just one partition (for 2008) to be read as my query just had April 2008 on the rows. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh4.ggpht.com/-5Fv1l0dymdo/TyhI11_sWVI/AAAAAAAACy8/59ovzL6SSHs/s1600-h/2%252520Multiple%252520partitions%252520being%252520read%252520in%252520Profiler%252520trace%25255B3%25255D.png"&gt;&lt;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="2 Multiple partitions being read in Profiler trace" border="0" alt="2 Multiple partitions being read in Profiler trace" src="http://lh6.ggpht.com/-XBByOm3DLVY/TyhI2KuxmfI/AAAAAAAACzE/98ZMY2wweTk/2%252520Multiple%252520partitions%252520being%252520read%252520in%252520Profiler%252520trace_thumb%25255B1%25255D.png?imgmax=800" width="504" height="152"&gt;&lt;/a&gt;&lt;br&gt;Now, for people who are not familiar with Adventure Works cube, there are four partitions for the Internet Sales measure group, one for each year from 2005 to 2008 as shown below - &lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-jayQD8QYq_c/TyhI2UBm1GI/AAAAAAAACzM/FTfeEtgeLfA/s1600-h/3%2525204%252520Partitions%252520in%252520Internet%252520Sales%252520Measure%252520Group%25255B3%25255D.jpg"&gt;&lt;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="4 Partitions in Internet Sales Measure Group" border="0" alt="4 Partitions in Internet Sales Measure Group" src="http://lh3.ggpht.com/-GctZk5w8kYY/TyhI2nF45WI/AAAAAAAACzU/mkSlBkhjz9w/3%2525204%252520Partitions%252520in%252520Internet%252520Sales%252520Measure%252520Group_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="144"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I decided to take a detour from my actual purpose to investigate this issue.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008040"&gt;Debugging : Need to dig up that grave!&lt;br&gt;&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;I was aware that SSAS partitions generate automatic data slicers for each partition and these information are present in the &lt;strong&gt;info.*.xml&lt;/strong&gt; file of the partition&lt;font color="#000000"&gt; data file (you can find them usually at C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Data folder followed by the cube, measure group and partition name if you haven’t changed the default settings. Note that I am using SQL Server 2008 R2). I decided to have a look at these three partition data files.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-y7rdhx5Xch4/TyhI28vMvZI/AAAAAAAACzc/qHLXsdYrTi8/s1600-h/4%252520Partition%252520autimatic%252520data%252520slices%25255B5%25255D.jpg"&gt;&lt;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="4 Partition autimatic data slices" border="0" alt="4 Partition autimatic data slices" src="http://lh6.ggpht.com/-FeLI60m0XWM/TyhI3AGdtQI/AAAAAAAACzk/-jmNCplHAKk/4%252520Partition%252520autimatic%252520data%252520slices_thumb%25255B3%25255D.jpg?imgmax=800" width="404" height="404"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;As seen above, there was clearly a difference between the partitions of 2005 / 2006 and 2008 (which are having the names Internet_Sales_2001.0.prt / Internet_Sales_2002.0.prt and Internet_Sales_2004.0.prt. These names are the partition IDs and can be seen in the ID property of the partitions)&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-UfGPjNZKHn0/TyhI3iMUuPI/AAAAAAAACzs/7fbXpQAa3L8/s1600-h/5%252520Partition%252520ID%252520property%25255B2%25255D.jpg"&gt;&lt;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="5 Partition ID property" border="0" alt="5 Partition ID property" src="http://lh4.ggpht.com/-sEDZY5xCW_0/TyhI31TcjlI/AAAAAAAACz0/9WSwVRG0czU/5%252520Partition%252520ID%252520property_thumb.jpg?imgmax=800" width="231" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;It seemed like the auto-slices were not getting created for the 2005 and 2006 partition while it was being done for the 2008 partition. This was further confirmed on opening and inspecting the info.*.xml file with notepad.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008040"&gt;Knee-jerk Solution : Or is it?&lt;br&gt;&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;font color="#000000"&gt;I went into research mode on Google and soon came up with a&amp;nbsp; property in the &lt;strong&gt;msmdsrv.ini&lt;/strong&gt; file which limits the creation of auto-slicers based on the number of rows in the partition – the &lt;strong&gt;IndexBuildThreshold&lt;/strong&gt; property.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-xT8JjarRBBk/TyhI4LaIhFI/AAAAAAAACz8/UJRjk1THavQ/s1600-h/6%252520Modifying%252520the%252520msmdsrv.ini%252520file%25255B3%25255D.jpg"&gt;&lt;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="6 Modifying the msmdsrv.ini file" border="0" alt="6 Modifying the msmdsrv.ini file" src="http://lh6.ggpht.com/--sX4noxpE8U/TyhI4obvFWI/AAAAAAAAC0E/8Abjcyw0ysk/6%252520Modifying%252520the%252520msmdsrv.ini%252520file_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="133"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;By default, the value is 4096 rows and both the partitions for 2005 and 2006 had less than 4000 rows. This explained why the auto-slicers were not getting created and I modified it to 1000. Now on reprocessing the measure group, I was able to see that the auto-slicers were generated in the partition data files and only the correct partition was being read in the profiler trace.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008040"&gt;Actual Solution : The real deal!&lt;br&gt;&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;font color="#000000"&gt;I decided to gloat over my findings to my friend and colleague, Javier Guillen (&lt;a title="Javier Guillen's blog" href="http://javierguillen.wordpress.com/"&gt;blog&lt;/a&gt; | &lt;a href="https://twitter.com/#!/javiguillen"&gt;twitter&lt;/a&gt;) who was sitting in the next room. When I described the problem statement to him, the very first question he asked me was whether I had set the partition slices, and I was like – sheesh, I missed on that cardinal rule, as usual. I was under the impression that as long as your partition is for a single data member (as in this case – a single year), it should work. But later I found out that partitions for which autoslices are not generated will be scanned anyway, unless the partition slices are explicitly defined. I went back and set the slices for each partition correctly to their respective years and also reverted the IndexBuildThreshold property to the original value of 4096.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh3.ggpht.com/-hU8VR-4J40M/TyhI43tPNgI/AAAAAAAAC0M/3jX_2rzXBPc/s1600-h/7%252520Setting%252520the%252520partition%252520slices%25255B4%25255D.jpg"&gt;&lt;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="7 Setting the partition slices" border="0" alt="7 Setting the partition slices" src="http://lh6.ggpht.com/-cQCcXn-0J90/TyhI5U3IOWI/AAAAAAAAC0U/o007SD91ScM/7%252520Setting%252520the%252520partition%252520slices_thumb%25255B2%25255D.jpg?imgmax=800" width="304" height="273"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Once this was done, I processed my measure group and found out that only the correct partitions were being read from the trace files. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;font color="#008040"&gt;&lt;strong&gt;&lt;u&gt;Reading Materials&lt;br&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;I took some time to read and learn more about partition slices, thought you would be interested in it too if you made it this far.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) &lt;a href="http://sqlblog.com/blogs/mosha/archive/2008/10/14/get-most-out-of-partition-slices.aspx"&gt;Get most out of partition slices&lt;/a&gt; - Mosha Pasumansky&lt;br&gt;2) &lt;a href="http://sqlcat.com/sqlcat/b/technicalnotes/archive/2007/09/11/ssas-partition-slicing.aspx"&gt;SSAS Partition Slicing&lt;/a&gt; - Eric Jacobsen&lt;br&gt;3) &lt;a href="http://jesseorosz.wordpress.com/2007/09/06/partition-slice-impact-on-query-performance-ssas2005/"&gt;Partition Slice Impact on Query Performance&lt;/a&gt; - Jesse Orosz&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-284773284660689685?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Jdg_fW4FJDU:MbI1yGwUqog:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Jdg_fW4FJDU:MbI1yGwUqog:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=Jdg_fW4FJDU:MbI1yGwUqog:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/Jdg_fW4FJDU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/284773284660689685/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/01/set-slice-on-your-ssas-cube-partitions.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/284773284660689685?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/284773284660689685?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/Jdg_fW4FJDU/set-slice-on-your-ssas-cube-partitions.html" title="Set the Slice on your SSAS Cube Partitions now!" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-RsasYhEdjzQ/TyhI1te4GMI/AAAAAAAACy0/B11Phmf6ShQ/s72-c/1-Setting-slice-in-SSAS-cube-partiti%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/01/set-slice-on-your-ssas-cube-partitions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8BSHY_eip7ImA9WhRUE0s.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-3577898796277575194</id><published>2012-01-22T22:52:00.001-05:00</published><updated>2012-01-23T19:10:59.842-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-23T19:10:59.842-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MDX" /><category scheme="http://www.blogger.com/atom/ns#" term="SSAS" /><title>Using TraceEvent for MDX Debugging</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Do you know how it feels like to hear an old song and have a whole lot of memories come flooding back to you? Well, something sort of similar happened to me today. I was doing my weekly reading and going through a brilliant &lt;a title="Excel Writeback &amp;ndash; Security and Leveraging the UPDATEABLE Cell Property" href="http://artisconsulting.com/blogs/greggalloway/Lists/Posts/Post.aspx?ID=20" target="_blank"&gt;&lt;font color="#3366cc"&gt;post&lt;/font&gt;&lt;/a&gt; by Microsoft MVP - Greg Galloway (&lt;a href="http://artisconsulting.com/blogs/greggalloway/default.aspx" target="_blank"&gt;&lt;font color="#3366cc"&gt;blog&lt;/font&gt;&lt;/a&gt;). That was when I noticed that he had released a new functionality to the &lt;a href="http://asstoredprocedures.codeplex.com/" target="_blank"&gt;&lt;font color="#3366cc"&gt;Analysis Services Stored Procedures&lt;/font&gt;&lt;/a&gt; (ASSP) Project on Codeplex. I decided to test this new functionality and was thinking of a scenario where I could use it, when I remembered about an old &lt;a title="AS Forum Post - Strange behaviour of Aggregate() function" href="http://social.msdn.microsoft.com/Forums/en-SG/sqlanalysisservices/thread/d679f716-05ab-42c9-8286-a4669e92b548" target="_blank"&gt;&lt;font color="#3366cc"&gt;post&lt;/font&gt;&lt;/a&gt; in the Analysis Services forum that I intended to blog about but never did. &lt;/font&gt;&lt;a href="http://lh3.ggpht.com/-Vdb8XN-eL4w/Tx1cydoYk0I/AAAAAAAACxI/9S48u_J8Owo/s1600-h/New-Tool-in-the-ASSP-Toolkit_thumb1%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="New-Tool-in-the-ASSP-Toolkit_thumb1" border="0" alt="New-Tool-in-the-ASSP-Toolkit_thumb1" src="http://lh5.ggpht.com/-g4CdpNizJC4/Tx1cyil5x6I/AAAAAAAACxQ/DkpRBBAz0yQ/New-Tool-in-the-ASSP-Toolkit_thumb1_thumb.jpg?imgmax=800" width="308" height="108"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Now the new addition to the ASSP toolkit is the TraceEvent class. Quoting from the ASSP project page -&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; float: none; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;“The function in the TraceEvent class is FireTraceEventAndReturnValue. It can be used to detect when Analysis Services is evaluating an expression since the function merely fires a trace event that appears in Profiler as a User Defined event, then returns the integer value you pass in. This function can be used in a scenario such as determining when the cell security expression is evaluated.&lt;/span&gt; &lt;br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; float: none; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;Here is an example MDX query displaying the usage of this function:&lt;/span&gt; &lt;br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;/p&gt;&lt;pre style="border-bottom: rgb(62,98,166) 0.1em dashed; border-left: rgb(62,98,166) 0.1em dashed; padding-bottom: 1.5em; overflow-x: hidden; overflow-y: hidden; widows: 2; text-transform: none; background-color: rgb(255,255,255); margin-top: 0px; text-indent: 0px; padding-left: 0.5em; width: 539px; letter-spacing: normal; padding-right: 0.5em; font: 13px consolas, 'Courier New', courier, monospace; white-space: pre-wrap; orphans: 2; height: 35px; color: rgb(48,51,45); border-top: rgb(62,98,166) 0.1em dashed; border-right: rgb(62,98,166) 0.1em dashed; word-spacing: 0px; padding-top: 0.5em; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-image: initial"&gt;with member [Measures].[test] as ASSP.FireTraceEventAndReturnValue(99)&lt;br /&gt;select [Measures].[test] on 0&lt;br /&gt;from [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; float: none; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;The signature of the function is:&lt;/span&gt; &lt;br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; color: rgb(48,51,45); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;b style="line-height: normal; widows: 2; text-transform: none; background-color: rgb(255,255,255); font-variant: normal; font-style: normal; text-indent: 0px; letter-spacing: normal; font-family: 'Segoe UI', 'Microsoft Sans Serif', arial, geneva, sans-serif; white-space: normal; orphans: 2; color: rgb(48,51,45); font-size: 13px; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;i&gt;FireTraceEventAndReturnValue(int)”&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Having a base in programming, it was natural for me to expect a sort of “watch window” when I started learning MDX. I wanted to view the values and the change in them while the query was being debugged, but sadly there was none. The TraceEvent class will help alleviate that pain to some extent and I will be showing it in the next few minutes. For the purpose of demonstration, I would be taking the two queries from the AS forum &lt;a title="AS Forum Post - Strange behaviour of Aggregate() function" href="http://social.msdn.microsoft.com/Forums/en-SG/sqlanalysisservices/thread/d679f716-05ab-42c9-8286-a4669e92b548" target="_blank"&gt;&lt;font color="#3366cc"&gt;post&lt;/font&gt;&lt;/a&gt; I mentioned before - &lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;I) &lt;u&gt;PROBLEM&lt;/u&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;font color="#000000" size="2"&gt;&lt;font color="#008000"&gt;&lt;strong&gt;&lt;u&gt;Query 1&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; height: 125px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;with&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;member [Product].[Product Categories].[Agg] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; Aggregate(TopCount([Product].[Product Categories].[Product].members, 3, [Measures].[Internet Sales Amount]))&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; {[Measures].[Internet Sales Amount]} &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 0,&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;[&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt;].[Calendar].[Month].members &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 1&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;from [Adventure Works]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;where ([Product].[Product Categories].[Agg])&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000"&gt;Query 2&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt; &lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; height: 94px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; {[Measures].[Internet Sales Amount]} &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 0,&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;[&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt;].[Calendar].[Month].members &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 1&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;from [Adventure Works]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;where (TopCount([Product].[Product Categories].[Product].members, 3, [Measures].[Internet Sales Amount]))&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;Results&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-eegNlCdHRxw/Tx1czKazZzI/AAAAAAAACxY/FaM5bTNm0as/s1600-h/1-MDX-Query-results_thumb%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 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="1-MDX-Query-results_thumb" border="0" alt="1-MDX-Query-results_thumb" src="http://lh5.ggpht.com/-ug0HcE4-5xM/Tx1czd6GXoI/AAAAAAAACxg/tSi4T9KksOE/1-MDX-Query-results_thumb_thumb.jpg?imgmax=800" width="406" height="265"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For a MDX beginner, you would expect the results to be same for both queries, as you are just moving the formula of the calculated member in Query 1 to the WHERE clause in Query 2. The reason for the difference is because calculations overwrite current coordinates while axes don't overwrite the current context. So when the first query is being executed, the current coordinates are overwritten and executed in the context of the query axis which means it will check the top 3 products for each of the month and display the result. However, in the second case, you don't have any calculations defined and hence the current coordinates would be the one in the WHERE clause, which is the Top count of products across all months. (You would get a better idea by reading the original &lt;a title="AS Forum Post - Strange behaviour of Aggregate() function" href="http://social.msdn.microsoft.com/Forums/en-SG/sqlanalysisservices/thread/d679f716-05ab-42c9-8286-a4669e92b548" target="_blank"&gt;&lt;font color="#3366cc"&gt;post&lt;/font&gt;&lt;/a&gt; in the forum)&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Enough of theory and let us see whether we can debug and understand the working of the mdx queries using the TraceEvent class. For the purpose of seeing the results, we will modify the queries as shown below and see the results in the Profiler.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;II) &lt;u&gt;DEBUGGING THE PROBLEM&lt;/u&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;Query 1 for July 2005&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; height: 141px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;with&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;member [Product].[Product Categories].[Agg] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; Aggregate(TopCount([Product].[Product Categories].[Product].members, 3, ASSP.FireTraceEventAndReturnValue([Measures].[Internet Sales Amount])))&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; {[Measures].[Internet Sales Amount]} &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 0,&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;[&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt;].[Calendar].[Month].&amp;amp;[2005]&amp;amp;[7] &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 1&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;from [Adventure Works]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;where ([Product].[Product Categories].[Agg])&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;Profiler Results for Query 1&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-cJkGBOcICXw/Tx32yvcCeWI/AAAAAAAACyY/im1Y1NRM9hA/s1600-h/2-Query-1-Profiler-results_thumb11%25255B1%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2-Query-1-Profiler-results_thumb1" border="0" alt="2-Query-1-Profiler-results_thumb1" src="http://lh6.ggpht.com/-eRiKpBC8DHM/Tx1c0ecbCfI/AAAAAAAACyg/9ztCxKNvrcE/2-Query-1-Profiler-results_thumb11_thumb.jpg?imgmax=800" width="504" height="550"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Even without knowing the theory part, you can find out that the measure gets evaluated at 4, which is after the axes get evaluated (1, 2 and 3 in the image above) and hence, the top 3 products would be calculated for the current context of July 2005. I have not pasted the entire trace here but if you run it, you can see that the measure values for each product for the month of July 2005 is returned in the Integer Data column. I have marked the top 3 values in red and you can see that this corresponds to $261,231 which is what we saw in the results for the first query.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;Query 2 for July 2005&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; height: 94px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; {[Measures].[Internet Sales Amount]} &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 0,&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;[&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt;].[Calendar].[Month].&amp;amp;[2005]&amp;amp;[7] &lt;span style="color: #0000ff"&gt;on&lt;/span&gt; 1&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;from [Adventure Works]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;where (TopCount([Product].[Product Categories].[Product].members, 3, ASSP.FireTraceEventAndReturnValue([Measures].[Internet Sales Amount])))&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;Profiler Results for Query 2&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000" size="2"&gt;&lt;a href="http://lh5.ggpht.com/-dHMh72uk-uY/Tx1c0i4lYEI/AAAAAAAACyk/K-y5w1TWfZY/s1600-h/3-Query-2-Profiler-results_thumb11%25255B1%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="3-Query-2-Profiler-results_thumb1" border="0" alt="3-Query-2-Profiler-results_thumb1" src="http://lh3.ggpht.com/-wYEg_xUWxas/Tx1c1Midh8I/AAAAAAAACyo/-9bKcySXbcw/3-Query-2-Profiler-results_thumb11_thumb.jpg?imgmax=800" width="504" height="392"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Here, you can see that the measure gets evaluated at 1, which is before the axes get evaluated (3 and 4 in the image above). I have also marked the top three values for the products, and on close examination, it can be found to be the top 3 values for products across all months.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-LZBAOJqm8fE/Tx1c1SxAX8I/AAAAAAAACyI/C81QSamcp4M/s1600-h/4-Top-3-products-for-all-months_thum%25255B3%25255D.jpg"&gt;&lt;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="4-Top-3-products-for-all-months_thum" border="0" alt="4-Top-3-products-for-all-months_thum" src="http://lh3.ggpht.com/-D8jYzVZlAUY/Tx1c1rBDOxI/AAAAAAAACyQ/W9971UseMdY/4-Top-3-products-for-all-months_thum_thumb.jpg?imgmax=800" width="468" height="90"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;So once the top products are found, the axes are evaluated and then the results are serialized in 5, which gives us the value of $221,852 which is what we saw in the results for the second query.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;III) &lt;u&gt;SUMMARY&lt;/u&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Even without knowing the theory, we were able to debug the MDX queries and find out why there was a difference with the help of the TraceEvent function. This technique can be elaborated and used across variable scenarios for query debugging. In short, the TraceEvent functionality is a great function to have when you don’t know why you are getting some particular results in your queries. And yeah, don’t forget to thank Greg for this!&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh3.ggpht.com/-eJpxZ6Y89Pk/TxzZaYVJDOI/AAAAAAAACxA/cdpHkwEv_yo/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-3577898796277575194?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=xaOTONT30Do:R5oxyT9eSVc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=xaOTONT30Do:R5oxyT9eSVc:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=xaOTONT30Do:R5oxyT9eSVc:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/xaOTONT30Do" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/3577898796277575194/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/01/using-traceevent-for-mdx-debugging.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3577898796277575194?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3577898796277575194?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/xaOTONT30Do/using-traceevent-for-mdx-debugging.html" title="Using TraceEvent for MDX Debugging" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-g4CdpNizJC4/Tx1cyil5x6I/AAAAAAAACxQ/DkpRBBAz0yQ/s72-c/New-Tool-in-the-ASSP-Toolkit_thumb1_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/01/using-traceevent-for-mdx-debugging.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QEQnk-fCp7ImA9WhVSE08.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-6898079680863659188</id><published>2012-01-15T11:45:00.000-05:00</published><updated>2012-03-09T15:35:03.754-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-09T15:35:03.754-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spatial / Map Reports" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Reducing SSRS RDL size by uploading Shapefiles to ReportServer</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I don’t know about you guys, but I am really petrified of public speaking. So I always try to read about it and it really gives me some comfort to know that I am not alone. In fact, if your fear of public speaking is between mild anxiety and complete terror, you are said to be well within the normal range. I would not be exaggerating if I said that some studies show that there are people who rate their fear of public speaking as more severe than fear of death. Last year was when I finally decided to embrace my fear and I managed to speak at a local user group event in London and also at &lt;a title="Session materials used in SQLBits" href="http://road-blogs.blogspot.com/2011/10/fast-track-to-spatial-reporting-sqlbits.html" target="_blank"&gt;SQLBits&lt;/a&gt; (trust me, it wasn’t that hard as I thought it would be). And since now is the time everyone makes resolutions, I was trying to take some hint from &lt;a title="50 New Year&amp;rsquo;s Resolutions for Public Speakers" href="http://mannerofspeaking.org/2011/12/30/50-new-years-resolutions-for-public-speakers/" target="_blank"&gt;50 New Year’s Resolutions for Public Speakers&lt;/a&gt; and watching &lt;a title="Fast Track to Spatial Reporting - SQLBits Session Video" href="http://sqlbits.com/(X(1)S(xkq3bqj54ulh1rmknteodx3p))/Sessions/Event9/Fast_Track_to_Spatial_Reporting" target="_blank"&gt;my presentation video&lt;/a&gt; from the last SQLBits. Seeing it, I realized I had missed mentioning an important point regarding map reports and hence decided to blog about it before I get too lazy.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-koRyZVJBBWU/TxJIibVBuTI/AAAAAAAACto/Jwgl7IpqlIQ/s1600-h/REDUCING%252520RDL%252520SIZE%252520BY%252520UPLOADING%252520SHAPEFILES%252520TO%252520REPORTSERVER%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="REDUCING RDL SIZE BY UPLOADING SHAPEFILES TO REPORTSERVER" border="0" alt="REDUCING RDL SIZE BY UPLOADING SHAPEFILES TO REPORTSERVER" src="http://lh5.ggpht.com/-cgOOtGwlu14/TxJIigzI2WI/AAAAAAAACtw/0tKY9OyJtvo/REDUCING%252520RDL%252520SIZE%252520BY%252520UPLOADING%252520SHAPEFILES%252520TO%252520REPORTSERVER_thumb%25255B2%25255D.jpg?imgmax=800" width="504" height="190"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;People who are familiar with map report development would already be aware of the size issues when dealing with shapefiles (If you are a complete newbie on map reports, I would strongly recommend you to go through &lt;a title="Fast Track to Spatial Reporting - SQLBits Session Video" href="http://sqlbits.com/(X(1)S(xkq3bqj54ulh1rmknteodx3p))/Sessions/Event9/Fast_Track_to_Spatial_Reporting" target="_blank"&gt;my presentation video&lt;/a&gt;). Most of the shapefiles are in MBs and since this data is embedded in the report RDLs, the size of the RDL also goes into MBs. The problem as well as the solution are demonstrated below:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Make a simple report from a shapefile by selecting the Basic Map option in the Map Wizard. I haven’t linked the shapefile to a dataset for simplicity purpose.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-D26pXoRUY9E/TxJIjCrcTJI/AAAAAAAACt4/mIMzGWFihcA/s1600-h/1%252520map%252520report%252520from%252520Colombia%252520shapefile%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="1 map report from Colombia shapefile" border="0" alt="1 map report from Colombia shapefile" src="http://lh5.ggpht.com/-_gNiCZc-i44/TxJIjvOc3PI/AAAAAAAACuA/h3qS67WjB_o/1%252520map%252520report%252520from%252520Colombia%252520shapefile_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="325"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Now you can verify that the shapefile data has been embedded in the report by right clicking on the report in the solution explorer, and selecting the view code option. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-GOieOpBrz3E/TxJIkI5Mi9I/AAAAAAAACuI/N9Xdohoe_cM/s1600-h/2%252520embedded%252520spatial%252520data%252520in%252520report%252520rdl%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2 embedded spatial data in report rdl" border="0" alt="2 embedded spatial data in report rdl" src="http://lh5.ggpht.com/-Svwq4m_QPnw/TxJIkU1VtiI/AAAAAAAACuQ/as-WW0JhAeE/2%252520embedded%252520spatial%252520data%252520in%252520report%252520rdl_thumb%25255B1%25255D.jpg?imgmax=800" width="354" height="450"&gt;&lt;/a&gt;&lt;/p&gt;   &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You can see that the territory names are there in the rdl code.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Now deploy the report to the report server and then, download the rdl to check the size.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-Wjl0SoVhRc8/TxJIk8HAJ0I/AAAAAAAACuY/zoyoNPtYwGY/s1600-h/3%252520Shapefile%252520rdl%252520size%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="3 Shapefile rdl size" border="0" alt="3 Shapefile rdl size" src="http://lh6.ggpht.com/-PP6edLnCO3Q/TxJIlfG-uHI/AAAAAAAACug/IvLOD06rUs8/3%252520Shapefile%252520rdl%252520size_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="401"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You can see that the rdl size is 3.11 MB. The shapefile that I had used for this report was 2.4 MB.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Now to solve this issue, we will have to upload the shapefile (.shp and .dbf files) to the report server. For this, navigate to the folder in Report Manager and click on upload. Then browse to the shp and dbf files and click ok.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-zfiFilPtRBo/TxJIl47rX_I/AAAAAAAACuo/R6mMcV4LjPw/s1600-h/4%252520Upload%252520shp%252520and%252520dbf%252520to%252520reportserver%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="4 Upload shp and dbf to reportserver" border="0" alt="4 Upload shp and dbf to reportserver" src="http://lh6.ggpht.com/-bF6_8wvQ-3w/TxJImHIjmwI/AAAAAAAACuw/DyQSUlASM_4/4%252520Upload%252520shp%252520and%252520dbf%252520to%252520reportserver_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="295"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Once this is done, go back to the report in BIDS and click on the map twice to bring the map layers panel on the right. Right click on the polygon layer and select Layer data option.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-X48fKHa7T9c/TxJImmnN6AI/AAAAAAAACu4/qRm1lWYayLc/s1600-h/5%252520Selecting%252520layer%252520data%252520in%252520map%252520layers%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="5 Selecting layer data in map layers" border="0" alt="5 Selecting layer data in map layers" src="http://lh3.ggpht.com/-y1AQRnX81_M/TxJInJj8TnI/AAAAAAAACvA/QPuO_r6-mRA/5%252520Selecting%252520layer%252520data%252520in%252520map%252520layers_thumb.jpg?imgmax=800" width="504" height="186"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Now change the option from &lt;em&gt;Data Embedded in Report&lt;/em&gt; to &lt;em&gt;Link to ESRI Shapefile&lt;/em&gt;. Now give the location of the files in your report server (In this case, &lt;em&gt;\Blog Reports\COL_adm1.shp&lt;/em&gt;). Note that the location has to start with a slash followed by the folder names within the report manager and then the file name of the shp file.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-zwaDPYiUp8k/TxJIns1JVsI/AAAAAAAACvI/aUMbcXdsqHs/s1600-h/6%252520Linking%252520the%252520map%252520to%252520the%252520uploaded%252520files%252520in%252520reportserver%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="6 Linking the map to the uploaded files in reportserver" border="0" alt="6 Linking the map to the uploaded files in reportserver" src="http://lh5.ggpht.com/-3aTCPJd19HM/TxJInxu_aiI/AAAAAAAACvQ/FZWZUPLW0HE/6%252520Linking%252520the%252520map%252520to%252520the%252520uploaded%252520files%252520in%252520reportserver_thumb.jpg?imgmax=800" width="504" height="230"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) Once this is done, you will not be able to view the results in BIDS. You can view the report code to confirm that the map data is not embedded in the rdl now. Just deploy the report after that and preview it in report manager to ensure that it is working. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;8) Now, download the rdl from the report server and you can see that the size has been considerably reduced, from over 3 MB to 12.2 KB.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-fn1akLH9IAk/TxJIoYLgb_I/AAAAAAAACvY/ViE5_Itt-MI/s1600-h/7%252520Modified%252520Shapefile%252520reduced%252520rdl%252520size%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="7 Modified Shapefile reduced rdl size" border="0" alt="7 Modified Shapefile reduced rdl size" src="http://lh6.ggpht.com/-2PB8WQst9ZA/TxJIomzt0PI/AAAAAAAACvg/JuJbalqtL5k/7%252520Modified%252520Shapefile%252520reduced%252520rdl%252520size_thumb%25255B1%25255D.jpg?imgmax=800" width="304" height="368"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;It would actually be a good practice to store your shapefiles in the report server at the end of your development. This way, the shapefiles can be reused by multiple reports if needed. Also, you would not need to open BIDS in case an updated version of the shapefile becomes available later. This technique can also be used for report images though I see little benefit from it as usually the images are only a few KBs. As for performance, I quickly checked a couple of times and the rendering time was a little less using this technique. Maybe I will do a detailed performance test and post a blog on it later. Till then, adieus amigos!&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-6898079680863659188?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=tYnIY7lJvfI:XZSRG6M66v0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=tYnIY7lJvfI:XZSRG6M66v0:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=tYnIY7lJvfI:XZSRG6M66v0:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/tYnIY7lJvfI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/6898079680863659188/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/01/reducing-ssrs-rdl-size-by-uploading.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/6898079680863659188?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/6898079680863659188?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/tYnIY7lJvfI/reducing-ssrs-rdl-size-by-uploading.html" title="Reducing SSRS RDL size by uploading Shapefiles to ReportServer" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-cgOOtGwlu14/TxJIigzI2WI/AAAAAAAACtw/0tKY9OyJtvo/s72-c/REDUCING%252520RDL%252520SIZE%252520BY%252520UPLOADING%252520SHAPEFILES%252520TO%252520REPORTSERVER_thumb%25255B2%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/01/reducing-ssrs-rdl-size-by-uploading.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4ARXkzeip7ImA9WhRVEU0.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-1191316155421113573</id><published>2012-01-08T12:37:00.001-05:00</published><updated>2012-01-09T06:35:44.782-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-09T06:35:44.782-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>A New Year and a New Job</title><content type="html">&lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;For people who are connected with me, this would not come as much of a shock but yes, with this post comes a big change for me. By the time this post gets published, I would have already moved on from &lt;/font&gt;&lt;a href="www.mindtree.com" target="_blank"&gt;MindTree Ltd&lt;/a&gt; &lt;font color="#000000"&gt;and started work at&lt;/font&gt; &lt;a href="http://www.mariner-usa.com" target="_blank"&gt;Mariner&lt;/a&gt;, &lt;font color="#000000"&gt;my new work place. This would also mean that I have changed my base from London, UK to Charlotte, USA. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a title="Mariner - Insight to Achieve" href="http://www.mariner-usa.com" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Mariner" border="0" alt="Mariner" src="http://lh5.ggpht.com/-af4HyCqJHX8/TwnUdsNlDZI/AAAAAAAACtg/wq9mZ6n3kJY/mariner%25255B4%25255D.jpg?imgmax=800" width="322" height="163"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I have lots of fond memories about MindTree and the decision to part was indeed very difficult. I will definitely miss my colleagues there and wish them all the very best for the future. At the same time, I am also very excited to join Mariner and look forward to working and learning from some of the most talented people I have known. Hopefully, I will also be able to contribute something.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The new year has got me a new job and I am looking forward to a lot of things. I would like to end this post with a New Year wish that I had read sometime back, for all of my readers-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I hope you will have a wonderful year, that you'll dream dangerously and outrageously, that you'll make something that didn't exist before you made it, that you will be loved and that you will be liked, and that you will have people to love and to like in return. And, most importantly (because I think there should be more kindness and more wisdom in the world right now), that you will, when you need to be, be wise, and that you will always be kind. I hope that in this year to come, you make mistakes.Because if you are making mistakes, then you are making new things, trying new things, learning, living, pushing yourself, changing yourself, changing your world. You're doing things you've never done before, and more importantly, you're Doing Something. Whatever it is you're scared of doing, Do it. And I hope, somewhere in the next year, you surprise yourself!&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-1191316155421113573?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Kt3WcEr2KhY:bkEBwsSC6Gk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Kt3WcEr2KhY:bkEBwsSC6Gk:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=Kt3WcEr2KhY:bkEBwsSC6Gk:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/Kt3WcEr2KhY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/1191316155421113573/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/01/new-year-and-new-job.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/1191316155421113573?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/1191316155421113573?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/Kt3WcEr2KhY/new-year-and-new-job.html" title="A New Year and a New Job" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-af4HyCqJHX8/TwnUdsNlDZI/AAAAAAAACtg/wq9mZ6n3kJY/s72-c/mariner%25255B4%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>8</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/01/new-year-and-new-job.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMAQHc-eip7ImA9WhRWE0s.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-5615794734783457105</id><published>2011-12-30T15:40:00.000-05:00</published><updated>2011-12-31T15:47:21.952-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T15:47:21.952-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSAS" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Using SSAS formatting in SSRS</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Christmas time is one of my most favourite times of the year – the time when you can just lay back, relax, enjoy some quality time with your family and catch up with your old friends. While this Christmas time has been a little hectic for me considering that I changed my base from London, UK to Charlotte, USA (I promise to say more on that in a later post), I still found time to catch up with family and friends. So I was talking with an old colleague of mine, and as is with most techies, we ended up discussing work after some time (now I know what the idiom means – All roads leads to Rome). Well, I should warn you that my friend is not a great fan of SSRS, and he was cribbing about SSRS and the difficulties he faces when dealing with it. Being a SSRS enthusiast, I couldn’t resist giving solutions or workarounds to most of the problems he said. One of his major concerns was about the formatting in SSRS. He was totally annoyed that the decimal/currency formatting he did in SSAS did not carry over to SSRS and that he had to modify potentially many reports to replicate the formatting change. That is when I jumped in and said that you could achieve the same in SSRS if you want to.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-J3ZM06Hh5Go/Tv9yzYf8F9I/AAAAAAAACrk/z3cH9x4HGoA/s1600-h/1%252520SSAS%252520formatting%252520in%252520SSRS%25255B2%25255D.jpg"&gt;&lt;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="1 SSAS formatting in SSRS" border="0" alt="1 SSAS formatting in SSRS" src="http://lh5.ggpht.com/-tssmCDw2btk/Tv9yzuNbZII/AAAAAAAACrs/OhFeISKlLdo/1%252520SSAS%252520formatting%252520in%252520SSRS_thumb.jpg?imgmax=800" width="397" height="140"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;To demonstrate the solution, I am using the AdventureWorks database. Follow the steps below to reproduce the solution:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Create a new SSRS report and use the query below to create a dataset&lt;br&gt;&lt;font size="1"&gt;&lt;font color="#9b00d3"&gt;SELECT NON EMPTY { [Measures].[Internet Sales Amount], [Measures].[Internet Gross Profit Margin], [Measures].[Internet Order Quantity] } ON COLUMNS,&lt;br&gt;NON EMPTY { ([Product].[Category].[Category].ALLMEMBERS ) } ON ROWS &lt;br&gt;FROM [Adventure Works]&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;Note that [Measures].[Internet Sales Amount] is a measure expression, [Measures].[Internet Gross Profit Margin] is a calculated measure and [Measures].[Internet Order Quantity] is a base measure.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh4.ggpht.com/-P40n6zLCP0I/Tv9y0Mz0YvI/AAAAAAAACr0/BnT16zBJZF4/s1600-h/2%252520Different%252520type%252520of%252520measures%25255B3%25255D.jpg"&gt;&lt;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="2 Different type of measures" border="0" alt="2 Different type of measures" src="http://lh6.ggpht.com/-bo-bpuwBVOY/Tv9y0WyFM9I/AAAAAAAACr8/Xj44mUttrnU/2%252520Different%252520type%252520of%252520measures_thumb%25255B1%25255D.jpg?imgmax=800" width="604" height="160"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;2) Create a simple matrix in SSRS using the fields above and preview it.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh5.ggpht.com/-MoK76TJyfS4/Tv9y00SyaAI/AAAAAAAACsE/_lGxOmbBW68/s1600-h/3%252520Previewing%252520the%252520unformatted%252520data%25255B3%25255D.jpg"&gt;&lt;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="3 Previewing the unformatted data" border="0" alt="3 Previewing the unformatted data" src="http://lh5.ggpht.com/-gUsEtIC2EpQ/Tv9y1OPhVLI/AAAAAAAACsM/chUROHKoBzE/3%252520Previewing%252520the%252520unformatted%252520data_thumb%25255B1%25255D.jpg?imgmax=800" width="604" height="159"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;You will notice that the measures are not formatted while the same measures in SSAS are formattted, as clear from the cube browser preview.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh6.ggpht.com/-SRwvT8YAyWA/Tv9y1mg89sI/AAAAAAAACsU/OwuNPMF__i0/s1600-h/4%252520SSAS%252520formatting%25255B2%25255D.jpg"&gt;&lt;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="4 SSAS formatting" border="0" alt="4 SSAS formatting" src="http://lh5.ggpht.com/-hI3O9Y25d2k/Tv9y19kGzZI/AAAAAAAACsc/VQaFaLFMeSM/4%252520SSAS%252520formatting_thumb.jpg?imgmax=800" width="504" height="182"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Now, to get the same SSAS formatting in SSRS, you will have to modify the MDX query to include the cell property – format_string as shown below.&lt;/font&gt;&lt;br&gt;&lt;font color="#9b00d3" size="1"&gt;SELECT NON EMPTY { [Measures].[Internet Sales Amount], [Measures].[Internet Gross Profit Margin], [Measures].[Internet Order Quantity] } ON COLUMNS, &lt;br&gt;NON EMPTY { ([Product].[Category].[Category].ALLMEMBERS ) } ON ROWS &lt;br&gt;FROM [Adventure Works] &lt;br&gt;CELL PROPERTIES VALUE, FORMAT_STRING&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Once the query is modified, click on each of the 3 textboxes that need to be formatted, and enter the following code in the format property&lt;br&gt;&lt;font color="#9b00d3" size="1"&gt;=Fields!&amp;lt;name&amp;gt;("FORMAT_STRING")&lt;/font&gt;&lt;br&gt;E.g., for the Internet Order Quantity, the code and image is given below &lt;br&gt;&lt;font color="#9b00d3"&gt;&lt;font size="1"&gt;=Fields!Internet_Order_Quantity("FORMAT_STRING")&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;&lt;font color="#9b00d3"&gt;&lt;a href="http://lh6.ggpht.com/-3BSQW3ozcvc/Tv9y2TAFiVI/AAAAAAAACsk/3C2vCtcy_n0/s1600-h/5%252520SSRS%252520Format%252520property%25255B3%25255D.jpg"&gt;&lt;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="5 SSRS Format property" border="0" alt="5 SSRS Format property" src="http://lh6.ggpht.com/-BQj-TZo33o0/Tv9y2lIkDzI/AAAAAAAACss/t1-TCkDiK90/5%252520SSRS%252520Format%252520property_thumb%25255B1%25255D.jpg?imgmax=800" width="604" height="249"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;5) Now preview the report. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-q4qIMc6Pex8/Tv9y2_ISvcI/AAAAAAAACs0/7-3rnxTse2I/s1600-h/6%252520SSRS%252520initial%252520format%252520preview%25255B2%25255D.jpg"&gt;&lt;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="6 SSRS initial format preview" border="0" alt="6 SSRS initial format preview" src="http://lh6.ggpht.com/-zJjYR47JW_o/Tv9y3czlncI/AAAAAAAACs8/s4N_8vqeukY/6%252520SSRS%252520initial%252520format%252520preview_thumb.jpg?imgmax=800" width="385" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;We can see that the format for Internet Order quantity is correct, but the other two has been overwritten by Currency and Percent. &lt;strong&gt;This is because the format strings in SSRS and SSAS is not the same for all formats&lt;/strong&gt;. To correct this, I have used custom code in the next step.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Click on Report menu and then select Report Properties. Copy and paste the following code into the custom code tab&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;Dim public RSFormat as String&lt;br&gt;Public Function FindFormat(ByVal ASFormat AS String) AS String&lt;br&gt;If (ASFormat="Currency") then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSFormat="c"&lt;br&gt;ElseIf (ASFormat="Percent") then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSFormat="p"&lt;br&gt;ElseIf (ASFormat="Standard") then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSFormat="0"&lt;br&gt;Else &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSFormat=ASFormat&lt;br&gt;End If&lt;br&gt;return RSFormat&lt;br&gt;End Function&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p align="justify"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;P.S. : I have taken care of the frequently used format strings, but if there is any format that I have missed, that can be easily added to the code with a ElseIf statement.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) Now click on each of the 3 textboxes that need to be formatted, and then replace the code used in step 4 with the following code&lt;br&gt;&lt;font color="#9b00d3" size="1"&gt;=Code.FindFormat(Fields!&amp;lt;name&amp;gt;("FORMAT_STRING"))&lt;/font&gt;&lt;br&gt;E.g., for the Internet Order Quantity, the code and image is given below &lt;br&gt;&lt;font color="#9b00d3" size="1"&gt;=Code.FindFormat(Fields!Internet_Order_Quantity("FORMAT_STRING"))&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;8) Preview the report and now you should be getting the same format that was in SSAS also.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-L89zYEYyIAI/Tv9y3yIaTMI/AAAAAAAACtE/PXb2E7db_PY/s1600-h/7%252520SSRS%252520final%252520format%252520preview%25255B3%25255D.jpg"&gt;&lt;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="7 SSRS final format preview" border="0" alt="7 SSRS final format preview" src="http://lh3.ggpht.com/-GwqdUYU6-Cw/Tv9y4AGPYeI/AAAAAAAACtM/HIEqYzZOIU0/7%252520SSRS%252520final%252520format%252520preview_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="343"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The advantage of using this technique is that you would not need to touch your reports if you change the formatting in SSAS. This would ensure that the formatting used in your reports is standardized and consistent with what has been defined in your cube. Also, if you have multiple reports, you could compile the custom code and deploy the assembly to a server. This way, you would not need to duplicate the custom code in each of the reports. &lt;/font&gt;&lt;/p&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;font color="#000000" size="2"&gt;&lt;span class="Apple-converted-space"&gt; &lt;p style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px arial, helvetica; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="justify"&gt;&lt;br&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#008000"&gt;References&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 13px arial, helvetica; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) &lt;a title="Blog by Greg Galloway" href="http://www.artisconsulting.com/blogs/greggalloway/Lists/Posts/Post.aspx?ID=10" target="_blank"&gt;Retrieving Cell Properties&lt;/a&gt;&lt;br&gt;2) &lt;a title="Blog by Teo Lachev" href="http://prologika.com/CS/blogs/blog/archive/2007/08/14/how-to-get-extended-properties-with-ssas-ole-db-provider.aspx" target="_blank"&gt;How to Get Extended Properties with SSAS OLE DB Provider&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-5615794734783457105?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Ti_T9c80ZDY:q4a2tPqRkvM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Ti_T9c80ZDY:q4a2tPqRkvM:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=Ti_T9c80ZDY:q4a2tPqRkvM:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/Ti_T9c80ZDY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/5615794734783457105/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2012/01/using-ssas-formatting-in-ssrs.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5615794734783457105?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5615794734783457105?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/Ti_T9c80ZDY/using-ssas-formatting-in-ssrs.html" title="Using SSAS formatting in SSRS" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-tssmCDw2btk/Tv9yzuNbZII/AAAAAAAACrs/OhFeISKlLdo/s72-c/1%252520SSAS%252520formatting%252520in%252520SSRS_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2012/01/using-ssas-formatting-in-ssrs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cER385eyp7ImA9WhRRFks.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-3304858877440253110</id><published>2011-11-30T09:56:00.001-05:00</published><updated>2011-11-30T09:56:46.123-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-30T09:56:46.123-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Where did my RDL.DATA files go?</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Today morning, I was reading an old post on &lt;a title="Clearing SSRS Query cache" href="http://www.purplefrogsystems.com/blog/2010/04/clearing-ssrs-query-cache/" target="_blank"&gt;Clearing SSRS Query cache&lt;/a&gt; by Alex Whittles (&lt;a title="The Frog Blog" href="http://www.purplefrogsystems.com/blog/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="https://twitter.com/#!/PurpleFrogSys" target="_blank"&gt;twitter&lt;/a&gt;). That is when I decided to try out something and opened up my most recent project to find some rdl.data files. Surprisingly, I did not find a single rdl.data file although I had more than 10 reports which had been run multiple times. Even a full search of my laptop failed to yield results for those elusive files. That is when I decided to investigate further into the matter.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-Z5HX0linqXA/TtZEKDwAr9I/AAAAAAAACrM/BrfRikqi8K4/s1600-h/thnking%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="thnking" border="0" alt="thnking" src="http://lh5.ggpht.com/-4Q9Ykqz8zp8/TtZEK1W32PI/AAAAAAAACrU/8uUnCYeQQjE/thnking_thumb%25255B2%25255D.png?imgmax=800" width="304" height="307"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The rdl.data files are usually present for each report and are used only in the development environment. When we preview the SQL Server Reporting Services (SSRS) reports in Business Intelligence Development Studio (BIDS – the development environment), the query results are cached and stored as the rdl.data files in the report folder. This cache will be used the next time the reports are previewed and is the reason why the report seems to display faster. This will help in developing reports faster as we don’t have to wait a long time for the report to be displayed. However, this could also mean that the data would be stale when we are previewing the report in BIDS.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now, coming back to the issue, I quickly noted my version of SQL Server (which is 2008 R2) and checked for updates. I realized that I had not applied the Service Pack 1 for SQL Server 2008 R2 and quickly searched the internet for a bug, which I found &lt;a title="FIX: Business Intelligence Development Studio 2008 R2 does not generate an RDL.DATA file when you preview a SQL Server report" href="http://support.microsoft.com/kb/2282505" target="_blank"&gt;here&lt;/a&gt;. So all I had to do was to apply the Service Pack 1 which I downloaded from this &lt;a title="Microsoft&amp;reg; SQL Server&amp;reg; 2008 R2 Service Pack 1" href="http://www.microsoft.com/download/en/details.aspx?id=26727" target="_blank"&gt;link&lt;/a&gt;. Once the Service Pack was applied, things got back to normal and I was able to generate the rdl.data files when the reports were previewed. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;P.S. : Kindly note the version to which this fix applies – Microsoft SQL Server 2008 R2 Reporting Services (without any patches/updates/service packs)&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-3304858877440253110?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Ct4_7gNZICQ:9CGYL5_Nwsc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=Ct4_7gNZICQ:9CGYL5_Nwsc:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=Ct4_7gNZICQ:9CGYL5_Nwsc:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/Ct4_7gNZICQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/3304858877440253110/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/11/where-did-my-rdldata-files-go.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3304858877440253110?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3304858877440253110?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/Ct4_7gNZICQ/where-did-my-rdldata-files-go.html" title="Where did my RDL.DATA files go?" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-4Q9Ykqz8zp8/TtZEK1W32PI/AAAAAAAACrU/8uUnCYeQQjE/s72-c/thnking_thumb%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/11/where-did-my-rdldata-files-go.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQESHo7fip7ImA9WhRREU4.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-4630516964716166816</id><published>2011-11-24T07:38:00.001-05:00</published><updated>2011-11-24T07:38:29.406-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-24T07:38:29.406-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Adding a Target line to a Horizontal Bar Chart in SSRS</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;This is usually the time of the year when I get to my laziest best. The cold weather and the approaching holiday season brings out&amp;nbsp; the sloth in me and I have a huge backlog of articles I need to read as well as tend to. But somehow I have pulled up my socks and managed to come up with this article on how to add a target line to a horizontal bar chart in SSRS.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-VqVIZMFjAAk/Ts46v6SSuJI/AAAAAAAACq8/kSdXYUsUR38/s1600-h/Target-line-in-horizontal-Bar-Chart4.jpg"&gt;&lt;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="Target line in horizontal Bar Chart" border="0" alt="Target line in horizontal Bar Chart" src="http://lh3.ggpht.com/-L-armt6gV3c/Ts46wlx6EvI/AAAAAAAACrE/i_djN9RmHrk/Target-line-in-horizontal-Bar-Chart_.jpg?imgmax=800" width="504" height="265"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For the benefit of people who are not so familiar with the horizontal bar charts in SSRS, there is no out-of-the-box functionality for achieving a target line (unlike the column charts, where we can implement a line chart as detailed &lt;a title="Column Chart with Goal Threshold Line" href="https://sqlserverbiblog.wordpress.com/tag/column-chart/" target="_blank"&gt;here&lt;/a&gt;). So when this question was raised in the MSDN forums, I put on my thinking cap and suggested a solution based on having the image of a line as a marker, something like shown below&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://img850.imageshack.us/img850/5854/50745724.jpg" width="400" height="226"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The steps are mentioned in the forum discussion &lt;a title="Click here to go to the MSDN forum discussion" href="http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/7597fbd2-8d22-456c-b850-bb109f45d66d" target="_blank"&gt;here&lt;/a&gt;. But a disadvantage of this approach was that it wouldn’t accommodate an increase or decrease in the number of members in the Y axis. For e.g., if the line image was designed for 5 members, then an increase in the number of members would mean that the image would spill over the X axis. Similarly, a decrease in the number of members would mean that the lines fail to reach the X axis. So I came up with an alternate solution using striplines and the steps are given below:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Make a simple bar chart with a category and measure. In this example, I have used Year as the category field and Cnt as the measure value.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;img src="http://img189.imageshack.us/img189/8100/1barchartwithyearincate.jpg" width="500" height="188"&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Click on the X axis to select it, then right click and unselect the option ‘Show Major Gridlines’. This will remove the gridlines on the chart.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;img style="" src="http://img522.imageshack.us/img522/6007/2unselectshowmajorgridl.jpg" width="500" height="274"&gt;&amp;nbsp; &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Click on the X axis to select it, and then select the collections button in the StripLines property&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://img443.imageshack.us/img443/862/3addstriplinesy.jpg" width="500" height="201"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Click on the Add button in the ChartStripLine Collection Editor. The properties should appear as shown below now.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://img35.imageshack.us/img35/1229/4addstriplinecollection.jpg" width="500" height="362"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5)&amp;nbsp; Now change the BorderStyle property as Solid and enter the field or the number at which you want the target line to come in the IntervalOffset property as shown below&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://img5.imageshack.us/img5/2404/5addingthetargetline.jpg" width="500" height="606"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Select OK and click on the preview button. You should be able to see the target line in the bar chart as shown below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://img855.imageshack.us/img855/7750/6previewingthessrsrepor.jpg" width="500" height="330"&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) You can increase the width of the target line by changing the BackgroundColor property to the BorderColor (in this case Black) and by increasing the StripWidth property in the ChartStripLine Collection Editor shown in step 5.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;A disadvantage of this method is that the target line appears behind the bars. Apart from this, it works pretty well and you have a clever workaround the next time someone insists on having a target line on their bar charts.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-4630516964716166816?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=E-gi_ra5mBk:H-t7erv8P2M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=E-gi_ra5mBk:H-t7erv8P2M:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=E-gi_ra5mBk:H-t7erv8P2M:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/E-gi_ra5mBk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/4630516964716166816/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/11/adding-target-line-to-horizontal-bar.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/4630516964716166816?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/4630516964716166816?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/E-gi_ra5mBk/adding-target-line-to-horizontal-bar.html" title="Adding a Target line to a Horizontal Bar Chart in SSRS" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-L-armt6gV3c/Ts46wlx6EvI/AAAAAAAACrE/i_djN9RmHrk/s72-c/Target-line-in-horizontal-Bar-Chart_.jpg?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/11/adding-target-line-to-horizontal-bar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCSX8-cCp7ImA9WhdbGUo.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-525191618903475316</id><published>2011-10-18T17:22:00.001-04:00</published><updated>2011-10-18T17:27:48.158-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T17:27:48.158-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Denali" /><category scheme="http://www.blogger.com/atom/ns#" term="Power View" /><title>Tracking Data over Time Visually in Power View aka Project Crescent</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;All right, I know most of you Microsoft BI fans would be gushing over the new announcements made in &lt;a title="PASS Summit 2011" href="http://www.sqlpass.org/summit/2011/" target="_blank"&gt;PASS Summit 2011&lt;/a&gt; last week. Now onwards, Project Crescent will be officially known as Power View, SQL Server Denali as SQL Server 2012, Juneau as SQL Server Data Tools and finally, we have a mobile BI strategy! (you can read the official press release from &lt;a title="Microsoft Expands Data Platform With SQL Server 2012, New Investments for Managing Any Data, Any Size, Anywhere" href="http://www.microsoft.com/Presspass/press/2011/oct11/10-12PASS1PR.mspx" target="_blank"&gt;here&lt;/a&gt; and some more details on Power View from &lt;a title="Power View, PASS and Mobile" href="http://blogs.msdn.com/b/sqlrsteamblog/archive/2011/10/13/power-view-pass-and-mobile.aspx" target="_blank"&gt;here&lt;/a&gt;). I decided to celebrate the occasion by blogging about one of the new features I particularly like in Power View in CTP3 version – tracking data over time visually.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For this demonstration, I have used the computer in &lt;a title="SQL Server Virtual Labs" href="http://www.microsoft.com/sqlserver/en/us/learning-center/virtual-labs.aspx" target="_blank"&gt;SQL Server Virtual Labs&lt;/a&gt;. This is a great place to kick-start your SQL Server 2012 journey. Apart from the great tutorials, I also access it when I have to test out some new feature. Follow the steps below to create a Power View report with the ‘track data over time’ functionality:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Go to the SharePoint site and click on Data Sources. Then click on the small dropdown icon on the right of the data source name and select the &lt;em&gt;&lt;strong&gt;Create ‘Crescent’ Report&lt;/strong&gt;&lt;/em&gt; option as shown in the image below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-R8LWUgTv-Qg/Tp3t2ZsVfsI/AAAAAAAACkg/8EjY5O80Wd4/s1600-h/1%252520Create%252520Crescent%252520Report%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="1 Create Crescent Report" border="0" alt="1 Create Crescent Report" src="http://lh6.ggpht.com/-RlnS3tg69YA/Tp3t3MLQSNI/AAAAAAAACko/Qbq0JR0ciiE/1%252520Create%252520Crescent%252520Report_thumb%25255B2%25255D.jpg?imgmax=800" width="404" height="379"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) If this is the first time you are opening the Crescent report, there is a chance that you might get the following error - &lt;br&gt;&lt;font color="#ff0000" size="1"&gt;&lt;strong&gt;An error occurred while loading the model for the item or data source. Verify that the connection information is correct and that you have permissions to access the data source.&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh3.ggpht.com/-wxxfiftQPM8/Tp3t3kB_XhI/AAAAAAAACkw/gkIa9QQyelE/s1600-h/2%252520First%252520time%252520error%252520when%252520opening%252520Project%252520Crescent%252520report%25255B8%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2 First time error when opening Project Crescent report" border="0" alt="2 First time error when opening Project Crescent report" src="http://lh3.ggpht.com/-C70pvSaEXow/Tp3t4FxxKkI/AAAAAAAACk4/8gdfq0vcqBw/2%252520First%252520time%252520error%252520when%252520opening%252520Project%252520Crescent%252520report_thumb%25255B17%25255D.jpg?imgmax=800" width="404" height="212"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;This is a bug within the current CTP and this should go off if you refresh the address bar of the browser.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-WTKTgQEy-dk/Tp3t4wjUExI/AAAAAAAAClA/1feG-UoQs2s/s1600-h/3%252520Crescent%252520report%252520layout%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="3 Crescent report layout" border="0" alt="3 Crescent report layout" src="http://lh3.ggpht.com/-LoLV6O3fJZI/Tp3t5dnMx5I/AAAAAAAAClI/yuA4QMWpu0w/3%252520Crescent%252520report%252520layout_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="246"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Select &lt;strong&gt;&lt;em&gt;Category&lt;/em&gt;&lt;/strong&gt; under&lt;strong&gt;&lt;em&gt; Product&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;Quantity&lt;/em&gt;&lt;/strong&gt; under &lt;strong&gt;&lt;em&gt;Sales&lt;/em&gt;&lt;/strong&gt;. A table will be displayed in the layout with the values of &lt;strong&gt;&lt;em&gt;Category&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;Quantity&lt;/em&gt;&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-2h6X2MJ5cJs/Tp3t6bU8GII/AAAAAAAAClQ/S8NJMBZR6mc/s1600-h/4%252520Selecting%252520Category%252520and%252520Quantity%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="4 Selecting Category and Quantity" border="0" alt="4 Selecting Category and Quantity" src="http://lh5.ggpht.com/-6hR1EuzKS_M/Tp3t6y9IPYI/AAAAAAAAClY/_sxXEXGmFc8/4%252520Selecting%252520Category%252520and%252520Quantity_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="229"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;4) Click on the &lt;em&gt;&lt;strong&gt;Scatter&lt;/strong&gt;&lt;/em&gt; chart option as shown in the image below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-VVrUaKZD7Rc/Tp3t7fy5yoI/AAAAAAAAClg/xN1LEaBCNsQ/s1600-h/5%252520Selecting%252520scatter%252520chart%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="5 Selecting scatter chart" border="0" alt="5 Selecting scatter chart" src="http://lh5.ggpht.com/-YOC1okKC3F4/Tp3t72rkP1I/AAAAAAAAClo/JcCGU-NaX1I/5%252520Selecting%252520scatter%252520chart_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="227"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Resize the chart to occupy the full space. A scatter chart requires 3 measures – for the X axis, Y axis and the size of the bubble.&amp;nbsp; Since we have already selected the &lt;strong&gt;&lt;em&gt;Quantity&lt;/em&gt;&lt;/strong&gt; measure, we just need to select 2 more measures for the Y axis and size. Select &lt;strong&gt;&lt;em&gt;Revenue&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;# Products&lt;/em&gt;&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-9qNa6T9Sook/Tp3t8kLuVUI/AAAAAAAAClw/eMl5B5iN1oI/s1600-h/6%252520Selecting%252520measures%252520for%252520scatter%252520chart%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="6 Selecting measures for scatter chart" border="0" alt="6 Selecting measures for scatter chart" src="http://lh3.ggpht.com/-di2hKlGOgvc/Tp3t9M-NWrI/AAAAAAAACl4/TVK59dKE12s/6%252520Selecting%252520measures%252520for%252520scatter%252520chart_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="212"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;6) Once that is done, select &lt;strong&gt;&lt;em&gt;Year &lt;/em&gt;&lt;/strong&gt;under &lt;strong&gt;&lt;em&gt;Date&lt;/em&gt; &lt;/strong&gt;and this will automatically be taken as the Play Axis of the scatter chart. You should be able to get the graph as shown below.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-7hVmPh5lk9o/Tp3t99yiZ0I/AAAAAAAACmA/gM8d6pC-PyU/s1600-h/7%252520Select%252520Year%252520as%252520the%252520Play%252520Axis%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="7 Select Year as the Play Axis" border="0" alt="7 Select Year as the Play Axis" src="http://lh6.ggpht.com/-0HZmBpkB0mo/Tp3t-eKDYEI/AAAAAAAACmI/2DwXx-02JVs/7%252520Select%252520Year%252520as%252520the%252520Play%252520Axis_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="217"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;7) Give a title and then click on the save button on top left corner. Enter the destination path as well as the file name and then click ok to publish the report in SharePoint.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&amp;nbsp;&lt;a href="http://lh5.ggpht.com/-T7YANP27QTQ/Tp3t_YcGV_I/AAAAAAAACmQ/Qz6wBPhDRDI/s1600-h/8%252520Publish%252520reports%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="8 Publish reports" border="0" alt="8 Publish reports" src="http://lh3.ggpht.com/-NfX6yhOfIps/Tp3t_4viZtI/AAAAAAAACmY/mVleOXqALQY/8%252520Publish%252520reports_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="197"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;8) Go to the destination path specified in the step above and click on the report name to preview it. Click on the play button to see visually how the Category changes over the year.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-oR1V3Yrs9PY/Tp3uuQQ-8HI/AAAAAAAACnU/1XgC_o429PE/s1600-h/Track%252520Categories%252520over%252520Years%25255B7%25255D.gif"&gt;&lt;img style="display: inline" title="Track Categories over Years" alt="Track Categories over Years" src="http://lh3.ggpht.com/-3BKpI36Cyzc/Tp3uvZ8keoI/AAAAAAAACnc/EXfrmsfW9EA/Track%252520Categories%252520over%252520Years_thumb%25255B3%25255D.gif?imgmax=800" width="400" height="282"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You can also click on a particular category and track the changes for that particular category over the year.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-6ROg0NAXZRk/Tp3uCfTzpvI/AAAAAAAACmw/Y0nI9dbO-pQ/s1600-h/Track%252520Selected%252520Category%25255B3%25255D.gif"&gt;&lt;img style="display: inline" title="Track Selected Category" alt="Track Selected Category" src="http://lh5.ggpht.com/-8STL-dvNElQ/Tp3uDQ7GyRI/AAAAAAAACm4/eLqQwcW9p_g/Track%252520Selected%252520Category_thumb%25255B1%25255D.gif?imgmax=800" width="400" height="287"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Isn’t that sweet and simple? &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh5.ggpht.com/-iH13Qoz1LTs/Tp3uD1ZYBOI/AAAAAAAACnA/sSNXwpQ-NpI/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt; Coming from a manufacturing domain, I can already think of lots of scenarios where this can be used (e.g.: tracking price changes, profitability, revenue, stock, sales, etc over time).&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Of late, I have come to realize that some people face difficulties in following blogs by just reading the steps or by seeing a few images. So, I have taken a conscious decision to video-blog the steps whenever I can. You can find the video for this blog below&lt;/font&gt;&lt;/p&gt; &lt;div align="justify"&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4049e6f6-4d2a-43bd-8a2a-654a9a3ba8e0" class="wlWriterEditableSmartContent"&gt;&lt;div id="8c7c8198-b5aa-4cfe-9d4e-97b4f3ef8edc" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=-QSpTqd1eOs" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/-eZqDUWphWfE/Tp3uEEVWaYI/AAAAAAAACno/gwycKAJqpRQ/video3cd85525d14f%25255B112%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('8c7c8198-b5aa-4cfe-9d4e-97b4f3ef8edc'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/-QSpTqd1eOs?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/-QSpTqd1eOs?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;Tracking Data over Time in Power View&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Let me know your feedback about this initiative and whether it is helping in conveying my message better. Cheers!&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-525191618903475316?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=aBMJ9p5Gvx4:CXQnn6EMXp4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=aBMJ9p5Gvx4:CXQnn6EMXp4:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=aBMJ9p5Gvx4:CXQnn6EMXp4:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/aBMJ9p5Gvx4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/525191618903475316/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/10/tracking-data-over-time-visually-in.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/525191618903475316?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/525191618903475316?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/aBMJ9p5Gvx4/tracking-data-over-time-visually-in.html" title="Tracking Data over Time Visually in Power View aka Project Crescent" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-RlnS3tg69YA/Tp3t3MLQSNI/AAAAAAAACko/Qbq0JR0ciiE/s72-c/1%252520Create%252520Crescent%252520Report_thumb%25255B2%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/10/tracking-data-over-time-visually-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4DQHY-eip7ImA9WhdbEkk.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-2969041062573879134</id><published>2011-10-10T07:58:00.000-04:00</published><updated>2011-10-10T07:59:31.852-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T07:59:31.852-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Generating QR codes in SSRS</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Over the short span of my career, I have seen many people get burnt out and change their careers from technology to some other field. It is easy to get disillusioned with a job that requires you to sit on a chair the entire day and "code" the same stuff. At the same time, I have also met people who are so passionate and enthusiastic about what they do and are still coding away to glory after 15-20 years. What makes those people different, and why don't they get bored of the "same, old mundane coding stuff"? The answer is simple if you do get to observe them - their creative spirit. To quote Edward De Bono, "Creativity involves breaking out of established patterns in order to look at things in a different way." For these people, every day teaches them something new and they like to challenge their limits. They make out new things from the same stuff by looking at it from a different angle. I always make it a point to imbibe this quality in the people I mentor, and try to put across some puzzles where they have to reuse their previous learning in a new way. One of my recent questions was on how to display &lt;a title="Click here to learn more about QR codes" href="http://en.wikipedia.org/wiki/QR_code" target="_blank"&gt;QR codes&lt;/a&gt; in SSRS.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-zqAOpoQuFnM/TpLeEnowvZI/AAAAAAAACj0/9oknJpNnD4Q/s1600-h/Generating%252520QR%252520code%252520in%252520SSRS%25255B10%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Generating QR code in SSRS" border="0" alt="Generating QR code in SSRS" src="http://lh6.ggpht.com/-RiskX8iy0OI/TpLeExa8u8I/AAAAAAAACj4/rzV3dMXraFs/Generating%252520QR%252520code%252520in%252520SSRS_thumb%25255B8%25255D.jpg?imgmax=800" width="197" height="240"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br&gt;&lt;font color="#000000" size="2"&gt;On asking this question, most of the answers involved in getting some custom code written (but no-one knew how to write the code) or to get some plug-in from third party vendors (which involved licence costs). But the team had to put on their thinking caps when I said that the only thing they would require is access to the internet.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For demonstrating the purpose, I have made a report which will generate business cards for all the employees in my fictional company with QR codes. Follow the steps below to generate the report:-&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;1) Create a dataset with the following query&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#9b00d3" size="1"&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Jason Thomas' AS name, 'www.road-blogs.blogspot.com' AS URL, '00447574713732' AS mob&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Jay Thomas' AS name, 'www.beyondrelational.com' AS URL, '67891' AS mob&lt;br&gt;UNION ALL&lt;br&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Jean Elizabeth' AS name, 'http://twitter.com/de_unparagoned' AS URL, '12345' AS mob&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Instead of this, you can also use information from your database tables or SSAS cubes. For the sake of simplicity, I am directly hardcoding my dataset.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;2) Drag and drop a list into the layout. Then insert the name, URL and mob details into the list. Also add a company logo to make it look jazzy &lt;font size="1"&gt;&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh5.ggpht.com/-He3J4CooBX0/TpLeFdQ10tI/AAAAAAAACj8/bPJBv6rcdIY/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-0zyeRf1nVXs/TpLeF3_qDBI/AAAAAAAACkA/EzvdnbFqSmk/s1600-h/BIDS%252520Layout%252520-%252520List%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="BIDS Layout - List" border="0" alt="BIDS Layout - List" src="http://lh6.ggpht.com/-jlROZl9zgMU/TpLeGLjrmFI/AAAAAAAACkE/UOLEqliWTQM/BIDS%252520Layout%252520-%252520List_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="271"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;3) Drag and drop an image to the list and select the image properties.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-NT1meJDGtzQ/TpLeGv0HrfI/AAAAAAAACkI/CkuEsAlSUrQ/s1600-h/Image%252520properties%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image properties" border="0" alt="Image properties" src="http://lh4.ggpht.com/-UIAUknOcyCU/TpLeG27mZmI/AAAAAAAACkM/emEoHW243To/Image%252520properties_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="292"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;4) Go to the General tab and select the Image Source as External. Then click on the expression and enter the following expression&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font size="1"&gt;=&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;"http://qrcode.kaywa.com/img.php?s=8&amp;amp;d="&lt;/font&gt;&lt;/font&gt; + Fields!name.Value + Constants.vbcrlf + Fields!URL.Value + Constants.vbcrlf + Fields!mob.Value&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;This is shown in the image below.&lt;/font&gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-mXvV_X85HO8/TpLeHdTGS8I/AAAAAAAACkQ/JHtIBoS8Y3Q/s1600-h/How%252520to%252520generate%252520QR%252520code%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="How to generate QR code" border="0" alt="How to generate QR code" src="http://lh3.ggpht.com/-sVSmy_oGy3w/TpLeHwZxQlI/AAAAAAAACkU/czevaAlhd5Y/How%252520to%252520generate%252520QR%252520code_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="352"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;(You can append any string after the URL though I am using the Name, URL and mobile here)&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;5) Click on preview and you should be able to get the desired results.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-JQXWKKL0eus/TpLeIauHIDI/AAAAAAAACkY/tlXWi5iuwMo/s1600-h/End%252520Result%252520-%252520QR%252520codes%252520in%252520SSRS%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="End Result - QR codes in SSRS" border="0" alt="End Result - QR codes in SSRS" src="http://lh5.ggpht.com/-VnVgXHNYdDI/TpLeI5hnIPI/AAAAAAAACkc/17gMw75vYqg/End%252520Result%252520-%252520QR%252520codes%252520in%252520SSRS_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="601"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The secret of getting this done is by using the &lt;font color="#a31515"&gt;&lt;a href="http://qrcode.kaywa.com" target="_blank"&gt;Kaywa&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;site which will accept parameters and output the QR code for that as an image. Now there are plenty of &lt;a title="Top 10 free online QR code generators" href="http://freenuts.com/top-10-free-online-qr-code-generators/" target="_blank"&gt;sites&lt;/a&gt; online which will generate QR codes as well as barcodes in this format, and you can use any one of them for doing the same. And since you have already learned before that it is possible to display External images in SSRS, generating QR codes or barcodes is just an application of that knowledge.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;u&gt;Disclaimer&lt;/u&gt;&lt;br&gt;This report was developed just for having some fun with SSRS and for educational purposes. For people who are going to be using this for commercial purposes, I would ask them to go through the conditions of the site which generates QR code (for eg, Kaywa states it’s use should be only for non-commercial reasons).&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-2969041062573879134?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=f0Vb7LDhMUc:9KG5tG1x3Bs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=f0Vb7LDhMUc:9KG5tG1x3Bs:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=f0Vb7LDhMUc:9KG5tG1x3Bs:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/f0Vb7LDhMUc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/2969041062573879134/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/10/generating-qr-codes-in-ssrs.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/2969041062573879134?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/2969041062573879134?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/f0Vb7LDhMUc/generating-qr-codes-in-ssrs.html" title="Generating QR codes in SSRS" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-RiskX8iy0OI/TpLeExa8u8I/AAAAAAAACj4/rzV3dMXraFs/s72-c/Generating%252520QR%252520code%252520in%252520SSRS_thumb%25255B8%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/10/generating-qr-codes-in-ssrs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8GRng8fCp7ImA9WhdbEUg.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-3869376666181184978</id><published>2011-10-08T07:13:00.000-04:00</published><updated>2011-10-09T07:13:47.674-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T07:13:47.674-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book / Tool / Software Reviews" /><title>uCertify 70-448 PrepKit Review</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Ok, let me put it up very bluntly - I am not a big fan of all those test and preparation sites for certifications that keeps floating around. The main reason for my dislike is that the questions are usually the braindumps of the exams which have been leaked out and many people can cheat their way to a certification just by studying the dumps (I still don't get it why the questions are never changed or shuffled on a regular basis for the Microsoft certifications). This eventually affects the reputation of the certification as well as the credibility of the people who have been certified. And for people who have done it the hard way, it could mean that their efforts have gone in vain. This was the first thought that came to my mind when &lt;a href="http://www.ucertify.com" target="_blank"&gt;uCertify&lt;/a&gt; asked me to review their test preparation software for &lt;a title="TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance" href="http://www.microsoft.com/learning/en/us/exam.aspx?id=70-448" target="_blank"&gt;70-448&lt;/a&gt; recently and I was certain that the product would face the ire of my blog if this was going to be another dumps based test site. Luckily it didn’t.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-j6MbZRYIMdk/TpGBG_hkqFI/AAAAAAAACjE/kV4egv7hgoI/s1600-h/0%252520uCertify%252520HomePage%25255B3%25255D.jpg"&gt;&lt;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="0 uCertify HomePage" border="0" alt="0 uCertify HomePage" src="http://lh6.ggpht.com/-RL214esZuw0/TpGBHbNTnvI/AAAAAAAACjI/0TTkeoXtS4w/0%252520uCertify%252520HomePage_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="304"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The very first thing that came to my notice after installing the software was the elegant and user friendly UI.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-CTWP5ef2w20/TpGBIf5rL8I/AAAAAAAACjs/Sh-zvuRiiEc/s1600-h/1%252520uCertify%252520UI.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="1 uCertify UI" border="0" alt="1 uCertify UI" src="http://lh5.ggpht.com/-767iXKL0iC4/TpGBJEBDaSI/AAAAAAAACjw/Le1Fyege0dg/1%252520uCertify%252520UI_thumb.jpg?imgmax=800" width="354" height="332"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The UI has got separate sections for tests, study materials and progress tracking. The tests can be taken in two modes - learn mode (where you can review your answers immediately and read the notes also for it) and test mode (where you would be able to see your answers and score only at the end of the test). uCertify has neatly classified the tests so that there is a diagnostic test in the beginning to assess your level, practice tests to improve your skill levels and the final test (which I think is a bit harder than the real one). &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The study material section is also pretty handy as it contains all the key concepts in one place. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-1RdVvC5xmh8/TpGBJsKD-QI/AAAAAAAACjU/rUVmbfhDF74/s1600-h/2%252520StudyMaterial%25255B8%25255D.jpg"&gt;&lt;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="2 StudyMaterial" border="0" alt="2 StudyMaterial" src="http://lh6.ggpht.com/-u0wqlzkql5o/TpGBKNusQeI/AAAAAAAACjY/VZAX-UFgjHk/2%252520StudyMaterial_thumb%25255B4%25255D.jpg?imgmax=800" width="354" height="214"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The test readiness section tracks your history and gives you an indication of how ready you are to take the certification.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-hFYwcWeossY/TpGBKjOenhI/AAAAAAAACjc/tumOVHA1cIo/s1600-h/3%252520TestReadiness%25255B11%25255D.jpg"&gt;&lt;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="3 TestReadiness" border="0" alt="3 TestReadiness" src="http://lh6.ggpht.com/-2q-Gg3cO62M/TpGBLBnQD8I/AAAAAAAACjg/GbfI6Cvif54/3%252520TestReadiness_thumb%25255B5%25255D.jpg?imgmax=800" width="354" height="191"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Another great feature is the Study Helper which explains the key concepts in each of the six chapters required for MCTS 70-448.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-YHM_cGw1dOU/TpGBLr6n93I/AAAAAAAACjk/7J5Pw5kDn7Y/s1600-h/4%252520Study%252520Helper%25255B7%25255D.jpg"&gt;&lt;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="4 Study Helper" border="0" alt="4 Study Helper" src="http://lh3.ggpht.com/-9dx8AuIiBwk/TpGBMMW5dPI/AAAAAAAACjo/taARZ1ui7Wk/4%252520Study%252520Helper_thumb%25255B3%25255D.jpg?imgmax=800" width="354" height="253"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now, coming to the pros and cons of the 70-448 PrepKit&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Pros&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;1) Extremely strong and user friendly UI which I believe is shared for all the uCertify PrepKits. &lt;br&gt;2) uCertify’s strong policy against &lt;a title="The problem with Braindumps" href="http://www.ucertify.com/blog/the-problem-with-braindumps.html" target="_blank"&gt;Braindumps&lt;/a&gt;&lt;br&gt;3) Comprehensive set of questions with study notes (300+) which are neatly classified &lt;br&gt;4) Test readiness feature gives an indication of when you should appear for your exams&lt;br&gt;5) Money back policy if you don’t pass within your first attempt&lt;br&gt;6) Good simulation of the test environment.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Cons&lt;br&gt;&lt;/u&gt;&lt;/strong&gt;1) Even though the overall quality of the questions are good, there are some areas of improvement. For eg, questions with pictures of the actual development environment are less.&lt;br&gt;2) The How To section (visuals explaining how to do something) and Articles section are pretty much empty for 70-448.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;Overall&lt;br&gt;&lt;/u&gt;&lt;/strong&gt;My experience suggests that the 70-448 exam is a piece of cake for people with at least 2 years of experience in SSIS, SSAS and SSRS and they would pass the exam by buying and studying the official book - &lt;a title="Microsoft&amp;reg; SQL Server&amp;reg; 2008 Business Intelligence Development and Maintenance" href="http://www.amazon.com/MCTS-Self-Paced-Training-Exam-70-448/dp/0735626367/ref=as_li_wdgt_js_ex?&amp;amp;linkCode=wey&amp;amp;tag=somerandthou-20" target="_blank"&gt;MCTS Self-Paced Training Kit (Exam 70-448)&lt;/a&gt;. But for people who would want to get a feel of the tests before the actual exam or for those who don’t have an all-round work experience in the three sections (SSIS, SSAS, SSRS), I would recommend uCertify 70-448 PrepKit. It’s a good investment considering that you will get your money back if you don’t pass within your first attempt. And also, you can be proud of the fact that you tried to pass the exam honestly and not by depending on the illegal dumps.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;P.S.&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;I am not being paid by uCertify to write this review nor am I getting any benefits out of the sales made through this review. However, my readers can avail a discount of 10% (in addition to any existing sale) on any test preparation software from uCertify by putting the discount code 'UCPREP' in the shopping cart.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-3869376666181184978?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=n_78fK2K8_Q:8jFN3xh850A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=n_78fK2K8_Q:8jFN3xh850A:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=n_78fK2K8_Q:8jFN3xh850A:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/n_78fK2K8_Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/3869376666181184978/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/10/ucertify-70-448-prepkit-review.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3869376666181184978?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/3869376666181184978?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/n_78fK2K8_Q/ucertify-70-448-prepkit-review.html" title="uCertify 70-448 PrepKit Review" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-RL214esZuw0/TpGBHbNTnvI/AAAAAAAACjI/0TTkeoXtS4w/s72-c/0%252520uCertify%252520HomePage_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/10/ucertify-70-448-prepkit-review.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHQ3k8cCp7ImA9WhVSE08.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-2461762672356461292</id><published>2011-10-06T05:36:00.001-04:00</published><updated>2012-03-09T15:37:12.778-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-09T15:37:12.778-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Activities / Whitepapers / Events" /><title>SQLBits 9 - Hangover</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;At the time of writing this post, I can see yellow leaves falling to the pavements and feel the cold breeze kissing my cheeks. No matter how hard I try to resist it, reality is dawning on me that the summer has gone by and that the winter is finally settling in (yeah, I know some of you might argue that we never had a summer. After all, it's been the coldest summer in 18 years). Can't believe that it was only a week before many of us were sweating in the big halls of the Adelphi Hotel in Liverpool. Oh sheesh, I did it again! I tried to avoid it but just like the winter, here comes the &lt;strong&gt;&lt;a title="Click here to read 'SQLBits 8 - Hangover'" href="http://road-blogs.blogspot.com/2011/04/sqlbits-8-hangover.html" target="_blank"&gt;familiar&lt;/a&gt;&lt;/strong&gt; feeling of hangover.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://lh5.ggpht.com/-l9pkmF5tT3M/To1080FsGqI/AAAAAAAACf0/lzQQNnv56Xo/s1600-h/SQLBitsLogo3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="SQLBitsLogo" border="0" alt="SQLBitsLogo" src="http://lh4.ggpht.com/--F5PcH6FLKA/To109oVEBgI/AAAAAAAACf4/yKMVlEmSjKs/SQLBitsLogo_thumb1.png?imgmax=800" width="240" height="81"&gt;&lt;/a&gt;&lt;br&gt;This was my third SQLBits and like always, I had been counting down the days from the time SQLBits was announced. Well, this time I had an additional reason - I was presenting a session at SQLBits. More than that, I had also got a &lt;u&gt;free&lt;/u&gt; entry on Friday because I was a speaker (now that calls for a big HURRAY!). Even a loss of pay on Friday couldn't deter me from attending the conference on Friday (I had already exhausted my annual leaves for my wedding in July&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://lh5.ggpht.com/-LvvTcYaUtO8/To10-AT7fXI/AAAAAAAACf8/Fixb2BjChr4/wlEmoticon-sadsmile2.png?imgmax=800"&gt;) and I reached there right in time for the keynote.&lt;/font&gt;&lt;/p&gt;&lt;font color="#000000" size="2"&gt; &lt;p align="justify"&gt;Even though the agenda suggested that I would be seeing cloned versions of Steve Tramack in both the Aintree and Lancaster halls using the latest Microsoft &amp;amp; HP technologies (check the agenda &lt;a title="SQLBits 9 Agenda for Friday" href="http://sqlbits.com/(S(fueva455qrdns245thsoiovo))/information/Agenda.aspx" target="_blank"&gt;here&lt;/a&gt;), all I got to see was a bigger room with the wall removed and one Steve Tramack. Or wait, I thought I saw two people on the stage and it definitely wasn't two Steves. Being a victim of the hardships involved in installing and configuring SharePoint myself, I totally appreciated the idea and thought behind the HP Fast Track Solutions for Microsoft SQL Server. The best part is that you can configure a system within a couple of hours what would have definitely taken some weeks. Overall, it was a brilliant start to SQLBits.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-juZFRA2qORs/To10_36wMpI/AAAAAAAACgA/N3ozIhyv7iA/s1600-h/IMG_00943.jpg"&gt;&lt;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="SQLBits Keynote" border="0" alt="SQLBits Keynote" src="http://lh4.ggpht.com/-HV9B-yhSBeU/To11Az-HywI/AAAAAAAACgE/DNQcPxS_sgA/IMG_0094_thumb1.jpg?imgmax=800" width="244" height="206"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;After that, I went to Matt Masson's (&lt;a href="http://twitter.com/#!/mattmasson" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://blogs.msdn.com/b/mattm/" target="_blank"&gt;blog&lt;/a&gt;) session on 'What's New in SQL Server Denali for SSIS'. The Facebook social life manager demo was really cool and unique, and also had a peek at many of the new features of SSIS.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-3xIoUk3VL-0/To11ECl7b-I/AAAAAAAACgI/jH-oDtlJyNo/s1600-h/IMG_00962.jpg"&gt;&lt;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="Matt Mason on SSIS Denali" border="0" alt="Matt Mason on SSIS Denali" src="http://lh4.ggpht.com/-dpPXIEkLWLI/To11uXtJbsI/AAAAAAAACgM/IM3hR2noqAg/IMG_0096_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/-ovMNMLg_rbQ/To11wcROqtI/AAAAAAAACgQ/SieIQYhG-lU/s1600-h/IMG_00972.jpg"&gt;&lt;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="Matt Mason on SSIS Denali" border="0" alt="Matt Mason on SSIS Denali" src="http://lh6.ggpht.com/-OEkTIOMVnA4/To11w7mZnyI/AAAAAAAACgU/wsxUTDwCUE8/IMG_0097_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Next on my list was ‘Basic BISM’ by Chris Webb (&lt;a href="http://cwebbbi.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt;). This was an introductory session on Business Intelligence Semantic Model and was extremely helpful to people like me who were more or less on the start of the learning curve. Chris also touched upon the advantages and disadvantages of the tabular mode in this session.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-sjKGxj5OhEw/To11yi97ZrI/AAAAAAAACgY/qm9CuPWq7p4/s1600-h/IMG_00993.jpg"&gt;&lt;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="Chris Webb on BISM" border="0" alt="Chris Webb on BISM" src="http://lh5.ggpht.com/-6Zkc9uojjqA/To11zwuQRJI/AAAAAAAACgc/xwkVveM0Qyg/IMG_0099_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/-YMm4MLJ6C3E/To111QeaUaI/AAAAAAAACgg/q4_6eV1AVss/s1600-h/IMG_01003.jpg"&gt;&lt;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="Chris Webb on BISM" border="0" alt="Chris Webb on BISM" src="http://lh6.ggpht.com/-v2G2B0xvX6E/To1112RpjVI/AAAAAAAACgk/2HCSu9XhBI4/IMG_0100_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Then I went for the ‘Myths and Monster of Flash’ session by Fusion-IO where Steve Wharton (&lt;a href="http://twitter.com/#!/FusionioUK" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://www.fusionio.com/blog/" target="_blank"&gt;blog&lt;/a&gt;) presented some of the characteristics and mechanics of the NAND flash.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-Gxk-noJsWcw/To113msXkOI/AAAAAAAACgo/E2HPYeQfpkA/s1600-h/IMG_01024.jpg"&gt;&lt;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="Steve Wharton - Fusion io" border="0" alt="Steve Wharton - Fusion io" src="http://lh4.ggpht.com/-wws9eATCa5U/To114jBoPPI/AAAAAAAACgs/HNdt8Vij3uU/IMG_0102_thumb1.jpg?imgmax=800" width="184" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Later I spent some time walking around the stalls and talking with the exhibitors. It was so interesting and informative at the same time that I actually spent a lot more time than I intended to and missed the next session as a result.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/-toeJl0nswTc/To117bO_DdI/AAAAAAAACgw/UaJj7U8T9fo/s1600-h/DSC_01142.jpg"&gt;&lt;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="SQLBits exhibitor space" border="0" alt="SQLBits exhibitor space" src="http://lh6.ggpht.com/-AheTNw44NT8/To118Q4DOgI/AAAAAAAACg0/uSzjI5VVLps/DSC_0114_thumb.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The next session was one of my most awaited ones – ‘iPad and Powerpivot-Mobile Business Intelligence in action’ by Jennifer Stirrup (&lt;a href="http://twitter.com/#!/jenstirrup" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://www.jenstirrup.com/" target="_blank"&gt;blog&lt;/a&gt;). I had been planning to catch hold of Jen’s sessions for a long time and finally made it this time. Not to say, I had a great time learning about mobile BI and some of the best practices in visualizations. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-Si31suPXDPY/To11-dPaBuI/AAAAAAAACg4/9kMqe0pO2o4/s1600-h/IMG_01033.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 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="IMG_0103" border="0" alt="IMG_0103" src="http://lh4.ggpht.com/-4zyYBoredyU/To11_M92knI/AAAAAAAACg8/EMd2QdCtetU/IMG_0103_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/-aOBa6occLMI/To12CP4SxPI/AAAAAAAAChA/33DEEKH3zak/s1600-h/IMG_01043.jpg"&gt;&lt;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="IMG_0104" border="0" alt="IMG_0104" src="http://lh4.ggpht.com/-_PEQk9SAREI/To12DUsZDsI/AAAAAAAAChE/je0hhr7dpBo/IMG_0104_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;One of the other things I was really looking forward to was meeting Hrvoje (&lt;a href="http://twitter.com/#!/HrvojePiasevoli" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://hrvoje.piasevoli.com/" target="_blank"&gt;blog&lt;/a&gt;) and Tomislav Piasevoli (&lt;a href="http://twitter.com/#!/tpiasevoli" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://tomislav.piasevoli.com/" target="_blank"&gt;blog&lt;/a&gt;) who were coming down to SQLBIts all the way from Croatia. So after the sessions, I met up with the Piasevoli brothers and we headed to the Cavern Pub for washing down our throats. Had an extremely great time with them as is evident from all the photographs.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-RsCS7c4ab7M/To12FZ4QVHI/AAAAAAAAChI/BPfH7FCXDSk/s1600-h/TP-Fotos4.jpg"&gt;&lt;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="Tomislav, me and Hrvoje at Cavern Pub" border="0" alt="Tomislav, me and Hrvoje at Cavern Pub" src="http://lh4.ggpht.com/-XsxDWnua_Y8/To12HIzu9ZI/AAAAAAAAChM/XNxaWdVxRKM/TP-Fotos_thumb2.jpg?imgmax=800" width="504" height="285"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;We were keeping a tab on the time as we did not want to be late for the much anticipated event of the night – James Bond Casino Night. It really was a great experience walking in to the hall which had now transformed into a casino and we started gambling with the fake money provided to us. Most of the people were appropriately dressed in their James Bond attires also, which made the experience even better. I am sure all of us would have left the place declaring this as the best post event party in SQLBits till date.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-TcZ7JiYXGlc/To12JZpqt4I/AAAAAAAAChQ/SR7EeigrdKQ/s1600-h/Fotos3.jpg"&gt;&lt;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="SQLBits James Bond Casino Night" border="0" alt="SQLBits James Bond Casino Night" src="http://lh6.ggpht.com/-KZF0oUYIkPI/To12MYGnJWI/AAAAAAAAChU/wZpkOoqDkWM/Fotos_thumb1.jpg?imgmax=800" width="504" height="285"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The next day, I had to wake up at an unearthly hour as I had to rush for my 8.10 am session on ‘Fast Track to Spatial Reporting’. The demo material for my session are available for download &lt;a title="Fast Track to Spatial Reporting - SQLBits session material for download" href="http://road-blogs.blogspot.com/2011/10/fast-track-to-spatial-reporting-sqlbits.html" target="_blank"&gt;here&lt;/a&gt;. Got a few pics of my session too, thanks to Tomislav.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-4B4QsoUbYmk/To12NyxHo2I/AAAAAAAAChY/iRG6IZgNPJU/s1600-h/DSC_01127.jpg"&gt;&lt;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="Jason on Spatial Reporting" border="0" alt="Jason on Spatial Reporting" src="http://lh3.ggpht.com/-onR8DeT4MEQ/To12PJRNntI/AAAAAAAAChc/y_Ep5c1FYOo/DSC_0112_thumb18.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/-e3ivYt0WIjk/To12RIOMhMI/AAAAAAAAChg/yzX9FaZhRVg/s1600-h/DSC_01112.jpg"&gt;&lt;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="Jason on Spatial Reporting" border="0" alt="Jason on Spatial Reporting" src="http://lh3.ggpht.com/-BhScXFe3wJQ/To12RldHBlI/AAAAAAAAChk/j_WbG7mawdU/DSC_0111_thumb.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;The next three sessions I attended was definitely the highlight for many in this version of SQLBits. The first of the series was ‘Building Great Models for Crescent’ by Kasper Jonge (&lt;a href="http://twitter.com/#!/kjonge" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://www.powerpivotblog.nl/" target="_blank"&gt;blog&lt;/a&gt;). His session was jam packed with demos and being a reporting person myself, it was really nice to watch all the new features in Crescent.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-gc2SrrlxSgI/To12SZXxiqI/AAAAAAAACho/NQFwtWFgDNM/s1600-h/DSC_01302.jpg"&gt;&lt;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="Kasper Jonge on Crescent" border="0" alt="Kasper Jonge on Crescent" src="http://lh6.ggpht.com/-25Vk5NlenSY/To12TNfQtFI/AAAAAAAAChs/2601ZTPl-RQ/DSC_0130_thumb.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/-cfQ46T2X8TQ/To12UuGdPkI/AAAAAAAAChw/NzqhQYhpXdw/s1600-h/IMG_01108.jpg"&gt;&lt;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="Kasper Jonge on Crescent" border="0" alt="Kasper Jonge on Crescent" src="http://lh3.ggpht.com/-j2vBapBFhaM/To12VGG1yNI/AAAAAAAACh0/FRPONzyQewk/IMG_0110_thumb9.jpg?imgmax=800" width="244" height="164"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The next of the series was ‘Vertipaq vs. OLAP: Change your Data Modelling Approach’ by Marco Russo (&lt;a href="http://twitter.com/#!/marcorus" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://sqlblog.com/blogs/marco_russo/" target="_blank"&gt;blog&lt;/a&gt;). Most of the perceptions that I had built about data-modelling was challenged and I was forced to see them in a new light when I am modelling in Vertipaq.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-hO6bnFM9c94/To12WVNpx-I/AAAAAAAACh4/rRfdgQeqOZA/s1600-h/DSC_01385.jpg"&gt;&lt;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="DSC_0138" border="0" alt="DSC_0138" src="http://lh6.ggpht.com/-Pq76uJzx2nk/To12XRDfdMI/AAAAAAAACh8/Yfm9fi7-Uow/DSC_0138_thumb1.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/-VVWNh48WReA/To12Z3tZq3I/AAAAAAAACiA/CWwlvgTCnlk/s1600-h/IMG_01114.jpg"&gt;&lt;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="IMG_0111" border="0" alt="IMG_0111" src="http://lh3.ggpht.com/-B7038agWVtk/To12an4PSVI/AAAAAAAACiE/RiRrHVsJUaA/IMG_0111_thumb7.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Alberto Ferrari (&lt;a href="http://twitter.com/#!/FerrariAlberto" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://sqlblog.com/blogs/alberto_ferrari/" target="_blank"&gt;blog&lt;/a&gt;) was next on the stage with ‘Many-to-Many Relationships in DAX’ and I was seriously amazed at how he presented such a complex topic in such an easily understandable format. This was one of the moments where I wished if only I had such people as my professors when I was studying in my University. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-AUlYiTeBeVY/To12bwieDNI/AAAAAAAACiI/Dh86osBMCsg/s1600-h/DSC_01445.jpg"&gt;&lt;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="DSC_0144" border="0" alt="DSC_0144" src="http://lh3.ggpht.com/-OrHjC6zNxRI/To12coBbwYI/AAAAAAAACiM/FfVaXFiix2k/DSC_0144_thumb1.jpg?imgmax=800" width="244" height="163"&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/-Y76a8r2P2JI/To12faEFfMI/AAAAAAAACiQ/DgQbPzsUtog/s1600-h/IMG_01154.jpg"&gt;&lt;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="IMG_0115" border="0" alt="IMG_0115" src="http://lh3.ggpht.com/-6rSzQ1kmy9s/To12fwSOaxI/AAAAAAAACiU/mDRw4U06-v8/IMG_0115_thumb7.jpg?imgmax=800" width="244" height="162"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I checked in to the ‘Lightning Talks’ soon after, something which I wanted to do in last time’s SQLBits itself but couldn’t because it was clashing with another session. It was great to see the likes of Kasper Jonge, Martin Newman, Andrew Fryer, Richard Douglas, Ed Vassie, Neil Hambly and Tobiasz Koprowski share the same stage.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/-WXQYAJFXKVE/To12hyO8oCI/AAAAAAAACiY/xwE_AVtE-QE/s1600-h/IMG_01173.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 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="IMG_0117" border="0" alt="IMG_0117" src="http://lh6.ggpht.com/-FcwKIcw_UX8/To12iUKbeVI/AAAAAAAACic/jBBcjiIHXrg/IMG_0117_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/-yMcVM6b_v58/To12lPGhcRI/AAAAAAAACig/EeJhGRi6Xz4/s1600-h/IMG_01183.jpg"&gt;&lt;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="IMG_0118" border="0" alt="IMG_0118" src="http://lh4.ggpht.com/-1fxKtGGnNo8/To12lrfc2dI/AAAAAAAACik/6rxtIwLaA2s/IMG_0118_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The last session of the day was kept aside for Duncan Sutcliffe’s (&lt;a href="http://twitter.com/#!/duncansutcliffe" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://duncansutcliffe.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt;) session on ‘Kerberos-All You Need to Know in One Hour’. As usual, Duncan just blew everyone apart with his unique presentation style and all in all, it was one of the most comprehensive sessions on Kerberos that I have seen.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-CL1xCfcv1pI/To12nS4sWoI/AAAAAAAACio/NVdsauD-AKg/s1600-h/IMG_01193.jpg"&gt;&lt;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="IMG_0119" border="0" alt="IMG_0119" src="http://lh4.ggpht.com/-1oJIyO9xszA/To12oDQSWgI/AAAAAAAACis/TTlFS4zoH9I/IMG_0119_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 15px/20px arial, tahoma, helvetica, freesans, sans-serif; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Soon we had the customary post event party and lots of prizes were announced from Kindles to Xboxes. A big thanks to all the sponsors without whom SQLBits would not have been possible.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-5-I7m0tO8ZE/To12pPzCsVI/AAAAAAAACiw/quQ622Exk70/s1600-h/Sponsors4.jpg"&gt;&lt;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="Sponsors" border="0" alt="Sponsors" src="http://lh6.ggpht.com/-0_pFfz4CKYo/To12p0ext6I/AAAAAAAACi0/QpTvXHpXvR4/Sponsors_thumb2.jpg?imgmax=800" width="504" height="193"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;Also a moment thanking all the guys behind this - Simon Sabin, Christian Bolton, James Rowland-Jones, Martin Bell, Darren Green, Chris Webb, Allan Mitchell, Tim Kent, Chris Testa-O’Neill and all the helpers. A big, BIG,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;font size="3"&gt;BIG&lt;/font&gt;&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;thanks to all of you guys.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;/span&gt;&lt;font color="#000000" size="2"&gt;Once the party was over, all that was left for us to do was to reminisce the last two three days and wait eagerly for the next version of SQLBits. Well, myself, Hrvoje, Tomislav and Kasper also found something else to do while reminiscing &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/-_1cwr-ZzzjA/To12qTs7FxI/AAAAAAAACi4/p9lWVGYXPJg/wlEmoticon-winkingsmile2.png?imgmax=800"&gt;, see below for a hint.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-WexHUgggqVU/To12ro7QjMI/AAAAAAAACi8/Df3GtCwpIOY/s1600-h/DSC_01574.jpg"&gt;&lt;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="Jason, Kasper, Hrvoje and Tomislav" border="0" alt="Jason, Kasper, Hrvoje and Tomislav" src="http://lh6.ggpht.com/-Sh9mqCrqbrE/To12sTWXY4I/AAAAAAAACjA/oG0xS5zFEUI/DSC_0157_thumb2.jpg?imgmax=800" width="504" height="336"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;As for the winter, I would like to borrow a few lines from Percy Shelley – If Winter comes, can Spring be far behind?&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-2461762672356461292?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=w-5QJQiJgr0:Az8RhWfnpB4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=w-5QJQiJgr0:Az8RhWfnpB4:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=w-5QJQiJgr0:Az8RhWfnpB4:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/w-5QJQiJgr0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/2461762672356461292/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/10/sqlbits-9-hangover.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/2461762672356461292?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/2461762672356461292?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/w-5QJQiJgr0/sqlbits-9-hangover.html" title="SQLBits 9 - Hangover" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/--F5PcH6FLKA/To109oVEBgI/AAAAAAAACf4/yKMVlEmSjKs/s72-c/SQLBitsLogo_thumb1.png?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/10/sqlbits-9-hangover.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QEQnk_cSp7ImA9WhVSE08.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-5393574283992641574</id><published>2011-10-02T14:31:00.000-04:00</published><updated>2012-03-09T15:35:03.749-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-09T15:35:03.749-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="My Sessions" /><category scheme="http://www.blogger.com/atom/ns#" term="Spatial / Map Reports" /><title>Fast Track to Spatial Reporting - SQLBits session material for download</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;So one more objective struck off from my annual list. Even though I had nightmares where my laptop crashed just before my session, nothing untoward happened and I managed to complete my first session at SQLBits without any problems.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-fNMMVVtoKZ0/ToiuLyGj0hI/AAAAAAAACfs/TmuXtm3u6aA/s1600-h/IMG_0120%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SQLBits 9 Query Across the Merseyside Speaker" border="0" alt="SQLBits 9 Query Across the Merseyside Speaker" src="http://lh5.ggpht.com/-c-jV7GpgvEw/ToiuMk4yreI/AAAAAAAACfw/7H_9Rx9st_o/IMG_0120_thumb%25255B4%25255D.jpg?imgmax=800" width="244" height="153"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;The session was scheduled on Oct 1 at 8.10 am in the morning (at a time when I would&lt;/font&gt;&lt;font color="#000000" size="2"&gt; normally be snoring in my bed). There was a brief moment of confusion when I discovered around 7.30 am that my laptop did not have the VGA port for plugging in the projector (the new DELL systems just have the HDMI and mini USB ports). Luckily, James Boother (&lt;a href="http://twitter.com/#!/JimmyBoo" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://boother.co.uk/" target="_blank"&gt;blog&lt;/a&gt;) and Neil Hambly (&lt;a href="http://twitter.com/#!/Neil_Hambly" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a href="http://sqlblogcasts.com/blogs/NeilHambly" target="_blank"&gt;blog&lt;/a&gt;) helped me get a converter and salvaged the situation. I was able to complete all the demos within the stipulated 1 hour time though I thought I had to race at some parts. Anyways, I will be blogging about my overall SQLBits 9 experience in detail soon. Till then, feel free to download the materials that I used in my session below:-&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#000000" size="2"&gt;&lt;a title="Download the session slides" href="https://docs.google.com/leaf?id=0B1k6zmQ4NXQlY2UwZTBhMWUtMzljOS00OTMxLWJmNmMtYjRlNzE4OGQzMzRj&amp;amp;hl=en_US" target="_blank"&gt;Session slides&lt;/a&gt; – contains the PowerPoint presentation (2 MB)&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000" size="2"&gt;&lt;a title="Download the report rdls" href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B1k6zmQ4NXQlYjhjNDNlOTAtMDBhOS00MTM2LWFhZmItMzE2MzE0MWJlZDM5&amp;amp;hl=en_US" target="_blank"&gt;Report RDLs&lt;/a&gt; – contains all the report files used in the demo (12 MB)&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000" size="2"&gt;&lt;a title="Download the MAP database backup" href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B1k6zmQ4NXQlZTU2ZGY4MjgtOGRlZi00Y2I5LThhODAtMGEyNDZiMmY5ZmY1&amp;amp;hl=en_US" target="_blank"&gt;Database backup&lt;/a&gt; – contains the spatial database used for the reports (41 MB)&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000" size="2"&gt;&lt;a title="Download demo notes" href="https://docs.google.com/leaf?id=0B1k6zmQ4NXQlNTAwMTVjNjMtNWU5NS00YjNmLTlmOWYtMDU5YmQ3ODA4MGRh&amp;amp;hl=en_US&amp;amp;pli=1" target="_blank"&gt;Demo notes&lt;/a&gt; – short notes describing the demo (5 KB)&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-5393574283992641574?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=BtlxBfi61X0:CGmO26-fNE4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=BtlxBfi61X0:CGmO26-fNE4:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=BtlxBfi61X0:CGmO26-fNE4:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/BtlxBfi61X0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/5393574283992641574/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/10/fast-track-to-spatial-reporting-sqlbits.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5393574283992641574?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/5393574283992641574?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/BtlxBfi61X0/fast-track-to-spatial-reporting-sqlbits.html" title="Fast Track to Spatial Reporting - SQLBits session material for download" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-c-jV7GpgvEw/ToiuMk4yreI/AAAAAAAACfw/7H_9Rx9st_o/s72-c/IMG_0120_thumb%25255B4%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/10/fast-track-to-spatial-reporting-sqlbits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUNRX47cCp7ImA9WhdbEUg.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-7560603177880450145</id><published>2011-09-22T15:58:00.001-04:00</published><updated>2011-10-09T07:04:54.008-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T07:04:54.008-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book / Tool / Software Reviews" /><title>Book Review : MDX with Microsoft SQL Server 2008 R2 Analysis Services Cookbook</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;What do you do in your evenings when you are sent off from your base location on a month long consulting assignment? Well, I had an option to soak up the old Beatles numbers in the Cavern Pub (the birthplace of Beatles) every evening, now that I am in Liverpool. But a particular book got me hooked this time and every weekday was just a restless wait for the evening to come. My readers, you might be misled by my words in thinking that I am reading the latest Dan Brown thriller but trust me, I am not exaggerating when I say that I couldn’t keep this book down till I completed it. &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;a href="http://www.packtpub.com/mdx-with-microsoft-sql-server-2008-r2-analysis-services/book"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="MDX with Microsoft SQL Server 2008 R2 Analysis Services Cookbook" border="0" alt="MDX with Microsoft SQL Server 2008 R2 Analysis Services Cookbook" src="http://lh3.ggpht.com/-kkDLdFFw-70/Tnw8gA9GUHI/AAAAAAAACfo/bH8KynLKpZs/Image%252520MDX%252520with%252520Microsoft%252520SQL%252520Server%2525202008%252520R2%252520Analysis%252520Services%252520Cookbook.jpg?imgmax=800" width="197" height="244"&gt;&lt;/a&gt;Neither the book nor the author needs introduction. The book has already been lauded by most of the industry experts like &lt;a href="http://cwebbbi.wordpress.com/2011/08/11/new-mdx-book-mdx-with-microsoft-sql-server-2008-r2-analysis-services-cookbook/" target="_blank"&gt;Chris Webb&lt;/a&gt;, &lt;a href="http://sqlblog.com/blogs/marco_russo/archive/2011/08/25/mdx-cookbook-a-new-must-read.aspx" target="_blank"&gt;Marco Russo&lt;/a&gt;, &lt;a href="http://dwbi1.wordpress.com/2011/09/01/tomislav%E2%80%99s-mdx-book/" target="_blank"&gt;Vincent Rainardi&lt;/a&gt;, etc. Tomislav Piasevoli (&lt;a title="Microsoft Most Valuable Professional" href="https://mvp.support.microsoft.com/profile=DEA838FA-0C13-49F0-B2A0-1E4AC71E7451" target="_blank"&gt;MVP&lt;/a&gt; | &lt;a href="http://tomislav.piasevoli.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/#!/tpiasevoli" target="_blank"&gt;twitter&lt;/a&gt;) has been one of my favourite bloggers and I have been following him for quite some years now. So it wasn’t quite surprising that I have been following up on the book updates ever since I saw the RAW e-book version (something like a beta release, just has a few chapters) on my PackT online subscription during the month of March. And luckily for me, the launch of the book coincided with my consulting assignment. I have spent quality time with the book most of these evenings (in fact, so much that I think it made my wife jealous &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh3.ggpht.com/-iBG04JIT1sM/TnuTVz20A2I/AAAAAAAACfk/GIPgoOfTroo/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;) and I am thoroughly impressed with the format of the book.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Walking back the memory lane, I always yearned for a SSAS book that had examples of common design and implementation issues and was overjoyed to find the same in &lt;a href="http://www.amazon.com/Expert-Development-Microsoft-Analysis-Services/dp/1847197221/ref=as_li_wdgt_js_ex?&amp;amp;linkCode=wey&amp;amp;tag=somerandthou-20" target="_blank"&gt;Expert Cube Development with Microsoft SQL Server 2008 Analysis Services&lt;/a&gt;. Once I went through this book completely, I tried to find a similar one for MDX too but in vain (found one for SSRS in the process - &lt;a href="http://www.amazon.com/Microsoft-Server-Reporting-Services-Recipes/dp/0470563117/?tag=widgetsamazon-20" target="_blank"&gt;Microsoft SQL Server Reporting Services Recipes for Designing Expert Reports&lt;/a&gt;). Well, I am glad to say that the search has finally ended with the advent of the MDX cookbook by Tomislav. The book follows a simple and easy to understand structure throughout the 9 chapters :&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;- Getting ready :- getting the pre-requisite queries ready for the task&lt;br&gt;- How to do it :- how to do the task&lt;br&gt;- How it works :- how the task works&lt;br&gt;- There’s more :- alternate ways and more information on the task&lt;br&gt;- See also :- links to related information and tasks&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Once I got familiar with the format, I was just reading the ‘Getting ready’ part and trying to solve the task on my own. After that, I would compare my answers with the next 2 sections and it enriched my reading experience. Though the initial chapters were relatively easy, I was scratching my head as the chapters neared the end and I have learned a lot of new things through this book. This is not really intended to be your first MDX book but is a &lt;strong&gt;&lt;u&gt;MUST HAVE&lt;/u&gt;&lt;/strong&gt; once you have tasted a bit of MDX. All you MDX developers, you are definitely missing out on a great book if you haven’t read this. Now if you are not sure where to buy it from, here is the &lt;a title="Buy 'MDX with Microsoft SQL Server 2008 R2 Analysis Services Cookbook' Paperback from Amazon" href="http://www.amazon.com/Microsoft-Server-Analysis-Services-Cookbook/dp/1849681309/ref=as_li_wdgt_js_ex?&amp;amp;linkCode=wey&amp;amp;tag=somerandthou-20" target="_blank"&gt;link&lt;/a&gt;. The Kindle version is also available in Amazon and you can download a sample from &lt;a title="Kindle version" href="http://www.amazon.com/Microsoft-Analysis-Services-Cookbook-ebook/dp/B005HIK89S/ref=as_li_wdgt_js_ex?&amp;amp;linkCode=wey&amp;amp;tag=somerandthou-20" target="_blank"&gt;here&lt;/a&gt; to get a better feel of how the cookbook and its recipes are structured. As for me, I have just added it to the favourites on my blog’s Amazon widget.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-7560603177880450145?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=9vqwbODBcuo:5x31pUoyIME:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=9vqwbODBcuo:5x31pUoyIME:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=9vqwbODBcuo:5x31pUoyIME:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/9vqwbODBcuo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/7560603177880450145/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/09/book-review-mdx-with-microsoft-sql.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/7560603177880450145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/7560603177880450145?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/9vqwbODBcuo/book-review-mdx-with-microsoft-sql.html" title="Book Review : MDX with Microsoft SQL Server 2008 R2 Analysis Services Cookbook" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-kkDLdFFw-70/Tnw8gA9GUHI/AAAAAAAACfo/bH8KynLKpZs/s72-c/Image%252520MDX%252520with%252520Microsoft%252520SQL%252520Server%2525202008%252520R2%252520Analysis%252520Services%252520Cookbook.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/09/book-review-mdx-with-microsoft-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMMQH4-fCp7ImA9WhdQEEo.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-4069449216196944683</id><published>2011-08-11T10:21:00.001-04:00</published><updated>2011-08-11T10:21:21.054-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T10:21:21.054-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Denali" /><category scheme="http://www.blogger.com/atom/ns#" term="SSRS" /><title>Export to Excel upgrades in SSRS Denali CTP3</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;I don’t know whether it is the same with you guys but for me, it is a bit hard to get on track and start work after a long vacation. Usually, the initial few days are spent idle before the computer and if I don’t make an effort to control it, my moods become crankier than the schoolboy who doesn’t want to go to school. However this time has been a bit easier for two reasons: (a) My wife who is a constant source of encouragement (benefits of being newly wed! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh3.ggpht.com/-0A7TpMd4zZs/TkPlJbPSiOI/AAAAAAAACd4/lp30MGSclV0/wlEmoticon-winkingsmile2.png?imgmax=800"&gt;) and (b) release of SQL Server Denali CTP3. There has been lots of interesting and new features to test out and this has become the proverbial carrot for me to get out of my sluggishness. This article is about one of those new features in SSRS Denali CTP3 – the feature upgrades in exporting a SSRS report to Excel.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-CdsPFnD03iY/TkPlKJsoJ3I/AAAAAAAACd8/GWeJRkumeXQ/s1600-h/Denali-xlsx-feature4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Denali xlsx feature" border="0" alt="Denali xlsx feature" src="http://lh6.ggpht.com/-31hvhzu55l0/TkPlK6qnZ6I/AAAAAAAACeA/JjDhiMYlvK4/Denali-xlsx-feature_thumb2.jpg?imgmax=800" width="176" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;Before I start listing down the new features, I would like to show you guys a screenshot of the new developer environment.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-KwEI5ya5uMI/TkPlLgzHYZI/AAAAAAAACeE/a4AASwQ2hb0/s1600-h/Denali%252520dev%252520environment.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Denali dev environment" border="0" alt="Denali dev environment" src="http://lh3.ggpht.com/-Vy31P5fNqcw/TkPlMfjeNlI/AAAAAAAACeI/BMLlPAMJatA/Denali%252520dev%252520environment_thumb.jpg?imgmax=800" width="554" height="302"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Yes, the old BIDS has given way to a new mean Visual Studio 2010 environment and I totally dig the blue background. Isn’t it cool?&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now before I get distracted with the other features, it is high time I say the upgrade is – SSRS renders a report to the native format of Microsoft Excel 2007-2010. The format is &lt;strong&gt;Office Open XML&lt;/strong&gt;. The content type of files generated by this renderer is &lt;strong&gt;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&lt;/strong&gt; and the file extension of files is &lt;strong&gt;.xlsx&lt;/strong&gt;. The benefits of this over the previous .xls format (Excel 2003) are listed below:-&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#008040" size="2"&gt;&lt;strong&gt;1) &lt;u&gt;Max columns per worksheet increased from 256 to 16,384&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;If you are exporting a report with more than 256 columns in a worksheet to the normal .xls format in Denali or in SSRS versions prior to Denali, you will get the following error message&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-zpgZNLpBWm8/TkPlM62mXhI/AAAAAAAACeM/gY6-2zw3oRU/s1600-h/Max%252520columns%252520error%252520in%252520excel%252520SSRS%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Max columns error in excel SSRS" border="0" alt="Max columns error in excel SSRS" src="http://lh6.ggpht.com/-8TXcoW0ogu4/TkPlNpLsJEI/AAAAAAAACeQ/8gcGS-ngDIc/Max%252520columns%252520error%252520in%252520excel%252520SSRS_thumb%25255B3%25255D.jpg?imgmax=800" width="404" height="206"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;You will no longer see this error message if you are exporting to the .xlsx format.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#008040" size="2"&gt;&lt;strong&gt;2) &lt;u&gt;Max rows per worksheet increased from 65,536 to 1,048,576&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Similarly, if you are trying to export a report with more than 65,536 rows in a worksheet to the normal .xls format, you would be greeted with the following error message.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-M0IBShS3TCk/TkPlOW7NA_I/AAAAAAAACeU/yGASAUZGZGc/s1600-h/Max%252520rows%252520error%252520in%252520excel%252520SSRS%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Max rows error in excel SSRS" border="0" alt="Max rows error in excel SSRS" src="http://lh6.ggpht.com/-naBarDSlAqA/TkPlPIxq1dI/AAAAAAAACeY/8LzyentMfzw/Max%252520rows%252520error%252520in%252520excel%252520SSRS_thumb%25255B1%25255D.jpg?imgmax=800" width="404" height="214"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;However, this will no longer be an issue when you export to the new .xlsx format.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#008040" size="2"&gt;&lt;strong&gt;3) &lt;u&gt;No of colours allowed in a worksheet increased from 56 to approx. 16 million&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;font color="#000000"&gt;I am sure this is a very welcome move for many. Prior to Denali, you couldn’t get more than 56 colours in a worksheet but with the new .xlsx format, this is very much possible. For eg, consider the&lt;/font&gt; following colour matrix that I made in BIDS.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-pSfYa7BJD-U/TkPlP0Ik2FI/AAAAAAAACec/UUPMftOCYh4/s1600-h/Denali%252520SSRS%252520colour%252520matrix%25255B9%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Denali SSRS colour matrix" border="0" alt="Denali SSRS colour matrix" src="http://lh3.ggpht.com/-2VYU-Efuvsg/TkPlQqmlvHI/AAAAAAAACeg/dUKfPJkGR30/Denali%252520SSRS%252520colour%252520matrix_thumb%25255B5%25255D.jpg?imgmax=800" width="504" height="169"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Now when I export it to .xls (Excel 2003) format, I get the following output in excel&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-6lmPD75SA88/TkPlS3JcA9I/AAAAAAAACek/JLKAHBqiIdo/s1600-h/Denali%252520SSRS%252520colour%252520matrix%252520xls%252520format%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Denali SSRS colour matrix xls format" border="0" alt="Denali SSRS colour matrix xls format" src="http://lh6.ggpht.com/-zxv-rriReUM/TkPlTjeIljI/AAAAAAAACeo/ORZj_jk8Uao/Denali%252520SSRS%252520colour%252520matrix%252520xls%252520format_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="142"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;We can see that the entire last row is blacked out due to the colour limit. However, if we export it to the .xlsx format, we get the proper output.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/-pm0eBEI9c2U/TkPlUGJ3Q-I/AAAAAAAACes/y_Rl9LJyHSM/s1600-h/Denali%252520SSRS%252520colour%252520matrix%252520xlsx%252520format%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Denali SSRS colour matrix xlsx format" border="0" alt="Denali SSRS colour matrix xlsx format" src="http://lh5.ggpht.com/-jHOxwIp4Q70/TkPlU2A2TeI/AAAAAAAACew/JBNw9X4BdB8/Denali%252520SSRS%252520colour%252520matrix%252520xlsx%252520format_thumb%25255B1%25255D.jpg?imgmax=800" width="504" height="158"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000" size="2"&gt;&lt;strong&gt;&lt;u&gt;BUG ALERT&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Even though the excel export worked as expected in the case of pre-defined background colours for each cell, it did not show up the correct results when I used custom code to show the background colours for the members in a group.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;For eg, the following output came up properly in .xls format&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-85aXZ2Jzdok/TkPlV6j5FDI/AAAAAAAACe0/cr_FB1LlYTo/s1600-h/Denali%252520SSRS%252520bug%252520xls%252520format%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Denali SSRS bug xls format" border="0" alt="Denali SSRS bug xls format" src="http://lh4.ggpht.com/-i0Gm_Ib7joY/TkPlWiy-MiI/AAAAAAAACe4/ZZJaSbrF7FE/Denali%252520SSRS%252520bug%252520xls%252520format_thumb.jpg?imgmax=800" width="77" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;But when the same report was exported to .xlsx format, it started showing the last colour (which is Green) for every cell.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-L2XxdU8-1Po/TkPlXdPDYlI/AAAAAAAACe8/XAjP_Uoph0I/s1600-h/Denali%252520SSRS%252520bug%252520xlsx%252520format%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Denali SSRS bug xlsx format" border="0" alt="Denali SSRS bug xlsx format" src="http://lh3.ggpht.com/-3C8itS7WUBE/TkPlXy0YpnI/AAAAAAAACfA/QLmbRXkW8Xc/Denali%252520SSRS%252520bug%252520xlsx%252520format_thumb%25255B1%25255D.jpg?imgmax=800" width="77" height="282"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;This has been raised as a bug in Connect. Vote for it if you want it to be rectified fast.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/683691/ssrs-denali-export-to-excel-colors-not-being-displayed-correctly"&gt;&lt;font size="2"&gt;https://connect.microsoft.com/SQLServer/feedback/details/683691/ssrs-denali-export-to-excel-colors-not-being-displayed-correctly&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;   &lt;p&gt;&lt;font color="#008040" size="2"&gt;&lt;strong&gt;4) &lt;u&gt;ZIP compression&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;&lt;font color="#000000"&gt;The .xlsx format has ZIP compression, hence the size of the files generated would be lesser. For eg, I generated a report with 250 rows and 250 columns in both .xlsx and .xls formats. The .xlsx format was just 25KB while the .xls format was 35KB in size. This difference may become more evident and important in the case of large reports.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;That’s all from me this time folks. Hopefully, I will be back with some more of the new features. &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-4069449216196944683?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=H_hsUTlHFdQ:BrKBxzWDVU0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=H_hsUTlHFdQ:BrKBxzWDVU0:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=H_hsUTlHFdQ:BrKBxzWDVU0:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/H_hsUTlHFdQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/4069449216196944683/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/08/export-to-excel-upgrades-in-ssrs-denali.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/4069449216196944683?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/4069449216196944683?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/H_hsUTlHFdQ/export-to-excel-upgrades-in-ssrs-denali.html" title="Export to Excel upgrades in SSRS Denali CTP3" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-0A7TpMd4zZs/TkPlJbPSiOI/AAAAAAAACd4/lp30MGSclV0/s72-c/wlEmoticon-winkingsmile2.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/08/export-to-excel-upgrades-in-ssrs-denali.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHQ3kzeSp7ImA9WhVSE08.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-8261486914652834471</id><published>2011-08-03T09:48:00.001-04:00</published><updated>2012-03-09T15:37:12.781-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-09T15:37:12.781-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="My Sessions" /><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>And here I announce the good news…</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;To all my loving and caring readers who had been wondering where the hell did I get lost the last month, I have two good news for you.&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#008000" size="2"&gt;&lt;strong&gt;1) I got hitched!&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Yes, I had been on a vacation last month and meanwhile managed to upgrade the status of Ms Neethu Sebastian from long-time girlfriend to wifey &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh6.ggpht.com/-B2NdUofXubw/TjlRxYxnTBI/AAAAAAAACdw/iwxocqYr5w8/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;. The wedding was a lot of fun but hectic to the core (roughly translates to – enjoyed it but never doing it again). &lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;img src="http://a3.sphotos.ak.fbcdn.net/hphotos-ak-snc6/284753_10150739630965574_624780573_20218566_7639828_n.jpg" width="280" height="421"&gt;&lt;img src="http://a2.sphotos.ak.fbcdn.net/hphotos-ak-ash4/282484_10150739644770574_624780573_20218748_104971_n.jpg" width="280" height="421"&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#008000" size="2"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#008000" size="2"&gt;&lt;strong&gt;2) My session got selected for SQLBits 9!&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;Yes, I will be speaking at &lt;a href="http://sqlbits.com"&gt;SQLBits 9 – Query across the Mersey&lt;/a&gt;. Just got the confirmation from the SQLBits team that my session – &lt;strong&gt;Fast Track to Spatial Reporting&lt;/strong&gt; has been selected. The session would be held on Oct 1, Saturday from 8.10 to 9.10 am. Please click on the agenda below for more details.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://sqlbits.com/information/Agenda.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="sqlbits agenda" border="0" alt="sqlbits agenda" src="http://lh6.ggpht.com/-A7A3f3WYQHE/TjlRxxZVMnI/AAAAAAAACd0/C9Rs7xsqqt4/sqlbits%252520agenda%25255B5%25255D.jpg?imgmax=800" width="574" height="484"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000" size="2"&gt;&lt;strong&gt;&lt;u&gt;P.S.&lt;/u&gt;&lt;/strong&gt; : If you are attending SQLBits 9 in Liverpool, make sure that you drop in and say a hi to me&lt;/font&gt; &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh6.ggpht.com/-B2NdUofXubw/TjlRxYxnTBI/AAAAAAAACdw/iwxocqYr5w8/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-8261486914652834471?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=yU11KPOjL8w:QwLo-_dMqeY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=yU11KPOjL8w:QwLo-_dMqeY:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=yU11KPOjL8w:QwLo-_dMqeY:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/yU11KPOjL8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/8261486914652834471/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/08/and-here-i-announce-good-news.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/8261486914652834471?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/8261486914652834471?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/yU11KPOjL8w/and-here-i-announce-good-news.html" title="And here I announce the good news…" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-B2NdUofXubw/TjlRxYxnTBI/AAAAAAAACdw/iwxocqYr5w8/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/08/and-here-i-announce-good-news.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IFR3k6eCp7ImA9WhZaF0Q.&quot;"><id>tag:blogger.com,1999:blog-4208106035476527184.post-4729638413910941025</id><published>2011-07-04T13:11:00.001-04:00</published><updated>2011-07-04T13:11:56.710-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-04T13:11:56.710-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="My Sessions" /><title>SSAS Best Practices–Session slides for download</title><content type="html">&lt;p align="justify"&gt;&lt;font color="#000000" size="2"&gt;Looks like I am on a session taking spree, this was my third one in 3 weeks. This time, I decided to collate some of the best practices in SQL Server Analysis Services and present it for the BI minds in my company, &lt;a href="http://www.mindtree.com/" target="_blank"&gt;MindTree Ltd.&lt;/a&gt; This is one subject that just doesn’t finish in 1 hour, and even though I tried to cut down a lot of points, I ended up spilling by almost 15 minutes. A big thanks to&lt;/font&gt; &lt;a href="http://in.linkedin.com/pub/emil-xavier/a/430/281" target="_blank"&gt;&lt;font size="2"&gt;Emil Xavier&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; for organizing the session and for arranging the logistics, everything was prim and proper. Anyways, without boring you guys further, here goes the session slides. Feel free to pass it around!&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a title="SSAS Best Practices - Session slides for download" href="https://docs.google.com/leaf?id=0B1k6zmQ4NXQlYjFmMDkwOTUtZDE2ZS00YzRhLWFlODQtNTMyOGZhMjQyYjlm&amp;amp;hl=en_US"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SSAS Best Practices - Session Slides for download" border="0" alt="SSAS Best Practices - Session Slides for download" src="http://lh3.ggpht.com/-1RC1DXEDD6Q/ThH0W0H2KyI/AAAAAAAACdo/4J6Rs5wrNRc/SSAS%252520Best%252520Practices%252520-%252520Session%252520Slides%252520for%252520download%25255B4%25255D.jpg?imgmax=800" width="504" height="379"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4208106035476527184-4729638413910941025?l=road-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=lbwWkFWjccM:5fQW66BsM2Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Jason?a=lbwWkFWjccM:5fQW66BsM2Q:3QFJfmc7Om4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/Jason?i=lbwWkFWjccM:5fQW66BsM2Q:3QFJfmc7Om4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/Jason/~4/lbwWkFWjccM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://road-blogs.blogspot.com/feeds/4729638413910941025/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://road-blogs.blogspot.com/2011/07/ssas-best-practicessession-slides-for.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/4729638413910941025?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4208106035476527184/posts/default/4729638413910941025?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/Jason/~3/lbwWkFWjccM/ssas-best-practicessession-slides-for.html" title="SSAS Best Practices–Session slides for download" /><author><name>Jason Thomas</name><uri>https://profiles.google.com/116725252481648231473</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-HpuiU3CK-Fk/AAAAAAAAAAI/AAAAAAAAAAA/y1HHWuwIkq4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-1RC1DXEDD6Q/ThH0W0H2KyI/AAAAAAAACdo/4J6Rs5wrNRc/s72-c/SSAS%252520Best%252520Practices%252520-%252520Session%252520Slides%252520for%252520download%25255B4%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://road-blogs.blogspot.com/2011/07/ssas-best-practicessession-slides-for.html</feedburner:origLink></entry></feed>

