如何隐藏表单字段数据? - 进展 4GL?

How to hide form fields data? - PROGRESS 4GL?

下面的查询给出了预期的结果,但是在更新表单字段后将变量 lvl_select 设置为是或否时,它无法隐藏表单字段值。

预期结果:

当 lvl_select = Yes 时,仅更新表单字段 lvc_part

When lvl_select = no 然后隐藏更新表单字段的值 lvc_part 并更新 lvc_part1 而 lvc_part1 然后隐藏表单字段的值lvc_part 并更新 lvc_part1

DEFINE VARIABLE lvl_select AS LOGICAL NO-UNDO.
DEFINE VARIABLE lvc_part AS CHARACTER NO-UNDO.
DEFINE VARIABLE lvc_part1 AS CHARACTER NO-UNDO.
DEFINE VARIABLE  path AS CHARACTER NO-UNDO.

FORM
lvl_select COLON 20
lvc_part COLON 20
lvc_part1 COLON 20
path

WITH FRAME a  no-labels width 80 ATTR-SPACE.

mainloop:
REPEAT:
   DISPLAY 
     lvl_select
     lvc_part
     lvc_part1
     path
     WITH FRAME a.

   UPDATE 
     lvl_select
     WITH FRAME a.

   IF lvl_select = YES THEN
   DO :
       UPDATE 
         lvc_part
         WITH FRAME a.
   END.
   ELSE
   DO:
      UPDATE 
        lvc_part1
        WITH FRAME a.
   END.
END.

要在 ELSE 块中隐藏 lvc_part,写

HIDE lvc_part IN FRAME a. 

显示和更新适用于整个框架。 UPDATE 不会仅仅因为您没有更新任何内容而隐藏框架的一部分。

获得您似乎想要的结果的一种方法是隐藏您不想在逻辑分支中看到的字段。另一种方法是使用两个不同的框架。

此外 - ATTR-SPACE 用于在屏幕上保留 space 以供某些 80 年代的非常老的终端使用,这些终端的内存太少以至于它们需要在屏幕上 space存储 REVERSE 和 UNDERLINE 等属性的开头。这些终端被亲切地称为“space 浪费者”。实际上没有人再做这样的事情了,我非常怀疑你正在使用需要该属性的模拟器。