Текущее время: Сб, июл 26 2025, 04:13

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Можно ли написать что-то типа IF field in ('1','2','3')
СообщениеДобавлено: Ср, ноя 09 2011, 05:58 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
Коллеги, вопрос новичка:
Судя по синтаксической диаграмме именно так как в заголовке темы написать нельзя.
неужели мне остаётся только писать:
if field='1' or field='2' or field='3'.
или есть всё таки более элегантное решение?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Можно ли написать что-то типа IF field in ('1','2','3')
СообщениеДобавлено: Ср, ноя 09 2011, 06:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Osm написал(а):
Коллеги, вопрос новичка:
Судя по синтаксической диаграмме именно так как в заголовке темы написать нельзя.
неужели мне остаётся только писать:
if field='1' or field='2' or field='3'.
или есть всё таки более элегантное решение?

Такое для select(where) проходит, только там нужно писать с пробелами in ('1', '2', '3').
Для Вашего случая, можно использовать range
Code:
ranges r_r for bkpf-belnr.
/fill r_r/
data: g_field like bkpf-belnr.   
IF g_field in r_r.
endif.


Последний раз редактировалось Besa Ср, ноя 09 2011, 06:17, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Можно ли написать что-то типа IF field in ('1','2','3')
СообщениеДобавлено: Ср, ноя 09 2011, 06:15 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
про where я в курсе
за ranges спасибо, но наверное я всё-таки через or напишу, так попроще.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Можно ли написать что-то типа IF field in ('1','2','3')
СообщениеДобавлено: Ср, ноя 09 2011, 06:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
Или так:

Code:
   CASE FIELD.
      WHEN '1' OR '2' OR '3'.
       ...
      WHEN OTHERS.
        ...
   ENDCASE.

Может это элегантнее, правда не на много. Ну хоть field не надо повторять

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Можно ли написать что-то типа IF field in ('1','2','3')
СообщениеДобавлено: Ср, ноя 09 2011, 08:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Если поле символьное и:
а) имеет длину 1, то можно воспользоваться оператором вхождения:
Code:
IF field CA'123'. "Для одного символа

б) имеет конечную длину, то можно воспользоваться оператором поиска
Code:
FIND field IN '123;321;222;333;111'.
IF sy-subrc = 0 .

Конечно, эти варианты будут медленнее с точки зрения быстродействия, чем прямое сравнение.

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


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

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


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

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


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

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