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.
La creazione della collection avviene alla pressione del pulsante Update tramite questo codice
Power Apps: Crea collection con RowNumber
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):
Power Apps: Numerazione righe
ForAll(
_TmpTable,
/* parte di codice eseguita per ogni riga di _TmpTable */
Collect(
TableRowNumber,
Last(
FirstN(
AddColumns(
_TmpTable,
"RowNumber",
CountRows(TableRowNumber) + 1
),
CountRows(TableRowNumber) + 1
)
)
)
);