Текущее время: Чт, мар 28 2024, 14:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как написать цикл в ABAP
СообщениеДобавлено: Пт, янв 25 2013, 13:20 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 25 2013, 13:09
Сообщения: 2
Добрый день. Я пока очень слабая в программирование в ABAP.
Помогите мне в следующем:
У меня есть Excell файл, который загружается в систему и его значения заносятся в табличку со структурой ALSMEX_TABLINE. Мне нужно чтобы значения первого столбца этой таблицы (1) он сравнивал со значениями столбца из другой таблицы (2), в случае если значения одинаковые, он их удалил из таблицы (2).
Вопрос мне так же не ясно, как он называет столбцы в таблице (1), ведь эта таблица временная, с помощью какого оператора.
Спасибо за помощь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пт, янв 25 2013, 13:25 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
Наверное так:
Code:
loop at таблица1 into структура этой таблицы
  read table таблица2 into структура таблицы2 with key ключи поиска по таблице...
  if sy-sybrc = 0.
  endif.
endloop


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пт, янв 25 2013, 13:31 
Менеджер
Менеджер

Зарегистрирован:
Пн, янв 28 2008, 16:56
Сообщения: 512
Откуда: Воронеж
Пол: Мужской
Code:
loop at ALSMEX_TABLINE.
      TABIX = SY-TABIX.
     
      if ALSMEX_TABLINE-POLE1 = ALSMEX_TABLINE-POLE2.
        delete ALSMEX_TABLINE index TABIX.
      endif.
    endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пт, янв 25 2013, 14:09 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 25 2013, 13:09
Сообщения: 2
Спасибо огромное!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Вс, мар 10 2013, 21:02 
Начинающий
Начинающий

Зарегистрирован:
Вс, мар 10 2013, 20:54
Сообщения: 6
Всем привет! У меня тоже вопрос про цикл. У меня есть вн таблица lt_tab . В поле lt_tab-x записаны значения, например 1,2,3,4,5. Мне надо просмотреть весь столбец x и если в нем есть значение 5 то вывести его в переменную ls_tab иначе вывести самый последний элемент в этом поле.
Code:
loop at  lt_tab
if  lt_tab-x = '5'
ls_tab = lt_tab-x
else
ls_tab = lt_tab-x
endif.
endloop.

Может как-то по другому можно?

Может надо в переменные записывать предыдущие значения столбца x?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 11 2013, 08:51 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 26 2011, 08:36
Сообщения: 16
Пол: Мужской
можно так:
Code:
loop at it_tab into wa_tab where x = '5'.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 11 2013, 08:51 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 26 2011, 08:36
Сообщения: 16
Пол: Мужской
можно так:
Code:
loop at it_tab into wa_tab where x = '5'.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 11 2013, 12:07 
Начинающий
Начинающий

Зарегистрирован:
Вс, мар 10 2013, 20:54
Сообщения: 6
Cпасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 11 2013, 12:25 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
Leha, а как же последнее значение?
Вообще решение кажется таким:
Code:
LOOP AT lt_tab INTO ls_tab.
  IF ls_tab-x EQ '5'.
    EXIT.
  ENDIF.
ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 11 2013, 18:37 
Начинающий
Начинающий

Зарегистрирован:
Вс, мар 10 2013, 20:54
Сообщения: 6
:lol: :lol: Спасибо!!!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Вт, мар 12 2013, 07:53 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 26 2011, 08:36
Сообщения: 16
Пол: Мужской
прошу прощения, не увидел самого главного :oops:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 18 2013, 06:08 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 10:50
Сообщения: 197
Korvax написал:
Leha, а как же последнее значение?
Вообще решение кажется таким:
Code:
LOOP AT lt_tab INTO ls_tab.
  IF ls_tab-x EQ '5'.
    EXIT.
  ENDIF.
ENDLOOP.


Вот еще решение :D

Code:
SORT lt_tab BY x DESCENDING.
READ TABLE lt_tab ASSIGNING <fs_tab> INDEX 1.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 18 2013, 07:19 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
это не решение. пример: 1,2,3,4,5,6. => 6, а надо 5.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Пн, мар 18 2013, 19:27 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 10:50
Сообщения: 197
JULIA86ru написал(а):
Всем привет! У меня тоже вопрос про цикл. У меня есть вн таблица lt_tab . В поле lt_tab-x записаны значения, например 1,2,3,4,5. Мне надо просмотреть весь столбец x и если в нем есть значение 5 то вывести его в переменную ls_tab иначе вывести самый последний элемент в этом поле.
loop at lt_tab
if lt_tab-x = '5'
ls_tab = lt_tab-x
else
ls_tab = lt_tab-x
endif.
endloop.

Может как-то по другому можно?

Может надо в переменные записывать предыдущие значения столбца x?


Korvax написал:
это не решение. пример: 1,2,3,4,5,6. => 6, а надо 5.


Это у Вас 6 в примере 5 или последнее :D

А так все зависит от конкретной задачи

можно и так

Code:
SORT lt_tab BY x DESCENDING.
READ TABLE lt_tab ASSIGNING <fs_tab> WITH KEY x = '5' BINARY SEARCH.
  IF sy-subrc <> 0.
   READ TABLE lt_tab ASSIGNING <fs_tab> INDEX 1.
   ....
   ENDIF.
 


З.Ы. Ваше решение не выполняет требование

Korvax написал:
Leha, а как же последнее значение?
Вообще решение кажется таким:
Code:
LOOP AT lt_tab INTO ls_tab.
  IF ls_tab-x EQ '5'.
    EXIT.
  ENDIF.
ENDLOOP.


если 6 или 4 как отработает ваш код?? :roll:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как написать цикл в ABAP
СообщениеДобавлено: Вт, мар 19 2013, 07:30 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
Bimit написал(а):
Это у Вас 6 в примере 5 или последнее.
Вы меня не путайте, в постановке ясно сказано, если есть 5, то 5, если нету то последнее. Следовательно Ваш предыдущий код вернет максимальное и это неправильно.
Bimit написал(а):
если 6 или 4 как отработает ваш код??
Мой код как раз при наличии 5 выйдет из цикла, при отсутствии пройдет до конца, до самого последнего элемента.
Bimit написал(а):
можно и так
Тоже нельзя, Вы учтите что нигде не сказано что элементы идут по порядку, и явно сказано что нужен самый последний элемент (не обязательно максимальный).

upd. Я бы сказал что все зависит не то что от задачи, а чаще от конкретной постановки. :wink:


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

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


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

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


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

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