Текущее время: Пт, июл 18 2025, 22:49

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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