Archive for the ‘Xcelsius’ Category:
Reverse Selector Best Practices
I have been asked countless times to explain the value of Reverse Selector, which is actually difficult to articulate unless you have spent some time trying to build complex calculators with many inputs. This add-on component for Xcelsius 2008 is one of the few that Centigon Solutions sells on the website. Hopefully this will clarify how this component is useful to your dashboard projects.
Reverse selector provides a unique functionality to Xcelsius and is designed specifically for dashboards/calculators that require multiple data inputs. Generally, the Reverse Selector is best used for calculators or forms containing many variables that an end user controls. Coupling single value components or input text boxes with a Reverse Selector will significantly improve the configuration process, enabling end users to input an unlimited number of variables with ease.
To understand the value of this Xcelsius plugin, we will address a use case where Reverse Selector can reduce overhead, save development time, and streamline a dashboard:
Use Case
In the calculator below we want to first filter through sales reps by region, then calculate how increasing each rep’s sales can contribute to the overall target. The technical challenge for the Xcelsius model is allowing a single slider to dictate a value for each sales rep, and then persist the values so they can be used in the calculation.
Download Source Files- Requires Reverse Selector
>>Get Reverse Selector Trial
Problem

The traditional solution to this problem included stacking multiple sliders on top of each other, then assigning dynamic visibility to each slider based on the selected sales rep. With a 1-1 relationship between a single value component and the cell it controls, scaling this solution is a major challenge. While 2 or 3 stacked sliders are not a problem, 10 or 20 quickly generates a dashboard project that is heavy and difficult to maintain. Furthermore, the time to configure each selector could lead to hours of un-necessary work.

Solution
Reverse selector is a great alternative to simplify design and management of calculator functionality within a dashboard. In this example, the Reverse Selector will use one slider to insert and persist the values based on the selected sales rep. The following directions illustrate how to setup a Reverse Selector to achieve the following dashboard.

Source Value- The Source Value is a single cell where you will also link your single value component or input text.
Destination Range- The destination range is the column where you will insert and distribute “Source Value.”
Row Index- The Row index will dictate where the Source Value will be placed within the destination range.
With these three properties set, it is extremely important to set the appropriate behavior for the Reverse Selector.

Update Destination Range- This behavior option dictates when the Reverse Selector will insert the “Source Value” into the “Destination Range.” The most commonly used behavior is “When Source Value Changes.” This option triggers Reverse Selector to insert any time the source value changes. In other words, as the slider modifies the source value, Reverse Selector will insert its value into the destination range based on the “Row Index.”
Source Value Lookup- This behavior is the most important feature making Reverse Selector unique because it enables bi-directional communication between the Source Value cell and the Destination Range. As the Row Index changes, the slider component will need to reference the persisted value within the destination range. The Source Value Lookup will retrieve this value and place it in the Source Value cell. Without this capability, the reverse selector will simply overwrite the destination cells.

Tips for Using Reverse Selector
- When using this component, remember to check the appropriate behaviors.
- Do not have a selector insert into the Source Value component.
- Check out the templates on the Centigon Solutions website to see some of the different ways for implementing this component.
Recommendations for future releases:
- Allow reverse selector to insert into a range, rather than a single row or column.
- Make the Source Value Lookup behavior checked by default.
- Rename the Reverse Selector component.
>>Get a free Reverse Selector Trial
Original post blogged on b2evolution.
Dynamic Xcelsius Chart Color
During my webinar last week Xtreme Makeover, I showed a demo dashboard where a user could drill down from a pie chart down to a bar graph and pass the color from the selected slice to the chart below. This is a simple technique for creating consistency with color, which facilitates intuitive analysis; if it were only as simple to setup in Xcelsius… In essence, I am using chart alerts to dynamically change the color for a single series chart. This method will only work with bar and column charts.
Inside of my spreadsheet I associate a multiplier for each product line (1,2,3…). When I enable the pie chart drill down feature, I include this multiplier in my source data and data insertion range.
Directly under the insertion range where we link the bar chart’s data, I perform a simple calculation using the multiplier (=[value]/[target multiplier]). These rows highlighted in green within the spreadsheet are the bar chart alert targets.

Inside of the bar chart’s alerts tab, I color coded alert levels for each value in my pie chart.

With everything hooked up, you get a nice effect as someone clicks on the pie chart. What would be a better solution?…Having an ability to bind colors to the spreadsheet… As a user community you should definitely request this functionality on the BOBJ support and forum sites. With an ability to bind colors in the spreadsheet, you could enable this functionality for all components within Xcelsius, and in turn facilitate better analysis for end users.
Original post blogged on b2evolution.
Xtreme Makeover: Xcelsius Edition
On November 12 at 10AM PST, I will be conducting a 30 minute webinar with Business Objects sharing practices for developing better looking dashboards with Xcelsius. This presentation is based on some of the articles that I have written about dashboard design. The goal is to shed light on some of the building blocks for building dashboards that not only look good, but also promote non-intrusive easy to use interfaces for interactive dashboards. You can view and sign up for the event using the link below, and I look forward to sharing some helpful information with the community.
Original post blogged on b2evolution.
Dynamic Formatting in Xcelsius Tables
Xcelsius’ Excel paradigm for binding data inherits Excel’s absence of dynamic cell formatting. In Excel, you define a cell format as text, percentage, value, date, etc… When you bind a component to a cell or range, it will automatically inherit the formatting. If your hoal is to filter data by measures, you may have found that there is no way to dynamically change number formats on the fly. For example, if you have a table that is filtered by sales, volume, and growth %, dynamic formatting becomes a problem. While there is a good workaround for displaying values in a table, there is no good option for graphs.
The solution for displaying dynamically formatted tabular data is converting values to text using the TEXT() formula. The beauty of the text formula is the option to define number formatting. TEXT(value,text_format)
TEXT(A1,$#,##)
TEXT(A1,##%)
TEXT(A1,#,###)
The following example illustrates how this text formatting can be utilized to present tabular data in the correct format without using multiple components. Hopefully at some point we will see this dynamic formatting built into Xcelsius as standard functionality for charting. One of the few drawbacks of Xcelsius’ Excel paradigm is the borrowing of Excel’s lack of dynamic cell formats. In Excel, you define a cell format as text, percentage, value, date, etc… When you bind a component to a cell or range, it will automatically inherit the formatting. In most cases this is a good feature. In others where you are filtering data by measures, it creates a problem. For example, if you have a table that is filtered by sales, volume, and growth %, dynamic formatting becomes a problem. While there is a good workaround for displaying values in a table, there is no good option for graphs.
The solution for displaying dynamically formatted tabular data is converting values to text using the TEXT() formula. The beauty of the text formula is the option to define number formatting. TEXT(value,text_format)
TEXT(A1,$#,##)
TEXT(A1,##%)
TEXT(A1,#,###)
The following example illustrates how this text formatting can be utilized to present tabular data in the correct format without using multiple components. Hopefully at some point we will see this dynamic formatting built into Xcelsius as standard functionality for charting.
Original post blogged on b2evolution.
BOBJ User Conference
It was wonderful putting faces to the many blog readers who attended the BOBJ user’s conference this week in Dallas. Though the least technical topic on my list was chosen by BOBJ for me to present, it was fun showing off some of the new Centigon Solutions plug-ins. This was definitely a coming out party for my company since there was a lot of Xcelsius buzz through-out the conference. I appreciate the compliments on the blog and the work I have done in the last year. I certainly came back re-energized to ensure I continue to keep writing helpful content for you to leverage as you build dashboard solutions for your business.
Thank you all for your support,
Ryan Goodman
Original post blogged on b2evolution.
Xcelsius chapters in Crystal Reports 2008 Official Guide
I just got my copy hot off the press of “Crystal Reports 2008 Official Guide”. I was excited to be a contributing author for this book, and provided two chapters about Xcelsius 2008. Chapter 20 covers Xcelsius basics including charts, selectors, containers, and design features. Chapter 21 covers advanced properties, Excel logic, and connectivity. Both chapters provide enough direction to jumpstart a new Xcelsius developer using step by step instructions to what I consider the most important Xcelsius 2008 features. If you happen to read a copy, feel free to provide me with some feedback for future editions.
Click to get a copy from Amazon

Original post blogged on b2evolution.
Interactive Data Visualization Blog Q&A
I have received several questions over the years and finally have taken the time to write a Q&A for this blog.
Q: What is the purpose of the Interactive Data Visualization / Ryan Goodman blog?
A: I started this blog in 2006, one year after the acquisition, as I worked for Informmersion and then Business Objects. The original goal was to write about my personal/professional interests around data visualization, dashboards, Xcelsius, etc. Very quickly I found that most people wanted tricks, templates, and advisement on dashboard development. Since then I have done my best to write once a week to give unique views and methods for using Xcelsius.
Q: Are you paid by BOBJ to write nice things and market Xcelsius?
A: Absolutely not! Though I do make money from consulting and software sales with Centigon Solutions, I write this blog only to help the community solve the same problems I face as I use Xcelsius. If something stinks or doesn’t work, I usually suggest how it could be better in my post. I only post articles with hopes that you walk away with a more tools in your pocket to build excellent dashboards.
Q: Do you provide consulting services?
A: I certainly do provide consulting services and advisement on Xcelsius projects. If you are interested in these services, please contact me
Q: What is your association with Centigon Solutions?
A: I am the founder of Centigon Solutions Inc., a business that I started shortly after leaving Business Objects in 2007. We have focused our energy on the Xcelsius market, since it is now large enough to support a small ecosystem of third party vendors. I am involved in product design and public relations/marketing aspects of the business. If you are interested in contacting me about business opportunities related to Centigon Solutions, please submit it through the website rather than the blog, to ensure it goes through the right channels.
Q: Why didn’t you answer my email?
A: If I have not answered your email, I do deeply apologize and hope that you were able to obtain assistance. I get most emails from the blog, and reply to them when ever I get a free moment. With a book deal and product launch in late Q2/Q3 2008, time was scarce. I had also lost a large quantity of emails, due to someone hacking into my server. Since I have made great improvements to my infrastructure, and I promise to get back to you ASAP.
Q: What is your take on Stephen Few’s negtive views on Xcelsius?
A: I get this question quite a bit since I have written a few articles specific to dashboard design. Unfortunately, I am somewhere in the middle of the road since my background in UI design/Flash development and early exposure to Tufte’s and Kaplan’s work have both influenced how I design dashboards. I am guilty as charged for building some bad dashboards…though none as bad as the poor examples I have seen on Stephen’s blogs. Stephen Few is an expert in the data visualization field and has poured his passion into what is a growing dashboard market. His honest, yet sometimes critical view of the world has made his blog popular. If you look at the various dashboard products within the marketplace, I think you can credit Stephen for pushing back and gaining attention of some vendors.
Q: What is your background?
A: I went to school and studied graphic information technology, and business. My early career was spent doing Flash design and development from version 3 up until Flash MX. Along the way, I have worked on some innovative HCI projects using voice recognition and mutli-touch applications. I started using Xcelsius in 2004 to develop desktop widgets and financial dashboards. It was in 2004 that I first met the Xcelsius team, then joined them in 2005. 3 years and two acquisitions later, I founded Centigon Solutions Inc.
Original post blogged on b2evolution.
Flash Player Security Options
If you run a SWF on your desktop that communicates with data sources on your local PC, you will probably get an error. As I have found with Xcelsius over time, the two most common causes for connectivity errors other than user error is the absence of a cross domain policy file, or the flash player security settings not being set. To access Flash player security settings, go to the following URL:
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html
Inside, you will see the following:

If you are concerned with security, you can define a specific directory on your PC or Internet that Flash player can access. As you can see in the screenshot, I define “C:/”, which ensures that I can run SWFs anywhere on my PC that may use local XML files.
After you make changes you can close the browser window… There is no save or execute button. When you re-open your SWF, the new security settings are enabled.
For more information on this topic, you can go to:
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager.html#117164
Original post blogged on b2evolution.
BOBJ User Conference Breakout
For those of you who will be at the U.S. Business Objects user conference in Dallas, I will be conducting one of the breakout sessions titled “Next Generation of Dashboards Using Xcelsius 2008.” It will be at 9AM on the first day.
If you are attending, feel free to stop by. I will be talking about similar topics from my blog.
Original post blogged on b2evolution.
Xcelsius 2008 GMaps Plugin Best Practices
The availability of a Google Maps mashup for Xcelsius presents an exciting new avenue for using maps as a navigation paradigm for dashboards. While the Centigon Solutions plugin is a nice step in the right direction, this Beta release requires a few steps before dragging and dropping the component onto the canvas. You can obtain a copy from the Centigon Solutions website:
http://www.centigonsolutions.com/components/googlemap.html
Once you add the component to the canvas, you can use the following best practices for each property.
1. Sign up for a Google Maps API key
You need a Google Map API key to use this component. This means the same Google licensing and terms of use apply even inside of Xcelsius. Once you obtain your API key, paste it into your spreadsheet, then bind it within the properties sheet.
*If you try to paste the API key directly into the properties sheet, the map will not work when you publish the SWF. Make sure to bind the API key property to the spreadsheet.
2. Convert your regions or addresses to Longitude/Latitude.
Unfortunately, the first version of the GMaps Plugin does not include links to a Geocode service, which would usually convert addresses, cities, etc. You will need to use comma separated Longitude and Latitude coordinates in each cell. I have provided a few great resources for manually converting addresses or plotting points on a map to obtain the Long/Lat coordinates.
http://maps.huge.info/reverse.htm - Click on the map to plot points and get the Long,Lat points.
http://www.getlatlon.com/- Type in an address to get the Long,Lat point.
3. Format labels using HTML text.
Currently the GMaps component does not provide any text formatting for labels. The component does accept HTML formatted text, allowing for embedded images, hyperlinks, or multiple lines of text for each data point.
I have provided several examples within my sample file to illustrate the flexibility of using concatenated HTML text.
4. Using zoom coordinates
Zoom coordinates provides a nice method for dynamically panning to a specified location, defined as Longitude, Latitude. Because this is a bindable property, you can dynamically zoom to a specific location. I have used this to zoom into each point as I click on them, or to zoom to regions dictated by another selector.
5. Bind a Destination cell
The map component functions as a selector, but only supports the Position insertion method. That means you will need to couple this plugin with Excel logic or a Source Data component to drive functionality. A nice trick that I use was outlined in a previous article, where I use a hidden selector combined with a map to drive dashboard interactivity. Click here to see that article. http://ryangoodman.net/blog/index.php/2008/04/30/using_a_map_to_drive_insert_filtered_row
There is an akward behavior/bug when dragging the GMaps Plugin onto the canvas. For some reason, the component renders as 0 pixels wide and 0 pixels high. The solution is extremely simple but not obvious…You need to click on the component handler and drag it down and right. From there the component functions without any sizing issues.
After using this component, I think there are several features that would make it much more powerful…
Alert color coding for icons
Bindable zoom
More insertion methods in addition to position
Original post blogged on b2evolution.
Subscribe to RSS