Как изменить цикл с помощью SELECT в abap на field-symbol - PullRequest
0 голосов
/ 23 мая 2018

У меня есть такой код:

i_mahn is a itab.
Data: gt_mahn type table of i_mahn,
gs_result type i_mahn.
  LOOP AT gt_mahn into gs_result
    SELECT * FROM mhnd
                 INTO gs_mhnd
                 WHERE laufd EQ gs_result-laufd
                 AND   laufi EQ gs_result-laufi
                 AND   cpdky EQ gs_result-cpdky
      MOVE-CORRESPONDING gs_mhnd TO gs_result.
    ENDSELECT.
  ENDLOOP.

, и я хочу изменить его на цикл с символом поля, но как?Я знаю, что символ поля содержит только те позиции, где находилась информация, но я не знаю, как использовать символ поля с выбором в этом случае ...

field-symbols: <gs_mahn> like line of gt_mahn
  LOOP AT gt_mahn appending <gs_mahn>
    SELECT * FROM mhnd
                 INTO ???
                 WHERE laufd EQ <gs_mahn>-laufd
                 AND   laufi EQ <gs_mahn>-laufi
                 AND   cpdky EQ <gs_mahn>-cpdky
      MOVE-CORRESPONDING ??? TO ???.
    ENDSELECT.
  ENDLOOP.

1 Ответ

0 голосов
/ 23 мая 2018
field-symbols: <gs_mahn> like line of gt_mahn.
  LOOP AT gt_mahn ASSIGNING <gs_mahn>.
    SELECT * FROM mhnd INTO gt_mahn
                 WHERE laufd EQ <gs_mahn>-laufd
                 AND   laufi EQ <gs_mahn>-laufi
                 AND   cpdky EQ <gs_mahn>-cpdky
      MOVE-CORRESPONDING <gs_mahn> TO <whatever>.
    ENDSELECT.
  ENDLOOP.

Я действительно не знаю, что вы делаете, но в моем примере вы можете увидеть, как использовать символы поля ... Google мог бы также легко это знать ... https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenfield-symbol_inline.htm

...