I have a UD103Form and I have my own EpiUltraGrid bind to the UD103A dataview. Each time I make a change on a row, if I click on another row, an update was triggered. Is it possible to have an update only when the user click on the save button???
In my understanding, there is an event (EpiRowChanging) that fires on row changing forcing an update.
Possible workaround if nothing else works, create an updatable BAQ allowing multiple row update. Then you could create a custom BAQDataView and hook it to your grid. Or, you could use an embeded dashboard.
I have a UD103 customization with an EpiUltragrid binded to the EpiDataView UD103A. The first column in my view is a CheckBox. If the user click on the checkbox of a row, the checkbox become checked/unchecked, when the user click in the checkbox of another row, an update are triggered and the state of the checkbox of the updated row was pushed to the database and the checkbox of the new selected row become checked/unchecked. Most of the time, when the user click on a checkbox at the bottom of the visible area of the grid, the state of the checkbox change, if he decide to scroll down and click on the checkbox of a new visible row, and update are triggered so the state of the previous row are save but the state of the new checkbox was lost.
Any row that you toggle the check box must become the row being edited. Leaving that row by selecting another (or setting focus to some other control not in the grid) should force the update. It should not depend on whether the row being edited has scrolled out of view.
Does it only happen when scrolling with the mouse wheel? It could be “rotating” through the available selections for the checkbox in focus. As a test, try having the user scroll using the scroll bars instead of the mouse wheel.
A work around would be to have the user hit the tab key after they’ve checked of a box.
In your first example (where the second box doesn’t toggle), does the second box have the same parent record (row of the parent table)?
If not, it may have something to do with the fact that when the second row is selected, the UI momentarily updates for fields related to the parent table, then switches back focus to the grid with the UD103A.
For example, the OrderRel is a child of OrderDtl. On the Order Entry screen, the Release tab doesn’t let you see all the releases for all the lines. It only shows you the releases for the currently selected line. I assumed this is just for clarity - so you’re only presented with a limited set of releases for one particular line. But maybe it also has to do with how the related dataviews are managed in the UI.
That’s just a theory. But something you could easily test.
Experimenting with the UD103 Entry form, I think I can repeat it.
The last visible row is not entirely visible. And when first clicked, the grid scrolls up a bit. Then the entire field’s contents are “selected” - like when you enter focus on a text or number cell.
I extended the window just a hair, so that a bit of the next row was visible, and it doesn’t do it.
This appears to be a UI glitch. And probably would do the same on any form.
So if you fix it on one form, users will expect that functionality to exist everywhere.
But if you really want to do it, you could make a customization with events on the grid.
Looks like you’d need to do something on either the BeforeRowRegionScroll(), or AfterRowRegionScroll().
BTW - The problem doesn’t seem to exist when the grid has to scroll horizontally. It does scroll to get the whole cell visible, but the initial click does toggle the checkbox.