Текущее время: Пн, июл 21 2025, 19:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Оператор IN
СообщениеДобавлено: Пн, дек 25 2006, 17:48 
Ассистент
Ассистент

Зарегистрирован:
Вс, ноя 12 2006, 23:53
Сообщения: 40
Откуда: Moscow
Ув. знатоки, известно ли вам, записывает или нет ABAP в структуру SYST индекс строчки с условием в budat, которое сработало wa_smth-budat:

if wa_smth-budat in budat.
....
endif.
P.S. Прошу не справшивать зачем, мне это. :roll:


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Long написал(а):
Ув. знатоки, известно ли вам, записывает или нет ABAP в структуру SYST индекс строчки с условием в budat, которое сработало wa_smth-budat:

if wa_smth-budat in budat.
....
endif.
P.S. Прошу не справшивать зачем, мне это. :roll:


а что говорит опытный эксперимент?

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 25 2006, 18:04 
Гость
нет, но можно вот так:

Code:
TABLES: BKPF.
DATA: I TYPE I.
SELECT-OPTIONS: BUDAT FOR BKPF-BUDAT.
PARAMETERS:     BLDAT LIKE BKPF-BUDAT.

RANGES: BD FOR BKPF-BUDAT.
LOOP AT BUDAT.
  I = SY-TABIX.
  CLEAR: BD, BD[].
  MOVE-CORRESPONDING BUDAT TO BD.
  APPEND BD.
  IF BLDAT IN BD.
    WRITE:/ I.
  ENDIF.
ENDLOOP.


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
РМщик написал(а):
нет, но можно вот так:

Code:
TABLES: BKPF.
DATA: I TYPE I.
SELECT-OPTIONS: BUDAT FOR BKPF-BUDAT.
PARAMETERS:     BLDAT LIKE BKPF-BUDAT.

RANGES: BD FOR BKPF-BUDAT.
LOOP AT BUDAT.
  I = SY-TABIX.
  CLEAR: BD, BD[].
  MOVE-CORRESPONDING BUDAT TO BD.
  APPEND BD.
  IF BLDAT IN BD.
    WRITE:/ I.
  ENDIF.
ENDLOOP.


Хорошо, но есть пару неточностей:
1. Если budat[] is initial, то bldat in budat[] будет верно, хотя (а) нет ни одной строки, и (б) предложенный пример не выдаст ни одного варианта.
2. Обратный пример, если budat[] состоит из двух строк 'IEQ******' и 'EEQ********' (даты должны быть одинаковыми), то bldat in budat[] для даты ******** будет ложь, а приведенный цикл выдаст первую строку.

Поэтому, Long, лучше решать конкретную задачу, а не пытаться оптимизировать среду. Вспоминается I=I-(I/2*2)+1; ("Я могла бы придумать и более запутанный способ, как это сделать, - с гордостью сказала белая королева".)

Исходный вопрос тоже не вполне корректен, так как действие IN более комплексно, чем просто найти подходящую строчку.

_________________
Счастье есть!


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

Зарегистрирован:
Вс, ноя 12 2006, 23:53
Сообщения: 40
Откуда: Moscow
Tetty, РМщик спасибо за то что ответили.
Как найти этот идекс вручную мне известно. Но вопрос был о другом...
Опытный эксперимент показал, что в SYST не записывается никакой индекс.


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Какое поле в SYST имелось в виду: SYST-INDEX, SYST-TABIX, SYST-DBCNT, SYST-LOOPC или что-то другое?

Если рассматривать BUDAT как внутреннюю таблицу, то можно предположить, что искалось значение в поле SY-TABIX.
Это поле заполняется только при операциях над внутренними таблицами

Оператора IN среди них нет ;)

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


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

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


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

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


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

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