SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Абаперы подскажите, Корректно ли так писать?



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Wed Sep 15, 2010 12:07 pm    Post subject: Абаперы подскажите, Корректно ли так писать? Reply with quote

Code:

loop at t_data.

  if t_data-field > 0.
     delete t_data.
  endIF.

endloop.



можно ли так писать ?

_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Wed Sep 15, 2010 12:46 pm    Post subject: Reply with quote

Допустимо, но там есть нюансы - например если не меняли ключевые поля в заголовоке t_data
Если нужно именно в таком виде, я бы написал так:
Code:

loop at t_data.
  inx = sy-tabix.

  if t_data-field > 0.
     delete t_data index inx.       
     continue.                           " Пошли на следующую итерацию
  endIF.

endloop.

Если таблица не хешированная, конечно.
Back to top
View user's profile Send private message Blog
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Wed Sep 15, 2010 12:52 pm    Post subject: Reply with quote

Very Happy спс. Всегда старался избегать таких конструкций , но в абапе это к сожалению работает или к счастью. Похоже на поговорку )) пилить сук на котором сидишь.
_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 165
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Sep 15, 2010 2:09 pm    Post subject: Reply with quote

Я иногда для подобных случаев во внутреннюю таблицу добавляю поле flag. Если нужно удалить запись, присваиваю полю flag = 'X' через field-symbol внутри цикла. При выходе из цикла удаляю все записи с установленным флагом командой delete.
_________________
Молитва - это запрос разработчику на изменение кода программы.
Back to top
View user's profile Send private message Blog Visit poster's website
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Sep 15, 2010 5:34 pm    Post subject: Re: Абаперы подскажите, Корректно ли так писать? Reply with quote

Crystal_Ra wrote:
Code:

loop at t_data.

  if t_data-field > 0.
     delete t_data.
  endIF.

endloop.



можно ли так писать ?

Можно и так написать:
Code:
DELETE t_data WHERE field > 0.

По сути то же самое, но короче Wink

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.