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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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