Sometimes you know exactly what you're doing, and you know exactly how to do it. Other times you give it your best shot, and hope for good results

When we released Spread for SharePoint v1 we entered a new market with a product that we feel offers considerable benefits to our customers. At the same time, we recognize it as a product that requires guidance from our customers to help us refine it's direction. We have received considerable feedback, and we are working to implement your suggestions. Spread for SharePoint v2 is our first release in this feedback-driven process.

A consistent message we received was that customers want a web part that binds to SQL Data Tables and provides the ability to write changes back to the Data Tables. That feature is the primary feature addition to Spread for SharePoint v2.

When you enter Edit Mode for the web part, the Tool Pane allows you to specify your binding type: SharePoint List or SQL Data Table. For this sample, I will bind to a SQL Data Table. This is achieved by specifying the SQL Server Name and the Database Name. The web part queries the meta data from the SQL Database and populates the Table Name dropdown with the database tables and views that can be used as a binding source.

Once a table or view is selected, the columns are displayed. The page designer can choose which columns to display, the column index (display location) of each column, and whether there should be a totals footer for each column.

If the ability to write back to the SQL Data Tables is desired (full data binding), then the SQL Commands can then be automatically generated. This creates the basic CRUD (Create, Update, Delete) SQL commands that will be used by the web part to keep the database up to date with changes made in Spread for SharePoint. You can modify the contents of the commands to customize the binding experience.

If grouping of the SQL data is desired, this can be performed from the Group By section of the Too lPane. Specifying grouping from the Tool Pane saves the grouping information with the web part serialization so it will persist in shared views. If the page designer also wants to allow for dynamic grouping by the site users, they can enable the "Show Group Bar" checkbox.

When you apply the settings to the web part, the binding is compete. In the following image, I have also performed dynamic grouping by dragging column headers to the Group Bar.

And in this image, I am illustrating how filtering can also be used with grouping. Notice the filter bar at the top is specifying to filter all items where "CustomerID is equal to 'ALFKI'" and the grouping is being performed on the resulting filtered record items. Also notice that the totals footer is updated to include only the filtered records.

We are excited about the new functionality we have added to Spread for SharePoint, and look forward to more customer input and feedback.

Robby Powell