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.