Multiple clients editing/viewing same form/database

In Vision (8.1.10), what would be the best way to handle multiple users editing or viewing a form and still updating live values as they change? It’s similar to this thread - multiple users/clients single database, but what I’m looking for is slightly different for our environment.

We have a template repeater that displays data for a particular selected location in rows. We can view up to 31 days back. So think an Excel spreadsheet with headers on top, and each day represents a row, each row with the same data for each day. This has been developed carefully to smoothly edit and update to the database (MS SQL) after each entry is complete (propertyChange event that compares a custom property holding the original value to what the actual is changed to, etc…).

One last issue is when, for example, a user selects a location, and leaves it in the background, and another user goes into the same location, they can edit it and make changes, but after some time, if the original user’s open client will eventually refresh after some event, triggers the propertyChange event and changes a bunch of the values in random ways, because the values on their screen differ from the updated values coming in from the database.

I thought of ways to update live, but want to without refreshing the whole template repeater, which seems like it would have the two users conflicting and refreshing constantly. Or would I just have to handle a lock out? Maybe in a database, hold the user’s client ID and open windows and selected location, and if a second person opens up the same, it would lock them out or view only?

The link you shared has some good info.

From the post it sounds like notifications are preferable to a hard lockout, though i could envision scenarios where you employ lockout, like if bad data resulted in a hazardous condition.

Live updates works smoothly after all. I used a client message handler to refresh the template repeater and it updates just the values in the fields individually on any client on that same page. It’s instantaneous and doesn’t freeze anything. I was thinking it was going to make the whole repeater refresh itself by doing a complete reload (where it grays out for a few seconds or disappears and reappears).