Nintex Forms

Zastanawiałeś się kiedykolwiek, w jaki sposób wyświetlić tabelę z SQL Server w formularzu Nintex? Faktycznie, istnieje kontrolka „SQL Request”, ale jednak pozwala wyłącznie na pokazywanie danych z bazy w postaci listy rozwijanej, listy opcji do wyboru itp… Jednak zawsze jest to widok jednej kolumny.

Jednakże istnieje dość proste rozwiązanie. Podejście, którego używam, wykorzystuje polecenie „FOR XML” w zapytaniu SELECT (źródło). Jest ono dostępne w SQL Serverze od wersji 2008. Zwraca dane w postaci złączonego ciągu tekstowego, w pojedynczym wierszu, w jednej kolumnie. Format idealny do dalszej obróbki.

Krok po kroku

1. Najpierw przygotuj zapytanie SELECT. Ja zrobiłem takie:

SELECT TOP(1) (SELECT name, lastname, email, role
FROM users
RIGHT JOIN roles ON roles.Id = users.roleId
ORDER BY lastname ASC
FOR XML) as datatable FROM users

Używając takiego zapytania, jestem pewien, że w wyniku otrzymam pojedynczy wiersz i kolumnę, w poprawnym formacie XML. Każdy zwrócony wiersz, zostanie zakodowany do XML i wynik będzie mieć format jak poniżej:

<name>value</name><lastname>value</lastname><email>value</email><role>value</role><name>value</name><lastname>value</lastname><email>value</email><role>value</role>...

Następnie wstaw zapytanie do kontrolki „SQL Request” w formularzu:

SQL Request action Nintex Forms

Ustaw, by pole było niewidoczne. Nie będzie wykorzystywane bezpośrednio.

2. Teraz dodaj kontrolkę „Calculated Value”. Będzie służyć do tego, by wynik działania kontrolki „SQL Request” sparsować i wyświetlić w formie tabeli HTML. Używam do tego poniższej formuły:

'<table class="dataTable"><thead><tr><th>Name</th><th>Lastname</th><th>Email</th><th>Role</th></tr></thead><tbody>'+replace(replace(replace(replace(SQL REQUEST CONTROL NAME, '</role><name>', '</td></tr><tr><td>'),'\<\/(?!td|tr)[a-zA-Z]+\>\<(?!td|tr)[a-zA-Z]+\>','</td><td>'), '</role>', '</td></tr>'), '<name>', '<tr><td>')+'</tbody></table>'

Wynik je działania zwraca tabelę HTML. Zastępuje otwierające i zamykające tagi XML na otwierające i zamykające tagi <tr><td> (dla oznaczania początku i końca każdego wiersza).

3. Teraz należy zdefiniować style CSS dla tabeli. Użyłem w tym celu style wygenerowane przez usługę: https://divtable.com/table-styler/ 

Koniec!

Tabelka jest gotowa do wyświetlenia:

HTML table out of SQL table

Mam nadzieję, że opisane przeze mnie rozwiązanie będzie dla Ciebie użyteczne.

Cześć! Nazywam się Tomasz. Jestem wielkim fanem automatyzacji procesów i analizy biznesowej. Skupiam się na rozwijaniu moich umiejętności w pracy z produktami Nintex i Microsoft: w szczególności Office 365, SharePoint, Flow, PowerApps. Posiadam ponad 8 lat doświadczenia w pracy z SharePoint.