There is also a SYNCHRONIZE event for ProDataSet temp-table buffers, which fires under these conditions:
Whenever the application code does an explicit SYNCHRONIZE on that buffer or a parent of that buffer in the ProDataSet hierarchy that cascades the SYNCHRONIZE through the levels of the ProDataSet
When there is an explicit browse row selection for a browse on a ProDataSet temp-table, such as when the user clicks on a row
When the application uses the SYNCHRONIZE() method to force a synchronization of ProDataSet tables
When the buffer's query is closed
This event allows the procedure code that responds to the event to display buffer values in a frame or take some other action. The event is set using the same SET-CALLBACK-PROCEDURE method and receives the ProDataSet as INPUT as other events do, as shown with this syntax:
The event handler is invoked just before the SYNCHRONIZE behavior occurs, that is, before the current buffer's child relation queries are re-opened. The handler procedure can RETURN NO-APPLY to cancel the effects of the SYNCHRONIZE in the event that it detects that the synchronization should not occur (to avoid the overhead of opening child queries when this is not wanted, for instance).