SAPфорум.RU
https://www.sapboard.ru/forum/

Цикл по определенному полю таблицы.
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96537
Страница 1 из 1

Автор:  s.p.i.d. [ Пт, июн 22 2018, 11:24 ]
Заголовок сообщения:  Цикл по определенному полю таблицы.

Добрый день, уважаемые форумчане.
Подскажите пожалуйста как можно сделать цикл или прочитать динамическую таблицу по определенному полю?
Название полей получаю через describe field.

Автор:  Besa [ Пт, июн 22 2018, 11:35 ]
Заголовок сообщения:  Re: Цикл по определенному полю таблицы.

operator assign + f1.
ASSIGN - dynamic_dobj

Также поиск, задача простая, много раз обсуждалось.

Автор:  Igor_Beruk [ Пт, июн 22 2018, 11:35 ]
Заголовок сообщения:  Re: Цикл по определенному полю таблицы.

s.p.i.d. написал(а):
Добрый день, уважаемые форумчане.
Подскажите пожалуйста как можно сделать цикл или прочитать динамическую таблицу по определенному полю?
Название полей получаю через describe field.



Например:

DATA: BEGIN OF ls_text,
text1 TYPE bezei40,
text2 TYPE text40,
text3 TYPE text40,
text4 TYPE text40,
text5 TYPE text40,
text6 TYPE text40,
text7 TYPE text40,
END OF ls_text,
ct_fieldcat TYPE lvc_t_fcat.

FIELD-SYMBOLS: <ls_fieldcat> LIKE LINE OF ct_fieldcat,
<ls_goods_t> TYPE any.
DO 3 TIMES.


SELECT SINGLE text1 text2 text3 text4 text5 text6 text7 INTO CORRESPONDING FIELDS OF ls_text
FROM t604t
WHERE spras EQ sy-langu.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'T604T'
i_bypassing_buffer = abap_true
CHANGING
ct_fieldcat = ct_fieldcat.

CHECK <ls_fieldcat> IS ASSIGNED.
CASE <ls_fieldcat>-fieldname.
WHEN 'TEXT1' OR 'TEXT2' OR 'TEXT3' OR 'TEXT4' OR 'TEXT5' OR 'TEXT6' OR 'TEXT7'.
ASSIGN COMPONENT <ls_fieldcat>-fieldname OF STRUCTURE ls_text TO <ls_goods_t>.

ENDCASE.


ENDDO.

Автор:  author [ Пт, июн 22 2018, 11:51 ]
Заголовок сообщения:  Re: Цикл по определенному полю таблицы.

Code:
data lt_dynamic type any table.
data lt_described type standard table of string with default key.

loop at lt_dynamic assigning field-symbol(<ls_dynamic>).
  loop at lt_described assigning field-symbol(<ls_described>).
    assign component <ls_described> of <ls_dynamic> to field-simbol(<lv_field>).
    if sy-subrc = 0.
      write / <lv_field>.
    endif.
  endloop.
endloop.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/