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
pavell
Участник
Участник



Joined: 20 Jun 2012
Posts: 28

PostPosted: Thu Dec 20, 2012 12:55 am    Post subject: Подсчет суммы Reply with quote

Нужно посчитать сумму(ZSUMNS) ндс в разрезе ставки ндс(ZSTNDS) во внутренней таблице.
После того как цикл проходит второй раз(ставка ндс = 18 ), флаг все равно заполняется, хотя "18" встречается только впервый раз, по идее он должен заполниться только после 4-ого прохода. Подскажите в чем может быть проблема.
DATA:
lt_tgp TYPE zreg_tt_gp_agr,
ls_tgp LIKE LINE OF lt_tgp,
lv_flag TYPE c,
lv_zsumns TYPE zrege_sumns.

SORT lt_tgp BY zstnds.
LOOP AT lt_tgp INTO ls_tgp.
AT END OF zstnds.
MOVE 'X' TO lv_flag.
ENDAT.
lv_zsumns = lv_zsumns + ls_tgp-zsumns.
IF lv_flag EQ 'X'.
MOVE-CORRESPONDING ls_tgp TO ls_tgp2.
MOVE lv_zsumns TO ls_tgp2-zsumns.
APPEND ls_tgp2 to lt_tgp2.
CLEAR : lv_zsumns, lv_flag.
ENDIF.
ENDLOOP.



1.png
 Description:
 Filesize:  3.23 KB
 Viewed:  11814 Time(s)

1.png



2.png
 Description:
 Filesize:  59.79 KB
 Viewed:  11814 Time(s)

2.png


Back to top
View user's profile Send private message
Удав
Гуру
Гуру


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

PostPosted: Thu Dec 20, 2012 8:19 am    Post subject: Reply with quote

Почитайте внимательно про оператор AT END OF.
AT END срабатывает не только при изменении указанного поля, но ли любого другого, стоящего слева от него в структуре таблицы.
В вашем случае для корректной работы поле ZNDS в структуре должно быть объявлено раньше поля ZSUMNDS и произведена сортировка внутренней таблицы по полю ZNDS

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
pavell
Участник
Участник



Joined: 20 Jun 2012
Posts: 28

PostPosted: Thu Dec 20, 2012 10:45 am    Post subject: Reply with quote

Удав wrote:
Почитайте внимательно про оператор AT END OF.
AT END срабатывает не только при изменении указанного поля, но ли любого другого, стоящего слева от него в структуре таблицы.
В вашем случае для корректной работы поле ZNDS в структуре должно быть объявлено раньше поля ZSUMNDS и произведена сортировка внутренней таблицы по полю ZNDS


Спасибо за помощь, заработало.
Back to top
View user's profile Send private message
sergiucz
Специалист
Специалист


Age: 41
Joined: 17 Feb 2012
Posts: 62

PostPosted: Thu Dec 20, 2012 6:40 pm    Post subject: Reply with quote

Quote:
AT END OF.

Или самому написать логику AT END OF. и не надо менять структуру.

_________________
Начинаюший ABAP-er
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Fri Dec 21, 2012 9:38 am    Post subject: Reply with quote

sergiucz wrote:
Quote:
AT END OF.

Или самому написать логику AT END OF. и не надо менять структуру.
как показывает личный опыт - лучше поменять структуру (если это возможно). Своя логика в таких случаях выглядит обычно громоздко и не очень красиво
Back to top
View user's profile Send private message Blog
sergiucz
Специалист
Специалист


Age: 41
Joined: 17 Feb 2012
Posts: 62

PostPosted: Mon Dec 24, 2012 6:35 pm    Post subject: Reply with quote

Armann wrote:
sergiucz wrote:
Quote:
AT END OF.

Или самому написать логику AT END OF. и не надо менять структуру.
как показывает личный опыт - лучше поменять структуру (если это возможно). Своя логика в таких случаях выглядит обычно громоздко и не очень красиво


с тобой согласен. Все зависит от задачи .
Если много критерии по которому искать без своей логике никак.

_________________
Начинаюший ABAP-er
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.