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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Не работает AT NEW. SUM. ENDAT.
СообщениеДобавлено: Ср, авг 04 2010, 16:10 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 18 2008, 11:25
Сообщения: 100
Есть таблица, в которой помимо прочих есть поля SHKZG и MENGE.
Нужно посчитать две суммы по полям MENGE при SHKZG = 'S' и SHKZG = 'N' соответственно.
Делаю таким кодом:

Code:
  LOOP AT lt_matdocs WHERE matnr EQ <fs_mat>-matnr.
    AT NEW shkzg.
      SUM.
      IF lt_matdocs-shkzg EQ 'S'.
        lv_menge_s = lt_matdocs-menge.
      ELSEIF lt_matdocs-shkzg EQ 'H'.
        lv_menge_h = lt_matdocs-menge.
      ENDIF.
    ENDAT.
  ENDLOOP.

Почему-то при одном и том же SHKZG он каждый раз заходит в AT NEW shkzg. Т.е. если подряд идет 10 строк с SHKZG = 'S', то проходит не один раз, а 10 раз. Т.е. игнорирует "AT NEW shkzg". И суммы не считает((.
Пока сделал так:
Code:
  LOOP AT lt_matdocs WHERE matnr EQ <fs_mat>-matnr AND shkzg = 'S'.
    AT FIRST.
      SUM.
      lv_menge_s = lt_matdocs-menge.
    ENDAT.
  ENDLOOP.
  LOOP AT lt_matdocs WHERE matnr EQ <fs_mat>-matnr AND shkzg = 'H'.
    AT FIRST.
      SUM.
      lv_menge_h = lt_matdocs-menge.
    ENDAT.
  ENDLOOP.

еще так:
Code:
  LOOP AT lt_matdocs WHERE matnr EQ <fs_mat>-matnr.
    IF lt_matdocs-shkzg EQ 'S'.
      ADD lt_matdocs-menge TO lv_menge_s.
    ELSEIF lt_matdocs-shkzg EQ 'H'.
      ADD lt_matdocs-menge TO lv_menge_h.
    ENDIF.
  ENDLOOP.

Какой способ рациональнее и все-таки почему не работает первый способ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает AT NEW. SUM. ENDAT.
СообщениеДобавлено: Ср, авг 04 2010, 16:17 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Refresh написал(а):
Есть таблица, в которой помимо прочих есть поля SHKZG и MENGE.
Нужно посчитать две суммы по полям MENGE при SHKZG = 'S' и SHKZG = 'N' соответственно.
Делаю таким кодом:
...

Особенности работы операторов at new описаны в help-е и многократно обсуждены на форуме (в том числе возможные альтернативы)

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работает AT NEW. SUM. ENDAT.
СообщениеДобавлено: Ср, авг 04 2010, 16:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 18 2008, 11:25
Сообщения: 100
Поместил поле SHKZG в начало структры таблицы lt_matdocs.
Помогло.


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

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


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

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


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

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