<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://spotfire.tibco.com/community/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tip of the Week</title><link>http://spotfire.tibco.com/community/blogs/tips/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Adding a Filter Control into a Text Area</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2012/01/25/adding-a-filter-control-into-a-text-area.aspx</link><pubDate>Thu, 26 Jan 2012 01:21:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:9270</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=9270</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2012/01/25/adding-a-filter-control-into-a-text-area.aspx#comments</comments><description>&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;Many times authors will want to
allow a user to filter out values in a given column, but they do not want to
expose the Filter Panel, as it can add confusion and complexity for a consumer.
The workaround has been to use a Property Control to provide this capability
from within a Text Area. This solution had a series of unwanted side effects if
it was not setup properly.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;In 4.0, we now have the ability to
embed a Filter for a specific Column directly into a Text Area. &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;This also allows authors to make efficient use
of space and hide the Filter Panel. In addition, all the controls for a
consumer are located in the same place, making it easier for them to control
the dashboard.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;To add a Filter to the Text Area, select
the new ‘Filter Control’ icon from the edit Ribbon inside a Text Area.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;mso-no-proof:yes;"&gt;&lt;img height="112" width="624" alt="" /&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/filterInText1.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/filterInText1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;You are then presented with a
dialog box which allows you to specify which filtering scheme to use and then
which filter you wish to add to the Text Area.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;mso-no-proof:yes;"&gt;&lt;img height="294" width="431" alt="" /&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;a href="http://spotfire.tibco.com/community/blogs/tips/filterInText2.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/filterInText2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;Once you do that, the Filter
Control will show up in the Text Area.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/filterInText3.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/filterInText3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;mso-no-proof:yes;"&gt;&lt;img height="174" width="218" alt="" /&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;While in Edit mode for the Text
Area you can move the Filter around.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;You
cannot alter the Filter Text (ie. List Box, Radio Button, Checkbox, etc…)
however.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11.0pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-latin;"&gt;The Filter is a copy of the Filter
instance from the Panel, so if you want to update the Filter Type, you need to
do it from within the Filter Panel inside Spotfire Professional. That will then
automatically update the Filter Type from within the Text Area.&lt;br style="mso-special-character:line-break;" /&gt;
&lt;br style="mso-special-character:line-break;" /&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The use of the Filter should be
identical to the Filter in the Filter Panel, with a few minor exceptions. When
dragging a range slider in the Filter Panel, the visualizations are updated
immediately while the dragging is still going on. The Text Area version will
only update the visualizations when the dragging is finished.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt; Interested in learning more about the new features of TIBCO Spotfire for version 4.0? If so, attend our live training webinar on February 29th. Click &lt;a href="http://inter.viewcentral.com/reg/TIBCO/40delta"&gt;here &lt;/a&gt;for details. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyText"&gt;&lt;span style="font-size:11pt;line-height:125%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=9270" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Filter+Control/default.aspx">Filter Control</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Text+Area/default.aspx">Text Area</category></item><item><title>Guiding the User Through an Analysis Without Showing all Pages Available</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2012/01/07/guiding-the-user-through-an-analysis-without-showing-all-pages-available.aspx</link><pubDate>Sat, 07 Jan 2012 07:48:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:9095</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=9095</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2012/01/07/guiding-the-user-through-an-analysis-without-showing-all-pages-available.aspx#comments</comments><description>&lt;p&gt;When setting up an analysis file, there are times when you want the consumer to be guided through the analysis&lt;br /&gt;and not be distracted by the different pages available to click through. In version 4.0, this can be accomplished&lt;br /&gt;by setting the Page Navigation mode to ‘None’.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/noPage1.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/noPage1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you do this, you will then need to use an Action Control or Script Control to navigate between pages.&lt;br /&gt;&lt;br /&gt;NOTE: Users inside Spotfire Professional can simply switch the Page Navigation mode, but consumers using&lt;br /&gt;the Web Player will be forced to use the mode saved for the given Analysis file.&lt;br /&gt;&lt;br /&gt;Below is an example of an Action Control being configured in a Text Area to go to the ‘Solutions 1’ page when it&lt;br /&gt;is executed.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/nopage2.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/nopage2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In addition to Action Controls, you can also use Script Controls to redirect users. You also have the ability with,&lt;br /&gt;with Script Controls, to leverage the APIs to perform various tasks and do additional checks. For example, if your&lt;br /&gt;workflow requires you to mark some data on the first page before proceeding, you can have the script check if&lt;br /&gt;there is any data marked. If there is the user is navigated to the correct page and if there is not, you can output a&lt;br /&gt;message via a Label Property Control to the user that they need to mark data to continue. Another possible&lt;br /&gt;example using Script Controls for navigation could be that the script checks the value of a document property or&lt;br /&gt;similar which is previously set, and based off that value, it navigates the user to the appropriate page. This will&lt;br /&gt;allow the creation of branched analysis files which are less confusing for users to navigate.&lt;br /&gt;&lt;br /&gt;In addition to Action Controls and Script Controls, the page navigation will also work from the ‘Actions’ capability&lt;br /&gt;of a Graphical Table. We will discuss Actions in a Graphical Table in a future tip. Currently, Actions are only&lt;br /&gt;supported inside the Graphical Table and not other Visualizations.&lt;br /&gt;&lt;br /&gt;Another related new feature in version 4.0 is the concept of historical navigation. This is a method using back and&lt;br /&gt;forward arrows, available on the navigation toolbar, to go back to previous pages to support exploration.&lt;br /&gt;&lt;br /&gt;The navigation is specific to the user logged in and the history only is valid for the user’s session. To start with&lt;br /&gt;the back and forward arrow buttons are disabled when the analysis is first loaded.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/nopage3.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/nopage3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;As the user traverses the Analysis file, the back and forward buttons become enabled.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/nopage4.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/nopage4.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In 4.0 the historical navigation buttons exist as a separate navigation mode that is always enabled in addition to&lt;br /&gt;one of the other navigation modes (Tiled, Step-by-Step, or None). If an author wants to setup a purely historical&lt;br /&gt;navigation mode, then they should set the Page navigation option to None.&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=9095" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/4.0/default.aspx">4.0</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Action+Controls/default.aspx">Action Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Hiding+Pages/default.aspx">Hiding Pages</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Page+Navigation/default.aspx">Page Navigation</category></item><item><title>Executing Scripts within other Scripts</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/12/26/executing-scripts-within-other-scripts.aspx</link><pubDate>Mon, 26 Dec 2011 15:54:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:8696</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=8696</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/12/26/executing-scripts-within-other-scripts.aspx#comments</comments><description>&lt;p&gt;There are some situations where you will want to execute a script from within another script. This could be to combine multiple scripts into one single action call (from a button, link, or image inside a Text Area), or it could be to enable the execution of various scripts based off some logic checks inside a master script.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The following script will execute another script (name ‘secondScript’ that already exists and is stored inside the same Spotfire Analysis file):&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;from System.Collections.Generic import Dictionary&lt;br /&gt;from Spotfire.Dxp.Application.Scripting import ScriptDefinition&lt;br /&gt;import clr&lt;br /&gt;scriptDef = clr.Reference[ScriptDefinition]()&lt;br /&gt;#The ExecuteScript method takes in the script code as a string parameter, so we must look the script up and output its code using the ScriptCode property &lt;br /&gt;Document.ScriptManager.TryGetScript(&amp;quot;secondScript&amp;quot;, scriptDef)&lt;br /&gt;params = Dictionary[str, object]()&lt;br /&gt;Document.ScriptManager.ExecuteScript(scriptDef.ScriptCode, params)&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;The code above assumes that the script, secondScript, has no parameters being passed into it. Let’s assume that we have another script, called thirdScript, which takes in one string parameter, named “phrase”. We will need to update our code to pass in that parameter, as shown below:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;from System.Collections.Generic import Dictionary&lt;br /&gt;from Spotfire.Dxp.Application.Scripting import ScriptDefinition&lt;br /&gt;import clr&lt;br /&gt;scriptDef = clr.Reference[ScriptDefinition]()&lt;br /&gt;Document.ScriptManager.TryGetScript(&amp;quot;thirdScript&amp;quot;, scriptDef)&lt;br /&gt;paramDict = {&amp;quot;phrase&amp;quot;:&amp;quot;Hey there&amp;quot;} &lt;br /&gt;params = Dictionary[str, object](paramDict)&lt;br /&gt;Document.ScriptManager.ExecuteScript(scriptDef.ScriptCode, params)&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=8696" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Script+Controls/default.aspx">Script Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Executing+Scripts/default.aspx">Executing Scripts</category></item><item><title>Information At a Glance with Graphics Tables</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/12/10/information-at-a-glance-with-graphics-tables.aspx</link><pubDate>Sat, 10 Dec 2011 23:46:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:8556</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=8556</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/12/10/information-at-a-glance-with-graphics-tables.aspx#comments</comments><description>&lt;p&gt;Many managers and consumers need methods to quickly see the state of their business, including Key Performance Indictors (KPI). In addition, they may need to quickly spot changes in these values over time and also whether the values are trending up or down.&lt;br /&gt;This can be done in TIBCO Spotfire 4.0 using the new Graphical Table visualization. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Graphical Tables are a new visualization provided in TIBCO Spotfire 4.0 which is designed to provide information at a glance. The Graphics Table is a table-based visualization that has a categorical row axis which defines the rows and a collection of &amp;#39;miniature Visualizations&amp;#39; that defines the columns of the table. Supported miniature visualizations are Sparklines, Icons, and Calculated Values.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;To see this in action, let’s assume we are managing a weight loss program which measures the participants’ weights over time. Below shows the data in a Line Chart:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now let’s see what we can do with the new Graphical Table. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/gtable.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/gtable.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;First we need to add the ‘Participant’ column to the Row’s Axis.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable1.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;Then on the Columns’ Axis, we start by adding a Sparkline.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable2a.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable2a.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;The Sparkline can be configured by clicking on the ‘Settings’ button with the Sparkline column highlighted. In our example, we put Months on the X-Axis and then we put the &lt;i&gt;Sum(Weight in kg) &lt;/i&gt;expression on the Y-Axis.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable3.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;The resulting Sparkline column is shown below:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable4.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable4.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Next we may want to display whether or not participants in the study are trending up or down, or whether there has been no change.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;We can add another miniature visualization into the Graphical Table using the ’Icon’ option:&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable9.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable9.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To specify which Icons show up, we can use unique values in a column, or an expression. In this case, we will need to use a custom expression.&amp;nbsp; We will enter the following expression in the ’Calculate icons using’ field.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;(ValueForMin([Date],[Weight in kg]) - ValueForMax([Date],[Weight in kg]))&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;We will then add rules, which are similar to the conditional coloring rules, to set specific icons&amp;nbsp; and colors for Greater than 0, Equal to 0, and Less than 0.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable10.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable10.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable11.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable11.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable11.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Next we may want to display each participant’s percent change. For this, we will use the ‘Calculated Value’ option.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable2.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;After we add the Calculated Value, we can set the value’s expression using the ‘Settings’ button.&amp;nbsp; The expression used is :&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;i&gt;(ValueForMin([Date],[Weight in kg]) - ValueForMax([Date],[Weight in kg])) / ValueForMin([Date],[Weight in kg])&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Finally, we can then set the formatting for this to be a Percentage. We will also add a Rule to set the color all values that are Less than 0 to be red.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable12.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable12.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/graphicsTable13.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/graphicsTable13.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=8556" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/4.0/default.aspx">4.0</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Information+At+a+Glance/default.aspx">Information At a Glance</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Graphics+Table/default.aspx">Graphics Table</category></item><item><title>Limiting Data to Display in Visualizations in TIBCO Spotfire 4.0</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/11/21/limiting-data-to-display-in-visualizations-in-tibco-spotfire-4-0.aspx</link><pubDate>Tue, 22 Nov 2011 01:45:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:8360</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=8360</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/11/21/limiting-data-to-display-in-visualizations-in-tibco-spotfire-4-0.aspx#comments</comments><description>&lt;p&gt;There are often scenarios where you will need to limit the data to display in a given visualization.&amp;nbsp; In most of the approaches, the solution is to filter data. However, this filtering is not directly tied to a visualization.&amp;nbsp; Rather, it is tied&amp;nbsp; to a&amp;nbsp; Filtering Scheme, which affects an entire page or pages.&amp;nbsp; In TIBCO Spotfire 4.0, there are two new features that allow you to easily filter data in a specific visualization, without affecting the data to display in other visualizations.&lt;/p&gt;
&lt;p&gt;Suppose we are looking at sales across four regions: East, Central, and West.&amp;nbsp; For each location, you may want to show a visualization like the following:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter1.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter1.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;If you trellis, you can show a the data split by region, but you do not get the ideal user interface you are looking for. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter2.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter2.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;You can setup Filtering Schemes for each region:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter3.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter3.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;But you are not able to see your information at a glance on the same page as you can only apply one Filtering Scheme per page.&lt;/p&gt;
&lt;p&gt;There are a couple options in Spotfire 4.0 which allow you to display the visualizations for each region on the same page. &lt;/p&gt;
&lt;p&gt;First, you can now apply a Filtering Scheme to a specific visualization (as opposed to just a page).&lt;/p&gt;
&lt;p&gt;In the properties dialog of the visualization, in the ‘Data’ section, you can choose which Filtering Scheme(s) to apply specific to that visualization.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter4.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter4.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;You can also select the ‘Use the current filtering from the page’ option so the visualization will update with the Filter Panel interactions as well (or you can uncheck all checkboxes for limiting data, and create a visualization that does not get affected by filtering changes at all).&lt;/p&gt;
&lt;p&gt;With this we can now create 3 duplicate visualizations, each with the setting to only display data from the East, West, and Central Filtering Schemes respectively.&amp;nbsp; &lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter4a.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter4a.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, this does still require us to manually create 3 Filtering Schemes: East, Central, and APJ, and then, set the correct filtering for each scheme.&amp;nbsp; So, the second option for setting this up is to use the new ‘Limit data using Expression’ feature that is built into each visualization.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter5.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter5.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;This allows you to create an expression which evaluates to True or False, to limit what data is being shown. In our example we want to use an expression like the following:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/4.0Filter6.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/4.0Filter6.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;em&gt;if ([Region] = “East” , True, False)&lt;br /&gt;&lt;/em&gt;&amp;nbsp;&lt;br /&gt;This will limit the data shown in the visualization to be data where the ‘Region’ is East, and will not show any other data. &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=8360" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Filtering+Schemes/default.aspx">Filtering Schemes</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Limit+Data/default.aspx">Limit Data</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/4.0/default.aspx">4.0</category></item><item><title>Creating Property Control Groups that do not automatically update Expressions and Calculations</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/11/13/creating-property-controls-which-will-not-trigger-updates-to-an-expression.aspx</link><pubDate>Mon, 14 Nov 2011 01:54:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:8256</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=8256</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/11/13/creating-property-controls-which-will-not-trigger-updates-to-an-expression.aspx#comments</comments><description>&lt;p&gt;In certain scenarios, there is a requirement to have multiple Property Controls that drive a given analysis file. The values behind these Property Controls will all be used in a series of expressions and calculations.&amp;nbsp; However, the way these expressions and calculations works means that they will be recalculated each time the property values change.&amp;nbsp; This is OK in some situations, but in many scenarios you want to trigger the update after all Property Control values have been updated (or at least allow the user to define when to update).&lt;br /&gt;&lt;br /&gt;This can be accomplished by making two sets of properties: the first set will be attached to the Property Controls in the User Interface and the second will be attached to the expressions and calculations. We then use a Script Control to allow the user to click on a button, and pass the values from the UI properties to the properties which are driving the expression. This would create a flow similar to a user filling out and submitting a form on a Web page. Once the Script is executed, the expressions and calculations are updated.&amp;nbsp; &lt;/p&gt;&lt;p&gt;To highlight this use case, we will use the Spotfire Educational Services online Training Needs Assessment calculator.&amp;nbsp; This calculator can be found at&amp;nbsp; &lt;a href="http://spottrain.tibco.com/SpotfireWeb/ViewAnalysis.aspx?file=kevin/TNA"&gt;http://spottrain.tibco.com/SpotfireWeb/ViewAnalysis.aspx?file=kevin/TNA&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;The calculator uses a series of Property Controls to query the user about the number of users they have for each role.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://spotfire.tibco.com/community/blogs/tips/fakeProperties1.png" border="0" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;We then use a calculation which takes into account all the values from the first page to calculate the total number of passports a customer should purchase to cover their training needs.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The expression used for the calculation is shown below:&lt;/p&gt;&lt;p&gt;&lt;i&gt;case [Role]&lt;br /&gt;when &amp;quot;Administrator&amp;quot; then ([Pathway Days]*${&lt;/i&gt;&lt;i&gt;intNbrAdminsUI&lt;/i&gt;&lt;i&gt;})&lt;br /&gt;when &amp;quot;DBA&amp;quot; then ([Pathway Days]*${i&lt;/i&gt;&lt;i&gt;ntNbrDbasUI&lt;/i&gt;&lt;i&gt;})&lt;br /&gt;when &amp;quot;Developer Basic&amp;quot; then ([Pathway Days]*${intNbrBasicDevsUI})&lt;br /&gt;when &amp;quot;Developer Advanced&amp;quot; then ([Pathway Days]*${intNbrAdvDevsUI})&lt;br /&gt;when &amp;quot;Analyst&amp;quot; then if (&amp;quot;${nbrNeedExpressions}&amp;quot;=&amp;quot;Yes&amp;quot;,(([Pathway Days]+1)*${intNbrAnalystsUI}), (([Pathway Days])*${intNbrAnalystsUI}))&lt;br /&gt;when &amp;quot;Author&amp;quot; then ([Pathway Days]*${intNbrAuthorsUI})&lt;br /&gt;when &amp;quot;Business User&amp;quot; then ([Pathway Days]*${intNbrConsumersUI})&lt;br /&gt;else 0&lt;br /&gt;end&lt;/i&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;All of the variables in the expression above, like ${intNbrAdminsUI}, are attached to the Property Controls on the first page.&amp;nbsp; The output is then displayed on the second page: &lt;br /&gt;&lt;/p&gt;&lt;p&gt;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://spotfire.tibco.com/community/blogs/tips/fakeProperties2.png" border="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;In this scenario, the expression will re-calculate everytime a user changes a value in one of the Property Controls on the first page. If this was an analysis with a lot of data, this could become inefficient.&amp;nbsp;&amp;nbsp; A similar issue would happen if the values from the Property Control were not being used in an expression, rather they were being passed to a Data Function to perform calculations outside Spotfire.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;One solution to have the expression or function only update once is to have the expression use a separate set of properties than what are exposed via the Property Controls.&amp;nbsp; We then add a Script Control, and have the script go through the properties used in the expression and update them with the values from the properties used in the Property Controls.&amp;nbsp; The script we used to do this for the Needs Assessment example is shown below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Document.Properties[&amp;quot;intNbrAdminsExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrAdminsUI&amp;quot;]&lt;br /&gt;
Document.Properties[&amp;quot;intNbrDbasExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrDbasUI&amp;quot;]&lt;br /&gt;
Document.Properties[&amp;quot;intNbrConsumersExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrConsumersUI&amp;quot;]&lt;br /&gt;
Document.Properties[&amp;quot;intNbrAnalystsExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrAnalystsUI&amp;quot;]&lt;br /&gt;
Document.Properties[&amp;quot;intNbrAuthorsExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrAuthorsUI&amp;quot;]&lt;br /&gt;
Document.Properties[&amp;quot;intNbrBasicDevsExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrBasicDevsUI&amp;quot;]&lt;br /&gt;
Document.Properties[&amp;quot;intNbrAdvDevsExpr&amp;quot;] = Document.Properties[&amp;quot;intNbrAdvDevsUI&amp;quot;]&lt;/i&gt;&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=8256" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Script+Controls/default.aspx">Script Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Property+Controls/default.aspx">Property Controls</category></item><item><title>Displaying Property Controls inside HTML Tables</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/10/16/displaying-property-controls-inside-html-tables.aspx</link><pubDate>Mon, 17 Oct 2011 01:03:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:7880</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>23</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=7880</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/10/16/displaying-property-controls-inside-html-tables.aspx#comments</comments><description>&lt;p&gt;In &lt;a href="http://spotfire.tibco.com/community/blogs/tips/archive/2010/05/15/creating-a-html-editor-for-your-text-areas.aspx" target="_blank"&gt;previous tips&lt;/a&gt;, we have discussed how you can add HTML directly into a Text Area.&amp;nbsp; To take this one step further, you may want to take Property Controls that you have already created and then add them into a HTML table or CSS positioning element to provide a more exact and better looking layout.&amp;nbsp; This tip will explain how that can be accomplished.&lt;br /&gt;&lt;br /&gt;First, you should start by building the Property Controls which you wish to use.&amp;nbsp; This can include any combinations of the built-in Property Controls and Action Controls.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp1.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;Then, using what you learned in the &lt;a href="http://spotfire.tibco.com/community/blogs/tips/archive/2010/05/15/creating-a-html-editor-for-your-text-areas.aspx" target="_blank"&gt;previous tip&lt;/a&gt; we mentioned, you will need to retrieve the HTML code that was generated for this Text Area, using a Script Control.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;i&gt;from Spotfire.Dxp.Application.Visuals import HtmlTextArea&lt;br /&gt;vis = ta.As[HtmlTextArea]()&lt;br /&gt;Document.Properties[&amp;quot;display&amp;quot;] = vis.HtmlContent&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This will store the HTML Content in a input field (multiple line) Property Control:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp2.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Once you have the HTML content, you can now update it as you see fit: adding Tables, DIV tags, and styles. When you have the HTML content rewritten , you can now re-apply it back to the original text area.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This is done using another script, which takes the same input field Property Control as input and then rights the code back into the original Text Area to be rendered.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;from Spotfire.Dxp.Application.Visuals import HtmlTextArea&lt;br /&gt;vis = ta.As[HtmlTextArea]()&lt;br /&gt;vis.HtmlContent = Document.Properties[&amp;quot;display&amp;quot;]&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp3.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;Once you do this, you will see the output includes the Property Controls inside an HTML table. &lt;br /&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp4.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/dynamicHTMLProp4.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Intersted in learning more about Property Controls and other authoring features? Sign up for our &lt;a href="https://inter.viewcentral.com/Events/cust/search_results.aspx?app_id=3&amp;amp;postingForm=default.aspx&amp;amp;cid=tibco&amp;amp;pid=1&amp;amp;lid=4&amp;amp;bu_id=1&amp;amp;event_id=592" target="_blank"&gt;Authoring Bootcamp&lt;/a&gt;. Sessions in both EMEA and North America are scheduled to start this week. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=7880" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Script+Controls/default.aspx">Script Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Property+Controls/default.aspx">Property Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Display+Property+Controls+in+HTML+Tables/default.aspx">Display Property Controls in HTML Tables</category></item><item><title>Formatting Values in Tooltips</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/10/02/formatting-values-in-tooltips.aspx</link><pubDate>Sun, 02 Oct 2011 23:55:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:7736</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=7736</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/10/02/formatting-values-in-tooltips.aspx#comments</comments><description>&lt;p&gt;In this tip we will discuss how to update the formatting on a Visualization&amp;#39;s tooltips. Assume&amp;nbsp; we have a Bar Chart which displays the sum of sales for each year in our data table. &lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/tooltip1.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/tooltip1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;What if we then want to change the y-axis to show the Percentage of Total Sales for each year. This would require changing the y-axis to a custom expression using the OVER function:&lt;/p&gt;&lt;p&gt;&lt;i&gt;Sum([Sales]) / Sum([Sales]) OVER (All([Axis.X]))&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/tooltip2.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/tooltip2.png" border="0" alt="" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The formatting will still stay as a currency type (as that is what it was when we started), so we will need to update the formatting to percentage on the y-axis:&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/tooltip3.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/tooltip3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;That will fix the formatting on the axis and the Bar Chart labels, but will not update the tooltip:&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/tooltip4.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/tooltip4.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;To update the tooltip, we will have to add another tooltip entry with a custom expression:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;i&gt;Concatenate((Sum([Sales]) / Sum([Sales]) OVER (All([Axis.X]))) * 100,&amp;quot; %&amp;quot;)&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/tooltip5.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/tooltip5.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In this expressoin we take the original expression, multiply it by 100 to get to a percentage and then actually output a string with is that resulting value concatendated with a % character. &lt;/p&gt;&lt;p&gt;In addition, we will have to update the original ‘Sales’ column data type from ‘Currency’ to ‘Number’. When this is done, you will see the tooltip (shown below), will be updated with the proper formatting.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/tooltip6.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/tooltip6.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;To learn more about TIBCO Spotfire Professional features, watch our newly updated &lt;a href="http://spottrain.tibco.com/sln/course/view.php?id=85"&gt;TIBCO Spotfire Professional Jumpstart&lt;/a&gt;. This is a free eLearning course which covers the breadth of capabilities available in TIBCO Spotfire. Follow the link below to watch and when prompted, login as a guest.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spottrain.tibco.com/sln/course/view.php?id=85"&gt;http://spottrain.tibco.com/sln/course/view.php?id=85&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=7736" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Tooltips/default.aspx">Tooltips</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Formatting/default.aspx">Formatting</category></item><item><title>Dynamically Updating Fixed Values in a Drop-down list Property Control</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/09/25/dynamically-updating-fixed-values-in-a-drop-down-property-control.aspx</link><pubDate>Sun, 25 Sep 2011 20:19:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:7528</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=7528</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/09/25/dynamically-updating-fixed-values-in-a-drop-down-property-control.aspx#comments</comments><description>&lt;p&gt;There are some situations where you will want to have a Drop-down list Property Control display fixed values. This is easily accomplished by using the ‘Fixed values’ option for setting the property value, and then entering your fixed values and their display names. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown1.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown1.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In other situations, you may want those fixed values to update depending on certain conditions.&amp;nbsp; It could be that you only want to show some of them at any given point in time, or it could be that you want the values to completely change based off some other logic in your analysis file.&amp;nbsp; This can also be accomplished. It does require more work, but does not necessarily require a Script Control. We will learn how to do this in this tip.&amp;nbsp; NOTE: If you want the Property Control values to update dynamically but show values in a column (as opposed to fixed values), this can be accomplished another way. Please see &lt;a href="http://spotfire.tibco.com/community/blogs/tips/archive/2010/06/06/cascading-property-control-drop-downs.aspx"&gt;this tip&lt;/a&gt; for how to do that.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Let’s assume for this example you will want to update fixed values displayed in one Property Control based off a selection in another Property Control. The first Property Control will display the following fixed values:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;&amp;nbsp;“All time”, “Year”, “Quarter” and “Month”&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;We then want to create a second Property Control. In that Property Control, the values should also be fixed values, but if the first Property Control has “All time” selected, the second Property Control should show all possible values. If the first Property Control&amp;nbsp; has “Year” selected, the second Property Control should show “Year”,”Quarter”, and “Month”. If the first Property Control has “Quarter” selected, the second Property Control should show “Quarter” and “Month”. Finally, if the first Property Control has “Month” selected, the second Property Control should only show “Month”. This type of scenario is good when you are trying to do complex calculations, like Year over Year or Year over Month, when only certain combinations are valid.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To setup this second Property Control, we need to first create a calculated column. Ideally we would do this in a new data table, but it can be in the existing data table. Call the column PropertyControlValues, and use the following calculation, assuming ${dd1} is the name of the Property attached to your first Property Control you just created. &lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Case when &amp;quot;${dd1}&amp;quot; = &amp;quot;All time&amp;quot; and RowId() = 1 then &amp;quot;All Time&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;All time&amp;quot; and RowId() = 2 then &amp;quot;Year&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;All time&amp;quot; and RowId() = 3 then &amp;quot;Quarter&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;All time&amp;quot; and RowId() = 4 then &amp;quot;Month&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;Year&amp;quot; and RowId() = 1 then &amp;quot;Year&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;Year&amp;quot; and RowId() = 2 then &amp;quot;Quarter&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;Year&amp;quot; and RowId() = 3 then &amp;quot;Month&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;Quarter&amp;quot; and RowId() = 2 then &amp;quot;Quarter&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;Quarter&amp;quot; and RowId() = 3 then &amp;quot;Month&amp;quot;&lt;br /&gt;when &amp;quot;${dd1}&amp;quot; = &amp;quot;Month&amp;quot; and RowId() = 3 then &amp;quot;Month&amp;quot;&lt;br /&gt;else&lt;br /&gt;null&lt;br /&gt;end&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;When this is created, the calculated column will update when the Property Control is updated.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown2.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown2.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Then you can create another Drop-down list Property Control. This one should display values using the ‘Unique values in column’ option and point to the calculated column that we just created.&lt;br /&gt;The end result is that the second Property Control will only display values that are valid based off the first Property Control.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown3.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown3.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As another example suppose as part of our Guided Analysis, we want to update some attributes like what unit of measurement to use.&amp;nbsp; By changing the unit of measurement, we will have to apply a calculation to all our relevant data.&amp;nbsp; Suppose you have many different attributes you need to measure, like Temperature, Weight, Time, Distance, etc…&amp;nbsp; Rather than creating a unique drop down combination for each, you can use the approach in this tip to create one group of drop downs and then update the values accordingly.&lt;/p&gt;&lt;p&gt;In the image below, the user has selected to update the temperature, so the second property control shows both ‘Fahrenheit’ and ‘Celsius’.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown4.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown4.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;If the user has selected to update the weight, the second Property Control will show ‘Kilograms’ and ‘Pounds’.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown5.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/dynamicDropDown5.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The expression used for this calculated column, assuming the first Property Control is called “whichMeasurement” is:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Case when &amp;quot;${whichMeasurement}&amp;quot; = &amp;quot;temperature&amp;quot; and RowId() = 1 then &amp;quot;Celsius&amp;quot;&lt;br /&gt;when &amp;quot;${whichMeasurement}&amp;quot; = &amp;quot;temperature&amp;quot; and RowId() = 2 then &amp;quot;Fahrenheit&amp;quot;&lt;br /&gt;when &amp;quot;${whichMeasurement}&amp;quot; = &amp;quot;weight&amp;quot; and RowId() = 1 then &amp;quot;Pounds&amp;quot;&lt;br /&gt;when &amp;quot;${whichMeasurement}&amp;quot; = &amp;quot;weight&amp;quot; and RowId() = 2 then &amp;quot;Kilograms&amp;quot;&lt;br /&gt;else&lt;br /&gt;null&lt;br /&gt;end&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;For more information on&amp;nbsp;using Property Controls and other advanced techniques such as these, please consider&amp;nbsp;registering for&amp;nbsp;our &lt;a href="https://inter.viewcentral.com/Events/cust/search_results.aspx?app_id=3&amp;amp;postingForm=default.aspx&amp;amp;cid=tibco&amp;amp;pid=1&amp;amp;lid=4&amp;amp;bu_id=1&amp;amp;event_id=592"&gt;Author Bootcamp&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=7528" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Property+Controls/default.aspx">Property Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Fixed+values/default.aspx">Fixed values</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Dynamic+Drop-down+lists/default.aspx">Dynamic Drop-down lists</category></item><item><title>Displaying Images in a Label Property Control</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/09/12/displaying-images-in-a-label-property-control.aspx</link><pubDate>Tue, 13 Sep 2011 02:30:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:7390</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=7390</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/09/12/displaying-images-in-a-label-property-control.aspx#comments</comments><description>&lt;p&gt;In last week’s post, we learned how to create custom Property Controls in the form of Radio Buttons and Checkboxes.&amp;nbsp; As it turns out, this solution works well using the Web Player from Internet Explorer, but the wingdings fonts do not display as they should in Firefox or Chrome.&amp;nbsp; To correct this, and to learn another nice feature, we will replace the wingding fonts with a graphic in the Label Property Control.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;This can be&amp;nbsp;accomplished out of the box using a Data Function, but that requires S+ or R and the TIBCO Spotfire Statistics Server. If you do not have those, or you just want to use something more lightweight, a script can be used. The code below can be used in a script control. It will take an image,&amp;nbsp;specified&amp;nbsp;via a &amp;nbsp;URL, and will place it in a Binary Document Property.&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;from System.Drawing import Image&lt;br /&gt;from System import Uri &lt;br /&gt;from System.Net import HttpWebRequest&lt;br /&gt;from Spotfire.Dxp.Data&amp;nbsp; import BinaryLargeObject&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;uri = Uri(&amp;quot;&lt;/em&gt;&lt;em&gt;&lt;a href="http://spotfire.tibco.com/community/Downloads/radioOn.png"&gt;http://spotfire.tibco.com/community/Downloads/radioOn.png&lt;/a&gt;&lt;/em&gt;&lt;em&gt;&amp;quot;)&lt;br /&gt;request = HttpWebRequest.Create(uri)&lt;br /&gt;response = request.GetResponse()&lt;br /&gt;stream = response.GetResponseStream()&lt;br /&gt;blob = BinaryLargeObject.Create(stream)&lt;br /&gt;Document.Properties[&amp;quot;testImage&amp;quot;] = blob&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you then attach this Binary Property to a Label Property Control, the image will appear, and will work in the Web Player as well in all supported browsers. To see the same example as last week updated to work using this new approach, take a look at: &lt;a href="http://spottrain.tibco.com/SpotfireWeb/ViewAnalysis.aspx?file=/kevin/TNA"&gt;http://spottrain.tibco.com/SpotfireWeb/ViewAnalysis.aspx?file=/kevin/TNA&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;This opens the door for a new set of features, where you can rotate through images based off some logic. This can lead to a custom-traffic light visualization, Radio Button and Checkbox Property Controls, and other solutions where you need to rotate or display different images based off of data.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=7390" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Script+Controls/default.aspx">Script Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Property+Controls/default.aspx">Property Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Labels/default.aspx">Labels</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Images/default.aspx">Images</category></item><item><title>Creating Radio Button and Checkbox Property Controls</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/09/05/creating-radio-button-and-checkbox-property-controls.aspx</link><pubDate>Tue, 06 Sep 2011 01:31:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:6948</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=6948</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/09/05/creating-radio-button-and-checkbox-property-controls.aspx#comments</comments><description>&lt;p&gt;This is the first post after the Tip of the Week blog’s summer hiatus.&amp;nbsp; We are back now and will start out with a series of tips related to using Text Areas to create Guided Analysis files. In this first tip back we will discuss how to create new Property Control types (radio buttons and check boxes) using a combination of Document Properties, Labels, and Scripts. While these are not truly built-in Property Controls, they do work and function properly.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;In this first example we will look at building a radio button. The first thing we need to do is create two new Document Properties. One will store the value of a radio button checked and one will store the value of a radio button unchecked.&amp;nbsp; The easiest way to accomplish this is to use the Wingdings 2 font and the following symbols as the values for the property: &lt;a href="http://spotfire.tibco.com/community/blogs/tips/radioOn.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radioOn.png" border="0" alt="" /&gt;&lt;/a&gt;and&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/radioOff.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radioOff.png" border="0" alt="" /&gt;&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/radioChecked.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radioChecked.png" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; you will not see the symbol right away when you enter it in the value section, this is OK.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;After you add the property for the radio button checked, add a similar one called radioUnchecked which shows the symbol of an unchecked radio button.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The next step occurs in the Text Area where you want to use the radio buttons. In the location where you want each radio button displayed, you should add a Label Property Control.&amp;nbsp; In our example we will display two radio buttons in the group. One with the value yes, and one with the value no.&amp;nbsp; Each one will be on its own line, one after the other.&amp;nbsp; The screen shot below shows the Label Property Control we will add for the &amp;#39;Yes&amp;#39; part of the radio group. The Label Property Control is attached to a new Document Property, called radioYes, which is of type string. We can leave the default value empty or we can use the unchecked radio symbol from before, &lt;a href="http://spotfire.tibco.com/community/blogs/tips/radioOff.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radioOff.png" border="0" alt="" /&gt;&lt;/a&gt; :&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/radioYes.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radioYes.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;We then add another Label on the following line in the Text Area which will show the &amp;#39;No&amp;#39; part of the radio button group.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/radioNo.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radioNo.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Finally we will add a script next to each label. For the first script, it will go next to the label for the &amp;#39;Yes&amp;#39; part, and will display as a link with the display name ‘Yes’. The code is shown below:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Document.Properties[&amp;quot;radioYes&amp;quot;] = Document.Properties[&amp;quot;radioChecked&amp;quot;]&lt;br /&gt;Document.Properties[&amp;quot;radioNo&amp;quot;] = Document.Properties[&amp;quot;radioUnchecked&amp;quot;]&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;What this is doing is setting the&amp;nbsp; radioYes property (which is attached to the &amp;#39;Yes&amp;#39; button’s Label) to be equal to the radioChecked property (which is where the radio checked symbol is stored). Then the code sets the radioNo property (which is attached to the &amp;#39;No&amp;#39; button’s Label) to be equal to the radioUnchecked document property (which is where the radio unchecked symbol is stored).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/yesScript.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/yesScript.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;We can then add a second script with the display name No next to the No label.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/noScript.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/noScript.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;When this is all done, you have a working radio button group in your Text Area.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/radio.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/radio.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Want to see it in action? Try it in our Training Needs Assessment Application at &lt;a href="http://spottrain.tibco.com/SpotfireWeb/ViewAnalysis.aspx?file=kevin/TNA"&gt;http://spottrain.tibco.com/SpotfireWeb/ViewAnalysis.aspx?file=kevin/TNA&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Using a similar approach, you can also create a checkbox group:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/checkbox.png"&gt;&lt;img src="http://spotfire.tibco.com/community/blogs/tips/checkbox.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=6948" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Properties/default.aspx">Properties</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Script+Controls/default.aspx">Script Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Property+Controls/default.aspx">Property Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Custom+Property+Controls/default.aspx">Custom Property Controls</category></item><item><title>Insert As Text vs Insert As Value</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/07/10/insert-as-text-vs-insert-as-value.aspx</link><pubDate>Mon, 11 Jul 2011 03:02:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:6058</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=6058</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/07/10/insert-as-text-vs-insert-as-value.aspx#comments</comments><description>&lt;p&gt;The concept of Document Properties has existed in TIBCO Spotfire for quite some time.&amp;nbsp; In version 3.1, the concept of properties was extended and included the ability to expose controls&amp;nbsp; to allow consumers to change property values.&amp;nbsp; When this update happened, Spotfire continued to support the old mechanism for adding properties into expressions as well as supported a newer , pre-processor approach. &lt;/p&gt;
&lt;p&gt;The default mechanism, from version 3.1 and later,&amp;nbsp; for adding properties into an expression is to use the ‘Insert Properties’ button. This will add the property using a pre-processor variable. This will get replaced with the value of the property before the expression is interpreted.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/IAV1.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/IAV1.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In addition, there is a right-click menu over the properties pane which allows you the choice to ‘Insert as Value’ or ‘Insert as Text’. The ‘Insert as Text’ is the same as the default ‘Insert Properties’ button.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;The older method for adding a property into an expression is still supported also. This done using the ‘Insert as Value’ method.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/IAV2.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/IAV2.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This approach is not a pre-processor, rather a function used to insert the property value.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Why would you want to use this older approach? There are a few situations, specifically when you need to use a specific data type.&amp;nbsp;&amp;nbsp; We will provide an example below.&lt;/p&gt;
&lt;p&gt;Suppose we want to have a set of property controls that will allow a consumer to specify a minimum data and a maximum date and then have a Spotfire visualization update to only show values within that date range. (I realize this can easily be done with a range filter, but suppose you want to hide the filter panel and expose this capabilities via a property control)?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/IAV3.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/IAV3.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;We will use a technique we introduced in an &lt;a href="http://spotfire.tibco.com/community/blogs/tips/archive/2010/04/24/using-property-controls-to-filter-data.aspx" target="_blank"&gt;earlier tip&lt;/a&gt;, to have a calculated column update based off the Property control values and then filter the visualization.&amp;nbsp; To set this up , we have the following expression in our calculated column.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;if((DateDiff(&amp;quot;day&amp;quot;,[Date],DocumentProperty(&amp;quot;maxDate&amp;quot;))&amp;gt;=0) and (DateDiff(&amp;quot;day&amp;quot;,DocumentProperty(&amp;quot;minDate&amp;quot;),[Date])&amp;gt;=0),&amp;quot;in range&amp;quot;,&amp;quot;out of range&amp;quot;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;where maxDate is the name of the property used for the max date slider control and minDate is the name of the property used for the min date slider control. It is important to use DocumentProperty(&amp;quot;maxDate&amp;quot;) instead of ${maxDate} as the typecasting will be incorrect with the latter.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;This will create a new column with values of either &amp;#39;in range&amp;#39; or &amp;#39;out of range&amp;#39;. You can then use the filter panel to uncheck &amp;#39;out of range&amp;#39; so only the data in range will be shown. Then you can hide the filter panel for displaying in the Web Player.&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=6058" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Document+Properties/default.aspx">Document Properties</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Property+Controls/default.aspx">Property Controls</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Insert+As+Text/default.aspx">Insert As Text</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Insert+As+Value/default.aspx">Insert As Value</category></item><item><title>Sharing your Analysis – Even better in 3.3</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/06/19/sharing-your-analysis-even-better-in-3-3.aspx</link><pubDate>Mon, 20 Jun 2011 01:45:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:5786</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=5786</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/06/19/sharing-your-analysis-even-better-in-3-3.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/33bookmark2.png"&gt;&lt;/a&gt;In &lt;a href="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Social+BI/default.aspx" target="_blank"&gt;earlier posts&lt;/a&gt;, we discussed how to share your analysis with others using a variety of approaches.&amp;nbsp; With the release of version 3.3 of TIBCO Spotfire, there are quite a few more approaches available.&lt;br /&gt;The major update is that Spotfire now provides a way to execute a Bookmark and a Configuration Block directly when&amp;nbsp;launching Spotfire and opening a file. This is supported in both the Web Player and Professional clients.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Launching analysis files via URL&lt;br /&gt;&lt;/strong&gt;To open Spotfire Professional and launch a file from the library, Spotfire 3.3 provides a URI mapping. The following example will open a new instance of Spotfire Professional, and once logged in, will open the file called SelfDrilling from the library inside a folder called MyFiles.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;tibcospotfire:server:http%3a//myserver/:analysis:/MyFiles/SelfDrilling &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;To launch the same file from the library in Spotfire Web Player, you can use a more standard URL:&lt;br /&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;http://myserver/SpotfireWeb/ViewAnalysis.aspx?file=/MyFiles/SelfDrilling &lt;/em&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This capability regarding the Web Player has been possible well before Spotfire version 3.3&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Launching with a Bookmark&lt;br /&gt;&lt;/strong&gt;In addition to just launching a file inside Spotfire, starting in version 3.3, it is possible to apply a bookmark immediately as the file loads (in either the Web Player or Professional client). &lt;br /&gt;This is done by appending the bookmark query parameter to the URLs listed earlier. The bookmark query parameter takes in a GUID specific to the bookmark.&amp;nbsp; To retrieve the full URL to use, you can choose the Copy Bookmark URL option for your specific bookmark from the Bookmark Panel. There is a link for the Web Player and one for the Professional client.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/33bookmark1.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/33bookmark1.png" alt="" /&gt;&lt;/a&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/33bookmark3.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You then have a URL which you can paste directly into a web browser. This link can be shared via email or social media streams like TIBBR. Below is one such link for the Web Player&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;http://myserver/SpotfireWeb/ViewAnalysis.aspx?file=/MyFiles/SelfDrilling &amp;amp;bookmark=b249f05c-a76d-4da7-9909-454dbf2eb86c&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;With the addition of this feature, along with the updates to bookmarks in 3.3 which allow you to capture Visualization settings and&amp;nbsp; Document Properties, you can very easily share insights in your analysis files. Before capturing the bookmark in TIBCO Spotfire Professional, you can update a Text Area with some comments on your analysis you want to share. Then, when you capture the bookmark, make sure you chose to capture ‘ Page Layout and Visualizations’.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/33bookmark2.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/33bookmark2.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;When the URL is shared and opened, the updated contents of the Text Area will be shown as well to give the user some insight into the file.&amp;nbsp; If the person who is creating the bookmark is using the Spotfire Web Player and not Professional client, they will not be able to edit the contents of a Text Area.&amp;nbsp; Rather, the author of file should create a Multi-line input field Property Control, and allow the user to add their comments in there. When the bookmark is captured, the ‘Properties’ option should be checked to make sure the status of the property is persisted.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/33bookmark3.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/33bookmark3.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Launching with Configuration Blocks&lt;br /&gt;&lt;/strong&gt;In addition to bookmarks, you also have the ability to launch a file and pass in a configuration block. A configuration block is a string which configures the initial state of an analysis.&amp;nbsp; It allows you to do two things. First, pass in parameters which will be used in information links for retrieving data, and then set the initial state of the analysis, like which page to be on, or how the filtering and marking should work. &lt;br /&gt;Configuration blocks have been around since version 3.1, but they previously required either Automation Services or our APIs to execute.&lt;br /&gt;Details on what is supported in a configuration block can be found at &lt;a href="http://stn.spotfire.com/stn/Tasks/CreatingConfigurationBlock.aspx?usterms=configuration+block&amp;amp;uscat=0,1,2,3&amp;amp;uswords=%22configuration%20block%22"&gt;http://stn.spotfire.com/stn/Tasks/CreatingConfigurationBlock.aspx?usterms=configuration+block&amp;amp;uscat=0,1,2,3&amp;amp;uswords=%22configuration%20block%22&lt;/a&gt; &lt;br /&gt;There is no User Interface to build the Configuration Block URL for you , like the bookmark panel offers, so you will need to build it from scratch. The name of the query parameter to include is configurationBlock and you set it equal to the block values.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;For example, if you want to load a Spotfire analysis file in the Web Player and preset the filtering so that the filter for the column ‘Product Category’ is only set to ‘Vintage Cars’ you can use the following URL:&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;http://myserver/SpotfireWeb/ViewAnalysis.aspx?file=/MyFiles/SelfDrilling&amp;amp;configurationBlock=SetFilter(columnName=&amp;quot;Product Category&amp;quot;,values={&amp;quot;Vintage Cars&amp;quot;});&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Another good use case would be to pass in values to a parameterized information link directly via the URL. Suppose you have one analysis file which shows sales data for four regions. You can distribute one URL which will load the entire analysis file, and then you can pass out other URLs, one for each regional manager. In those URLs we pass in the parameter value to load only data from their region. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=5786" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Bookmarks/default.aspx">Bookmarks</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Social+BI/default.aspx">Social BI</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Sharing+Analysis/default.aspx">Sharing Analysis</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/3.3/default.aspx">3.3</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Configuration+Blocks/default.aspx">Configuration Blocks</category></item><item><title>Updated Time Hierarchies in version 3.3</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/06/13/updated-time-series-hierarchies.aspx</link><pubDate>Mon, 13 Jun 2011 10:45:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:5731</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=5731</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/06/13/updated-time-series-hierarchies.aspx#comments</comments><description>&lt;p&gt;Before&amp;nbsp;Spotfire version 3.3, time hierarchies were treated just like all other hierarchies. In version 3.3, &amp;nbsp;a new built-in hierarchy is available specific to dates and times.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries1.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries1.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;They use the new BinByDateTime() function to create the expression as shown in the image below.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries2.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries2.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;With the new support for time series hierarchies, visualizations which have a time series on one of their axis will now display a slider&amp;nbsp;by default.&amp;nbsp; See the image below which shows the pre 3.3 visualization on top and then how it looks in 3.3.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries3a.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries3a.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries3b.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries3b.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;When these hierarchies are added to a categorical axis, they act like all other hierarchies. However, some additional settings have been made available to show them more naturally like time series hierarchies, including how to handle gaps in the values, like missing months for example.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries4.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries4.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;To understand what each of the three settings does, we will show 3 visualizations which are identical except for this having a different value for this setting. &lt;/p&gt;
&lt;p&gt;These visualizations below show data from July 2005 through June 2007 and have nothing filtered out.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries5.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries5.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can see the first two are identical when nothing is filtered out and the last one, using the &amp;#39;Show all values&amp;#39; option, &amp;nbsp;includes all the months in 2005 and 2007, even though the data does not exist for those months before July 2005 and after June 2007.&lt;/p&gt;
&lt;p&gt;In the next set of visualizations, we filtered out all the months in 2006.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/timeSeries6.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/timeSeries6.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;The top visualization, with the&amp;nbsp; ‘Show filtered values’ option set, only displays months on the x-axis which are not filtered out and which exist in the data. So, it skips from December 2005 to January 2007 and does not leave any gaps or space between them.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The middle visualization uses the ‘Show filtered range’ option. It will display a gap for all the months in 2006 with no data.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;The bottom visualization uses the ‘Show all values’ option. It will display both the gap for all the months in 2006, and it will also show all the months in 2005 and 2007.&lt;/p&gt;
&lt;p&gt;In next week’s tip, we will build onto this one and learn how Spotfire handles things like cumulative sums in cases when there&amp;nbsp;are missing time series values.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=5731" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/3.3/default.aspx">3.3</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Time+Series+Hierarchies/default.aspx">Time Series Hierarchies</category></item><item><title>Self-Drilling Visualizations</title><link>http://spotfire.tibco.com/community/blogs/tips/archive/2011/05/28/self-drilling-visualizations.aspx</link><pubDate>Sat, 28 May 2011 17:30:00 GMT</pubDate><guid isPermaLink="false">affde357-0bb3-4331-9204-9726b0672618:5561</guid><dc:creator>Kevin Hanegan</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://spotfire.tibco.com/community/blogs/tips/rsscomments.aspx?PostID=5561</wfw:commentRss><comments>http://spotfire.tibco.com/community/blogs/tips/archive/2011/05/28/self-drilling-visualizations.aspx#comments</comments><description>&lt;p&gt;In an &lt;a href="http://spotfire.tibco.com/community/blogs/tips/archive/2011/05/08/using-bookmarks-to-create-guided-analysis-in-tibco-spotfire-3-3.aspx" target="_blank"&gt;earlier tip&lt;/a&gt;, we discussed the new bookmark capabilities in version 3.3 which allow you to capture visualization and document properties.&amp;nbsp; One practical example of how you can apply these new features is to create a self-drilling visualization.&lt;/p&gt;
&lt;p&gt;In this example we start by showing the &amp;nbsp;total orders from different product categories in a Horizontal Bar Chart (3.3 includes Horizontal Bar Charts)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_1.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_1.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We can now capture a bookmark which will store the ‘Page Layout and Visualizations’ only using the ‘Add Bookmark Special’ command.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_6.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_6.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_2.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_2.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;This will capture how this Horizontal Bar Chart is setup and configured.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Then, we should update the same visualization to use a new marking and also to limit the data shown to use the same marking from the original visualization configuration. In this example, the visualization initially was setup to use ‘Marking’ , identified by green.&amp;nbsp; Then we updated it to use ‘Marking (2)’, &amp;nbsp;identified by red and to limit data shown to the ‘Marking’ green marking.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_3.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_3.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;We then update our visualization to reflect the drill down by updating the Category Axis to show not only the Product Category, but also the Product column. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_4.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_4.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;NOTE: Since Spotfire&amp;nbsp;supports Horizontal Bar Charts from version 3.3, the X and Y Axis on Bar Charts and Combination Charts have been replaced with Category Axis and Value Axis.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Once the visualization is configured propertly, we then add another bookmark to capture this visualizations properties (using the ‘Add Bookmark Special’ command).&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_5.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_5.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now we can add a Text Area and include the two bookmarks to allow the user to toggle the visualization between the top level (Product Categories only) and the sub level (the product(s) which are marked). You can see from the image below that the ‘Truck and Buses’ visualization is marked when all product categories are displayed.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_8.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_8.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When second bookmark is executed, the visualization will update and drill into the specific marked products.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_7.png"&gt;&lt;img border="0" src="http://spotfire.tibco.com/community/blogs/tips/selfDrilling_7.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;By clicking on the first action link associated with the first bookmark, the visualization will revert back to showing all the Product Categories only.&lt;/p&gt;&lt;img src="http://spotfire.tibco.com/community/aggbug.aspx?PostID=5561" width="1" height="1"&gt;</description><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Bookmarks/default.aspx">Bookmarks</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/3.3/default.aspx">3.3</category><category domain="http://spotfire.tibco.com/community/blogs/tips/archive/tags/Self-drilling+visualization/default.aspx">Self-drilling visualization</category></item></channel></rss>
