one (lets call it ID) is the row number, set the column type to RowId (under properties)
which numbers each row.
the other two are buttons, one labeled ‘Next’, the other ‘Previous’
the action for next is
thisTable.filter(ID>thisRow.ID).First().openRow()
and for previous it is
thisTable.filter(ID<thisRow.ID).Last().openRow()
display those buttons in your detail view, keeping the navigation to the side.
there are other ways to do this, but this is the easiest to explain.
i have not handled the cases where you are already on the first or last row - the buttons simply fail to work and you stay on the same row.
how it works:
each row has its own unique ID number. it may have gaps in the sequence if you have deleted rows, but thats ok
‘Next’:
thisTable.Filter(ID>thisRow.ID) will return a list of rows whose ID is bigger than this row’s ID
so we select the First() one from that list and do OpenRow() on it.
that opens the detail view for that row - which is what you want.
Previous:
thisTable.Filter(ID<thisRow.ID) returns a list of rows whose ID is less than the current ID and we want to select the Last() one as the row we want