Текущее время: Сб, сен 23 2017, 04:25

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Программа по расчету остатков на дату - ПОЛЬЗУЙТЕСЬ
СообщениеДобавлено: Пт, мар 17 2017, 11:01 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 17 2009, 01:53
Сообщения: 166
Откуда: Екатеринбург
Пол: Мужской
Доброго времени суток.

Была задача выдернуть информацию по остаткам на дату.
Рыл инет. Ничего рабочего не нашел. Или плохо искал? Ткните ссылкой ежели так :)
Сделал своё.

Вдруг кому поможет.

Функция основана на выдергивании содержимого ALV после SUBMIT-а.

Сначала дергается, так сказать, заголовок (BESTAND) а потом проводки (MSEG_LEAN)

Цитата:
EHP7 FOR SAP ERP 6.0 EHP7 FOR SAP ERP 6.0
SAP ERP 2005
SAP NETWEAVER 7.4



Код:
DATA MATNR        TYPE MATNR.
DATA LGBST       TYPE LGBST.
DATA BWBST       TYPE BWBST.
DATA SBBST       TYPE SBBST.
DATA HEAD        TYPE CHAR1.
DATA BODY        TYPE CHAR1.
DATA MATNR_RANGE TYPE STANDARD TABLE OF CURTO_MATNR_RANGE.
DATA WERKS_RANGE TYPE STANDARD TABLE OF CURTO_WERKS_RANGE.
DATA LGORT_RANGE TYPE STANDARD TABLE OF JITO_LGORT_RANGE.
DATA BUDAT_RANGE TYPE STANDARD TABLE OF DATUM_RANGE.
DATA BESTAND     TYPE STANDARD TABLE OF YMM_BESTAND.
DATA MSEG_LEAN   TYPE STANDARD TABLE OF YMM_MSEG_LEAN.

    CALL FUNCTION 'ZMM_GET_MB5B'
      EXPORTING
        matnr       = matnr
        lgbst        = 'X'
        bwbst       = space
        sbbst       = space
        head        = 'X'
        body        = 'X'
      TABLES
        werks_range = s_werks
        lgort_range = s_lgort
        charg_range = s_charg
        bwart_range = s_bwart
        budat_range = s_budat
        bestand     = bestand
        mseg_lean   = mseg_lean.

************************************************************************
FUNCTION zmm_get_mb5b .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(MATNR) TYPE  MATNR
*"     REFERENCE(LGBST) TYPE  LGBST DEFAULT 'X'
*"     REFERENCE(BWBST) TYPE  BWBST
*"     REFERENCE(SBBST) TYPE  SBBST
*"     REFERENCE(HEAD) TYPE  CHAR1 DEFAULT 'X'
*"     REFERENCE(BODY) TYPE  CHAR1 DEFAULT 'X'
*"  TABLES
*"      WERKS_RANGE STRUCTURE  CURTO_WERKS_RANGE
*"      LGORT_RANGE STRUCTURE  JITO_LGORT_RANGE OPTIONAL
*"      CHARG_RANGE STRUCTURE  MGA_CHARG_RANGE OPTIONAL
*"      BWART_RANGE STRUCTURE  BWART_RANGE OPTIONAL
*"      BUDAT_RANGE STRUCTURE  DATUM_RANGE
*"      BESTAND STRUCTURE  YMM_BESTAND
*"      MSEG_LEAN STRUCTURE  YMM_MSEG_LEAN
*"----------------------------------------------------------------------
*  Reference program (copy from)        : MB5B report - RM07MLBD
*  Development specification ID         : xxx
*  Process team contact person/team name: xxx
*  Date created                         : 15.03.2017
*  Programmer                           : Konstantin Polushkin
*  Description                          : Get result table of tr. MB5B
************************************************************************

  DATA: lr_pay_conf_data  TYPE REF TO data,
        lr_pay_conf_data1 TYPE REF TO data.

  FIELD-SYMBOLS:
    <lt_pay_conf_data>  TYPE STANDARD TABLE,
    <ls_pay_conf_data>  TYPE any,
    <lv_field>          TYPE any,

    <lt_pay_conf_data1> TYPE STANDARD TABLE,
    <ls_pay_conf_data1> TYPE any,
    <lv_field1>         TYPE any.

  DATA: lr_ex  TYPE REF TO cx_salv_bs_sc_runtime_info,
        lv_msg TYPE string.
**************************************************************************
  CLEAR: matnr_range, matnr_range[].
  matnr_range-sign = 'I'.
  matnr_range-option = 'EQ'.
  matnr_range-low = matnr.
  APPEND matnr_range.
  CLEAR: matnr_range.

  IF head = 'X'.
    CLEAR : lr_pay_conf_data.
    cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false metadata = abap_false data  = abap_true ).

    SUBMIT rm07mlbd USING SELECTION-SCREEN 1000
          WITH matnr    IN matnr_range
          WITH werks    IN werks_range
          WITH lgort    IN lgort_range
          WITH datum    IN budat_range
          WITH lgbst    EQ lgbst
          WITH bwbst    EQ bwbst
          WITH sbbst    EQ sbbst
          WITH xsum     EQ space
          WITH pa_sumfl EQ 'X'
          WITH xchar    EQ space
          WITH nosto    EQ space
          AND RETURN.

    TRY.
        cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_conf_data ).
      CATCH cx_salv_bs_sc_runtime_info INTO lr_ex.
        lv_msg = lr_ex->get_text( ).
        MESSAGE lv_msg TYPE 'I'.
    ENDTRY.

    ASSIGN lr_pay_conf_data->* TO <lt_pay_conf_data>.

    IF sy-subrc <> 0.
      CLEAR : sy-ucomm.
    ELSE.
      LOOP AT <lt_pay_conf_data> ASSIGNING <ls_pay_conf_data>.
        DO.
          ASSIGN COMPONENT sy-index OF STRUCTURE <ls_pay_conf_data> TO <lv_field>.
          IF sy-subrc <> 0.
            EXIT.
          ENDIF.
        ENDDO.
      ENDLOOP.

      MOVE-CORRESPONDING <lt_pay_conf_data> TO bestand[].

    ENDIF.
    cl_salv_bs_runtime_info=>clear_all( ).
  ENDIF.

  IF body = 'X'.
    CLEAR : lr_pay_conf_data.
    cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false metadata = abap_false data  = abap_true ).

    SUBMIT rm07mlbd USING SELECTION-SCREEN 1000
          WITH matnr    IN matnr_range
          WITH werks    IN werks_range
          WITH lgort    IN lgort_range
          WITH datum    IN budat_range
          WITH lgbst    EQ lgbst
          WITH bwbst    EQ bwbst
          WITH sbbst    EQ sbbst
          WITH xsum     EQ space
          WITH pa_sumfl EQ space
          WITH xchar    EQ space
          WITH nosto    EQ space
          AND RETURN.
    TRY.
        cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_conf_data ).
      CATCH cx_salv_bs_sc_runtime_info INTO lr_ex.
        lv_msg = lr_ex->get_text( ).
        MESSAGE lv_msg TYPE 'I'.
    ENDTRY.

    ASSIGN lr_pay_conf_data->* TO <lt_pay_conf_data>.

    IF sy-subrc <> 0.
      CLEAR : sy-ucomm.
    ELSE.
      LOOP AT <lt_pay_conf_data> ASSIGNING <ls_pay_conf_data>.
        DO.
          ASSIGN COMPONENT sy-index OF STRUCTURE <ls_pay_conf_data> TO <lv_field>.
          IF sy-subrc <> 0.
            EXIT.
          ENDIF.
        ENDDO.
      ENDLOOP.
      MOVE-CORRESPONDING <lt_pay_conf_data> TO mseg_lean[].
    ENDIF.
    cl_salv_bs_runtime_info=>clear_all( ).
  ENDIF.
ENDFUNCTION.

СТР YMM_BESTAND

MATNR   Тип   MATNR   CHAR   18   0   Номер материала
MAKTX   Тип   MAKTX   CHAR   40   0   Краткий текст материала
BWKEY   Тип   BWKEY   CHAR   4   0   Область оценки
WERKS   Тип   WERKS_D   CHAR   4   0   Завод
CHARG   Тип   CHARG_D   CHAR   10   0   Номер партии
SOBKZ   Тип   SOBKZ   CHAR   1   0   Код особого запаса
NAME1   Тип   NAME1   CHAR   30   0   Имя
START_DATE   Тип   DATE_FROM   DATS   8   0   С даты
END_DATE   Тип   DATE_TO   DATS   8   0   По дату
ANFMENGE   Тип   Y_BESTAND_MENGE   DEC   16   4   Y_BESTAND_MENGE
MEINS   Тип   MEINS   UNIT   3   0   Базисная единица измерения
SOLL   Тип   Y_BESTAND_MENGE   DEC   16   4   Y_BESTAND_MENGE
HABEN   Тип   Y_BESTAND_MENGE   DEC   16   4   Y_BESTAND_MENGE
ENDMENGE   Тип   Y_BESTAND_MENGE   DEC   16   4   Y_BESTAND_MENGE
ANFWERT   Тип   Y_BESTAND_MENGE   DEC   16   4   Y_BESTAND_MENGE
WAERS   Тип   WAERS   CUKY   5   0   Код валюты
SOLLWERT   Тип      DEC   9   2   хз
HABENWERT   Тип      DEC   9   2   хз
ENDWERT   Тип      DEC   9   2   хз

СТР: YMM_MSEG_LEAN

MBLNR   Тип   MBLNR   CHAR   10   0   Номер документа материала
MJAHR   Тип   MJAHR   NUMC   4   0   Год документа материала
VGART   Тип   VGART   CHAR   2   0   Вид операции
BLART   Тип   BLART   CHAR   2   0   Вид документа
BUDAT   Тип   BUDAT   DATS   8   0   Дата проводки в документе
CPUDT   Тип   CPUDT   DATS   8   0   Дата ввода бухгалтерского документа
CPUTM   Тип   CPUTM   TIMS   6   0   Время ввода
USNAM   Тип   USNAM   CHAR   12   0   Имя пользователя
XABLN   Тип   XABLN   CHAR   10   0   Номер накладной
LBBSA   Тип   LBBSA   CHAR   2   0   Вид запаса при движении материала (первичная проводка)
BWAGR   Тип   BWAGR   CHAR   4   0   Группа видов движения для анализа запаса
BUKRS   Тип   BUKRS   CHAR   4   0   Балансовая единица
BELNR   Тип   BELNR_D   CHAR   10   0   Номер бухгалтерского документа
GJAHR   Тип   GJAHR   NUMC   4   0   Финансовый год
BUZEI   Тип   BUZEI   NUMC   3   0   Номер строки проводки в рамках бухгалтерского документа
HKONT   Тип   HKONT   CHAR   10   0   Основной счет главной бухгалтерии
WAERS   Тип   WAERS   CUKY   5   0   Код валюты
ZEILE   Тип   MBLPO   NUMC   4   0   Позиция документа материала
BWART   Тип   BWART   CHAR   3   0   Вид движения (управление запасами)
MATNR   Тип   MATNR   CHAR   18   0   Номер материала
WERKS   Тип   WERKS_D   CHAR   4   0   Завод
LGORT   Тип   LGORT_D   CHAR   4   0   Склад
CHARG   Тип   CHARG_D   CHAR   10   0   Номер партии
BWTAR   Тип   BWTAR_D   CHAR   10   0   Вид оценки
KZVBR   Тип   KZVBR   CHAR   1   0   Проводка расхода
KZBEW   Тип   KZBEW   CHAR   1   0   Код движения
SOBKZ   Тип   SOBKZ   CHAR   1   0   Код особого запаса
KZZUG   Тип   KZZUG   CHAR   1   0   Код поступления
BUSTM   Тип   BUSTM   CHAR   4   0   Строка проводки для количества
BUSTW   Тип   BUSTW   CHAR   4   0   Строка проводки для стоимости
MENGU   Тип   MENGU   CHAR   1   0   Обновление количеств в основной записи материала
WERTU   Тип   WERTU   CHAR   1   0   Обновление стоимости в основной записи материала
SHKZG   Тип   SHKZG   CHAR   1   0   Индикатор дебета/кредита
MENGE   Тип   MENGE_D   QUAN   13   3   Количество
MEINS   Тип   MEINS   UNIT   3   0   Базисная единица измерения
DMBTR   Тип   DMBTR   CURR   13   2   Сумма во внутренней валюте
DMBUM   Тип   DMBUM   CURR   13   2   Сумма переоценки, проводимая по прошлому периоду
XAUTO   Тип   XAUTO   CHAR   1   0   Индикатор: позиция создана автоматически
KZBWS   Тип   KZBWS   CHAR   1   0   Оценка особого запаса
XOBEW   Тип   XOBEW   CHAR   1   0   Индикатор: раздельно оцененный запас давальческого метериала
SGT_SCAT   Тип   SGT_SCAT   CHAR   16   0   Сегмент запаса
RETAIL   Тип   CHAR1   CHAR   1   0   Индикатор из одной позиции
OIGLCALC   Тип   CHAR1   CHAR   1   0   Индикатор из одной позиции
OIGLSKU   Тип      DEC   7   3                                                              
INSMK   Тип   INSMK   CHAR   1   0   Вид запаса
SMBLN   Тип   MBLNR   CHAR   10   0   Номер документа материала
SJAHR   Тип   SJAHR   NUMC   4   0   Календарный год для генерации месячного графика РабочВрем
SMBLP   Тип   MBLPO   NUMC   4   0   Позиция документа материала

_________________
Высшая степень уважения к клиенту - это разработать программу не так как он хочет, так как следует!


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

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


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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 9


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

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