【发布时间】:2020-01-16 17:15:15
【问题描述】:
我编写了一个程序,用于在 FOR Each 循环中将一条记录与另一条记录进行匹配,但如果没有一条记录匹配,我不知道如何给出错误消息。让我分享我的代码
DEFINE VARIABLE cPos AS INTEGER NO-UNDO.
DEFINE TEMP-TABLE tt_data NO-UNDO
FIELD cPosition AS CHARACTER FORMAT "X(60)"
FIELD cEndCode AS CHARACTER
FIELD cShotCode AS CHARACTER.
/*so many records are stored in tt_data and below is one of the records for your understanding*/
CREATE tt_data.
ASSIGN
tt_data.cPosition ="S$$$^^^^^^^^^^$$$^^^MC^^^^^^^^^^^^R^^^^^^^^^^^^^^^^^^^^^^^^^"
tt_data.cEndCode = 10
tt_data.cShotCode = "S".
cPos = integer( tt_data.cEndCode / 10 ).
/* Consider 60 records available in tt_data */
FOR EACH tt_data.
FIND FIRST tt_date WHERE tt_data.cShotCode =
SUBSTRING(tt_data.cPosition,cPos,1) NO-LOCK NO-ERROR.
DISPLAY tt_data.cShotCode. /* Displayed Value is S */
IF NOT AVAILABLE tt_date THEN
MESSAGE "NONE OF THE RECORDS MATCHING WITH tt_data.cPosition "
LEAVE.
END.
我可以在 tt_data 中获得至少一条记录匹配。这里的问题是,如果任何一条记录匹配,我不想离开,但如果没有记录匹配,我想用 LEAVE 语句收到错误消息。你能帮帮我吗?
【问题讨论】:
标签: openedge progress-4gl