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

<channel>
	<title>The Qlik Fix!</title>
	<atom:link href="http://www.qlikfix.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.qlikfix.com</link>
	<description>QlikView tips, tricks and tutorials</description>
	<lastBuildDate>Sat, 19 May 2012 08:19:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Any colour, as long as it&#8217;s green</title>
		<link>http://www.qlikfix.com/2012/05/18/any-colour-as-long-as-its-green/</link>
		<comments>http://www.qlikfix.com/2012/05/18/any-colour-as-long-as-its-green/#comments</comments>
		<pubDate>Fri, 18 May 2012 19:53:31 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[Formatting]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[quicktip]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=3286</guid>
		<description><![CDATA[Today I read the blog post &#8220;Green Is The Colour&#8221; by Henric Cronström on QlikTech&#8217;s Business Discovery Blog. In this post, Henric points to the fact that, while green may be QlikView&#8217;s signature colour, it is the unassociated, gray values that are a crucial part of the discovery process. While I completely agree with Henric that <a href="http://www.qlikfix.com/2012/05/18/any-colour-as-long-as-its-green/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Any colour, as long as it's green. Henry Ford would approve." src="http://dl.dropbox.com/u/6795646/QlikFix/NoGreen/AnyColourAsLongAsItsGreen.png" alt="Any colour, as long as it's green. Henry Ford would approve." width="250" height="188" />Today I read the blog post &#8220;<a title="Green Is The Colour" href="http://community.qlikview.com/blogs/theqlikviewblog/2012/05/18/green-is-the-colour" target="_blank">Green Is The Colour</a>&#8221; by Henric Cronström on QlikTech&#8217;s Business Discovery Blog. In this post, Henric points to the fact that, while green may be QlikView&#8217;s signature colour, it is the unassociated, gray values that are a crucial part of the discovery process.</p>
<p>While I completely agree with Henric that the colour coding is integral to the QlikView experience, his post did leave me wondering. Does it always have to be green?</p>
<p><span id="more-3286"></span></p>
<p>The answer: No, not always. At least, not when you are running your applications in the AJAX or web view clients on QlikView 11 that is.</p>
<p>Inspired by Henric&#8217;s post I decided to create a small document extension that let&#8217;s you change the selection colour to whatever colour you like! The example below shows a blue colour scheme applied to the Movies Database application. You can easily change these colours by modifying the NoGreen.CSS file in the extension directory.</p>
<p style="text-align: center;"><img class="aligncenter" title="NoGreen document extension applied to the Movies Database application" src="http://dl.dropbox.com/u/6795646/QlikFix/NoGreen/PreviewWithAnotherColorSchem.png" alt="NoGreen document extension applied to the Movies Database application" width="650" height="597" /></p>
<p>Of course, this document extension is just a fun little hack that is provided free but also completely as-is. If you have any improvements or comments though, then I&#8217;d like to hear from you.</p>
<p><a href="http://dl.dropbox.com/u/6795646/QlikFix/NoGreen/NoGreen.qar"><img class="size-full wp-image-1869" style="vertical-align: middle;" title="Download NoGreen.qar" src="http://www.qlikfix.com/wp-content/uploads/2011/02/download.gif" alt="" width="38" height="38" />Download NoGreen.qar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2012/05/18/any-colour-as-long-as-its-green/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So, you&#8217;re going to Miami?</title>
		<link>http://www.qlikfix.com/2012/04/21/so-youre-going-to-miami/</link>
		<comments>http://www.qlikfix.com/2012/04/21/so-youre-going-to-miami/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 23:15:46 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[miami]]></category>
		<category><![CDATA[qonnections]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=3220</guid>
		<description><![CDATA[Today the Qlik Fix! goes travel blogging. From April 22 to 25, QlikTech&#8217;s annual Global Partner Summit Qonnections will take place at the Fontainebleau in Miami Beach. Unfortunately I will not be there this year due to other plans, but I have attended the previous events and was also present last year. Besides meeting up <a href="http://www.qlikfix.com/2012/04/21/so-youre-going-to-miami/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="QlikView Qonnections 2012 at the Fountainebleau Resort in Miami Beach" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/QonnectionsBanner.png" alt="QlikView Qonnections 2012 at the Fountainebleau Resort in Miami Beach" width="645" height="402" /></p>
<p>Today the Qlik Fix! goes travel blogging. From April 22 to 25, QlikTech&#8217;s annual Global Partner Summit <a title="Qonnections 2012 Global Partner Summit" href="http://www.qlikview.com/us/company/events/conference/2012/qonnections-2012-global-partner-summit" target="_blank">Qonnections</a> will take place at the Fontainebleau in Miami Beach. Unfortunately I will not be there this year due to other plans, but I have attended the previous events and was also present last year.</p>
<p>Besides meeting up with old friends, making new ones and attending some <a title="Qonnections 2012 sessions" href="http://www.qlikview.com/us/company/events/conference/2012/qonnections-2012-global-partner-summit/sessions" target="_blank">excellent sessions</a>, one of the nice perks of these events is the ability to do a little sightseeing on the side. With that in mind I decided to compile my list of things to see and do in Miami.<span id="more-3220"></span></p>
<p>&nbsp;</p>
<h2>To see</h2>
<p><a title="Art Deco District" href="http://travel.nationalgeographic.com/travel/city-guides/miami-walking-tour-1/"><img class="alignleft" title="Art Deco district Miami Beach" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/ArtDecoDistrict.png" alt="Art Deco district Miami Beach" width="150" height="113" />Ocean Drive / Art Deco District</a> : Miami features some gorgeous architecture, especially in the Art Deco district. As most of the buildings are beautifully lighted with neon at night, an evening stroll around Ocean Drive is also highly recommended.</p>
<p><a title="Everglades national park" href="http://www.nps.gov/ever/index.htm" target="_blank"><img class="alignright" title="Everglades Airboat tour" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/AirBoatEverGlades.png" alt="Everglades Airboat tour" width="150" height="113" />The Everglades</a> : You&#8217;ll need to rent a car to go there, but an <a title="Coopertown air boat tour" href="http://www.coopertownairboats.com/contactus.html" target="_blank">air boat tour</a> around the Everglades is a cool experience. Watch out for the alligators!</p>
<p><a title="Cape Florida Lighthouse" href="https://www.google.nl/search?hl=nl&amp;cp=20&amp;gs_id=uf&amp;xhr=t&amp;q=key+biscayne+lighthouse&amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;um=1&amp;ie=UTF-8&amp;tbm=isch&amp;source=og&amp;sa=N&amp;tab=wi&amp;ei=ndeRT7_YDobu-gaRlrW0BA&amp;biw=1366&amp;bih=657&amp;sei=rNeRT--PIdGe-QaOg_ykBA" target="_blank"><img class="alignleft" title="Key Biscayne lighthouse" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/BiscayneLighthouse.png" alt="Key Biscayne lighthouse" width="150" height="119" />Key Biscayne Lighthouse</a> : You&#8217;ll also need a car to get here, but the Key Biscayne lighthouse is a picturesque place to visit and also has a very nice beach.</p>
<p><a title="Duck Tours South Beach" href="http://www.ducktourssouthbeach.com/" target="_blank"><img class="alignright" title="Miami South Beach Duck Tours" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/DuckTours.png" alt="Miami South Beach Duck Tours" width="150" height="112" />Duck Tours South Beach</a> (1661 James Avenue, near Lincoln Road): If you don&#8217;t want to rent a car (or walk a lot), Duck Tours is a very entertaining way to see South Beach, the harbor and some (supposedly) celebrity houses. Cruising down Ocean Drive in a truck/boat hybrid while the stereo pumps <a title="Tacky, but oh so fun ;)" href="http://www.youtube.com/watch?v=N2VQQEoWlTg" target="_blank">C&amp;C Music Factory&#8217;s &#8220;Everybody Dance Now&#8221;</a>, what more could you ask for? <img src='http://www.qlikfix.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<h2>From the movies/TV</h2>
<p><a title="Fontainebleau resort and spa" href="http://www.fontainebleau.com/"><img class="alignleft" title="Goldfiiiinger, he's the man!" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/Goldfinger.png" alt="Goldfiiiinger, he's the man!" width="150" height="158" />Fontainebleau Resort and Spa</a> : Yes, the location of Qonnections has appeared in many movies and TV shows. It&#8217;s the place <a title="James Bond at the Fontainebleau" href="http://www.youtube.com/watch?v=533bOT_R4Zo">where Goldfinger cheats at cards</a>, where <a title="Tony Montana at the Fountainebleau" href="http://www.youtube.com/watch?v=TKpXTy-sCxg&amp;feature=watch_response">Tony Montana chills at the pool</a> in Scarface and <a title="Whitney Houston at the Fontainebleau" href="http://www.youtube.com/watch?v=cvjmZGtxBp4">Whitney Houston performs her concert</a> in The Bodyguard.</p>
<p><a title="Miami Ink" href="http://www.lovehatetattoos.com/"><img class="alignright" title="Miami Ink" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/MiamiInk.png" alt="Miami Ink" width="150" height="150" />Love Hate Tattoo</a> : located on 1360 Washington Avenue, this is the tattoo shop featured in the <a title="Miami Ink" href="http://en.wikipedia.org/wiki/Miami_Ink" target="_blank">Miami Ink TV show</a>. Just in case you want to get that QlikView tattoo <img src='http://www.qlikfix.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a title="Johnny Rockets, home of the Scarface chainsaw scene." href="http://www.johnnyrockets.com/"><img class="alignleft" title="Ouch!" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/TonyMontana.png" alt="Ouch!" width="150" height="113" />Johnny Rockets</a> : on 728 Ocean Drive, the location where the <a title="Scarface chainsaw scene" href="http://www.youtube.com/watch?v=kg7goEASO5E">infamous chainsaw scene</a> (NSFW, unless you work for a drug cartel) from Scarface took place.</p>
<p>&nbsp;</p>
<h2>Shopping</h2>
<p><a title="Lincoln Road Mall" href="http://lincolnroadmall.com/"><img class="alignright" title="Lincoln Road Mall" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/LincolnRoadMall.png" alt="Lincoln Road Mall" width="150" height="117" />Lincoln Road Mall</a> : located in South Beach Lincoln Road Mall is a pedestrian-only promenade that offers loads of interesting stores. And yes, it also has an Apple store.</p>
<p><a title="Aventura Mall" href="http://www.aventuramall.com/"><img class="alignleft" title="Aventura Mall" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/AventuraMall.png" alt="Aventura Mall" width="150" height="104" />Aventura Mall</a> : if you like shopping, then this is a place where you can easily spend an entire day. Every major chain is represented in this shopping center.</p>
<p>&nbsp;</p>
<h2>The beach</h2>
<p><img class="alignright" title="The beach" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/MiamiBeach.png" alt="The beach" width="150" height="100" />Of course, you cannot go to Miami Beach and not visit <a title="Miami Beach" href="https://www.google.nl/search?hl=nl&amp;q=miam+beach&amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;um=1&amp;ie=UTF-8&amp;tbm=isch&amp;source=og&amp;sa=N&amp;tab=wi&amp;ei=p-CRT_-UMYSV-wbHy9mrBA&amp;biw=1366&amp;bih=657&amp;sei=qeCRT7_kLMie-wb43rCPBA#um=1&amp;hl=nl&amp;tbm=isch&amp;sa=1&amp;q=miami+beach&amp;oq=miami+beach&amp;aq=f&amp;aqi=g10&amp;aql=&amp;gs_nf=1&amp;gs_l=img.3..0l10.3125.4545.0.4918.11.10.0.1.1.0.204.775.4j2j1.7.0._UTwUVpVuI4&amp;pbx=1&amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;fp=750d90a65faddd1c&amp;biw=1366&amp;bih=657">the beach</a>! For those that do not like sand, there is also a boardwalk that runs along the beach and is quite nice for a casual stroll.</p>
<p>&nbsp;</p>
<h2>Nightlife</h2>
<p>With the <a title="Qonnections 2012 agenda" href="http://www.qlikview.com/us/company/events/conference/2012/qonnections-2012-global-partner-summit/agenda" target="_blank">packed agenda</a> it&#8217;s not really possible (or more to the point; advisable) to stay up very late and enjoy the nightlife. That said, if you want to grab a few drinks along Ocean Drive, look out for these places:</p>
<p><a title="Mango's Tropical Cafe" href="http://www.mangostropicalcafe.com/" target="_blank"><img class="alignleft" title="Mango's Tropical Cafe" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/MangoTropicalCafe.png" alt="Mango's Tropical Cafe" width="150" height="112" />Mango&#8217;s Tropical Cafe</a> (900 Ocean Drive) : Live latin music and dancers, a little tacky and definitely a tourist trap, but fun to visit at least once during your stay.</p>
<p><a title="Clevelander" href="http://www.clevelander.com/" target="_blank"><img class="alignright" title="Clevelander" src="http://dl.dropbox.com/u/6795646/QlikFix/Qonnections2012/Clevelander.png" alt="Clevelander" width="150" height="98" />Clevelander</a> (1020 Ocean Drive): Decent dance music and a poolside bar.</p>
<p>&nbsp;</p>
<p>All the locations mentioned above are plotted in the map below (though I do need to figure out how to put titles on the markers, to be updated later):</p>

            <style>
            #wpgmza_map img { max-width:none !important; }
            </style>
            <div id="wpgmza_map" style="display:block; width:600px; height:400px; float:left;">&nbsp;</div>


        
<p style="margin-top: 25 px;">And that&#8217;s it for my Miami travel tips. If there&#8217;s anything I missed (quite likely), feel free to add it in the comments section below. For those of you attending Qonnections this year, I wish you all an excellent conference and safe travels!</p>
<p style="margin-top: 25 px;">
<p style="margin-top: 25 px;"><strong>Update 2012/04/25: </strong>Just learned that Qonnections 2013 will be held at the<a title="Atlantis Resort Bahamas" href="http://www.atlantis.com/" target="_blank"> Atlantis Resort</a> in the Bahamas. See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2012/04/21/so-youre-going-to-miami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just when I thought it was out&#8230;</title>
		<link>http://www.qlikfix.com/2012/03/26/just-when-i-thought-it-was-out/</link>
		<comments>http://www.qlikfix.com/2012/03/26/just-when-i-thought-it-was-out/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 21:53:50 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[qlikview11]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[servicerelease]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=3139</guid>
		<description><![CDATA[&#160; I usually advise my clients not to upgrade to a new major QlikView version until the SR1 release is available. You can imagine that I was quite excited when QlikView 11 SR1 was released little over a week ago, finally could my existing QlikView customers use the cool new features of QlikView 11! Notes! <a href="http://www.qlikfix.com/2012/03/26/just-when-i-thought-it-was-out/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://www.youtube.com/embed/UPw-3e_pzqU" frameborder="0" width="560" height="315"></iframe></p>
<p>&nbsp;</p>
<p>I usually advise my clients not to upgrade to a new major QlikView version until the SR1 release is available. You can imagine that I was quite excited when QlikView 11 SR1 was released little over a week ago, finally could my existing QlikView customers use the cool new features of QlikView 11! Notes! Session collaboration! Document extensions!<span id="more-3139"></span></p>
<p>Unfortunately, my enthusiasm rapidly diminished when I did a SiB (Seeing is Believing, or QlikView Proof of Concept) last week. I found SR1 contained bugs that made it unworkable for me. Amongst other things, initial data reduction with section access was not working and actions assigned to text/button objects would not work on the iPad. QlikTech must have realized this as well, as the SR1 release is no longer available for download at this moment.</p>
<p>I am back on the initial release now, which, given previous experiences with initial releases,  has actually been working much better than expected for me. I would actually go so far as to say that it has been working <strong>perfectly</strong> for me, with the exception of one very annoying bug.</p>
<p>I like to use lots of tabs in my script, to nicely indent various levels in loops etc. , but also to neatly align aliases. I also like to jump around the script a lot, switching between tabs and often using my mouse to position the cursor or to double-click a field name to select and copy it. This is where QlikView 11 IR introduced a bug that is really annoying when you do a lot of script development; when there are tabs in a line, QlikView will often position the cursor in the wrong place, as shown in the image below.</p>
<p>&nbsp;</p>
<p><img class="alignnone" title="Annoying tab problem in QlikView 11 IR and SR1" src="http://dl.dropbox.com/u/6795646/QlikFix/QlikView11SR1/AnnoyingTabProblem.png" alt="" width="600" height="244" /></p>
<p>&nbsp;</p>
<p>I reported this bug back in January (ID 44840) and was told that it would be fixed in SR1. I noticed that it hadn&#8217;t been fixed in last week&#8217;s SR1, but hopefully it will be fixed when the <strong>real</strong> SR1 is released.</p>
<p>I promise my next post will be less rant-y <img src='http://www.qlikfix.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  In the mean time, I am quite interested to hear your thoughts and opinions about rolling out QlikView 11 IR at existing customers.</p>
<p><strong>Update: </strong>QlikTech released a <a title="QlikTech technical bulletin about QV 11 SR1 withdrawal" href="http://community.qlikview.com/blogs/technicalbulletin/2012/03/30/version-11-service-release-1-update" target="_blank">technical bulletin about the SR1 withdrawal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2012/03/26/just-when-i-thought-it-was-out/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Prevent fuzzy images when exporting QlikView graphs</title>
		<link>http://www.qlikfix.com/2012/02/23/prevent-fuzzy-images-when-exporting-qlikview-graphs/</link>
		<comments>http://www.qlikfix.com/2012/02/23/prevent-fuzzy-images-when-exporting-qlikview-graphs/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 10:21:51 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[Charts]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[copypaste]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[quicktip]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=3090</guid>
		<description><![CDATA[A short post today on an &#8216;annoyance&#8217; that invariably pops up at my clients; when copy and pasting images of QlikView objects into their PowerPoint presentation or Word document, the images look blurry and slightly out of focus. Fortunately, there is an easy way to solve this. Instead of using the regular paste option, use <a href="http://www.qlikfix.com/2012/02/23/prevent-fuzzy-images-when-exporting-qlikview-graphs/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A short post today on an &#8216;annoyance&#8217; that invariably pops up at my clients; when copy and pasting images of QlikView objects into their PowerPoint presentation or Word document, the images look blurry and slightly out of focus.</p>
<p>Fortunately, there is an easy way to solve this. Instead of using the regular paste option, use <a title="How to use &quot;Paste special&quot; in PowerPoint 2007" href="http://office.microsoft.com/en-gb/powerpoint-help/paste-special-HP010117115.aspx" target="_blank">paste special</a> to paste the image as a bitmap.</p>
<p><img class="aligncenter" title="Difference between regular and special pasting of QlikView objects" src="http://dl.dropbox.com/u/6795646/QlikFix/PasteBitmap/RegularVsSpecialPaste.png" alt="Difference between regular and special pasting of QlikView objects" width="571" height="196" /></p>
<p>In both Office 2007 and 2010, the paste special option can be accessed via <a class="shutterset_set_8 title=" href="http://www.qlikfix.com/wp-content/gallery/pastespecial/pastespecialoffice.png">the paste drop-down menu on the left of the Home tab/ribbon</a>, or via the Ctrl + Alt + V keyboard shortcut.</p>
<p>That&#8217;s it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2012/02/23/prevent-fuzzy-images-when-exporting-qlikview-graphs/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>QlikView blog round-up: If-statements, inline tables &amp; EDX</title>
		<link>http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3/</link>
		<comments>http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 13:00:05 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[Expressions]]></category>
		<category><![CDATA[Functions]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[edx]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[roundup]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=2803</guid>
		<description><![CDATA[Time to dust off a posting category that hasn&#8217;t been getting as much love as it should have; the QlikView blog round-up. Today I have for you three blog posts that I read recently and found very interesting: What a big &#8220;If&#8221; you have Nifty trick for INLINE tables EDX in QlikView What a big <a href="http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Decisions" src="http://dl.dropbox.com/u/6795646/QlikFix/QlikViewBlogRoundUp20111018/Decisions.png" alt="Decisions" width="250" height="167" />Time to dust off a posting category that hasn&#8217;t been getting as much love as it should have; the <a title="QlikView blog round-up, interesting QlikView articles and blog posts." href="http://www.qlikfix.com/tag/roundup/" target="_blank">QlikView blog round-up</a>. Today I have for you three blog posts that I read recently and found very interesting:</p>
<ul>
<li><a href="http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3#bigif">What a big &#8220;If&#8221; you have</a></li>
<li><a href="http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3#niftytrick">Nifty trick for INLINE tables</a></li>
<li><a href="http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3#EDX">EDX in QlikView</a></li>
</ul>
<p><span id="more-2803"></span><br />
<a id="bigif"></a><br />
<h3 style="margin-top: 0px;">What a big &#8220;If&#8221; you have</h3>
<p>In this post Chris Cammers describes a pretty cool and elegant method (reminiscent of <a title="Wikipedia on decision tables" href="http://en.wikipedia.org/wiki/Decision_tables" target="_blank">decision tables)</a> for dealing with big, nested if-statements. Chris&#8217; method increases maintainability of your QlikView applications by ensuring that complicated logic can be modified with relatively little effort. Definitely something to have a look at. Click <a title="What big &quot;If&quot; you have!" href="http://biventure.blogspot.com/2011/09/what-big-if-you-have.html" target="_blank">here</a> for the full blog post.<br />
<a id="niftytrick"></a><br />
<h3 style="margin-top: 15px;">Nifty trick for INLINE tables</h3>
<p>As seen in a <a title="Color mixology 101" href="http://www.qlikfix.com/2010/12/03/qlikview-blog-round-up/#a1" target="_blank">previous blog round-up</a>, Bill Lay of <a title="The Qlik Board!" href="http://qlikboard.com/" target="_blank">The Qlik Board</a> has a talent for discovering obscure menu options in QlikView. In this post, Bill describes a nifty trick that will save you time when creating INLINE tables based on an already existing field, for example to add an aggregation level. Click <a title="Nifty trick for INLINE tables" href="http://qlikboard.com/2011/10/12/nifty-trick-for-inline-tables/" target="_blank">here</a> for the full blog post.<br />
<a id="EDX"></a><br />
<h3 style="margin-top: 15px;">EDX in QlikView</h3>
<p>EDX allows you to trigger a QlikView Server task via an external event. As I&#8217;m currently working on a project that requires the use of EDX, I&#8217;ve been researching this subject quite a bit. One of the best articles that I came across is an introduction to EDX by Pablo Parnisari. In this introduction, Pablo describes what EDX is, how it is set up on the server-side and how you can trigger an EDX task using a macro in your QlikView application. In short, almost everything you want to know about EDX. The only thing that Pablo doesn&#8217;t explain is the meaning of the EDX acronym, if you know what it means please leave a comment <img src='http://www.qlikfix.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Click <a title="QlikView EDX; what is it and how does it work." href="http://qlikviewtips.wordpress.com/2011/10/10/edx-in-qlikview-what-are-what-for-and-how-it-does/" target="_blank">here</a> for the full blog post.</p>
<p>&nbsp;</p>
<p>That&#8217;s it for my QlikView blog round-up. If you have some good articles or blog posts that you want to share, feel free to post them in the comments section.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2011/10/18/qlikview-blog-round-up-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Storing variables outside of QlikView</title>
		<link>http://www.qlikfix.com/2011/09/21/storing-variables-outside-of-qlikview/</link>
		<comments>http://www.qlikfix.com/2011/09/21/storing-variables-outside-of-qlikview/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 10:30:31 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[Expressions]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[expressions]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[variables]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=2670</guid>
		<description><![CDATA[Today I will show you how to store variables and their definitions in an external file&#8230; and why you would want to do that. To start with the last part, in my opinion it is important to apply calculations and business rules consistently across QlikView applications. Doing this manually takes a lot of time and <a href="http://www.qlikfix.com/2011/09/21/storing-variables-outside-of-qlikview/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="One more time!" href="http://www.youtube.com/watch?v=FGBhQbmPwH8&amp;ob=av2e" target="_blank"><img class="alignright" title="Another post about variables? Yes... One ... More ... Time ... Next time I will write about something else, I promise ;)" src="http://dl.dropbox.com/u/6795646/QlikFix/ExternalVariables/Variables-OneMoreTime.png" alt="Another post about variables? Yes... One ... More ... Time ... Next time I will write about something else, I promise ;)" width="200" height="140" /></a>Today I will show you how to store variables and their definitions in an external file&#8230; and why you would want to do that.</p>
<p>To start with the last part, in my opinion it is important to apply calculations and business rules consistently across QlikView applications. Doing this manually takes a lot of time and is prone to errors. Besides that, it is just not a very fun task. Fortunately, a lot of this can be handled by setting up a multi tiered environment with one or more QVD layers (for more information on this, see Rob Wunderlich&#8217;s excellent &#8220;<a title="Understanding &amp; Best Practices with QVD Files" href="http://qlikviewnotes.blogspot.com/2011/02/qvd-questions-and-answers.html" target="_blank">Understanding &amp; Best Practices with QVD files</a>&#8221; webinar and slides).</p>
<p>Sometimes however, you need to use calculations that cannot be (easily) pushed to a QVD layer, for example when calculating averages or using set analysis. How can you store those calculations in a central place so they can be reused?</p>
<p style="text-align: left;"><span id="more-2670"></span>The first step is to create an external file (or database) to store your variable definitions. In this example I have created an Excel file with 3 columns, Name, Expression and Comment. <img class="alignnone" style="margin-top: 25px; margin-bottom: 25px;" title="You can use an Excel sheet to store your variables outside of your QlikView application." src="http://dl.dropbox.com/u/6795646/QlikFix/ExternalVariables/ExternalSource.png" alt="You can use an Excel sheet to store your variables outside of your QlikView application." width="706" height="119" /></p>
<p style="text-align: left;">In the next step, the data is loaded into QlikView as a table and a little bit of script loops through all the rows and creates the variables.<img class="alignnone" style="margin-top: 25px; margin-bottom: 25px;" title="Loop through all the rows in the table, and create a variable for each item." src="http://dl.dropbox.com/u/6795646/QlikFix/ExternalVariables/CreateVariableCode.png" alt="Loop through all the rows in the table, and create a variable for each item." width="700" height="115" /></p>
<p>And that is all there is to it! The variables that were defined in the Excel file have now been created in the front-end, ready the be used. An example QVW with the full script can be downloaded below.</p>
<p><a href="http://dl.dropbox.com/u/6795646/QlikFix/ExternalVariables/ExternalVariables.zip"><img class="size-full wp-image-1869" style="vertical-align: middle;" title="Download the example QVW and source data" src="http://www.qlikfix.com/wp-content/uploads/2011/02/download.gif" alt="" width="38" height="38" />Download the example QVW and source data</a></p>
<p>The only downside to this method is that the comments are not being written to the the comment section of the variable, but are instead stored together with the expression. Fortunately, I will be putting up a guest post that deals with this very subject in the near future, so stay tuned!</p>
<p>As always, if you have any comments or questions, please post them below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2011/09/21/storing-variables-outside-of-qlikview/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Testing the performance implications of variables and label referencing versus direct expressions</title>
		<link>http://www.qlikfix.com/2011/06/21/testing-the-performance-implications-of-variables-and-label-referencing-versus-direct-expressions/</link>
		<comments>http://www.qlikfix.com/2011/06/21/testing-the-performance-implications-of-variables-and-label-referencing-versus-direct-expressions/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 11:30:44 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[Charts]]></category>
		<category><![CDATA[Expressions]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[expressions]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=2388</guid>
		<description><![CDATA[After my previous post about variables, I got an interesting question from DV. He asked me about the reuse of chart expressions by referencing the label of another expression (&#8220;label referencing&#8221;), and what the performance implications of using variables and label referencing versus direct expressions are. I use variables and label referencing extensively in my <a href="http://www.qlikfix.com/2011/06/21/testing-the-performance-implications-of-variables-and-label-referencing-versus-direct-expressions/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Testing the performance implications of variables and label referencing versus direct expressions" src="http://dl.dropbox.com/u/6795646/QlikFix/VariablesLabelReferenceVsExpression/experiment.png" alt="Testing the performance implications of variables and label referencing versus direct expressions" width="200" height="267" />After my previous post about variables, I got <a title="DV's question about label referencing" href="http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/#comment-516" target="_blank">an interesting question from DV</a>. He asked me about the reuse of chart expressions by referencing the label of another expression (&#8220;label referencing&#8221;), and what the performance implications of using variables and label referencing versus direct expressions are.</p>
<p>I use variables and label referencing extensively in my applications, but I never really tested what this means for performance. I have always assumed that using variables instead of direct expressions would have a slight impact on performance. I also suspected that using label referencing would result in significantly better performance (I will explain this later).</p>
<p>But was this really true? Triggered by DV&#8217;s question, I set up a small experiment to test my assumptions.</p>
<p><span id="more-2388"></span>For those of you that are in a hurry or do not want to read a lot of text before reaching an unexciting conclusion: My experiment seems to indicate that there is a very, very small performance cost when using variables or label referencing instead of direct expressions. For all intents and purposes this difference is negligible however, resulting in only a roughly 0.3% slower calculation for the slowest option.</p>
<p>For those of you that want to see how I did it, and maybe pick up some techniques for identifying and resolving performance issues in your QlikView applications: Read on!</p>
<h2 style="margin-bottom: 5px; margin-top: 20px;">The set-up</h2>
<p>As performance issues with calculation of objects are usually not an issue with small data volumes, I decided that I would need a moderate-to-large dataset to test with. I generated a 500 million row CSV file containing the following data:</p>
<ul>
<li style="margin-bottom: 10px;"><strong>Customer</strong>: random customer names between AAA and ZZZ, resulting in 17,576 unique values;</li>
<li style="margin-bottom: 10px;"><strong>Product</strong>: random products named A to Z, 26 unique values;</li>
<li style="margin-bottom: 10px;"><strong>Year</strong>: random year from 2008 to 2011;</li>
<li style="margin-bottom: 10px;"><strong>Actual revenue</strong>: random number between 0 and 1,000,000;</li>
<li style="margin-bottom: 10px;"><strong>Target revenue: </strong>random number between 0 and 1,000,000.</li>
</ul>
<p>This resulted in a 12.5 GB CSV file, that I then loaded into QlikView. (It also turned into a 4 GB QVD file, but that is the subject for another post)</p>
<p>I then created a very big pivot table containing actual and targeted revenue for each customer by product and year. Additionally, I created a calculated field to compare actual versus targeted revenue.</p>
<p><img class="alignnone" title="Very big pivot table, containing 500 million records" src="http://dl.dropbox.com/u/6795646/QlikFix/VariablesLabelReferenceVsExpression/verybigpivottable.png" alt="Very big pivot table, containing 500 million records" width="600" height="258" /></p>
<p>The idea was to create an object that contained many records and calculations, so that any differences in calculation speed between the various calculation options would be amplified.</p>
<h2 style="margin-bottom: 5px; margin-top: 20px;">The calculation options</h2>
<p>For the expressions, I tested three different options to see how the calculation time would be affected:</p>
<ul>
<li style="margin-bottom: 10px;"><strong>Direct expression</strong>: this is the straightforward option, directly typing the expression into the expression definition:
<ul>
<li style="margin-bottom: 10px; margin-top: 10px;">Actual revenue: <span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Actual</span>)</li>
<li style="margin-bottom: 10px;">Target revenue: <span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Target</span>)</li>
<li style="margin-bottom: 15px;">Actual vs Target: <span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Actual</span>) / <span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Target</span>)</li>
</ul>
</li>
<li style="margin-bottom: 10px;"><strong>Label referencing: </strong>this option is the same for the first two expressions, Actual and Target revenue.  However, for the third expression (Actual vs Target) calculation, instead of using the Sum() function we reference the earlier two results by their expression label names. My impression was that this might calculate faster, because for the last expression QlikView does not need to calculate the sums of the actual and target revenue again. Instead it can use the results that were calculated in the other two expressions:
<ul>
<li style="margin-bottom: 10px; margin-top: 10px;">Actual revenue: <span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Actual</span>)</li>
<li style="margin-bottom: 10px;">Target revenue: <span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Target</span>)</li>
<li style="margin-bottom: 10px;">Actual vs Target: [<span style="color: #0000ff;">Actual revenue</span>] / [<span style="color: #0000ff;">Target revenue</span>]</li>
</ul>
</li>
<li style="margin-bottom: 10px;"><strong>Variables: </strong>Instead of using direct expressions, this option uses variables to store the calculations. I suspected that this method might be a little bit slower, as QlikView would also have to perform Dollar-sign expansion:
<ul>
<li style="margin-bottom: 10px; margin-top: 10px;">Actual revenue: <strong><span style="color: #888888;">$(vActual)</span></strong><span style="color: #0000ff;"> </span></li>
<li style="margin-bottom: 10px;">Target revenue: <strong><span style="color: #888888;">$(vTarget)</span></strong><span style="color: #0000ff;"> </span></li>
<li style="margin-bottom: 10px;">Actual vs Target: <strong><span style="color: #888888;">$(vAT)</span></strong></li>
</ul>
</li>
</ul>
<h2 style="margin-bottom: 5px; margin-top: 20px;">The first test</h2>
<p>My initial idea was to create three copies of the pivot table, each containing a different calculation option. After making a selection, I would check the CalcTime for each of the pivot tables via the Objects tab in the Sheet properties dialog.</p>
<p><img class="alignnone" title="Sheet objects" src="http://dl.dropbox.com/u/6795646/QlikFix/VariablesLabelReferenceVsExpression/sheetobjects.png" alt="Sheet objects" width="635" height="213" /></p>
<p>There was a problem however. It looks as if the CalcTime is not showing the individual calculation time for an object, but rather the cumulative calculation time when the object finished updating. So the first pivot table to be calculated would show a calculation time of 30 seconds, while the second would show 60 seconds. It would actually not take 60 seconds for the second table, but since it had to wait until the first table was calculated that time was being added as well.</p>
<h2 style="margin-bottom: 5px; margin-top: 20px;">The second test</h2>
<p>As the three-in-one approach was not going to work, I decided to create three identical applications with only the calculations being different.</p>
<p>I then proceeded to make the same 25 selections (in the same order) in each of the three applications. Afterwards I exported the memory statistics via the General tab in the Document Properties dialog.</p>
<p><img class="alignnone" title="Export memory statistics" src="http://dl.dropbox.com/u/6795646/QlikFix/VariablesLabelReferenceVsExpression/memorystatistics.png" alt="Export memory statistics" width="710" height="340" /></p>
<p>This function exports a text file containing memory usage statistics for the various parts of the QlikView document. These .mem files can then be loaded and analyzed in the QlikView Optimizer application. This application originally came with the training materials for QlikView 8.5, but is still compatible with version 10. You can download it by clicking <a title="Download QlikView Optimizer" href="http://community.qlikview.com/servlet/JiveServlet/download/53296-8006/QlikView%20Optimizer%208.5.qvw" target="_blank">here</a>.</p>
<p><img class="alignnone" title="QlikView Optimizer result for the pivot tables" src="http://dl.dropbox.com/u/6795646/QlikFix/VariablesLabelReferenceVsExpression/qlikviewoptimizerresult.png" alt="QlikView Optimizer result for the pivot tables" width="620" height="280" /></p>
<p>As you can see in the result above, the direct expression has the lowest average calculation time. The variable ends in second place. Label referencing turned out to be the slowest option, which surprised me. Overall the difference between the fastest and slowest option was 0.33%.</p>
<h2 style="margin-bottom: 5px; margin-top: 20px;">Conclusion</h2>
<p>So, what did I learn? Well, my suspicion that using variables instead of direct expressions impacts calculation time seems to be confirmed. However, the difference is so small that the it is virtually unnoticeable to the user. I was surprised that label referencing turned out to be the slowest option. Although at 0.33% slower, this is hardly a problem.</p>
<p>While I did not gain any shocking insights from this experiment, it is nice to know that performance is not an issue when picking which option to use. You are free to pick the option that best fits the situation.</p>
<p>For those of you interested in generating random data, here is the script I used.</p>
<p><a href="http://dl.dropbox.com/u/6795646/QlikFix/VariablesLabelReferenceVsExpression/GenerateData.qvs"><img class="size-full wp-image-1869" style="vertical-align: middle;" title="Download the data generation script" src="http://www.qlikfix.com/wp-content/uploads/2011/02/download.gif" alt="" width="38" height="38" />Download the data generation script</a></p>
<p>As always, if you have any comments, questions or critiques on the unscientific method I used <img src='http://www.qlikfix.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , feel free to drop them in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2011/06/21/testing-the-performance-implications-of-variables-and-label-referencing-versus-direct-expressions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Not all variables are created equal</title>
		<link>http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/</link>
		<comments>http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 12:00:59 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[Charts]]></category>
		<category><![CDATA[Expressions]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[quicktip]]></category>
		<category><![CDATA[variables]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=2268</guid>
		<description><![CDATA[It has been a while since my last post. To get back in the habit of regular updates, I am starting today with a short tip on a caveat of the use of the equals sign (=). Starting an expression with or without an equals sign may almost seem like an arbitrary decision. Most developers quickly figure <a href="http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Beware of the equals sign" src="http://dl.dropbox.com/u/6795646/QlikFix/Equals/equals_sign.png" alt="Beware of the equals sign" width="125" height="146" />It has been a while since my last post. To get back in the habit of regular updates, I am starting today with a short tip on a caveat of the use of the equals sign (=).</p>
<p>Starting an expression with or without an equals sign may almost seem like an arbitrary decision. Most developers quickly figure out that this is not true for text objects. However, there is another, less obvious area where the use of the equals sign can greatly impact how (and more importantly, when) your expression is calculated.</p>
<p><span id="more-2268"></span></p>
<p>When creating a variable in the variable overview (Ctrl + Alt + V) an expression that starts with an equals sign is directly calculated by QlikView. An expression that does not start with an equals sign is not calculated. The implication of this difference becomes clear when you consider the following example:</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Raw data" src="http://dl.dropbox.com/u/6795646/QlikFix/Equals/raw_data.png" alt="Raw data" width="172" height="163" /></p>
<p>An application contains data on yearly revenue per store. The raw data is shown above. To get the total revenue, a variable called <strong><em><span style="color: #808080;">v_Revenue </span></em></strong>is created than contains the following expression:</p>
<p>=<span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Revenue</span>)</p>
<p>When this variable is used in a straight table to display the total sum of revenue per store for all years, the following result is shown:</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Revenue per store using a variable starting with an equals sign" src="http://dl.dropbox.com/u/6795646/QlikFix/Equals/total_revenue_equals.png" alt="Revenue per store using a variable starting with an equals sign" width="257" height="120" /></p>
<p>This is obviously not the correct amount, it is the total revenue for all stores and years. Because the variable expression started with an equals sign, it was immediately calculated at the document level by QlikView, without taking the Store dimension into consideration.</p>
<p>The solution is to remove the equals sign from the start of the variable expression:</p>
<p><span style="color: #0000ff;">sum</span>(<span style="color: #800000;">Revenue</span>)</p>
<p>The next step is to modify the expression in the straight table so that the variable is enclosed in a Dollar-sign followed by parentheses:</p>
<p><span style="color: #808080;"><em><strong>$(v_Revenue)</strong></em></span></p>
<p>This is called &#8220;Dollar-sign expansion&#8221; and it tells QlikView to calculate the variable. Because the variable is now being calculated at the straight table expression level, it correctly takes the Store dimension into consideration.</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Revenue totals when the equals sign is not used in the variable expression" src="http://dl.dropbox.com/u/6795646/QlikFix/Equals/total_revenue_not_equals.png" alt="Revenue totals when the equals sign is not used in the variable expression" width="252" height="121" /></p>
<p>The example QVW below shows the difference between the two variable expressions. As always, if you have questions or comments, feel free to drop them in the comment section below.</p>
<p><a href="http://dl.dropbox.com/u/6795646/QlikFix/Equals/Equals.qvw"><img class="size-full wp-image-1869" style="vertical-align: middle;" title="Download the example QVW and source data" src="http://www.qlikfix.com/wp-content/uploads/2011/02/download.gif" alt="" width="38" height="38" />Download the example QVW</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Excel and VBA: the poor man&#8217;s QlikView</title>
		<link>http://www.qlikfix.com/2011/03/16/excel-and-vba-the-poor-mans-qlikview/</link>
		<comments>http://www.qlikfix.com/2011/03/16/excel-and-vba-the-poor-mans-qlikview/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 11:30:48 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[becauseitcanbedone]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[vba]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=2122</guid>
		<description><![CDATA[Today I have something completely different for you. It is only tangentially related to QlikView and lacks any practical application for QlikView professionals, but I know it will make you smile when you see it. A few years ago I was the technical lead on a project that required the development of multiple Excel dashboards. <a href="http://www.qlikfix.com/2011/03/16/excel-and-vba-the-poor-mans-qlikview/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I have something completely different for you. It is only tangentially related to QlikView and lacks any practical application for QlikView professionals, but I know it will make you smile when you see it.</p>
<p>A few years ago I was the technical lead on a project that required the development of multiple Excel dashboards. I designed and developed (together with <a title="Nico Wuite" href="http://www.linkedin.com/pub/nico-wuite/8/a12/476">Nico Wuite</a>, who did a lot of the coding)  an Excel plug-in that could be used to generate stand-alone, fully interactive Excel dashboards. I recently rediscovered the plugin after cleaning up my archive of Excel and VBA reference files and thought it would be fun to generate a demo dashboard.</p>
<p>Have a look at the embedded video below (preferably in full screen HD) and see if it reminds you of a certain BI tool <img src='http://www.qlikfix.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Also, keep in mind that this was built before PowerPivot was released, so it is a little dated by now.</p>
<p><iframe title="YouTube video player" width="600" height="480" src="http://www.youtube.com/embed/kQNJlC9vyjI?rel=0&amp;hd=1" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2011/03/16/excel-and-vba-the-poor-mans-qlikview/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Merging tables: the JOIN prefix</title>
		<link>http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix/</link>
		<comments>http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 11:30:53 +0000</pubDate>
		<dc:creator>Barry</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[concatenate]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[join]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.qlikfix.com/?p=1228</guid>
		<description><![CDATA[This is the second post in a series on merging tables in QlikView. In the previous post I wrote about appending rows to tables by using the CONCATENATE prefix, this time I will show you how to add  columns to a previously loaded table by using the JOIN prefix. Table of contents The story so <a href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Merging tables: the JOIN prefix" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/MergeTablesTopicPicture.png" alt="Merging tables: the JOIN prefix" width="250" height="129" />This is the second post in a series on merging tables in QlikView. <a title="Merging tables: Concatenation" href="http://www.qlikfix.com/2010/12/09/merging-tables-concatenation/" target="_blank">In the previous post</a> I wrote about appending rows to tables by using the CONCATENATE prefix, this time I will show you how to add  columns to a previously loaded table by using the JOIN prefix.<span id="more-1228"></span></p>
<h3>Table of contents</h3>
<ul>
<li style="margin-bottom: 15px;"><a title="The story so far" href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix#1" target="_self">The story so far</a></li>
<li style="margin-bottom: 15px;"><a title="The new requirements" href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix#2" target="_self">The new requirements</a></li>
<li style="margin-bottom: 15px;"><a title="Just load the table" href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix#3" target="_self">Just load the table</a></li>
<li style="margin-bottom: 15px;"><a title="The JOIN prefix" href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix#4" target="_self">The JOIN prefix</a></li>
<li style="margin-bottom: 15px;"><a title="Join types" href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix#5" target="_self">Join types</a></li>
<li style="margin-bottom: 15px;"><a title="Downloads" href="http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix#6" target="_self">Downloads</a></li>
</ul>
<p><a id="1"></a></p>
<h3>The story so far</h3>
<p><img class="alignright" title="Concatenated tables" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/ConcatenatedTable.png" alt="Concatenated tables" width="214" height="141" />In the <a title="Merging tables: concatenation" href="http://www.qlikfix.com/2010/12/09/merging-tables-concatenation/" target="_blank">previous post</a> we discussed the example of a paper company that wanted to merge the employee list of their Sales Department of one of their branches (<em>the Stamford branch)</em> into the employee list of another branch office (<em>the Scranton branch</em>). We merged the two tables by using the CONCATENATE prefix, demonstrating the difference between implicit and explicit concatenation along the way. The resulting table is shown on the right.<br />
<a id="2"></a></p>
<h3>The new requirements</h3>
<p><img class="alignright" title="The corporate data" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/CorporateData.png" alt="The corporate data" width="256" height="141" />Now that we have a single, merged Employee table, the manager of the Scranton branch comes up with an additional requirement; wouldn&#8217;t it be a cool idea if we could link corporate&#8217;s HR data with the merged employee table so we also have everyone&#8217;s job description and pay scale available in our reports and dashboards? While I personally reserve the <em>&#8220;cool idea&#8221;</em> qualification for ideas that are really, well, cool (say, <a title="A much cooler idea, but unfortunately not the topic of this blog." href="http://www.google.com/images?hl=en&amp;sugexp=ldymls&amp;xhr=t&amp;q=shark+cage+diving&amp;cp=9&amp;qe=c2hhcmsgY2Fn&amp;qesig=xqpsgjh41op5PhBbJSbUhw&amp;pkc=AFgZ2tn2DnTfE_2VRGJy8VWQoFhp9fwTzsRN_3cHEA87F2VNmKuKHvt-kLQXOE9UHI-g3WNiN7PIjIWBAu4X_-yrLSVE09otlg&amp;um=1&amp;ie=UTF-8&amp;source=og&amp;sa=N&amp;tab=wi&amp;biw=1920&amp;bih=1033" target="_blank">shark cage diving</a> or <a title="British Engineer Designs Own Heart Valve Implant, Saves Own Life" href="http://www.popsci.com/science/article/2011-01/british-engineer-designs-his-own-heart-valve-implant-saves-own-life" target="_blank">designing your own heart valve implant</a>) for the sake of this post lets assume that this <em>is </em>a cool idea and that we really want to implement it. So how do we proceed?<br />
<a id="3"></a></p>
<h3>Just load the table</h3>
<h3><img class="alignright" title="Tables loaded separately" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/PlainLoad.png" alt="Tables loaded separately" width="281" height="95" /></h3>
<p>The first option we could consider is just loading the table as-is. The resulting data model would look like the picture on the right. Technically, there is nothing wrong with using this approach but I prefer to merge the tables for two reasons:</p>
<ul>
<li style="margin-bottom: 15px;">It makes for a simpler, less-cluttered data model;</li>
<li style="margin-bottom: 15px;">Logically, it makes more sense for employee-related data to be grouped together into a single employee dimension table.</li>
</ul>
<p>To merge the columns from two (or more) tables we can use the JOIN prefix.<br />
<a id="4"></a></p>
<h3>The JOIN prefix</h3>
<p>When the JOIN prefix is put in front of a LOAD statement, it tells QlikView not to load the data into a new table, but instead join the data to a previously loaded table.</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Join script example" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/JoinScript.png" alt="Join script example" width="301" height="120" /></p>
<p>The join is a <a title="Wikipedia on natural joins" href="http://en.wikipedia.org/wiki/Join_%28SQL%29#Natural_join" target="_blank">natural join</a> made over all the common fields. This means that QlikView compares all  the common fields between the two tables and joins the rows from both  tables when the values in the shared columns match.</p>
<p>Optionally, the name of the table to which the data should be joined can be specified between parentheses. If no table name is specified, QlikView assumes that the data should be joined with the last loaded table. Those who read the first post know that I am not a big fan of making assumptions in the load script, it makes the code harder to read and maintain. Therefore I always specify a table name.<br />
<a id="5"></a></p>
<h3>Join types</h3>
<p>When you look closely at the two tables that we want to join, you notice that not all <em>Person ID&#8217;s</em> correspond between the tables. The <em>Employees</em> tables contain an employee, Michael Scott, who is not present in the<em> HR Data</em> table. Conversely, the <em>HR Data</em> table contain data for a Receptionist who is not present in the <em>Employees</em> table.</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Not all values between tables match" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/NoMatch.png" alt="Not all values between tables match" width="585" height="160" /></p>
<p>When we do a standard join, the tables are merged so that the corresponding records from both tables are shown on the same row. Records without a corresponding record in the other table get null (empty) values for those columns. The result is the following table:</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Standard join" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/StandardJoin.png" alt="Standard join" width="405" height="166" /></p>
<p>This is almost the merged table we want, but it still contains data for a Receptionist who is not an employee at the Scranton branch. Fortunately there is a way to solve this, by specifying the <em>join type</em>.</p>
<p>By using a <em>join type</em> we can specify how QlikView joins the tables, we can use the following options:</p>
<ul>
<li style="margin-bottom: 15px;"><strong>INNER: </strong>Only records which are present in both tables are included in the merged table. In our example this would mean that both <em>Person ID </em>1 (Michael Scott) and 10 (Receptionist) would be excluded from the merged table.</li>
<li style="margin-bottom: 15px;"><strong>OUTER: </strong>All records from both tables are included in the merged table, regardless if they have corresponding records in the other table. This returns the same result as the standard join.</li>
<li style="margin-bottom: 15px;"><strong>LEFT: </strong>All records from the first table are included in the merged table, and only those records from the second table which have a corresponding value in the first table. In our example this would mean that <em>Person ID</em> 1 (Michael Scott) would be included and that <em>Person ID</em> 10 (Receptionist) would be excluded, as it has no corresponding value in the first table.</li>
<li style="margin-bottom: 15px;"><strong>RIGHT: </strong>All records from the second table are included in the merged table, and only those records from the first table which have a corresponding value in the second table. In our example this would mean that <em>Person ID </em>10 (Receptionist) would be included and that <em>Person ID </em>1 (Michael Scott) would be excluded, as it has no corresponding value in the second table.</li>
</ul>
<p>As we want to keep the entire <em>Employee </em>table and only add the corresponding values from the <em>HR Data</em> table to it, we decide to use the LEFT JOIN prefix.</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Left join" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/LeftJoin.png" alt="Left join" width="300" height="118" /></p>
<p>This results in the following merged table:</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Left joined table" src="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/LeftJoinedTable.png" alt="Left joined table" width="405" height="151" /></p>
<p>And that&#8217;s how it&#8217;s done! The example QVW for this post shows the completed script and also shows what result you get when you use another join type. As always, if you have any questions or comments, feel free to drop them in the comments section.<br />
<a id="6"></a></p>
<h3>Downloads</h3>
<p><a href="http://dl.dropbox.com/u/6795646/QlikFix/MergeTables/JoinTables.zip"><img class="size-full wp-image-1869" style="vertical-align: middle;" title="Download the example QVW and source data" src="http://www.qlikfix.com/wp-content/uploads/2011/02/download.gif" alt="" width="38" height="38" />Download the example QVW and source data</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlikfix.com/2011/02/07/merging-tables-the-join-prefix/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 2.095 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-19 13:54:31 -->

