<?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 Board!</title>
	<atom:link href="http://qlikboard.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://qlikboard.com</link>
	<description>Practical posts for QlikView fanatics!</description>
	<lastBuildDate>Fri, 28 Dec 2012 22:45:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>QlikView 11 for Developers &#8211; an excellent tome</title>
		<link>http://qlikboard.com/2012/12/28/qlikview-11-for-developers-an-excellent-tome/</link>
		<comments>http://qlikboard.com/2012/12/28/qlikview-11-for-developers-an-excellent-tome/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 22:45:30 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=243</guid>
		<description><![CDATA[I just read an excellent book by Miguel Garcia and Barry Harmsen &#8211; &#8220;QlikView 11 for Developers.&#8221; I highly recommend it for beginning and intermediate QlikView developers. I even learned a few things myself! Like the pick(dimensionality(&#8230;), &#8230;) trick. QlikView 11 for Developers at PacktPub Miguel and Barry are two of my favorite bloggers by [...]]]></description>
			<content:encoded><![CDATA[<p>I just read an excellent book by Miguel Garcia and Barry Harmsen &#8211; &#8220;QlikView 11 for Developers.&#8221; I highly recommend it for beginning and intermediate QlikView developers. I even learned a few things myself! Like the pick(dimensionality(&#8230;), &#8230;) trick.</p>
<p><a href="http://www.packtpub.com/qlikview-11-developers/book">QlikView 11 for Developers at PacktPub</a></p>
<p>Miguel and Barry are two of my favorite bloggers by the way.<br />
Miguel: <a href="http://iqlik.wordpress.com">iQlik &#8211; Everything QlikView</a><br />
Barry: <a href="http://www.qlikfix.com">QlikFix.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2012/12/28/qlikview-11-for-developers-an-excellent-tome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Set Analysis &amp; Alternate States &#8211; Quick Tip</title>
		<link>http://qlikboard.com/2012/12/04/set-analysis-alternate-states-quick-tip/</link>
		<comments>http://qlikboard.com/2012/12/04/set-analysis-alternate-states-quick-tip/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 18:15:31 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[alternate_states]]></category>
		<category><![CDATA[set_analysis]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=218</guid>
		<description><![CDATA[I recently had my first opportunity to use Alternate States on a real project. As awesome as I think Alternate States are, I just haven&#8217;t had a chance to implement them before now. As I was developing the expressions for my charts, I came across a predicament. And after some hand-wringing and head-scratching I realized [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had my first opportunity to use Alternate States on a real project. As awesome as I think Alternate States are, I just haven&#8217;t had a chance to implement them before now.</p>
<p>As I was developing the expressions for my charts, I came across a predicament. And after some hand-wringing and head-scratching I realized it was a result of how I&#8217;ve been treating the set identifier, <code>$</code>.</p>
<p>As a reminder the set identifier <code>$</code> is the default set. It represents the entire data model PLUS all user selections. Insofar as it is the default, it doesn&#8217;t need to be explicitly included in the expression. Meaning, when the <code>$</code> is omitted in a set analysis expression, QlikView defaults to the default set. In other words,</p>
<p><code>sum({ $ } Sales)</code> is equivalent to:   <code>sum(Sales)</code></p>
<p>just as</p>
<p><code>sum({ $ &lt;Year = {2010}&gt; } Sales)</code> is equivalent to:   <code>sum({ &lt;Year = {2010}&gt; } Sales)</code></p>
<p>(notice the dollar-sign is absent in the 2nd expression)</p>
<p>Now, although the <code>$</code> is not required, I have diligently included it in any and all expressions that use set analysis, rather than letting QlikView default it. My reasoning on this was to prefer the explicit over the implicit, i.e. leaving nothing to chance and more importantly, improving code understandability. And I&#8217;ve coached my students and clients to do the same.</p>
<blockquote><p>&#8220;Always include the dollar-sign.&#8221;</p>
<p>B. Lay, said to dozens of students</p></blockquote>
<p>&#8230;turns out that wasn&#8217;t such great advice!!</p>
<p>&nbsp;</p>
<h4>$ vs. Alternate States</h4>
<p>So here comes the rub &#8230;</p>
<p>Without alternate states, the situation is simple: there is one and only one &#8220;default&#8221; state ($); namely the state of <strong>all user selections</strong>. But with alternate states defined, the concept of a &#8220;default&#8221; is no longer simple.</p>
<p>Instead of a single &#8220;default&#8221; state there are now:</p>
<ul>
<li>the document default state, $ &#8211; this is the state we&#8217;re familiar with prior to version 11</li>
<li>a sheet state &#8211; which <em>could be </em>$, inherited from the document-level or one of the alternate states</li>
<li>an object state &#8211; which <em>could be</em> $, inherited from the sheet-level or one of the alternate states</li>
</ul>
<p>Additionally, any expression in any object can either inherit the state of the object or be controlled via set analysis. And this is the <strong>key point</strong>: <code>sum({ $ } Sales)</code> and  <code>sum(Sales)</code> now have potentially different meanings.</p>
<p>By hard-coding the $ in the set, we are explicitly choosing the good old-fashioned default state &#8211; all user selections. This ignores the alternate states. In fact, even if the object is assigned to an alternate state, by placing the $ in the set expression we are ignoring that alternate.</p>
<p>Contrast this to omitting the dollar-sign: <code>sum(Sales)</code> In this case we are accepting whatever state the object is in. That <em>could be</em> the default set <code>$</code> &#8230; or it could be an alternate state, if indeed the object is assigned to an alternate state.</p>
<p><em><strong>By omitting the dollar-sign we are allowing the set expression to &#8220;inherit&#8221; the object&#8217;s state.</strong></em></p>
<h4><strong>My Mistake</strong></h4>
<p>Back to my issue (it&#8217;s all about me!) &#8230; I had created two identical charts, one in State A and the other in State B. And two groups of list boxes, one State A and the other in State B. Each chart had several expressions and included set analysis (for other calculation reasons). Here are the details (note I&#8217;m obscuring the client&#8217;s actual field names):</p>
<ul>
<li>Chart 1 &#8211; State A</li>
<li>Expression 1: <code>sum({$ &lt;CurrYTD = {Y}&gt;} Sales)</code></li>
<li>Expression 2: <code>sum({$ &lt;CurrYTD = {Y}&gt;} COGS)</code></li>
<li>Expression 3: <code>sum({$ &lt;CurrYTD = {Y}&gt;} Units)</code></li>
<li>Expression 4: <code>sum({$ &lt;CurrYTD = {Y}&gt;} #OrderCounter)</code></li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Chart 1 &#8211; State B</li>
<li>Expression 1: <code>sum({$ &lt;CurrYTD = {Y}&gt;} Sales)</code></li>
<li>Expression 2: <code>sum({$ &lt;CurrYTD = {Y}&gt;} COGS)</code></li>
<li>Expression 3: <code>sum({$ &lt;CurrYTD = {Y}&gt;} Units)</code></li>
<li>Expression 4: <code>sum({$ &lt;CurrYTD = {Y}&gt;} #OrderCounter)</code></li>
</ul>
<p>&nbsp;</p>
<p>So this is following my old-fashioned approach of always including the set identifier $.</p>
<p>Hence, to my chagrin, when I clicked on values in my State A and State B list boxes, nothing changed. Again, because I had overwrote the object state by using a $ in my set analysis expressions. The fix for this was quite easy; simply removing the $ from the expressions.</p>
<ul>
<li>Chart 1 &#8211; State A</li>
<li>Expression 1: <code>sum({ &lt;CurrYTD = {Y}&gt;} Sales)</code></li>
<li>Expression 2: <code>sum({ &lt;CurrYTD = {Y}&gt;} COGS)</code></li>
<li>Expression 3: <code>sum({ &lt;CurrYTD = {Y}&gt;} Units)</code></li>
<li>Expression 4: <code>sum({ &lt;CurrYTD = {Y}&gt;} #OrderCounter)</code></li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Chart 1 &#8211; State B</li>
<li>Expression 1: <code>sum({ &lt;CurrYTD = {Y}&gt;} Sales)</code></li>
<li>Expression 2: <code>sum({ &lt;CurrYTD = {Y}&gt;} COGS)</code></li>
<li>Expression 3: <code>sum({ &lt;CurrYTD = {Y}&gt;} Units)</code></li>
<li>Expression 4: <code>sum({ &lt;CurrYTD = {Y}&gt;} #OrderCounter)</code></li>
</ul>
<p>&nbsp;</p>
<h4>The Takeaway</h4>
<p>Well, despite the resiliency of old habits <img src='http://qlikboard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I will now be omitting the $ in my set expressions.</p>
<p>&nbsp;</p>
<p>Keep on Qlikin&#8217;</p>
<p>Bill</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2012/12/04/set-analysis-alternate-states-quick-tip/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nifty trick for INLINE tables</title>
		<link>http://qlikboard.com/2011/10/12/nifty-trick-for-inline-tables/</link>
		<comments>http://qlikboard.com/2011/10/12/nifty-trick-for-inline-tables/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 07:29:37 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[inline]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=178</guid>
		<description><![CDATA[Here&#8217;s a nifty little trick I discovered by accident when creating INLINE tables&#8230; Some Motivation Typically when I&#8217;m creating an INLINE table it&#8217;s for one of two reasons: I&#8217;m working very quickly and need to generate some additional data. I&#8217;m building a control table to use as part of the ETL script. For example, setting [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a nifty little trick I discovered by accident when creating INLINE tables&#8230;</p>
<h3>Some Motivation</h3>
<p>Typically when I&#8217;m creating an INLINE table it&#8217;s for one of two reasons:</p>
<ol>
<li>I&#8217;m working very quickly and need to generate some additional data.</li>
<li>I&#8217;m building a control table to use as part of the ETL script. For example, setting up a loop and I want to pull a value from the INLINE table into each loop iteration.</li>
</ol>
<p>The technique I&#8217;m going to demonstrate is relevant to usage #1 above. In fact, it&#8217;s <strong>only</strong> useful if I&#8217;m going to base my INLINE table (in part) on data that already exist in my data model.</p>
<p>Consider this specific example:</p>
<ul>
<li>We are building a Global Sales Analysis application</li>
<li>We have a Country field in our associative model</li>
<li>We wish to also analyze sales by Region: {EMEA, APAC, Americas} &#8230; but we don&#8217;t have a data source for this</li>
</ul>
<p>What&#8217;s the easiest way to &#8220;append&#8221; the Region onto each Country record &#8230;. ???</p>
<h3>The Trick</h3>
<p>In the past, when faced with the use case as described above, I would do the following:</p>
<ol>
<li>Create a List Box on Country.</li>
<li>Then right-click and copy possible values.</li>
<li>Then paste those values into Excel for further manipulation. Or more typically paste them right into the INLINE load wizard.</li>
</ol>
<p>BUT, there is a simpler way to achieve this, if you take note of a curious little &#8220;Tool&#8221; menu inside the Load INLINE table wizard&#8230;</p>
<h4>Step One</h4>
<p>Make sure the source field already exists in the data model. In our example it&#8217;s the Country field.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_0.png"><img class="alignnone size-full wp-image-188" title="inline_wizard_0" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_0.png" alt="" width="160" height="263" /></a></p>
<p>&nbsp;</p>
<h4>Step Two</h4>
<p>Go into the Script Editor (ctrl-E) and go to the Inline table wizard:</p>
<p>Insert &gt; Load Statement &gt; Load Inline</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_1.png"><img class="alignnone size-full wp-image-181" title="inline_wizard_1" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_1.png" alt="" width="410" height="293" /></a></p>
<p>&nbsp;</p>
<h4>Step Three</h4>
<p>Check out the Tools menu inside the Inline Data Wizard window</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_2.png"><img class="alignnone size-full wp-image-182" title="inline_wizard_2" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_2.png" alt="" width="193" height="165" /></a></p>
<p>&nbsp;</p>
<p>Click on it and select the Document Data&#8230; option</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_3.png"><img class="alignnone size-full wp-image-183" title="inline_wizard_3" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_3.png" alt="" width="255" height="156" /></a></p>
<p>&nbsp;</p>
<h4>Step Four</h4>
<p>Locate the source field in the list of Available Fields. You will have an option to select All Values (this is what I always end up using) or take advantage of the associative model if selections have already been made in the dashboard.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_4.png"><img class="alignnone size-full wp-image-184" title="inline_wizard_4" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_4.png" alt="" width="516" height="387" /></a></p>
<p>&nbsp;</p>
<h4>Step Five</h4>
<p>The wizard then populates the values from the source field into the first column of the table</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_5.png"><img class="alignnone size-full wp-image-185" title="inline_wizard_5" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_5.png" alt="" width="181" height="482" /></a></p>
<p>&nbsp;</p>
<h4>Step Six</h4>
<p>The second (and subsequent) columns can now be manually populated. Which in our use case is adding the Region {EMEA, APAC, Americas}</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_6.png"><img class="alignnone size-full wp-image-186" title="inline_wizard_6" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_6.png" alt="" width="217" height="490" /></a></p>
<p>&nbsp;</p>
<h3>The Final Product</h3>
<p>Clean it up and reload. And the final result should look like this:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_7.png"><img class="alignnone size-full wp-image-187" title="inline_wizard_7" src="http://qlikboard.com/wp-content/uploads/2011/10/inline_wizard_7.png" alt="" width="136" height="277" /></a></p>
<p>&nbsp;</p>
<p>I hope you find a chance to use this shortcut in your future projects.</p>
<p>Keep on Qlikin&#8217;</p>
<p>Bill</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2011/10/12/nifty-trick-for-inline-tables/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Collaboration Metadata And More</title>
		<link>http://qlikboard.com/2011/03/06/collaboration-metadata-and-more/</link>
		<comments>http://qlikboard.com/2011/03/06/collaboration-metadata-and-more/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 09:19:09 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[qvs]]></category>
		<category><![CDATA[version10]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=146</guid>
		<description><![CDATA[If you haven&#8217;t seen it yet, there&#8217;s a nifty feature in the QlikView version 10 to pull metadata from the repository into a QVW. The metadata are related to applications (QVW documents) in AccessPoint and the server objects that users can create. Specifically: Documents &#8211; names, sizes, AccessPoint properties Document attributes &#8211; if you assign [...]]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t seen it yet, there&#8217;s a nifty feature in the QlikView version 10 to pull metadata from the repository into a QVW.</p>
<p>The metadata are related to applications (QVW documents) in AccessPoint and the server objects that users can create. Specifically:</p>
<ul>
<li>Documents &#8211; names, sizes, AccessPoint properties</li>
<li>Document attributes &#8211; if you assign custom attributes in the QVS Management Console</li>
<li>Collaboration (a.k.a. &#8220;server&#8221;) objects &#8211; creator, types, properties</li>
</ul>
<p>These metadata are not available in the Ops Monitor app (as far as I know), so this new feature is more than just a convenience.</p>
<p>&nbsp;</p>
<h3>Creating the script</h3>
<p>Adding these fields to the load script is super-simple, thanks to a new option in the datasource selection drop-down menu &#8211; QvsAdminDataProvider.dll (32)</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/03/qvsadmin_script_editor.png"><img class="alignnone size-full wp-image-147" title="qvsadmin_script_editor" src="http://qlikboard.com/wp-content/uploads/2011/03/qvsadmin_script_editor.png" alt="" width="324" height="121" /></a></p>
<p>&nbsp;</p>
<ol>
<li>Choose the QvsAdminDataProvider.dll (32) from the drop-down menu</li>
<li>Click the &#8220;Connect&#8221; button to add the connect string into your script<a href="http://qlikboard.com/wp-content/uploads/2011/03/qvsadmin_connect_string.png"><img class="alignnone size-full wp-image-154" title="qvsadmin_connect_string" src="http://qlikboard.com/wp-content/uploads/2011/03/qvsadmin_connect_string.png" alt="" width="614" height="22" /></a></li>
<li>Click Select to bring up the Select Wizard</li>
<li>Choose all fields from all tables and include the Preceding Load option</li>
</ol>
<h4><a href="http://qlikboard.com/wp-content/uploads/2011/03/select_wizard.png"><img class="alignnone size-full wp-image-148" title="select_wizard" src="http://qlikboard.com/wp-content/uploads/2011/03/select_wizard.png" alt="" width="526" height="420" /></a></h4>
<h4>A few tweaks&#8230;</h4>
<p>I made a couple of small tweaks to the script for convenience:</p>
<p>Rather than expressing the document size (DocumentList.FileSize) in bytes, I converted it to kilobytes using this code:<br />
<code>round(num(replace(FileSize,'.',''), '#') / 1024, 1) AS [File Size (kB)]</code></p>
<p>&nbsp;</p>
<p>And I plucked the username out of the CollaborationMetadata.OwnerName:<br />
<code>subField(CollaborationOwner, '\', 2) AS OwnerName</code></p>
<p>&nbsp;</p>
<p>Now reload the script! Your data model should look like this:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/03/qvsadmin_data_model1.png"><img class="alignnone size-full wp-image-166" title="qvsadmin_data_model" src="http://qlikboard.com/wp-content/uploads/2011/03/qvsadmin_data_model1.png" alt="" width="378" height="371" /></a></p>
<p>&nbsp;</p>
<h3>Using the objects</h3>
<p>The simplest use case is to create table boxes and a few selectors. The Document List and Collaboration Objects are well-suited for tabular display. Here I&#8217;ve done a little renaming and formatting:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/03/doclist_table.png"><img class="alignnone size-full wp-image-158" title="doclist_table" src="http://qlikboard.com/wp-content/uploads/2011/03/doclist_table.png" alt="" width="551" height="167" /></a></p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/03/collab_table.png"><img class="alignnone size-full wp-image-157" title="collab_table" src="http://qlikboard.com/wp-content/uploads/2011/03/collab_table.png" alt="" width="538" height="208" /></a></p>
<p>&nbsp;</p>
<h4>What else could we do with this?</h4>
<p>Now we can start having fun! With these new metadata available for collaboration objects, we can measure aspects of our QlikView program such as:</p>
<ul>
<li>Which applications get customized the most? (i.e. the most server objects created)</li>
<li>Which users are creating the most server objects?</li>
<li>What percent of our user base is sharing their server objects?</li>
</ul>
<p>Here are just a few visualizations to serve as examples:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/03/top_customized_apps.png"><img class="alignnone size-full wp-image-161" title="top_customized_apps" src="http://qlikboard.com/wp-content/uploads/2011/03/top_customized_apps.png" alt="" width="406" height="226" /></a></p>
<p><a href="http://qlikboard.com/wp-content/uploads/2011/03/top_object_creators.png"><img class="alignnone size-full wp-image-162" title="top_object_creators" src="http://qlikboard.com/wp-content/uploads/2011/03/top_object_creators.png" alt="" width="400" height="226" /></a></p>
<p>(this would be more meaningful with more than one user!! <img src='http://qlikboard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>&nbsp;</p>
<p>Hope these examples get you thinking about ways to incorporate these metadata into the monitoring and improvement of your QlikView program.</p>
<p>Keep on Qlikin&#8217;</p>
<p>Bill</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2011/03/06/collaboration-metadata-and-more/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Factoid &#8211; Text Boxes All Dressed-Up</title>
		<link>http://qlikboard.com/2010/12/26/the-factoid-text-boxes-all-dressed-up/</link>
		<comments>http://qlikboard.com/2010/12/26/the-factoid-text-boxes-all-dressed-up/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 14:48:48 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[factoid]]></category>
		<category><![CDATA[stephenfew]]></category>
		<category><![CDATA[text box]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=111</guid>
		<description><![CDATA[Sometimes the simplest tasks are most challenging. Take for example the need to express a single, scalar number, such as the measurement of a KPI. One number, no dimensions, no time trend&#8230;simple, solitary&#8230;scary. The trick is to NOT to overdo it. Don&#8217;t try to force a chart or speedometer or hygrometer or any other overblown [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes the simplest tasks are most challenging. Take for example the need to express a single, scalar number, such as the measurement of a KPI. One number, no dimensions, no time trend&#8230;simple, solitary&#8230;scary.</p>
<p>The trick is to <strong>NOT</strong> to overdo it. Don&#8217;t try to force a chart or speedometer or hygrometer or any other overblown visualization to do this job. In fact, the simplest way to express this result is probably just to state it, i.e. literally display the value as text.</p>
<h4>A call center KPI example</h4>
<p>Let&#8217;s consider an example from a call center. A key metric for the call center is <em>call resolution time</em>. This particular call center has a target resolution of five minutes. Here are some <strong>poor</strong> ways to visualize this metric (peruse any of Stephen Few&#8217;s writings if you&#8217;re not sure why):</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/12/unifact_bad_rep.png"><img class="alignnone size-full wp-image-141" title="unifact_bad_rep" src="http://qlikboard.com/wp-content/uploads/2010/12/unifact_bad_rep.png" alt="" width="565" height="280" /></a></p>
<p>If I had to choose one of these representations, the thermometer (far left) is the least offensive, but it consumes far too much space and the added context of seeing the level of &#8220;mercury&#8221; in the 100% gauge doesn&#8217;t really add much value.</p>
<p>Abandoning any of these visualizations, I opt instead for a simple text box:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/12/unifact_fair_rep.png"><img class="alignnone size-full wp-image-142" title="unifact_fair_rep" src="http://qlikboard.com/wp-content/uploads/2010/12/unifact_fair_rep.png" alt="" width="133" height="114" /></a></p>
<h4>The Factoid &#8211; adding context to the metric</h4>
<p>To add some context to the metric&#8217;s value, we can utilize the the Text and the Caption areas of the text box.</p>
<p>By taking advantage of dynamic expressions in both the text and caption areas, you can build elaborate displays that combine both text and numerics. Be sure to spend some time on formatting the numbers. Functions like round(), num(), date() and the concatenation operator &amp; (ampersand) are essentials.</p>
<p>Here is the code snippet for the caption:</p>
<p><code>=round(sum({$&lt;[Affects SLA?] = {"-1"}&gt;} [My Metric]), 0.001) * 100 &amp; ' %'<br />
</code><br />
And the text code:</p>
<p><code>='... of calls were resolved within ' &amp; chr(10) &amp; $(varCallResolutionTarget) &amp;' min.'<br />
</code><br />
where I have attempted to <em>variable-ize </em>all &#8220;moving pieces.&#8221;</p>
<p>The final result should look something like this:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/12/unifact_good_rep.png"><img class="alignnone size-full wp-image-143" title="unifact_good_rep" src="http://qlikboard.com/wp-content/uploads/2010/12/unifact_good_rep.png" alt="" width="133" height="111" /></a></p>
<p>I&#8217;ve coined this type of text box as a &#8220;factoid.&#8221; (&#8220;Unifact&#8221; sounds more representative, but a little too nerdy <img src='http://qlikboard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). Maybe QlikView will object-ize this and call it a QlikFact!</p>
<p>So to reiterate, don&#8217;t try to build a multi-dimensional visualization when you&#8217;re only trying to express a <strong>single number</strong>. I&#8217;ve found the factoid to be particularly useful when expressing KPI values, especially when there are well-known, impacting SLAs established and business users are keen to see performance numbers.</p>
<p>Keep on Qlik-in&#8217;<br />
Bill</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2010/12/26/the-factoid-text-boxes-all-dressed-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Color Mixology 101 &amp; Heat Maps</title>
		<link>http://qlikboard.com/2010/11/30/color-mixology-101-heat-maps/</link>
		<comments>http://qlikboard.com/2010/11/30/color-mixology-101-heat-maps/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 07:33:10 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[colormix]]></category>
		<category><![CDATA[gridchart]]></category>
		<category><![CDATA[heatmap]]></category>
		<category><![CDATA[stephenfew]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=47</guid>
		<description><![CDATA[I used a great QV feature for the first time this week &#8211; the Color Mix Wizard. Insofar as it is indeed a Wizard, there&#8217;s not a lot you need to know to use it, but I&#8217;ll walk through the steps I took&#8230; The Grid Chart The objective of this exercise was to come up [...]]]></description>
			<content:encoded><![CDATA[<p>I used a great QV feature for the first time this week &#8211; the Color Mix Wizard. Insofar as it is indeed a Wizard, there&#8217;s not a lot you need to know to use it, but I&#8217;ll walk through the steps I took&#8230;</p>
<h4>The Grid Chart</h4>
<p>The objective of this exercise was to come up with a visualization for looking at the number of survey respondents based on their answers to two different questions. My first attempt was to use a scatter plot, but that failed miserably since my dimensions (the x- and y-axes) were not continuous numbers, but rather ordinal values. Even when I encoded those ordinals as integers, the results were not what I was looking for.</p>
<p>SO&#8230;enter the grid chart.</p>
<p>Having worked through this example helped me clearly articulate the use case for the grid chart &#8211; basically, it is a version of a scatter chart that works for categorical values, be they nominal or ordinal. Nominal values are labels like &#8220;US, UK, FR&#8221; or &#8220;Finance, Sales, Operations.&#8221; Ordinal values are also categories, but can be arranged in a ranked order like &#8220;Under 25, 25-30, 30-35&#8243;. (for more info check out this Wikipedia article <a href="http://en.wikipedia.org/wiki/Nominal_data#The_theory_of_scale_types" target="_blank">Level of measurement</a>)</p>
<p>Here is my grid chart with two dimensions and bare-bones formatting:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/default_grid.gif"><img class="alignnone size-full wp-image-94" title="default_grid" src="http://qlikboard.com/wp-content/uploads/2010/11/default_grid.gif" alt="" width="549" height="454" /></a></p>
<p>Try as I might, I could find no simple way to make each horizontal row the same color&#8230;sigh&#8230;</p>
<h4>Grid Meets Heat</h4>
<p>So that grid chart tells me relatively how many people responded to each combination of question 1 and question 2. And it also provides some correlation information &#8211; for example, there are a large number of respondents falling into x-category: &#8220;18-25,&#8221;Â y-category: &#8220;4-6 hours.&#8221; This information is useful in and of itself, but I also wanted to compare it to their responses to a <strong>third</strong> question &#8211; a simple YES/NO question.</p>
<p>I could have opted for the pie chart style (from the Style tab) &#8230; but I&#8217;m already breaking Stephen Few rules by encoding magnitude as the radii of the bubbles <img src='http://qlikboard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230; best not make it worse with pies. Moreover, I personally don&#8217;t care for the aesthetic of the pie grid. Regardless, had I chosen this route, I could have simply used the third question as a third dimension and the pie chart would have proportioned two &#8220;slices&#8221; of pie &#8211; one for YES and one for NO. And included a legend too.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/pie_grid.gif"><img class="alignnone size-full wp-image-95" title="pie_grid" src="http://qlikboard.com/wp-content/uploads/2010/11/pie_grid.gif" alt="" width="560" height="451" /></a></p>
<p>Instead, I decided to use a varying color saturation on grid bubbles. Since this will require a single number (vs. two categorical values &#8211; YES/NO) I needed a way to encode the survey responses to a single number. Hence I chose to take the ratio of YES responses (i.e. # of YES responses divided by # of ALL responses) which results in a floating point number between 0 and 1.0.</p>
<p>Now with a single number I can use it as a parameter to control color saturation. For example &#8211; I could simply use it as the alpha value (multiplying by 255 or similar), but I wanted finer control &#8230; especially at the &#8220;light&#8221; (faint) end of the scale. This is where the Color Wizard comes in!!</p>
<h4>The Wizard (cue Black Sabbath)</h4>
<p>First of all, it&#8217;s not obvious where to find this wizard&#8230;</p>
<ol>
<li>Expand the properties on the expression</li>
<li>Click on Background Color to open the Expression Editor</li>
<li>Go to the File Menu and you&#8217;ll see the Color Mix Wizard&#8230; menu item</li>
</ol>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/expression_editor_colormix.png"><img class="alignnone size-full wp-image-82" title="expression_editor_colormix" src="http://qlikboard.com/wp-content/uploads/2010/11/expression_editor_colormix.png" alt="" width="509" height="359" /></a></p>
<p>Take some time to play with the wizard &#8211; it may take a few passes to get the effect you want. A couple of key parameters to explore:</p>
<p>Enhanced Colors &#8211; depending on the distribution of your data you may or may not want to select this option. It&#8217;s effect is analogous to a stereo enhancer for audio in that it takes the &#8220;middle&#8221; and pushes it out to both &#8220;sides.&#8221; Which in our case means taking the middle values and pushing them more towards to the upper and lower ends of the colors you&#8217;ve chosen.</p>
<p>Value Saturation (upper/lower) &#8211; again, your use case will dictate how to set this. If your data has long tails, you may want to set these limits so they group the outliers into a common color.</p>
<p>The Color Wizard will generate a piece of code that should look something like this:</p>
<p><code>=ColorMix1 ((rangemin(.8,rangemax([Legend Value] ,.1))-.1)/(.8-.1), ARGB(255, 242, 242, 242), ARGB(255, 128, 0, 0))<br />
</code><br />
You can identify the Value Saturation range values (0.1 and 0.8) and the RGB values for the colors, so if you need to tweak the expression, you can do it directly on the code, instead of re-running the wizard.</p>
<p>NOTE: if you use Enhanced Colors you&#8217;ll get a much lengthier piece of code!</p>
<p>So now I have a true heat map, with the darker red bubbles indicating more YES responses to Question 3:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/heatmap.gif"><img class="alignnone size-full wp-image-84" title="heatmap" src="http://qlikboard.com/wp-content/uploads/2010/11/heatmap.gif" alt="" width="528" height="469" /></a></p>
<h4>Finishing Touch &#8211; The Legend</h4>
<p>Finally, it would be nice to have a more quantitative explanation of the heat levels besides the text: &#8220;darker means more YES responses.&#8221; So, a simple legend can be easily implemented in a straight table chart. This table will have just three columns:</p>
<ul>
<li>the legend label &#8211; like &#8220;&gt; 10%&#8221;</li>
<li>the legend value &#8211; 0.10, 0.20, etc.</li>
<li>a numeric expression (required to use the Chart object)</li>
</ul>
<p>The expression really doesn&#8217;t matter because we&#8217;ll &#8220;white&#8221; it out (i.e. white text on white background).</p>
<p>Here is the load statement for the inline table:</p>
<p><code>LegendSaturation:</code></p>
<p><code>LOAD * INLINE [</code></p>
<p><code>Legend Label, Legend Value</code></p>
<p><code>&lt; 10%, 0.1</code></p>
<p><code>20%, 0.2</code></p>
<p><code>30%, 0.3</code></p>
<p><code>40%, 0.4</code></p>
<div><code>etc...</code></div>
<p><code>Â </p>
<p></code></p>
<p><code>];</code></p>
<p>After reloading the script, create a Chart object and select the Straight Table option. (I like Style = Table 1 for this example.) Choose Legend Label and Legend Value as the two dimensions. The expression column doesn&#8217;t matter, you can use something simple like only([Legend Value]) or sum([Legend Value]).</p>
<p>Now apply the colors&#8230;</p>
<ol>
<li>Expand the formatting options on the Legend Value dimension and edit the Background Color &#8211; you can either use the Color Mix Wizard again, or easier still, just copy the Expression from the Grid Chart object.</li>
<li>Edit the Text Color option and paste in the same color expression from Background Color (this will render the text &#8220;invisible&#8221;)</li>
<li>Go to the Expressions tab and expand the formatting options on the metric and edit the Text Color expression setting it to white() (assuming you&#8217;re using a white background)</li>
</ol>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dimension_properties.gif"><img class="alignnone size-full wp-image-81" title="dimension_properties" src="http://qlikboard.com/wp-content/uploads/2010/11/dimension_properties.gif" alt="" width="287" height="238" /></a></p>
<p>That should do it! Resize the columns a little bit to balance the shape and you should have something that looks like this:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/legend_closeup.gif"><img class="alignnone size-full wp-image-85" title="legend_closeup" src="http://qlikboard.com/wp-content/uploads/2010/11/legend_closeup.gif" alt="" width="97" height="123" /></a></p>
<h4>We Have Arrived</h4>
<p>Finally, putting it all together:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/heat_and_legend.gif"><img class="alignnone size-full wp-image-83" title="heat_and_legend" src="http://qlikboard.com/wp-content/uploads/2010/11/heat_and_legend.gif" alt="" width="563" height="435" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2010/11/30/color-mixology-101-heat-maps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Great v.10 convenience feature &#8211; moving objects</title>
		<link>http://qlikboard.com/2010/11/10/great-v-10-convenience-feature-moving-objects/</link>
		<comments>http://qlikboard.com/2010/11/10/great-v-10-convenience-feature-moving-objects/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 10:54:19 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[version10]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=45</guid>
		<description><![CDATA[Anyone who has worked on front-end development tasks in QlikView knows what a drag it is trying to reposition objects without a caption bar. Well&#8230;those days are done! &#8230; with version 10. In version 10, objects without (or with) captions can be easily moved by holding down the ALT key and dragging them with the [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who has worked on front-end development tasks in QlikView knows what a drag it is trying to reposition objects without a caption bar. Well&#8230;those days are done! &#8230; with version 10.</p>
<p>In version 10, objects without (or with) captions can be easily moved by holding down the ALT key and dragging them with the mouse.</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2010/11/10/great-v-10-convenience-feature-moving-objects/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Highlighting a &#8220;special&#8221; dimension in bar charts</title>
		<link>http://qlikboard.com/2010/11/10/highlighting-a-special-dimension-in-bar-charts/</link>
		<comments>http://qlikboard.com/2010/11/10/highlighting-a-special-dimension-in-bar-charts/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 10:52:17 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[barchart]]></category>
		<category><![CDATA[listbox]]></category>
		<category><![CDATA[stephenfew]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=41</guid>
		<description><![CDATA[A great way to provide your end-users added insight from a bar chart is to highlight a special dimension value. What is a &#8220;special&#8221; dimension value?? For example, if you&#8217;re reporting on market share between your company and competitors, you should highlight &#8220;Our Company&#8221; on the chart.Â Stephen Few has a nice example on this topic [...]]]></description>
			<content:encoded><![CDATA[<p>A great way to provide your end-users added insight from a bar chart is to highlight a <em>special</em> dimension value.</p>
<p>What is a &#8220;special&#8221; dimension value?? For example, if you&#8217;re reporting on market share between your company and competitors, you should highlight &#8220;Our Company&#8221; on the chart.Â <a href="http://perceptualedge.com/" target="_blank">Stephen Few</a>  has a nice example on this topic in &#8220;Information Dashboard Design,&#8221; Chapter 6.</p>
<p>Another example would be if you&#8217;re a Product Manager and are looking at sales figures across various products in the line. By highlighting the specific product that you manage you can see where it stacks up against the rest &#8230; at a glance.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_1.png"><img class="alignnone size-medium wp-image-126" title="dim_highlight_1" src="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_1-300x186.png" alt="" width="300" height="186" /></a></p>
<p>Imagine we really want to focus on Product = Alpha, and let&#8217;s highlight it with a saturated red bar:</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_2.png"><img class="alignnone size-medium wp-image-127" title="dim_highlight_2" src="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_2-300x186.png" alt="" width="300" height="186" /></a></p>
<p>So, naturally we need to figure out how to do this in QlikView, right?!</p>
<h4>Controlling Background Color</h4>
<p>Fortunately there is a nifty feature in the Expression Properties of the Chart object that allows you to dynamically control the Background Color of the bars. And because it itself is an expression you can use if-then logic or any other expression you can conjure.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_0-e1287964077457.png"><img class="alignnone size-full wp-image-135" title="dim_highlight_0" src="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_0-e1287964077457.png" alt="" width="588" height="169" /></a></p>
<p>Here I&#8217;ve chosen to use the red() function, but of course you can use any similar color function or rgb().</p>
<p>So this solution is just fine, except it requires that the dimension of interest be hard-coded into the expression in the chart properties. ThatÂ may be okay for static analysis (like the market share example above &#8211; our company vs. our competitors). But for something that could change frequently (like Product) it would be a much more sustainable solution to be able to dynamically control the dimension of interest.</p>
<h4>Dynamically controlling the dimension of interest</h4>
<p>One way to make the dimension of interest dynamic is to store it in a variable. And then drop an Input Box object on the page. In this example we&#8217;ll call the variable varHighlightedProduct.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_6-e1287964872932.png"><img class="alignnone size-full wp-image-140" title="dim_highlight_6" src="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_6-e1287964872932.png" alt="" width="600" height="78" /></a></p>
<p>Now with a simple change to the Background Color expression &#8211;&gt;</p>
<blockquote><p>if(Product = $(varHighlightedProduct), red(255))</p></blockquote>
<p>we can use an input box to control the highlighted dimension.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_3.png"><img class="alignnone size-full wp-image-128" title="dim_highlight_3" src="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_3.png" alt="" width="580" height="256" /></a></p>
<h4>Another way to dynamically control the dimension of interest</h4>
<p>The variable method works well enough, but changing the value in the input box requires a little bit of typing. Wouldn&#8217;t it be easier if there was a list box object in which the end-user could just select the dimension value of interest?? (answer = &#8220;YES&#8221;)</p>
<p>To build a separate list box we obviously need a data field. That can be easily accomplished with a resident load. Let&#8217;s suppose the sales data are stored in a table MySales, and the dimension field for product name is simply called Product. Then our load statement looks like:</p>
<blockquote><p>HighlightedProduct:</p>
<p>LOAD DISTINCT Product AS [Highlighted Product] RESIDENT MySales;</p></blockquote>
<p>This will load the unique values of Product into a table called HighlightedProduct with one field, [Highlighted Product].</p>
<p>Next, modify the Background Color expression so that it&#8217;s comparing against the selection in [Highlighted Product] &#8211;&gt;</p>
<blockquote><p>if(ProductÂ =Â [Highlighted Product], red(255)).</p></blockquote>
<p>(You could get fancier with this code&#8230;allow multiple selections, restrict the list box to a single value, etc.)</p>
<p>So now we have a very convenient way for the end-user (the Product Manager in this example) to switch the dimension of interest using a simple list box.</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_5.png"><img class="alignnone size-full wp-image-130" title="dim_highlight_5" src="http://qlikboard.com/wp-content/uploads/2010/11/dim_highlight_5.png" alt="" width="518" height="256" /></a></p>
<p>I hope you find this simple example useful. Let me know if you have other ideas around this topic!</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2010/11/10/highlighting-a-special-dimension-in-bar-charts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Associative search in QlikView v.10 list boxes</title>
		<link>http://qlikboard.com/2010/11/10/associative-search-in-qlikview-v-10-list-boxes/</link>
		<comments>http://qlikboard.com/2010/11/10/associative-search-in-qlikview-v-10-list-boxes/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 10:46:52 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[associative]]></category>
		<category><![CDATA[listbox]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[version10]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=25</guid>
		<description><![CDATA[Okay, I confess I didn&#8217;t really &#8220;get&#8221; this feature when I saw it in the webex demo. But after seeing it again at Q Days in San Diego last week, the lightbulb finally turned on for me. I&#8217;ll do my best to explain it, but I highly recommend that you go check it out yourself [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, I confess I didn&#8217;t really &#8220;get&#8221; this feature when I saw it in the webex demo. But after seeing it again at Q Days in San Diego last week, the lightbulb finally turned on for me.</p>
<p>I&#8217;ll do my best to explain it, but I highly recommend that you go check it out yourself at the <a href="http://demo10.qlikview.com" target="_ ">QlikView v.10 demo site</a>. The application &#8220;What&#8217;s New in QV10&#8243; is a good place to start.</p>
<h4>Direct vs. Associative Search</h4>
<p>In version 9 a &#8220;simple&#8221; search function can be achieved by dropping a search object on the page. And then you can configure the properties to search across all fields or narrow it down to specific fields. This is a very effective tool and end-users love it. But it&#8217;s not really associative. By that I mean, it&#8217;s a <em>direct</em> search; i.e. if I&#8217;ve set up the search object to search in the Salesperson field, then I enter some portion of the Salesperson name in the search box. For example, if I know the salesperson&#8217;s name is Sharon something, I type &#8220;*sha*&#8221; and a list of Salespeople with the substring &#8220;sha&#8221; in their name shows up. Make sense?</p>
<p>But what if I don&#8217;t remember any part of the Salesperson&#8217;s name, but I remember some other things associated to the salesperson. Like what they&#8217;ve sold. Or to whom they&#8217;ve sold &#8230;</p>
<p>In version 10 associative search, I can search for Salesperson by entering keywords about <em>other fields</em> that are associated to Salesperson (like Customer, Product, etc.) So in the example above, if I couldn&#8217;t even remember any part of the Salesperson&#8217;s name, BUT I did remember she works in Germany (Business Unit) and sells Milk (Product) and sells to ActiveDesign (Customer) then I can use associative search and hopefully zero-in on her&#8230;</p>
<h4>A Use Case</h4>
<p>This series of screen shots walk through the scenario I outlined above.</p>
<p>Step 1 &#8211; I open the search bar on the Salesperson list box (the magnifying glass) and type &#8220;germa&#8221;</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_1.png"><img class="alignnone size-medium wp-image-115" title="assoc_search_1" src="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_1-300x140.png" alt="" width="300" height="140" /></a></p>
<p>Step 2 &#8211; I click on BusinessUnit_EN =Â GERMANY</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_2.png"><img class="alignnone size-medium wp-image-116" title="assoc_search_2" src="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_2-300x143.png" alt="" width="300" height="143" /></a></p>
<p>Step 3 &#8211; I then type &#8220;milk&#8221; in the same search bar</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_3.png"><img class="alignnone size-medium wp-image-117" title="assoc_search_3" src="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_3-300x140.png" alt="" width="300" height="140" /></a></p>
<p>Step 4 &#8211; I click on Product Sub Group = Milk</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_4.png"><img class="alignnone size-medium wp-image-118" title="assoc_search_4" src="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_4-300x144.png" alt="" width="300" height="144" /></a></p>
<p>Step 5 &amp; 6 &#8211; Finally I type &#8220;activ&#8221; in the search bar andÂ click on Customer = ActiveDesign</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_5.png"><img class="alignnone size-medium wp-image-119" title="assoc_search_5" src="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_5-300x159.png" alt="" width="300" height="159" /></a></p>
<p>Step 7 &#8211; with these associations, my list box has been reduced to one value &#8211; <strong>Sharon Carver</strong> &#8211;&gt; I have my answer!</p>
<p>Step 8 &#8211; Optionally, I can explicitly select Sharon Carver and filter my whole model to her for further analysis</p>
<p><a href="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_6.png"><img class="alignnone size-medium wp-image-120" title="assoc_search_6" src="http://qlikboard.com/wp-content/uploads/2010/11/assoc_search_6-262x300.png" alt="" width="262" height="300" /></a></p>
<h4>A Couple of Points</h4>
<ul>
<li>IMPORTANT &#8211; the selections you make in the search list <em>do not affect the rest of the model</em>. In other words, when I selected BusinessUnit_EN = GERMANY in the search box, my dashboard didn&#8217;t change. (You can watch the Current Selections to verify that.) I suppose that depending on the scenario this could be slightly inconvenient. But I really find it to be useful, because I don&#8217;t want to change my model selections&#8230;I just want to find Salesperson = Sharon Carver, in this example.</li>
<li>I found myself having to type slower than normal in the search box. Not a big deal, but it took a while to get used to. (Maybe it will be more natural in the final v.10 release.)</li>
</ul>
<p>So&#8230;another great feature for end-users coming in version 10!</p>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2010/11/10/associative-search-in-qlikview-v-10-list-boxes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QlikView under the hood</title>
		<link>http://qlikboard.com/2010/11/10/qlikview-under-the-hood/</link>
		<comments>http://qlikboard.com/2010/11/10/qlikview-under-the-hood/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 10:41:06 +0000</pubDate>
		<dc:creator>Bill Lay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[associative]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[qvs]]></category>

		<guid isPermaLink="false">http://qlikboard.com/?p=20</guid>
		<description><![CDATA[One of the great sessions at Q Days 2010 San Diego (yesterday!) was &#8220;QlikView Under the Hood,&#8221; presented by Daniel English of the Product team. I&#8217;m a scientist at heart and really like to know how things tick. Sure, it&#8217;s rewarding to deliver a stunning dashboard to my business partner and hear them say &#8220;wow&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>One of the great sessions at Q Days 2010 San Diego (yesterday!) was &#8220;QlikView Under the Hood,&#8221; presented by Daniel English of the Product team.</p>
<p>I&#8217;m a scientist at heart and really like to know how things tick. Sure, it&#8217;s rewarding to deliver a stunning dashboard to my business partner and hear them say &#8220;wow&#8221; or &#8220;we didn&#8217;t have this type of intell before&#8221; &#8230; but, in the back of my mind I&#8217;m wondering &#8220;how much RAM is this really consuming?&#8221; Â :)</p>
<p>So, this session addressed some questions. The two big takeaways for me were:</p>
<ol>
<li>QV Server (QVS) caching &#8211; if you happen to be sitting around, watching the Perf Mon on your QVS machine you will likely notice RAM activity growing and growing. And then freak out that QVS is leaky. Well, it turns out, this is exactly the correct behavior for QVS. What happens is that when a document is opened, and the user starts clicking or changing tabs, each of those results (aggregations) get cached. And QVS will continue to cache until all the available RAM is consumed or the document times-out from disuse. (Or if the QVS is rebooted &#8211; duh.) If another document comes into scope, or another user starts asking different question of the same document, then QVS starts dropping cached aggregates to make room for the new stuff. (How it drops it was not specified &#8211; oldest first? or least re-used first?)</li>
<li>&#8220;Associative&#8221; &#8211; what does this really mean? Is it just marketing hype? Without debating the semantics, QlikView&#8217;s model is a very unique, very novel concept. Here&#8217;s how I think of it, in good old-fashioned SQL terms&#8230; Imagine I write a SQL query with <strong>every</strong> <strong>table</strong> in my data mart &#8211; every fact, every dimension. And I have join conditions to join every table (using a full outer join). And then I start dynamically changing bits of the WHERE clause. <strong>That</strong> is what associative analysis means. And we change the WHERE clause in QlikView, figuratively speaking, by clicking on selectors.</li>
</ol>
<p>So yeah, Associative really does mean something different than most SQL query tools. Unless of course your SQL tools allows you to query every table in your mart simultaneously <img src='http://qlikboard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ol></ol>
]]></content:encoded>
			<wfw:commentRss>http://qlikboard.com/2010/11/10/qlikview-under-the-hood/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
