*&---------------------------------------------------------------------*
*& Report ZMM_STK_CUSTOMER_R
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMM_STK_CUSTOMER_R.
*TYPE-POOLS SLIS.
TYPES: BEGIN OF TY_FINAL,
*
srno TYPE char40, " Storing the total text
KUNNR TYPE KNA1-KUNNR,
"Customer Number
NAME1 TYPE KNA1-NAME1,
"Customer Name
MATNR(30) TYPE C,
"Material number
MAKTX TYPE MAKT-MAKTX,
"Material description
MBLNR TYPE MSEG-MBLNR,
"Number of Material Document
MJAHR TYPE MSEG-MJAHR,
"Material Document Year
ZEILE TYPE MSEG-ZEILE,
"Item in Material Document
WERKS TYPE WERKS_D,
"Plant
LGORT TYPE LGORT_D,
"Storage Location
BUDAT TYPE MSEG-BUDAT_MKPF,"Posting Date in the Document
BWART TYPE MSEG-BWART,
"MOVEMENT TYPE
ORDER TYPE VBAK-VBELN,
"SALE ORDER
OUTBOUND TYPE VBAK-VBELN, "OUTBOUND
MENGE TYPE MSEG-MENGE,
MEINS TYPE MSEG-MEINS,
*
color(4),
END OF TY_FINAL.
DATA: TA_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
TYPES: BEGIN OF TY_FINAL,
*
srno TYPE char40, " Storing the total text
KUNNR TYPE KNA1-KUNNR,
"Customer Number
NAME1 TYPE KNA1-NAME1,
"Customer Name
MATNR(30) TYPE C,
"Material number
MAKTX TYPE MAKT-MAKTX,
"Material description
MBLNR TYPE MSEG-MBLNR,
"Number of Material Document
MJAHR TYPE MSEG-MJAHR,
"Material Document Year
ZEILE TYPE MSEG-ZEILE,
"Item in Material Document
WERKS TYPE WERKS_D,
"Plant
LGORT TYPE LGORT_D,
"Storage Location
BUDAT TYPE MSEG-BUDAT_MKPF,"Posting Date in the Document
BWART TYPE MSEG-BWART,
"MOVEMENT TYPE
ORDER TYPE VBAK-VBELN,
"SALE ORDER
OUTBOUND TYPE VBAK-VBELN,
MENGE TYPE MSEG-MENGE,
MEINS TYPE MSEG-MEINS,
color(4),
END OF TY_FINAL.
"OUTBOUND
DATA: TA_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
TYPES: BEGIN OF TY_MSEG,
MBLNR TYPE MSEG-MBLNR,
"Number of Material Document
MJAHR TYPE MSEG-MJAHR,
"Material Document Year
ZEILE TYPE MSEG-ZEILE,
"Item in Material Document
BWART TYPE MSEG-BWART,
"Movement Type (Inventory Management)
MATNR TYPE MATNR,
"Material Number
WERKS TYPE WERKS_D,
"Plant
LGORT TYPE LGORT_D,
"Storage Location
KUNNR TYPE KUNNR,
"Customer
KDAUF TYPE MSEG-KDAUF,
"Sales Order Number
KDPOS TYPE MSEG-KDPOS,
"Item Number in Sales Order
WAERS TYPE MSEG-WAERS,
"Currency Key
DMBTR TYPE MSEG-DMBTR,
"Amount in Local Currency
MENGE TYPE MSEG-MENGE,
"QUANTITY
MEINS TYPE MSEG-meins,
"uom
BUDAT TYPE MSEG-BUDAT_MKPF,"Posting Date in the Document
flag ,
END OF TY_MSEG.
DATA: TA_MSEG TYPE TABLE OF TY_MSEG,
WA_MSEG TYPE TY_MSEG.
TYPES: BEGIN OF TY_VBFA,
VBELV
TYPE VBFA-VBELN,
POSNV
TYPE VBFA-POSNV,
VBELN
TYPE VBFA-VBELN,
POSNN
TYPE VBFA-POSNN,
VBTYP_N TYPE VBFA-VBTYP_N,
VBTYP_V TYPE VBFA-VBTYP_V,
flag,
END OF TY_VBFA.
DATA: TA_VBFA TYPE TABLE OF TY_VBFA,
WA_VBFA TYPE TY_VBFA.
DATA: TA_VBFA1 TYPE TABLE OF TY_VBFA,
WA_VBFA1 TYPE TY_VBFA.
TYPES: BEGIN OF TY_MAKT,
MATNR TYPE MATNR,
MAKTX TYPE MAKTX,
SPRAS TYPE SPRAS,
END OF TY_MAKT.
DATA: TA_MAKT TYPE TABLE OF TY_MAKT,
WA_MAKT TYPE TY_MAKT.
TYPES: BEGIN OF TY_KNA1,
KUNNR TYPE KUNNR,
NAME1 TYPE KNA1-NAME1,
ort01 type kna1-ort01,
regio type kna1-regio,
ort02 type kna1-ort02,
END OF TY_KNA1.
DATA: TA_KNA1 TYPE TABLE OF TY_KNA1,
WA_KNA1 TYPE TY_KNA1.
TYPES: BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
AUART TYPE VBAK-AUART,
END OF TY_VBAK.
DATA: ta_vbak TYPE TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak.
data: v_index type i.
***ALV-oo declaration***
DATA: ta_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat,
wa_fieldcat TYPE lvc_s_fcat.
DATA:
TA_SORT TYPE LVC_T_SORT ,
WA_SORT TYPE LVC_S_SORT.
DATA: ob_cont TYPE REF TO cl_gui_custom_container.
DATA: ob_grd TYPE REF TO cl_gui_alv_grid.
DATA: o_alv TYPE REF TO cl_salv_table.
** Declaration for Aggregate Function Settings
DATA : o_aggr
TYPE REF TO cl_salv_aggregations.
DATA : o_sort
TYPE REF TO cl_salv_sorts.
* Workarea for ALV layout
data: wa_layout
data :
TYPE
lvc_s_layo.
lv_totals TYPE REF TO data,
mt_ct02 type ref to data,
mt_ct01 type ref to data,
mt_ct03 type ref to data,
mt_ct04 type ref to data,
mt_ct05 type ref to data.
FIELD-SYMBOLS: <ms_ct02>
<ws_ct02>
<fv_ct02>
<fK_ct02>
<fM_ct02>
type
type
type
type
type
STANDARD TABLE,
any,
any,
any,
any.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS: SO_KUNNR FOR WA_FINAL-KUNNR,
SO_MATNR FOR WA_FINAL-MATNR,
SO_BUDAT FOR WA_FINAL-BUDAT.
SELECTION-SCREEN END OF BLOCK B1.
class lcl_cus DEFINITION.
PUBLIC SECTION.
METHODS: get_data,
fieldcat,
set_pf CHANGING co_alv TYPE REF TO cl_salv_table.
ENDCLASS.
CLASS lcl_cus IMPLEMENTATION.
method: get_DATA.
SELECT vbeln
auart FROM vbak
INTO TABLE ta_vbak
WHERE
( auart = 'ZZRE'
auart = 'ZZR6'
auart = 'ZREP'
auart = 'ZFOC'
auart = 'ZTRI'
IF TA_VBAK IS NOT INITIAL.
SELECT VBELV
POSNV
VBELN
POSNN
VBTYP_N
OR
OR
OR
OR
).
VBTYP_V FROM VBFA
INTO TABLE TA_VBFA
FOR ALL ENTRIES IN TA_VBAK
WHERE VBELv = TA_vbak-vbeln AND
VBTYP_N = 'R'.
ENDIF.
IF TA_vbfa IS NOT INITIAL.
SELECT
MBLNR
MJAHR
ZEILE
BWART
MATNR
WERKS
LGORT
KUNNR
KDAUF
KDPOS
WAERS
DMBTR
MENGE
MEINS
BUDAT_MKPF
FROM MSEG INTO TABLE TA_MSEG
FOR ALL ENTRIES IN ta_vbfa
WHERE mblnr = ta_vbfa-vbeln and
KUNNR IN SO_KUNNR AND
MATNR IN SO_MATNR AND
BUDAT_MKPF IN SO_BUDAT AND
( BWART = '601' OR
BWART = '602' OR
BWART = '652' OR
BWART = '651' ).
endif.
if ta_vbfa is NOT INITIAL.
SELECT
VBELV
POSNV
VBELN
POSNN
VBTYP_N
VBTYP_V FROM VBFA
INTO TABLE TA_VBFA1
FOR ALL ENTRIES IN TA_VBFA
WHERE VBELv = TA_vbFA-vbelV AND
POSNV = TA_VBFA-POSNV AND
( VBTYP_n = 'J' OR
VBTYP_N = 'T' ).
endif.
*
*v_index = 1.
*loop at ta_vbfa INTO wa_vbfa.
* READ TABLE ta_vbak INTO wa_vbak with key vbeln = wa_vbfa-vbelv.
* if sy-subrc = 0.
*
wa_vbfa-flag = 'X'.
* else.
*
wa_vbfa-flag = ''.
* endif.
* modify ta_vbfa FROM wa_vbfa INDEX v_index TRANSPORTING flag.
* v_index = v_index + 1.
* clear wa_vbfa.
* clear wa_vbak.
*ENDLOOP.
*
*delete ta_vbfa WHERE flag <> 'X'.
*v_index = 1.
*LOOP at ta_mseg INTO wa_mseg.
* READ TABLE ta_vbfa INTO wa_vbfa with key vbeln = wa_mseg-mblnr.
* if sy-subrc = 0.
*
wa_mseg-flag = 'X'.
* else.
*
wa_mseg-flag = ''.
* endif.
* modify ta_mseg FROM wa_mseg INDEX v_index TRANSPORTING flag.
* v_index = v_index + 1.
* clear wa_mseg.
*ENDLOOP.
*
*delete ta_mseg WHERE flag <> 'X' .
*v_index = 1.
*LOOP at ta_vbfa1 INTO wa_vbfa1.
* READ TABLE ta_mseg INTO wa_mseg with key mblnr = wa_vbfa1-vbeln.
* if sy-subrc = 0.
*
wa_vbfa1-flag = 'X'.
* else.
*
wa_vbfa1-flag = ''.
* endif.
* modify ta_vbfa1 FROM wa_vbfa1 INDEX v_index TRANSPORTING flag.
* v_index = v_index + 1.
* clear wa_vbfa1.
*ENDLOOP.
*
*delete ta_vbfa1 WHERE flag <> 'X'.
SELECT MATNR
MAKTX
SPRAS FROM MAKT
INTO TABLE TA_MAKT
FOR ALL ENTRIES IN TA_MSEG
WHERE MATNR = TA_MSEG-MATNR AND
SPRAS = SY-LANGU.
SELECT KUNNR
NAME1 FROM KNA1
INTO TABLE TA_KNA1
FOR ALL ENTRIES IN TA_MSEG
WHERE KUNNR = TA_MSEG-KUNNR.
LOOP AT TA_MSEG INTO WA_MSEG.
* wa_final-srno = 'Stock at customer(601+651-602-652) :'.
WA_FINAL-MBLNR = WA_MSEG-MBLNR.
WA_FINAL-MJAHR = WA_MSEG-MJAHR.
WA_FINAL-ZEILE = WA_MSEG-ZEILE.
WA_FINAL-WERKS = WA_MSEG-WERKS.
WA_FINAL-LGORT = WA_MSEG-LGORT.
WA_FINAL-BUDAT = WA_MSEG-BUDAT.
WA_FINAL-KUNNR = WA_MSEG-KUNNR.
WA_FINAL-MATNR = WA_MSEG-MATNR.
WA_FINAL-BWART = WA_MSEG-BWART.
WA_FINAL-MENGE = WA_MSEG-MENGE.
WA_FINAL-MEINS = WA_MSEG-MEINS.
READ TABLE TA_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_FINAL-KUNNR.
IF SY-SUBRC = 0.
WA_FINAL-NAME1 = WA_KNA1-NAME1.
ENDIF.
READ TABLE TA_MAKT INTO WA_MAKT WITH KEY MATNR = WA_FINAL-MATNR.
IF SY-SUBRC = 0.
WA_FINAL-MAKTX = WA_MAKT-MAKTX.
ENDIF.
*
*
IF
WA_FINAL-BWART = '601' OR
WA_FINAL-BWART = '602' .
READ TABLE TA_VBFA INTO WA_VBFA WITH KEY VBELN = WA_FINAL-MBLNR.
IF SY-SUBRC = 0.
*
*
*
*
*
WA_FINAL-ORDER = WA_VBFA-VBELV.
else.
READ TABLE TA_VBFA INTO WA_VBFA WITH KEY VBELN = WA_FINAL-MBLNR
VBTYP_V = 'I' .
if sy-subrc = 0.
wa_final-order = wa_vbfa-vbelv.
endif.
ENDIF.
READ TABLE TA_VBFA1 INTO WA_VBFA1 WITH KEY VBELv = WA_FINAL-order.
IF SY-SUBRC = 0.
WA_FINAL-OUTBOUND = WA_VBFA1-VBELn.
ENDIF.
ENDIF.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
IF
WA_FINAL-BWART = '651' OR
WA_FINAL-BWART = '652' .
READ TABLE TA_VBFA INTO WA_VBFA WITH KEY VBELN = WA_FINAL-MBLNR
VBTYP_V = 'H'.
IF SY-SUBRC = 0.
WA_FINAL-ORDER = WA_VBFA-VBELV.
ENDIF.
READ TABLE TA_VBFA1 INTO WA_VBFA1 WITH KEY VBELN = WA_FINAL-MBLNR
VBTYP_V = 'T'.
IF SY-SUBRC = 0.
WA_FINAL-OUTBOUND = WA_VBFA1-VBELV.
ENDIF.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT
= wa_final-matnr
IMPORTING
OUTPUT
= wa_final-matnr
.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT
= wa_final-kunnr
IMPORTING
OUTPUT
= wa_final-kunnr
.
APPEND WA_FINAL TO TA_FINAL.
CLEAR WA_FINAL.
clear: wa_vbfa1,
wa_vbfa,
wa_vbak,
wa_kna1,
wa_makt,
wa_mseg.
ENDLOOP.
DATA: LC_MSG TYPE REF TO CX_SALV_MSG.
TRY.
CALL METHOD CL_SALV_TABLE=>FACTORY
IMPORTING
R_SALV_TABLE = O_ALV
CHANGING
T_TABLE
= TA_FINAL.
CATCH CX_SALV_MSG INTO LC_MSG .
ENDTRY.
CALL METHOD FIELDCAT.
* CALL METHOD SET_PF
*
CHANGING
*
CO_ALV = O_ALV.
o_alv->set_screen_status( report = sy-repid
pfstatus = 'ZSTANDARD_FULLSCREE'
SET_FUNCTIONS = 2 ).
call SCREEN 9003.
ENDMETHOD.
METHOD: fieldcat.
clear wa_fieldcat.
refresh ta_fieldcat.
DATA: no type i value 0.
no = no + 1.
*
*
*
*
*
*
*
*
wa_fieldcat-col_pos = no.
wa_fieldcat-fieldname = 'SRNO'.
wa_fieldcat-tabname = 'TA_FINAL'.
wa_fieldcat-reptext = ' '.
wa_fieldcat-col_opt = 'X'.
APPEND wa_fieldcat to ta_fieldcat.
clear wa_fieldcat.
no = no + 1.
wa_fieldcat-col_pos = no.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
'TA_FINAL'.
'CUST NO'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'MATNR'.
'TA_FINAL'.
'MATERIAL NO'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'BWART'.
'TA_FINAL'.
'MOV TYPE'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos = no.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-tabname = 'TA_FINAL'.
wa_fieldcat-reptext = 'QUANTITY'.
wa_fieldcat-col_opt = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND wa_fieldcat to ta_fieldcat.
clear wa_fieldcat.
no = no + 1.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'NAME1'.
'TA_FINAL'.
'CUST NAME'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos = no.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-tabname = 'TA_FINAL'.
wa_fieldcat-reptext = 'MATERIAL DESC'.
wa_fieldcat-col_opt = 'X'.
APPEND wa_fieldcat to ta_fieldcat.
clear wa_fieldcat.
no = no + 1.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'MBLNR'.
'TA_FINAL'.
'GRN NO'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'MJAHR'.
'TA_FINAL'.
'GRN YEAR'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'ZEILE'.
'TA_FINAL'.
'GRN ITEM'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'WERKS'.
'TA_FINAL'.
'PLANT'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no.
= 'LGORT'.
'TA_FINAL'.
'STO LOC'.
'X'.
ta_fieldcat.
no = no + 1.
*
*
**
*
**
**
**
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'BUDAT'.
'TA_FINAL'.
'POSTING DATE'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'ORDER'.
'TA_FINAL'.
'SALE ORDER'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'OUTBOUND'.
'TA_FINAL'.
'DELIVERY'.
'X'.
ta_fieldcat.
wa_fieldcat-col_pos =
wa_fieldcat-fieldname
wa_fieldcat-tabname =
wa_fieldcat-reptext =
wa_fieldcat-col_opt =
APPEND wa_fieldcat to
clear wa_fieldcat.
no = no + 1.
no.
= 'MEINS'.
'TA_FINAL'.
'UOM'.
'X'.
ta_fieldcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_BUFFER_ACTIVE
=
I_STRUCTURE_NAME
= 'WA_FINAL'
I_CLIENT_NEVER_DISPLAY
= 'X'
I_BYPASSING_BUFFER
=
I_INTERNAL_TABNAME
=
*
*
*
*
*
*
*
CHANGING
CT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE
PROGRAM_ERROR
OTHERS
.
= TA_fIELDCAT
= 1
= 2
= 3
*
IF SY-SUBRC = 0.
*
LOOP AT TA_fieldcat INTO wA_fieldCAT.
*
IF WA_FIELDCAT-fieldname = 'MENGE'.
*
WA_FIELDCAT-do_sum = 'X'.
*
MODIFY TA_Fieldcat FROM WA_FIELDCAT TRANSPORTING do_sum.
*
ENDIF.
*
IF WA_FIELDCAT-fieldname = 'SRNO'.
**
Hide this field so that it can display it's content i.e.
**
Total text in Subtotal level
*
WA_FIELDCAT-tech = 'X'.
*
WA_FIELDCAT-no_out = 'X'.
*
MODIFY TA_fieldcat FROM WA_FIELDCAT TRANSPORTING tech no_out.
*
ENDIF.
*
CLEAR WA_FIELDCAT.
*
ENDLOOP.
*ENDIF.
*
*
*
*
*
wa_sort-spos = 1.
wa_sort-fieldname = 'SRNO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO TA_sort.
Wa_sort-SPOS = 01.
Wa_sort-FIELDNAME = 'KUNNR'.
Wa_sort-up = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO TA_SORT.
CLEAR WA_SORT.
Wa_sort-SPOS = 02.
Wa_sort-FIELDNAME = 'MATNR'.
Wa_sort-up = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO TA_SORT.
CLEAR WA_SORT.
Wa_sort-SPOS = 03.
Wa_sort-FIELDNAME = 'BWART'.
Wa_sort-up = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO TA_SORT.
CLEAR WA_SORT.
**
*
Hide the total line
wa_layout-no_totline = 'X'.
ENDMETHOD.
METHOD set_pf .
DATA: LO_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS_LIST.
* Default functions
LO_FUNCTIONS = CO_ALV->GET_FUNCTIONS( ).
LO_FUNCTIONS->SET_DEFAULT( ABAP_TRUE ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: CUS TYPE REF TO LCL_CUS.
CREATE OBJECT CUS.
CALL METHOD CUS->GET_DATA.
*&---------------------------------------------------------------------*
*&
Module STATUS_9003 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_9003 OUTPUT.
SET PF-STATUS 'ZSTANDARD_FULLSCREE'.
SET TITLEBAR 'ZMM_STK_CUST_R_TITLE'.
CREATE OBJECT OB_CONT
EXPORTING
CONTAINER_NAME
= 'CONTAINER'
*
STYLE
=
*
LIFETIME
= lifetime_default
*
REPID
=
*
DYNNR
=
*
NO_AUTODEF_PROGID_DYNNR
=
EXCEPTIONS
CNTL_ERROR
= 1
CNTL_SYSTEM_ERROR
= 2
CREATE_ERROR
= 3
LIFETIME_ERROR
= 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
others
= 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT OB_GRD
EXPORTING
*
I_SHELLSTYLE
= 0
*
I_LIFETIME
=
I_PARENT
= OB_CONT
*
I_APPL_EVENTS
= space
*
I_PARENTDBG
=
*
I_APPLOGPARENT
=
*
I_GRAPHICSPARENT =
*
I_NAME
=
*
I_FCAT_COMPLETE
= SPACE
* EXCEPTIONS
*
ERROR_CNTL_CREATE = 1
*
ERROR_CNTL_INIT
= 2
*
ERROR_CNTL_LINK
= 3
*
ERROR_DP_CREATE
= 4
*
others
= 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*wa_layout-NO_toolbar = 'X'.
CALL METHOD OB_GRD->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
*
I_BUFFER_ACTIVE
=
*
I_BYPASSING_BUFFER
=
*
I_CONSISTENCY_CHECK
=
*
I_STRUCTURE_NAME
=
*
IS_VARIANT
=
I_SAVE
= 'X'
*
I_DEFAULT
= 'X'
IS_LAYOUT
= WA_LAYOUT
*
IS_PRINT
=
*
IT_SPECIAL_GROUPS
=
*
IT_TOOLBAR_EXCLUDING
=
*
IT_HYPERLINK
=
*
IT_ALV_GRAPHICS
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_ADAPTER
=
CHANGING
IT_OUTTAB
= TA_FINAL
IT_FIELDCATALOG
= TA_FIELDCAT
IT_SORT
= ta_sort
*
IT_FILTER
=
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR
= 2
TOO_MANY_LINES
= 3
others
= 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CALL METHOD ob_grd->get_subtotals
IMPORTING
ep_collect00 = lv_totals
ep_collect01 = mt_ct01
ep_collect02 = mt_ct02
ep_collect03 = mt_ct03
ep_collect04 = mt_ct04
ep_collect05 = mt_ct05.
assign mt_ct02->* to <ms_ct02>.
loop at <ms_ct02> ASSIGNING <ws_ct02>.
ASSIGN COMPONENT 'MENGE' of STRUCTURE <ws_ct02> to <fv_ct02>.
ASSIGN COMPONENT 'KUNNR' of STRUCTURE <ws_ct02> to <fK_ct02>.
ASSIGN COMPONENT 'MATNR' of STRUCTURE <ws_ct02> to <fM_ct02>.
SORT TA_FINAL BY KUNNR MATNR BWART .
CLEAR <FV_CT02>.
CLEAR <FM_CT02>.
LOOP AT TA_FINAL INTO WA_FINAL WHERE KUNNR = <FK_CT02> AND
MATNR = <FM_CT02>.
CASE WA_FINAL-BWART.
WHEN '601'.
<FV_CT02> = <FV_CT02> + WA_FINAL-MENGE.
WHEN '602'.
<FV_CT02> = <FV_CT02> - WA_FINAL-MENGE.
WHEN '651'.
<FV_CT02> = <FV_CT02> - WA_FINAL-MENGE.
WHEN '652'.
<FV_CT02> = <FV_CT02> + WA_FINAL-MENGE.
ENDCASE.
*
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
*
EXPORTING
*
INPUT
= <FM_CT02>
*
IMPORTING
*
OUTPUT
= <FM_CT02>
*
.
ENDLOOP.
CONCATENATE 'CUS-STK:' <FM_CT02> INTO <FM_CT02> SEPARATED BY SPACE.
modify <ms_ct02> FROM <ws_ct02>.
* CLEAR <FV_CT02>.
ENDLOOP.
*if ob_cont is NOT INITIAL.
* CALL METHOD ob_cont->free.
*
*ENDIF.
*
*
CALL METHOD ob_grd->free.
CALL METHOD OB_GRD->REFRESH_TABLE_DISPLAY
EXPORTING
*
IS_STABLE
=
I_SOFT_REFRESH = 'X'
EXCEPTIONS
FINISHED
= 1
others
= 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
*
*CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
** EXPORTING
**
IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
**
ET_EXCLUDING
**
E_REPID
**
E_CALLBACK_PROGRAM
**
E_CALLBACK_ROUTINE
*
E_GRID
**
ET_FIELDCAT_LVC
**
ER_TRACE
**
E_FLG_NO_HTML
**
ES_LAYOUT_KKBLO
**
ES_SEL_HIDE
**
ET_EVENT_EXIT
**
ER_FORM_TOL
**
ER_FORM_EOL
*
.
=
=
=
=
= ob_grd
=
=
=
=
=
=
=
=
ENDMODULE.
" STATUS_9003 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_9003 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9003 INPUT.
case sy-ucomm.
when '&F03'.
LEAVE TO SCREEN 0.
WHEN '&F15'.
LEAVE TO SCREEN 0.
WHEN '&F12'.
LEAVE TO SCREEN 0
.
ENDCASE.
ENDMODULE.
" USER_COMMAND_9003 INPUT