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

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


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

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


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

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