SharePoint Data Zoom Web Part (gratuito!)
La empresa americana SharePoint Solutions ha desarrollado y ofrece de forma gratuita el producto SharePoint Data Zoom Web Part, se trata de un webpart con el que podremos consultar y visualizar en las páginas SharePoint datos procedentes de diversos orígenes de datos.
Actualmente se puede realizar consultas contra listas SharePoint, Directorio Activo, datos de salesforce.com(un servicio de CRM), SQL Server, RSS/ATOM.
Las consultas se realizan por medio de un script y la visualización se configura con HTML, por ejemplo para mostrar datos desde una lista de SharePoint se utilizara el siguiente script:
1: <br>
2: <u><strong>List Item</strong><u>
3: <blockquote>
4: ID: $listItem.ID<br>
5: <br>
6: Unique ID: $listItem.UniqueId<br>
7: <br>
8: Title: $listItem.Title<br>
9: <br>
10: Name: $listItem.Name<br>
11: <br>
12: State: $listItem.get_item("State")<br>
13: </blockquote>
el resultado se visualizara así:
Si queremos realizar la consulta en una base de datos SQL Server(el nombre y la cadena de conexión del origen de datos "DataZoom" se configura previamente en el Web.config) podríamos introducir el siguiente código:
1: #set( $sqlQuery = "Select ID, Title, Description, OrderDate, Quantity, Total From Orders" )
2: #set( $dataTable = $SQLUtility.GetDataTable("DataZoom", $sqlQuery) )
3:
4: #foreach($dataRow in $dataTable.Rows)
5:
6: #beforeall
7: <table class="ms-listviewtable" cellpadding="3" cellspacing="0" border="0" width="100%">
8: <tr class="ms-viewheadertr">
9: <th class="ms-vh2-nofilter">Title</th>
10: <th class="ms-vh2-nofilter">Desription</th>
11: <th class="ms-vh2-nofilter">Order Date</th>
12: <th class="ms-vh2-nofilter">Quantity</th>
13: <th class="ms-vh2-nofilter">Total</th>
14: </tr>
15: #odd
16: <tr class="">
17: #even
18: <tr class="ms-alternating">
19: #each
20: <td class="ms-vb2"><a href="BLOCKED SCRIPTalert('$dataRow.get_item("ID")');">$dataRow.get_item("Title")</a></td>
21: <td class="ms-vb2">$dataRow.get_item("Description")</td>
22: <td class="ms-vb2">$dataRow.get_item("OrderDate").ToString("dddd, dd MMMM yyyy")</td>
23: <td class="ms-vb2">$dataRow.get_item("Quantity")</td>
24: <td class="ms-vb2">$StringUtility.Format("${0:#.00}", $dataRow.get_item("Total"))</td>
25: #after
26: </tr>
27: #afterall
28: </table>
29: #nodata
30: No rows found
31: #end
El resultado que veríamos en la página seria así:
Los objetos y orígenes de datos se pueden extender para ajustar a las necesidades de la solución.
Un producto muy interesante por su sencillez, flexibilidad y por ser gratuito:-)