Consultor Eletrônico



Kbase P47526: Triggers defined for dynamic widgets don't fire.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   13/10/2003
Status: Unverified

FACT(s) (Environment):

Progress 9.1x

SYMPTOM(s):

Triggers defined for dynamic widgets don't fire.

CAUSE:

Dynamic widget's triggers defined in internal procedure

FIX:

Move widgets trigger to the same level with WAIT-FOR statement.

See example:

DEF VAR c-win AS HANDLE.
DEF VAR BH AS HANDLE.

DEFINE TEMP-TABLE customer
FIELD NAME AS CHARACTER
FIELD custNum AS INTEGER
.

RUN fill_ttCustomer.

DEFINE QUERY q FOR customer SCROLLING.
OPEN QUERY q FOR EACH customer.

DEFINE FRAME fh
WITH WIDTH 70 TITLE "Dynamic Browse Widget Demo"
11 DOWN THREE-D.

CREATE WINDOW C-Win ASSIGN
HIDDEN = YES
TITLE = "<insert window title>"
HEIGHT = 16
WIDTH = 80
MAX-HEIGHT = 16
MAX-WIDTH = 80
VIRTUAL-HEIGHT = 16
VIRTUAL-WIDTH = 80
RESIZE = yes
SCROLL-BARS = no
STATUS-AREA = no
BGCOLOR = ?
FGCOLOR = ?
KEEP-FRAME-Z-ORDER = yes
THREE-D = yes
MESSAGE-AREA = no
SENSITIVE = yes.

ASSIGN CURRENT-WINDOW = C-WIN
THIS-PROCEDURE:CURRENT-WINDOW = C-WIN.

VIEW c-win.

RUN createBrowse.

/* return trigger has to be here at the same level with WAIT-FOR statement */
ON 'return':U OF bh
DO:
MESSAGE "RETURN in BROWSE".
RETURN.
END.

WAIT-FOR CLOSE OF THIS-PROCEDURE.


PROCEDURE createBrowse:
CREATE BROWSE BH
ASSIGN FRAME = FRAME FH:HANDLE
QUERY = QUERY Q:HANDLE
X = 15
Y = 20
WIDTH = 62
DOWN = 10
READ-ONLY = FALSE
SENSITIVE = TRUE
TITLE = "10 customers"
.

bh:ADD-LIKE-COLUMN( "customer.name" ).
bh:ADD-LIKE-COLUMN( "customer.custnum" ).

BH:VISIBLE = TRUE.

END PROCEDURE.

PROCEDURE FILL_ttCustomer:
DEF VAR vi AS INT.

REPEAT vi = 1 TO 10:
CREATE customer.
ASSIGN
custnum = vi
NAME = "Cust " + STRING( vi )
.
END.
END.