The main point here is to differentiate from
The current record position
Every time you move the mouse, you might notice that there is an ellipsis that determine what is your current cursor, and record, position.
This will be the record whom a bounded action (that belongs to the rec variable in the page) will respond to. This will always be transferred from the client to the server as the current record position.
The record selection
Selecting multiple records at once or all records (CTRL+A) will result in creating a list of records to be used by action that typically perform a SETSELECTIONFILTER assignment like e.g.
…
action(SetSelectionFiler)
{
ApplicationArea = All;
Image = Start;
Caption = 'No. of Recs';
Promoted = true;
trigger OnAction()
begin
postedsalesinv.Reset();
CurrPage.SetSelectionFilter(postedsalesinv);
Message(format(postedsalesinv.Count));
end;
}
…
This is the typical usage of the “Select More” feature. This would reflect the content of “Select More” fields into a filtered recordset.
Let’s combine now the 2 definition within a specific user scenario and analyzed the behavior.
You could see then that also the cursor position being set to the 2nd line
When you click on e.g. Navigate action, then, you will trigger the Navigate function in Sales Invoice Header table sending the current record “Posting Date” and “No.” to the Navigate page.
…
procedure Navigate()
var
NavigateForm: Page Navigate;
begin
NavigateForm.SetDoc("Posting Date", "No.");
NavigateForm.Run;
end;
…
That is what actually it does.
There is one extra in how to double check where the current record is set.
Within Editable lists (e.g. in document lines), you could also better see where the cursor and the record is positioned since the application is showing a small arrow. This would help better in differentiate and understand what is the current record to whom apply specific actions.
This is not ended. You might argue that Windows client (the predecessor of web client) could have had a different behavior. This is not true and they behave exactly the same.
Below you can see the latest fully patched 14.x Windows Client and it is showing exactly the same thing.
When using CTRL+CLICK key to select multiple items and then use CTRL+CLICK to deselect items, you would fall back in the same scenario
In the case above, SETSELECTIONFILTER will register the first record (103027) while Navigate actions will stick with the cursor position and open/navigate using 103026 posting date and No.
That is how it works since decades now.
I have to admit myself that it needs more attention on this by a normal user. On the other hand, I think that explaining this to the users it would make them understand the different behavior and act upon it. If you wish to have this behavior changed, please file a request to IDEAS site or vote for an already existing one (https://ideas.dynamics.com/ideas/)