In
Power Apps non è disponibile una funzione
RowNumber ma si può comunque aggirare il problema con del codice custom.
RowNumberNell'esempio si vede, a sinistra, una lista
SharePoint con visualizzati i campi
ID e
Title ordinati per
Title.
GallerySx.Items = SortByColumns(TodoList, "Title", Ascending)
a destra si vede la collection
TableRowNumber con aggiunto il campo
RowNumberGalleryDx.Items = SortByColumns(TableRowNumber, "Title", Ascending)
Aggiunta RowNumber
La creazione della
collection avviene alla pressione del pulsante
Update tramite questo codice
ButtonUpdate.OnSelect =
// per praticità, salvo la query con l'ordinamento desiderato _TmpTable
ClearCollect(
_TmpTable,
SortByColumns(
TodoList,
"Title",
Ascending
)
);
// creo una nuova lista ordinata con RowNumber e l'Id
Clear(TableRowNumber);
ForAll(
_TmpTable,
Collect(
TableRowNumber,
Last(
FirstN(
AddColumns(
_TmpTable,
"RowNumber",
CountRows(TableRowNumber) + 1
),
CountRows(TableRowNumber) + 1
)
)
)
);
/* faccio pulizia di quello che non serve più */
Clear(_TmpTable);
Il cuore del codice è la funzione
ForAll che ciclando su tutti i record di
_TmpTable crea la nuova collection
TableRowNumber (
Collect), aggiungendo, ad ogni iterazione, una nuova riga con un nuovo campo (
AddColumns)
RowNumber contenente il conteggio delle righe esistenti fino a quel momento (
CountRows):
ForAll(
_TmpTable,
/* parte di codice eseguita per ogni riga di _TmpTable */
Collect(
TableRowNumber,
Last(
FirstN(
AddColumns(
_TmpTable,
"RowNumber",
CountRows(TableRowNumber) + 1
),
CountRows(TableRowNumber) + 1
)
)
)
);