Как я могу получить одну запись из нескольких записей? - PullRequest
0 голосов
/ 05 апреля 2019

Привет, я написал запрос, который должен показать данные в выпадающем списке. Позвольте мне поделиться своим вопросом, что я написал

DEFINE TEMP-TABLE tt_seq_report.
       FIELD tt_seq_report.neutral_part_obj            AS DECIMAL
       FIELD tt_seq_report.patt_id                     AS CHARACTER
       FIELD tt_seq_report.npai_info2                  AS CHARACTER.

    EMPTY TEMP-TABLE tt_seq_report.

    FOR EACH gdmf_neutral_part NO-LOCK :
        FIND FIRST gdcf_part_type WHERE gdcf_part_type.part_type_obj EQ gdmf_neutral_part.part_type_obj NO-LOCK NO-ERROR.
        CREATE tt_seq_report.
        ASSIGN
        tt_seq_report.neutral_part_obj          = gdmf_neutral_part.neutral_part_obj 
        tt_seq_report.patt_id                   = gdcf_part_type.patt_id WHEN AVAILABLE gdcf_part_type 
        tt_seq_report.npai_info2                = gdmf_neutral_part.npai_info2.


    END. 

/* Written in window main block */

    FOR EACH tt_seq_report NO-LOCK :
        coCombo-2:ADD-LAST(tt_seq_report.patt_id).
    END.    

    FOR EACH tt_seq_report NO-LOCK :
        coCombo-3:ADD-LAST(tt_seq_report.npai_info2).
    END.
/*
If you see tt_seq_report.patt_id and tt_seq_report.npai_info2 data  is
i.e tt_seq_report.patt_id    -BFA 
    tt_seq_report.npai_info2 -23 
    tt_seq_report.patt_id    -BFA (same id)
    tt_seq_report.npai_info2 -24
    tt_seq_report.patt_id    -SS
    tt_seq_report.npai_info2 -23 
    tt_seq_report.patt_id    -SS  (same id)
    tt_seq_report.npai_info2 -24
    tt_seq_report.patt_id    -ABS
    tt_seq_report.npai_info2 -23 
    tt_seq_report.patt_id    -ABS (same id)
    tt_seq_report.npai_info2 -24
and so on. 
*/

Так что здесь tt_seq_report.patt_id одинаков для одного набора записей, но tt_seq_report.npai_info2 не будет одинаковым для всех записей. Я мог бы использовать где условие, если есть tt_seq_report.patt_id - это BFA, SS, только ABS, но их много.

Если я запускаю это окно, я могу получить несколько одинаковых tt_seq_report.patt_id в выпадающем списке.

т.е. когда мы выберем выпадающий список с отображением записей, как показано ниже CustID (Имя метки для dropbox) Значение (Имя метки для dropbox)

БФА 23 БФА 24 SS 23 SS 24 ABS 23 ABS 24

Но мой ожидаемый результат должен быть

CustID (имя метки для dropbox) Значение (имя метки для dropbox)

БФА 23 24

СС 23 24

ABS 23 24

Пожалуйста, помогите этому делу. Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2019

Попробуйте это

FOR EACH tt_seq_report NO-LOCK :
    If lookup(tt_seq_report.patt_id, ccombo2:list-items) = 0 then
        coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.    

Я не знаю вашу область действия, и я делаю это на мобильных устройствах, поэтому вам может потребоваться изменить его на элементы списка в рамке {& frame-name) или ваше реальное имя рамки, если это не {& frame-name }.

РЕДАКТИРОВАТЬ: Поскольку вы просили альтернативу, вы также можете сделать это:

FOR EACH tt_seq_report NO-LOCK 
         BREAK BY tt_seq_report.patt_id:
    If first-of(tt_Seq_report.patt_id) then
        coCombo-2:ADD-LAST(tt_seq_report.patt_id).
END.    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...