Consultor Eletrônico



Kbase P118721: How to create a record in a dynamic TEMP-TABLE object on INSERT of row in its associated static brow
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   9/13/2006
Status: Unverified

GOAL:

How to create a record in a dynamic TEMP-TABLE object on INSERT of row in its associated static browse?

FIX:

Create a LEAVE event trigger for the BROWSE widget with code written along the following lines. In the following snippet, the following two variables are assumed to have already been defined, initialized and valid.
DEFINE VARIABLE hBufferObjectHandle AS HANDLE. /* A buffer object handle for the dynamic TEMP-TABLE object */
DEFINE VARIABLE hQueryObjectHandle AS HANDLE. /* A query object handle for the dynamic TEMP-TABLE object */
ON LEAVE OF BROWSE-1 IN FRAME DEFAULT-FRAME
DO:
DEFINE VARIABLE iNumColumns AS INTEGER NO-UNDO.
DEFINE VARIABLE hColumn AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE hField AS WIDGET-HANDLE NO-UNDO.
IF BROWSE-1:NEW-ROW THEN DO:
hBufferObjectHandle:BUFFER-CREATE.
hQueryObjectHandle:CREATE-RESULT-LIST-ENTRY().
END.
REPEAT iNumColumns = 1 TO BROWSE-1:NUM-COLUMNS:
hColumn = BROWSE-1:GET-BROWSE-COLUMN(iNumColumns).
hField = hColumn:BUFFER-FIELD.
DO TRANSACTION:
hQueryObjectHandle:GET-CURRENT(EXCLUSIVE-LOCK).
hField:BUFFER-VALUE = hColumn:SCREEN-VALUE.
END.
hQueryObjectHandle:GET-CURRENT(NO-LOCK).
END.
END.