1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

How to give an error message if none the records are matching in FOR EACH loop?

Discussão em 'StackOverflow' iniciado por fdantas, Março 28, 2019.

  1. fdantas

    fdantas Administrator Moderador

    I have written a program for matching one records to another records in FOR Each loop but i don't know how to give an error message if none of the records are matching. Let me share my codes

    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.


    I can get at least one record matching in tt_data. Here the problem is I don't want to LEAVE if any one record is matching but I want to get an error message with LEAVE statement if none of the records are matching. Could you please help this case?

    Continue reading...

Compartilhe esta Página