Consultor Eletrônico



Kbase P98277: ENTRY() statement does not do anything when used on a widget attribute.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/16/2008
Status: Unverified

FACT(s) (Environment):

Progress 8.x
Progress 9.x
OpenEdge 10.0x

SYMPTOM(s):

ENTRY() statement does not do anything when used on a widget attribute.

ENTRY() statement does not work when used on an attribute of a handle.

CAUSE:

This is a known issue.
The following code reproduces the problem:

DEF VAR b AS CHAR FORMAT "x(40)".
FORM b WITH FRAME f.
VIEW FRAME f.
ASSIGN b:SCREEN-VALUE IN FRAME f = "Hello,Test".
PAUSE MESSAGE "Before ENTRY()".
ENTRY(1, b:SCREEN-VALUE IN FRAME f) = "s".
PAUSE MESSAGE "After ENTRY()".

When Progress reaches the second PAUSE statement, the fill-in field will still show the string "Hello,Test".

FIX:

You can workaround this problem by assigning the value of the attribute to a character variable, using the ENTRY() statement on that variable, and then assigning the variable back to the attribute:

DEF VAR v AS CHAR.
ASSIGN v = b:SCREEN-VALUE IN FRAME f.
ENTRY(1, v) = "s".
ASSIGN b:SCREEN-VALUE IN FRAME f = v.