Progress 4gl 如何在同一程序中使用entry和lookup函数来显示数字对应的字符串
当我在运行时输入4时,下面的程序应该返回字符串“four”,类似地,返回对应于5、6、7和8的字符串 应使用Progress 4gl 如何在同一程序中使用entry和lookup函数来显示数字对应的字符串,progress-4gl,openedge,Progress 4gl,Openedge,当我在运行时输入4时,下面的程序应该返回字符串“four”,类似地,返回对应于5、6、7和8的字符串 应使用entry功能完成此操作 DEFINE VARIABLE x AS CHARACTER NO-UNDO FORMAT "9" LABEL "Enter a digit between 4 and 8". DEFINE VARIABLE show AS CHARACTER NO-UNDO FORMAT "x(5)" EXTENT 5 LABEL "Literal" INITIAL ["
entry
功能完成此操作
DEFINE VARIABLE x AS CHARACTER NO-UNDO FORMAT "9" LABEL "Enter a digit between 4 and 8".
DEFINE VARIABLE show AS CHARACTER NO-UNDO FORMAT "x(5)" EXTENT 5 LABEL "Literal" INITIAL ["four","five","six","seven","eight"].
DEFINE VARIABLE i AS INTEGER.
REPEAT:
SET x AUTO-RETURN.
i = LOOKUP(x, "4,5,6,7,8",",") .
IF i = 0 THEN
DO:
MESSAGE "Digit must be 4, 5, 6, 7 or 8. Try again.".
UNDO, RETRY.
END.
MESSAGE ENTRY(i, show[i], ",") VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
a) 您的查找功能出错。第一个参数是x(要在列表中定位的表达式),然后将列表作为逗号分隔的字符串
b) 不需要别的。在撤消时,重试将停止循环的当前迭代
c) 因为show是一个数组,所以只需引用数组元素
DEFINE VARIABLE x AS CHARACTER NO-UNDO FORMAT "9" LABEL "Enter a digit between 4 and 8".
DEFINE VARIABLE show AS CHARACTER NO-UNDO FORMAT "x(5)" EXTENT 5 LABEL "Literal" INITIAL ["four","five","six","seven","eight"].
define variable i as integer .
REPEAT:
SET x AUTO-RETURN.
i = lookup(x, "4,5,6,7,8",",") .
IF i = 0
THEN
DO:
MESSAGE "Digit must be 4,5,6,7, or 8. Try again.".
UNDO, RETRY.
END.
MESSAGE show[i]
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
a) 您的查找功能出错。第一个参数是x(要在列表中定位的表达式),然后将列表作为逗号分隔的字符串
b) 不需要别的。在撤消时,重试将停止循环的当前迭代
c) 因为show是一个数组,所以只需引用数组元素
DEFINE VARIABLE x AS CHARACTER NO-UNDO FORMAT "9" LABEL "Enter a digit between 4 and 8".
DEFINE VARIABLE show AS CHARACTER NO-UNDO FORMAT "x(5)" EXTENT 5 LABEL "Literal" INITIAL ["four","five","six","seven","eight"].
define variable i as integer .
REPEAT:
SET x AUTO-RETURN.
i = lookup(x, "4,5,6,7,8",",") .
IF i = 0
THEN
DO:
MESSAGE "Digit must be 4,5,6,7, or 8. Try again.".
UNDO, RETRY.
END.
MESSAGE show[i]
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
我认为您需要决定是使用
ENTRY
还是数组。在这种情况下,混合没有意义
DEFINE VARIABLE x AS CHARACTER NO-UNDO FORMAT "9" LABEL "Enter a digit between 4 and 8".
DEFINE VARIABLE show AS CHARACTER NO-UNDO FORMAT "x(5)" LABEL "Literal" INITIAL "four,five,six,seven,eight".
DEFINE VARIABLE i AS INTEGER NO-UNDO.
REPEAT:
SET x AUTO-RETURN.
i = LOOKUP(x, "4,5,6,7,8", ",") NO-ERROR.
IF i = 0 THEN DO:
MESSAGE "Digit must be 4,5,6,7, or 8. Try again.".
UNDO, RETRY.
END.
MESSAGE entry(i, show, ",") VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
我认为您需要决定是使用
ENTRY
还是数组。在这种情况下,混合没有意义
DEFINE VARIABLE x AS CHARACTER NO-UNDO FORMAT "9" LABEL "Enter a digit between 4 and 8".
DEFINE VARIABLE show AS CHARACTER NO-UNDO FORMAT "x(5)" LABEL "Literal" INITIAL "four,five,six,seven,eight".
DEFINE VARIABLE i AS INTEGER NO-UNDO.
REPEAT:
SET x AUTO-RETURN.
i = LOOKUP(x, "4,5,6,7,8", ",") NO-ERROR.
IF i = 0 THEN DO:
MESSAGE "Digit must be 4,5,6,7, or 8. Try again.".
UNDO, RETRY.
END.
MESSAGE entry(i, show, ",") VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
是的,我同意你的观点,但是这个程序必须使用输入功能。我编辑了我发布的上述程序,它只显示第一个输入的结果,其余的则显示错误。是的,我同意你的观点,但是这个程序必须使用输入功能。我编辑了我发布的上述程序,它只显示第一个条目的结果,其余条目则抛出错误。