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

Как написать цикл в ABAP
https://sapboard.ru/forum/viewtopic.php?f=13&t=80771
Страница 2 из 2

Автор:  knek [ Пт, янв 27 2017, 10:46 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Здравствуйте
подскажите, пожалуйста, тоже по циклам - не могу разобраться в чужом коде:
Code:
  LOOP AT ig.
    LOOP AT tb1 INTO wa1 WHERE izdel = ig-plnbez AND monat = ig-monat AND f07 = ''.  ** внешний цикл по tb1
      LOOP AT tb1 WHERE izdel = wa1-komp AND monat = wa1-monat AND f07 NE ''.        *** внутренний цикл по tb1
        READ TABLE tb1 INTO wa2 WITH KEY izdel = wa1-izdel komp = tb1-komp monat = tb1-monat plnbez = wa1-plnbez.
        IF sy-subrc NE 0.
          tb1-izdel = wa1-izdel.
          tb1-izden = wa1-izden.
          tb1-komp = tb1-komp.
          tb1-komn = tb1-komn.
...

1) С каким индексом/порядковым номером (или экземпляром tb1) работает операция присвоения в этом тексте кода, тк. есть внешний и внутренний цикл по tb1?
Code:
tb1-izdel = wa1-izdel.

2) Для чего делается, с виду, присвоение переменной самой себе?
Code:
tb1-komp = tb1-komp.

Автор:  Bimit [ Пт, янв 27 2017, 11:16 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Индусы писали :D

внешний в рабочую область wa1
внутренний в заголовок tb1

индексов и порядковых номеров в коде не вижу

смысл присвоения самой себе не вижу :roll:

З.Ы, смотрите в отладке и что в постановке написано, может есть смысл уйти от такого большого вложения цикл в цикле

Автор:  knek [ Пт, янв 27 2017, 13:25 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Bimit написал(а):
Индусы писали :D
внешний в рабочую область wa1
внутренний в заголовок tb1
индексов и порядковых номеров в коде не вижу
смысл присвоения самой себе не вижу :roll:

благодарю

Автор:  Malych [ Чт, мар 16 2017, 05:36 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Code:
data: n type i.
read table lt_tab into fs_tab with key X = '5'.
  if sy-subrc ne 0.
   describe table lt_tab lines n.
   read table lt_tab into fs_tab index n.
  endif.     
ls_tab = lt_tab-x.

Автор:  Malych [ Чт, мар 16 2017, 05:39 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

На мой взгляд, и цикл не нужен, а также можно и обернуть в цикл...
Code:
data: n type i.
read table lt_tab into fs_tab with key X = '5'.
if sy-subrc ne 0.
describe table lt_tab lines n.
read table lt_tab into fs_tab index n.
endif.
ls_tab = lt_tab-x.

Автор:  Удав [ Чт, мар 16 2017, 16:11 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Malych написал:
Code:
data: n type i.
read table lt_tab into fs_tab with key X = '5'.
  if sy-subrc ne 0.
   describe table lt_tab lines n.
   read table lt_tab into fs_tab index n.
  endif.     
ls_tab = lt_tab-x.

Бессмыслица какая-то:
1. Таблица отсортирована по ключу X?
2. Зачем нужна именно последняя запись - в поле X не может быть значений больше 5?

Автор:  Malych [ Чт, апр 06 2017, 13:59 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

сортировка не причем...

Автор:  Удав [ Пт, апр 07 2017, 00:49 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Malych написал:
сортировка не причем...

как это не при чем?
Простой перебор - не комильфо в серьезных разработках.

Автор:  Sam Stone [ Пт, апр 07 2017, 07:44 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Какой смысл от сортировки, если нет binary search?

Автор:  RA [ Пт, апр 07 2017, 08:07 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Цитата:
Какой смысл от сортировки, если нет binary search?


Цитата:
Please note, the BINARY SEARCH is unnecessary with SORTED TABLES, it is allowed to simplify the switch from standard to sorted tables without need to change all READs.

Автор:  Sam Stone [ Пт, апр 07 2017, 08:44 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

RA написал:
Цитата:
Какой смысл от сортировки, если нет binary search?


Цитата:
Please note, the BINARY SEARCH is unnecessary with SORTED TABLES, it is allowed to simplify the switch from standard to sorted tables without need to change all READs.

Но тогда таблицу все равно нет смысла (или даже невозможно?..) отсортировать, если она создана как sorted )

Автор:  Bimit [ Пт, апр 07 2017, 13:29 ]
Заголовок сообщения:  Re: Как написать цикл в ABAP

Sam Stone написал(а):
Какой смысл от сортировки, если нет binary search?



А как же эстетический :D

Приятно в отладке смотреть сортированные (правильно) таблицы, а уж BINARY SEARCH всегда можно добавить :)

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