Текущее время: Сб, июл 19 2025, 12:22

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Условие окончания цикла LOOP AT
СообщениеДобавлено: Пн, сен 18 2006, 11:05 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Привет всем!
Подскажите пожалуйста, как в abap определяется окончание цикла LOOP AT по внутренней таблице?

Т.е. понятно что "по всем записям внутренней таблицы it ", а конкретно по какой переменной, условию?
Sy-dbcnt хранит количество прочитанных записей может с ней как-то связано?
Например я хочу нарисовать блок-схему цикла LOOP - что можно написать в ромбике-условии?

Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:19 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 22 2004, 09:09
Сообщения: 95
SY-TABIX ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:20 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Зачем? Что Вы хотите сделать?


P.S. Правильно заданный вопрос - половина ответа.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Цикл закончится если:
1. Либо кончились записи, соответствующие условию WHERE
2. Либо внутри цикла сделано явное его прерывание (напр. EXIT)

SY-DBCNT к циклам не относится
SY-TABIX относится только к индексным таблицам (STANDARD & SORTED), но к выходу из цикла отношения не имеет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
>Zharik
Я хочу:
нарисовать блок-схему цикла LOOP AT
В блок-схеме цикла есть условие окончания.
Как например в си while (isEnd != 0)
когда isEnd == 0 -> выход

Т.е. я хочу узнать какое условие проверяет Система для того чтобы узнать идти на следующий проход цикла или нет?
Sy-tabix, sy-dbcnt, sy-subrc, sy-index не влияют на цикл LOOP я уже проверял.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:31 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
> T

>Цикл закончится если:
>1. Либо кончились записи, соответствующие условию WHERE

В цикле LOOP - where ??

>2. Либо внутри цикла сделано явное его прерывание (напр. EXIT)
Это понятно естественно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Да, LOOP AT .. WHERE ..
Но если WHERE нет, то просто все записи.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:37 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
"цикл проходит все записи" ето по человечески, но ето не проясняет как он устроен внутри. ^_^


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 11:43 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, июн 22 2006, 14:03
Сообщения: 39
Откуда: Минск
В том-то и дело, что это устройство "внутри". Не понятно зачем выходить из цикла, искусственно присваивая каким-то системным полям значения, если для этого достаточно предусмотренных языком средств. А в блок схеме можно написать русскими словами(или английскими): "пока в таблице есть новые записи".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 12:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
FoLKo написал:
>Zharik
Я хочу:
нарисовать блок-схему цикла LOOP AT
В блок-схеме цикла есть условие окончания.
Как например в си while (isEnd != 0)
когда isEnd == 0 -> выход

Т.е. я хочу узнать какое условие проверяет Система для того чтобы узнать идти на следующий проход цикла или нет?
Sy-tabix, sy-dbcnt, sy-subrc, sy-index не влияют на цикл LOOP я уже проверял.

Условие простое: когда LOOP достигнет последней записи :)
А в блок-схеме так и написать "Достигнута последняя запись?"

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 18 2006, 16:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
FoLKo написал:
>Zharik
Я хочу:
нарисовать блок-схему цикла LOOP AT
В блок-схеме цикла есть условие окончания.
Как например в си while (isEnd != 0)
когда isEnd == 0 -> выход
Т.е. я хочу узнать какое условие проверяет Система для того чтобы узнать идти на следующий проход цикла или нет?
Sy-tabix, sy-dbcnt, sy-subrc, sy-index не влияют на цикл LOOP я уже проверял.

АВАР - язык для обработки данных, а не для системного программирования. Перекладывать понятия Си на АВАР - занятие заранее лишенное благоразумия :wink:
Попробуйте нарисовать блок-схему с точки зрения обработки данных, а не с точки зрения системных операций.
Например, обработать все записи, удовлетворяющие условию... если записи не найдены (sy-subrc <> 0 после цикла с условием), то ...

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 19 2006, 11:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Всем спасибо ! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 19 2006, 12:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Хочу заметить (напомнить), на всякий случай, что конструкции "Loop at ... where" и "At ... EndAt." несовместимы.

Т.е. утверждение
Удав написал(а):
Условие простое: когда LOOP достигнет последней записи
означает достижение именно последней физической записи, а не по условию WHERE. Я наступал на эти грабли...

P.S.
Привет Удаву от Parazita! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB