The cleanest pattern for your scenario:
1. On screen load, use ClearCollect to load all participants for the selected account into a collection:
ClearCollect(colParticipants, Filter(SourceTable, AccountID = selectedAccount.ID))
2. Display the collection in a gallery with editable controls inside (text inputs, dropdowns) for the columns the user needs to fill in. The read-only columns just show as labels using ThisItem.ColumnName.
3. As the user edits each row, use Patch to update the collection in memory (not the data source):
Patch(colParticipants, ThisItem, {EditedColumn: TextInput.Text})
4. On final submit, use ForAll to write all 18 records to the destination list at once:
ForAll(colParticipants, Patch(DestinationTable, Defaults(DestinationTable), {Col1: ThisRecord.Col1, EditedCol: ThisRecord.EditedCol}))
This keeps everything in memory until submit, avoids multiple screen navigations, and handles all 18 participants in one operation.
Best regards,
Valantis
✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.
❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).
🏷️ For follow-ups @Valantis.
📝 https://valantisond365.com/