paul at researchware.com
Tue Dec 18 16:11:30 EST 2018
On 12/18/2018 11:16 AM, Trevor DeVore via use-livecode wrote:
> Now, all of this leads me to the following questions –
> 1) Are you modifying the columns displayed in this Data Grid through code?
> 2) If so, is it possible that you are updating the columns in the Data Grid
> while the user is interacting with it?
Wow. Seriously Trevor. Thank you!
It is possible the user could be interacting with the datagrid while a
script is trying to update it. A report setting window allows the user
to configure many many options for a "report". They then click Display
and the report appears in another window in a datagrid (if 'Table' view
is selected). They could change settings, click "Display" again and
start scrolling or otherwise interacting with the previously displayed
results when the script . Some reports are instantaneous, but some,
depending on how much data the user has can take seconds to even many
tens of minutes for our biggest data customers.
So, I gather it may be better to have the Report settings "Display"
script close the report display window while updating it (if it is open)
and then reopen it once the results are populated.
We have seen another behavior in our app where a user can start an
operation (a script) that takes a while to run, switch to another 3rd
party applications, and then back to a different Window in our App and
we can get an execution error with the "object not found" because the
previous script - still executing - was referencing objects in its
window without using explicit object references and now the default
window has changed.
I thought we have weeded any such relative object references out, but
now I am wondering it one or more may still be present in our reporting
Does the idea to close the report display window if and when the
datagrid is being updated make sense as a precaution? We can always lock
the screen, close the window, update the datagrid contents, reopen the
window and unlock the screen to minimize visible changes to the user.
More information about the Use-livecode