Sapforum.Biz

Инструменты => SE38 - ABAP Редактор => ABAP - Инструментальные средства => Программы на ABAP => Тема начата: Uukrul от Октябрь 08, 2009, 02:11:51 pm

Название: YUUK_REPORT_T030 - Данные по авто-проводкам ММ
Отправлено: Uukrul от Октябрь 08, 2009, 02:11:51 pm
YUUK_REPORT_T030 - Данные по авто-проводкам ММ

О, тут на глаза попалась одна старая программка, которая в более меннее наглядном виде выдает данные по авто-проводкам ММ, при этом в качестве критериев можно указывать группы материала + для каждого класса оценки в группе материала, можно получить список материалов которые вошли в этот класс оценки. Написано давно но работает вроде как до сих пор  ::) Было в свое время написано, как инструмент, для определения, что куда проводится и как настроено для ключевых пользователям модуля ММ.
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& Report  YUUK_REPORT_T030
*&
*&---------------------------------------------------------------------*
*& Comments    : "Авто-проводки из T030 + Список материалов по
*&                Группа материала + Класс оценки материала"
*& Platform    : SAP R/3 V4.0B or later
*& Autor       : Uukrul
*& Date create : 21.09.2001
*& Date change : 25.09.2001
*&---------------------------------------------------------------------*
REPORT yuuk_report_t030 LINE-SIZE 101.

TABLES: t030, mara, mbew.
INCLUDE <icon>.

************************************************************************
PARAMETERS     : p_ktopl LIKE t030-ktopl OBLIGATORY,
                 p_bwkey LIKE mbew-bwkey  OBLIGATORY.

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK block001 WITH FRAME TITLE text-001.
SELECT-OPTIONS : p_bklas FOR t030-bklas.
SELECT-OPTIONS : p_ktosl FOR t030-ktosl.
SELECT-OPTIONS : p_matkl FOR mara-matkl.
SELECTION-SCREEN END OF BLOCK block001.

************************************************************************

DATA: BEGIN OF i_t030 OCCURS 10,
  ktosl LIKE t030-ktosl,               "Код операции GBB|UMB...
  bwmod LIKE t030-bwmod,               "Модификационная константа оценки
  komok LIKE t030-komok,               "Модификация счета
  bklas LIKE t030-bklas,               "Класс оценки
  konts LIKE t030-konts,               "Номер основного счета - Дебет
  konth LIKE t030-konth,               "Номер основного счета - Кредит
  ltext LIKE t030w-ltext,              "Обозначение ключей операций
  matkl LIKE mara-matkl,               "Группа материалов
END OF i_t030.

DATA: BEGIN OF i_t023 OCCURS 10,
  matkl LIKE t023-matkl,               "Группа материалов
  bklas LIKE mbew-bklas,               "Класс оценки
  wgbez60 LIKE t023t-wgbez60,          "Подробный текст группы
  bkbez LIKE t025t-bkbez,              "Обозначение класса оценки запасо
END OF i_t023.

DATA: l_matkl LIKE i_t023-matkl,
      l_bklas LIKE i_t023-bklas,
      l_bkbez LIKE t025t-bkbez,
      l_wgbez60 LIKE t023t-wgbez60.

************************************************************************
************************************************************************
************************************************************************
START-OF-SELECTION.
  PERFORM read_data.
  PERFORM write_data.

************************************************************************
AT LINE-SELECTION.
  IF sy-lsind = 1.
    PERFORM write_matnr_list USING l_bklas l_bkbez l_matkl l_wgbez60.
  ENDIF.
************************************************************************
************************************************************************
*&---------------------------------------------------------------------*
*&      Form  READ_DATA
*&---------------------------------------------------------------------*
*                  Формирует данные для вывода
*----------------------------------------------------------------------*
*  <--  I_T030 - Данные для показа проводок
*----------------------------------------------------------------------*
FORM read_data.
  SELECT t3~ktosl                      "Код операции GBB|UMB...
         t3~bwmod                      "Модификационная константа
         t3~komok                      "Модификация счета
         t3~bklas                      "Класс оценки
         t3~konts                      "Номер основного счета - Дебет
         t3~konth                      "Номер основного счета - Кредит
  FROM t030 AS t3
  INTO CORRESPONDING FIELDS OF TABLE i_t030
  WHERE t3~ktopl = p_ktopl AND
        t3~ktosl IN p_ktosl AND
        t3~bklas IN p_bklas.

  SELECT t2~matkl                      "Группа материалов
         mb~bklas                      "Класс оценки
         tt~wgbez60                    "Имя группы материалов
  INTO CORRESPONDING FIELDS OF TABLE i_t023
  FROM t023 AS t2
     JOIN t023t AS tt ON tt~matkl = t2~matkl
     JOIN mara AS ma ON ma~matkl = t2~matkl
       JOIN mbew AS mb ON mb~matnr = ma~matnr
  WHERE tt~spras = sy-langu AND
        t2~matkl IN p_matkl AND
        mb~bwkey = p_bwkey AND mb~bwtar = space AND
        mb~bklas IN p_bklas
  GROUP BY t2~matkl tt~wgbez60 mb~bklas
  ORDER BY t2~matkl mb~bklas.

  LOOP AT i_t030.
*   Определить названия операций
    SELECT SINGLE ltext INTO (i_t030-ltext)
    FROM t030w WHERE spras = sy-langu AND ktosl = i_t030-ktosl.
    MODIFY i_t030.
  ENDLOOP.
  LOOP AT i_t023.
*   Обозначение класса оценки запасов
    SELECT SINGLE bkbez INTO (i_t023-bkbez)
    FROM t025t
    WHERE spras = sy-langu AND bklas = i_t023-bklas.
    MODIFY i_t023.
  ENDLOOP.
  SORT i_t030 BY bklas ktosl.
ENDFORM.                               " READ_DATA

*&---------------------------------------------------------------------*
*&      Form  WRITE_DATA
*&---------------------------------------------------------------------*
*                            Вывод отчета
*----------------------------------------------------------------------*
*  -->  I_T030 - Данные для показа проводок
*----------------------------------------------------------------------*
FORM write_data.
  DATA: l_new_line(1) TYPE c,
        l_ktosl LIKE i_t030-ktosl.

  CLEAR: l_matkl, l_bklas.
  LOOP AT i_t023.
    IF l_matkl <> i_t023-matkl.
      SKIP 1.
      WRITE: / sy-uline(100).
      FORMAT COLOR 3 INTENSIFIED ON.
      WRITE: / sy-vline, i_t023-matkl, "Группа материалов
               '-', i_t023-wgbez60,    "Подробный текст группы
               '                        '.
      FORMAT COLOR OFF.
      WRITE:   100 sy-vline,
               / sy-uline(100).
      CLEAR: l_bklas.
      l_matkl = i_t023-matkl.
      l_wgbez60 = i_t023-wgbez60.
    ENDIF.
    IF l_bklas <> i_t023-bklas.
      FORMAT COLOR 2 INTENSIFIED ON.
      WRITE: / sy-vline,
               5 i_t023-bklas HOTSPOT ON,         "Класс оценки
               '-', i_t023-bkbez HOTSPOT ON,      "Названиеи класса
               '                                  ' HOTSPOT ON,
               '                           ' HOTSPOT ON.
      FORMAT COLOR OFF.
      l_bklas = i_t023-bklas.
      l_bkbez = i_t023-bkbez.
      HIDE: l_bklas, l_matkl, l_bkbez, l_wgbez60.
      WRITE:   100 sy-vline.
    ENDIF.

    LOOP AT i_t030 WHERE bklas = i_t023-bklas.
      WRITE: / sy-vline,
               10 i_t030-ktosl,        "Код операции GBB|UMB...
               i_t030-bwmod,           "Модификационная константа
               i_t030-komok,           "Модификация счета
               i_t030-konts,           "Номер основного счета - Дебет
               i_t030-konth,           "Номер основного счета - Кредит
               100 sy-vline.
      IF l_ktosl <> i_t030-ktosl.
        l_ktosl = i_t030-ktosl.
        WRITE: 45 i_t030-ltext.
      ENDIF.
    ENDLOOP.
    WRITE: / sy-uline(100).
  ENDLOOP.

ENDFORM.                               " WRITE_DATA
*&---------------------------------------------------------------------*
*&      Form  WRITE_MATNR_LIST
*&---------------------------------------------------------------------*
*         Список материалов к данной группе и классу оценки
*----------------------------------------------------------------------*
*      -->P_L_BKLAS - Класс оцненки
*      -->P_L_MATKL - Группа материала
*----------------------------------------------------------------------*
FORM write_matnr_list USING p_l_bklas
                            p_l_bklas_txt
                            p_l_matkl
                            p_l_matkl_txt.
  DATA: i_count TYPE i.
  DATA: BEGIN OF i_matnr OCCURS 10,
    matnr LIKE mara-matnr,             "Код материала
    lvorm LIKE mara-lvorm,             "Метка удаления материала
    maktx LIKE makt-maktx,             "Краткий текст материала
  END OF i_matnr.


  REFRESH i_matnr. CLEAR i_matnr.
  SELECT ma~matnr                      "Код материала
         ma~lvorm                      "Метка удаления материала
         mt~maktx                      "Краткий текст материала
  INTO CORRESPONDING FIELDS OF TABLE i_matnr
  FROM mara AS ma
     JOIN makt AS mt ON mt~matnr = ma~matnr
     JOIN mbew AS mb ON mb~matnr = ma~matnr AND
                        mb~bwkey = p_bwkey AND
                        mb~bwtar = space
  WHERE ma~matkl = p_l_matkl AND
        mb~bklas = p_l_bklas
  GROUP BY ma~matnr ma~lvorm mt~maktx
  ORDER BY ma~matnr.
  DELETE ADJACENT DUPLICATES FROM i_matnr COMPARING matnr.

  WRITE: /2 'Группа материала:', p_l_matkl, ' -', p_l_matkl_txt,
         /2 'Класс оценки материала:', p_l_bklas, '-', p_l_bklas_txt.
  SKIP 1.
  WRITE: /   sy-uline(66).
  FORMAT COLOR 3 INTENSIFIED ON.
  WRITE: /   sy-vline, 'Код материала',
          22 sy-vline, 'Наименование материала', 66 sy-vline.
  FORMAT COLOR OFF.группы
  WRITE: / sy-uline(66).
  LOOP AT i_matnr.
    IF i_matnr-lvorm = 'X'. FORMAT COLOR 6 INTENSIFIED OFF. ENDIF.
    WRITE: / sy-vline,
             i_matnr-matnr,             "Код материала
             sy-vline,
             i_matnr-maktx.             "Краткий текст материала
    IF i_matnr-lvorm = 'X'.
      WRITE: 63 icon_delete AS ICON.
    ELSE.
      WRITE: 63 icon_checked AS ICON.
    ENDIF.
    WRITE: 66 sy-vline.
    FORMAT COLOR OFF.
  ENDLOOP.
  DESCRIBE TABLE i_matnr LINES i_count.
  WRITE: / sy-uline(66),
         / sy-vline, 'Всего:', i_count, 'записей материалов',
         66 sy-vline,
         / sy-uline(66).
ENDFORM.                               " WRITE_MATNR_LIST
Название: Re: YUUK_REPORT_T030 - Данные по авто-проводкам ММ
Отправлено: Паганель от Сентябрь 08, 2010, 04:41:16 pm
А можешь тексты с рисунка "YUUK_REPORT_T030.png" текстом выложить, а то лень ручками то набивать.
Название: Re: YUUK_REPORT_T030 - Данные по авто-проводкам ММ
Отправлено: Uukrul от Сентябрь 09, 2010, 11:39:39 pm
You are not allowed to view links. Register or Login
А можешь тексты с рисунка "YUUK_REPORT_T030.png" текстом выложить, а то лень ручками то набивать.
Ну это уже вряд ли.. у меня к той системе доступа уже нет... :)
Название: Re: YUUK_REPORT_T030 - Данные по авто-проводкам ММ
Отправлено: Паганель от Сентябрь 10, 2010, 09:35:16 am
Тут колега сделал.

Код: You are not allowed to view links. Register or Login
Отчет по настройкам автопроводок
 Группа материала
     Класс оценки материала
             Код  Конс Модф  Дебет    Кредит Обозначение операции (Расшифровка)