Текущее время: Пт, июл 25 2025, 05:53

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


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

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


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

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