One of the goals of the Infinity platform has always been to make clients' data easily and securely accessible from various endpoints other than the traditional shell (we call this "reach").  To date, we've delivered several "outside the shell" experiences with Yahoo! Widgets, Vista Gadgets, and the KPI Web Dashboard.  The latest example we've developed is an Excel ribbon add-in that will allow users to add Infinity ad-hoc query, data list, and KPI data to an Excel spreadsheet.  The data added to the spreadsheet is live, meaning that it can be refreshed on-demand or each time the spreadsheet is opened.  Best of all, the spreadsheet can be sent to other users who do not have the add-in installed while retaining the live data and much of its interactive features.

Here’s a quick overview of how the add-in works.

To install the add-in, a user will download a small setup.exe file from the web server where their Infinity-based application is installed.  This executable bootstraps most of the prerequisites (the .NET Framework, etc.) for the add-in as well as the add-in itself.  After the add-in is initially installed, it will have the ability to update itself via Microsoft’s ClickOnce technology, so the user never has to worry about checking for updates manually.

Once the add-in is installed, the user should see a new Blackbaud tab on his ribbon the next time he opens Excel:
 
 
The user has three options for adding his Infinity data to his spreadsheet: ad-hoc query, data list, and KPI.  Each of these three options has a similar workflow.  The user clicks the button representing the type of data he wishes to add to the spreadsheet (I’ll use data list as an example) and is presented with a dialog where he can select a database and the appropriate data:
 
 
Here I’ve searched for and chosen the Constituent 5 Year Giving List.  Because this data list requires a context record for its data, I will be presented with a search form when I click OK so I can locate the context record:
 
 
Once I’ve selected a context record, my data list data will be added to my spreadsheet:
 
Notice the blue region on the left.  That region represents the various parameters available for this data list.  From here I can narrow down my results with the same types of options available to me in the Infinity shell, such as drop-down lists for parameters whose values are represented by value lists, simple data lists or code tables:
 
 
Once I fill in or select a value for any of the parameter fields, my data automatically refreshes.
 
Also note the Context Record parameter at the bottom of the list.  If I select the cell containing the context record name, the “Choose Context Record” button in the ribbon will become enabled:
 
 
Clicking this button will allow me to select a different context record using the same search form in the earlier example.  Once I’ve chosen the new context record, the data will again automatically refresh:
 
 
Of course the user can extend the presentation of data with the full suite of features of Excel, such as formatting, charts, etc.  For instance, if I want a chart that shows my constituent’s gifts, pledges and payments broken down by fiscal year using the data from this data list, I can simply highlight the appropriate range and insert a chart using the Insert tab on the Excel ribbon:
 
 
We're very excited about this new feature, because by leveraging Excel's rich set of functionality, we're giving our users endless ways to view their data without the complexity of other solutions such as writing custom reports.