You might want to talk about why you are using a virtual list for this purpose. There might be a better way.
That said, here are some options:
- Grab the mod count using Get(RecordModificationCount) when you build the VL. If the user attempts to edit the price, compare it with the current mod count to see if another user changed the price; then warn the user and refresh the VL.
- Try to open the price record before allowing the field to be edited. You can do this with SELECTOR CONNECTOR approach so it doesn't interfere with your virtual list. If the record is in use (error 301) don't allow editing.
I've approached this using "record checkouts"fields that lock the record from editing. For example, user A selects the record for editing. A field labeled "Lock" is populated with his account ID. if user B attempts to edit the record, the user is notified. The lock is released when the editing window is dismissed, either through a record save or closing it. User startup and shutdown scripts quickly scan for any "stuck" locks and a supervisor can release locks if needed.
Oh, and I forgot to say, records are shuttled to a temp table for editing.
Just read through the selector-connector approach. Quite clever! That method could reduce a lot of the overhead as compared to record checkouts. Thanks!