Текущее время: Вт, июл 22 2025, 22:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Элементарный счетчик
СообщениеДобавлено: Вт, сен 04 2012, 12:02 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 31 2009, 17:39
Сообщения: 152
Откуда: Санкт-Петербург
Пол: Мужской
Добрый день коллеги. Нужна помощь (я сам не абапер а консультант) при написании простенького счетчкиа. Задача такая, в отчете выводится материал (MARA-MATNR) а к нему три(или другое любое количество) позиции компонентов (STPO-IDNRK) ну так вот мне нужно подсчитать количество этих компонентов для этого материала и присвоить это значение переменной KOLCOMP. Помогите примером.
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Элементарный счетчик
СообщениеДобавлено: Вт, сен 04 2012, 13:06 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
сами позиции не нужны, просто количество? и материал ровно 1?
Code:
REPORT  zzzzz.
PARAMETERS p_matnr TYPE mara-matnr. "или STPO-IDNRK?

START-OF-SELECTION.
  DATA kolcomp TYPE i.
  SELECT COUNT(*) FROM stpo INTO kolcomp WHERE stpo~idnrk = p_matnr.
  WRITE: p_matnr, kolcomp.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Элементарный счетчик
СообщениеДобавлено: Вт, сен 04 2012, 13:11 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Не знаю, как у Вас, у нас компоненты связаны с материалом через MAST
Code:
  select distinct matnr stlnr
  into table gt_bom
  from mast
    where matnr in so_matnr
      and werks = p_werks
      and stlan = '1'  " Здесь ставьте свои значения
      and stlal = '01' " по бизнесу
  .
  sort gt_bom.

  LOOP AT gt_bom.

    clear: KOLCOMP.

    SELECT COUNT( DISTINCT idnrk )
    INTO KOLCOMP
    FROM stpo
    WHERE stlnr = gt_bom-num
      AND stlty = 'M'
    .
  ENDLOOP.


В коде, естественно, KOLCOMP надо куда-то записывать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Элементарный счетчик
СообщениеДобавлено: Вт, сен 04 2012, 13:20 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 31 2009, 17:39
Сообщения: 152
Откуда: Санкт-Петербург
Пол: Мужской
Да только количество компонентов для каждого материала, для простоты можно показать на 1 или 2ух материалах
Вот пример
1ая колонка Материал, 2ая Компонент, 3я КолКомп
1 1 2
1 2 2

2 1 4
2 2 4
2 3 4
2 4 4

Вот мне нужно посчитаться Кол Комп


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Элементарный счетчик
СообщениеДобавлено: Вт, сен 04 2012, 13:54 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Тогда таблицу gt_bom из моего примера выше можно определить как таблицу из MATNR IDLNR KOLKOMP.
И на каждом шаге цикла по gt_bom записывать кол-во в поле gt_bom-kolkomp.

Code:

data: begin of gt_bom occurs 10,
matnr type mara-matnr,
idlnr type mast-idlnr,
kolkomp type i,
end of gt_bom.

select distinct matnr stlnr
  into table gt_bom
  from mast
    where matnr in so_matnr
      and werks = p_werks
      and stlan = '1'  " Здесь ставьте свои значения
      and stlal = '01' " по бизнесу
  .
  sort gt_bom.

data: tabix type sy-tabix.

  LOOP AT gt_bom.

    tabix = sy-tabix

    SELECT COUNT( DISTINCT idnrk )
    INTO gt_bom-KOLCOMP
    FROM stpo
    WHERE stlnr = gt_bom-num
      AND stlty = 'M'
    .

modify gt_bom index tabix.

  ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Элементарный счетчик
СообщениеДобавлено: Пт, сен 07 2012, 14:12 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 133
Откуда: Набережные Челны
Пол: Мужской
Думаю запрос должен быть таким
Code:
SELECT
  mast~matnr
  stpo~idnrk
  COUNT( stpo~idnrk ) AS KOLKOMP
FROM
  mast
    INNER JOIN
      stko              ON mast~stlnr   = stko~stlnr   AND
                           mast~stlal   = stko~stlal
    INNER JOIN
      stas              ON stko~stlty   = stas~stlty   AND
                           stko~stlnr   = stas~stlnr   AND
                           stko~stlal   = stas~stlal
    INNER JOIN
      stpo              ON stas~stlty   = stpo~stlty   AND
                           stas~stlnr   = stpo~stlnr   AND
                           stas~stlkn   = stpo~stlkn
INTO CORRESPONDING FIELDS OF TABLE it_data
GROUP BY
    mast~matnr
    stpo~idnrk 


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

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


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

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


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

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