Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

report

Former Member
0 Likes
837

while displaying alv report i have to display the heading and under it i have to display two headings(basically not but subheadings) how i can display it.Plz explain me.

4 REPLIES 4
Read only

Clemenss
Active Contributor
0 Likes
718

Hi d,

while displaying the list, use menu sytem-list-list header. Put in as you want and save.

Regards,

Clemens

Read only

Former Member
0 Likes
718

Hi manjula

I had developed a report in which u can find the same requirement

check this code

 *&---------------------------------------------------------------------*
*& Report  ZALVDEMO                                                    *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZALVDEMO.

TABLES : J_1IEXCHDR, " header table
J_1IEXCDTL, " item table
J_1IPART2, " Excise Part II details
LFA1, " vendor master table
J_1IMOVEND, " vendor excise details table
MSEG, " Document Segment: Material
MKPF, " Header: Material Document
DD07T, " domain text table
T001W. " Plant and Branch Details

DATA : BEGIN OF IT_CHDR OCCURS 100,
DOCNO LIKE J_1IEXCHDR-DOCNO,
DOCYR LIKE J_1IEXCHDR-DOCYR,
EXNUM LIKE J_1IEXCHDR-EXNUM,
EXDAT LIKE J_1IEXCHDR-EXDAT,
WERKS LIKE J_1IEXCHDR-WERKS,
EXBED LIKE J_1IEXCHDR-EXBED,
EXCCD LIKE J_1IEXCHDR-EXCCD,
ECS LIKE J_1IEXCHDR-ECS,

END OF IT_CHDR.

DATA : BEGIN OF IT_CDTL OCCURS 100,

DOCYR LIKE J_1IEXCDTL-DOCYR,
DOCNO LIKE J_1IEXCDTL-DOCNO,
EXNUM LIKE J_1IEXCDTL-EXNUM,
EXDAT LIKE J_1IEXCDTL-EXDAT,
LIFNR LIKE J_1IEXCDTL-LIFNR,
MATNR LIKE J_1IEXCDTL-MATNR,
MAKTX LIKE J_1IEXCDTL-MAKTX,
CHAPID LIKE J_1IEXCDTL-CHAPID,
EXBAS LIKE J_1IEXCDTL-EXBAS,
EXBED LIKE J_1IEXCDTL-EXBED,
ECS LIKE J_1IEXCDTL-ECS,
MENGE LIKE J_1IEXCDTL-MENGE,
MEINS LIKE J_1IEXCDTL-MEINS,
RDOC2 LIKE J_1IEXCDTL-RDOC2,

END OF IT_CDTL.

DATA TEXT(10).

DATA : BEGIN OF IT_OUT OCCURS 0,

SERIALNO LIKE J_1IPART2-SERIALNO,
TEXT1 LIKE TEXT,
EXNUM LIKE J_1IEXCDTL-EXNUM,
EXDAT LIKE J_1IEXCDTL-EXDAT,
NAME LIKE LFA1-NAME1,
DDTEXT LIKE DD07T-DDTEXT,
EXCCD LIKE J_1IEXCHDR-EXCCD,
BUDAT LIKE MKPF-BUDAT,
EXBAS LIKE IT_CDTL-EXBAS,
EXBED LIKE IT_CDTL-EXBED,
ECS LIKE IT_CDTL-ECS,
MATNR LIKE IT_CDTL-MATNR,
MAKTX LIKE IT_CDTL-MAKTX,
CHAPID LIKE IT_CDTL-CHAPID,
MENGE LIKE IT_CDTL-MENGE,
MEINS LIKE IT_CDTL-MEINS,
DEL_IND(1),

END OF IT_OUT.
DATA IT_PART2 LIKE J_1IPART2 OCCURS 0 WITH HEADER LINE.
DATA S_NO(4) .
DATA DB_CNT LIKE SY-TABIX.
DATA EBELN_T LIKE MSEG-EBELN .
*------------------------------------
TYPE-POOLS : SLIS.

DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.

DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FTCAT TYPE LVC_S_FCAT,
SORTCAT TYPE SLIS_T_SORTINFO_ALV,
SORTCAT_LN LIKE LINE OF SORTCAT,
G_REPID LIKE SY-REPID,
G_BACK_GROUND(70), "like bapibds01-objkey,
GS_VARIANT LIKE DISVARIANT,
G_SAVE ,
GT_EVENTS TYPE SLIS_T_EVENT,
ALV_EVENT TYPE SLIS_ALV_EVENT,
EVENTCAT TYPE SLIS_T_EVENT,
EVENTCAT_LN LIKE LINE OF EVENTCAT,
LAYOUT_IN TYPE SLIS_LAYOUT_ALV,
LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV.

CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE
'TOP_OF_PAGE',
GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE
'USER_COMMAND',
GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE
'BEFORE_OUTPUT'.

* ALV_EVENT TYPE SLIS_ALV_EVENT,

*-------------------------------------
DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.
DATA REGTYP_1 LIKE J_1IPART2-REGTYP.

SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
PARAMETERS WERKS TYPE J_1IEXCHDR-WERKS.
SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.
PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',
R2 RADIOBUTTON GROUP GRP.
SELECTION-SCREEN END OF BLOCK B.

INITIALIZATION.
G_REPID = SY-REPID.
G_SAVE = 'A'.
* PERFORM BUILD_EVENT USING GT_EVENTS[].
PERFORM ALV_EVENT_INIT.

AT SELECTION-SCREEN.
REFRESH LIST_HEADER.
PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.

START-OF-SELECTION.

* PERFORM ALV_EVENT_INIT.
G_REPID = SY-REPID.
G_BACK_GROUND = ' ' .

IF R1 = 'X'.
CLEAR R2. CLEAR : REGTYP_1.
REGTYP_1 = 'A'.
* set titlebar 'BALAJI' with DB_CNT.
ELSEIF R2 = 'X'.
CLEAR R1.CLEAR : REGTYP_1.
REGTYP_1 = 'C'.
* set titlebar 'BALAJI1' with DB_CNT.
ENDIF.
SELECT * FROM J_1IPART2
INTO CORRESPONDING FIELDS OF TABLE IT_PART2
WHERE REGTYP = REGTYP_1 AND
TRNTYP = 'GRPO' AND
BUDAT IN BUDAT.
* DOCYR = IT_CDTL-DOCYR AND
* DOCNO = IT_CDTL-DOCNO.
LOOP AT IT_PART2.
SELECT SINGLE * FROM J_1IEXCHDR
INTO CORRESPONDING FIELDS OF IT_CHDR
WHERE TRNTYP = 'GRPO' AND
DOCYR = IT_PART2-DOCYR AND
DOCNO = IT_PART2-DOCNO AND
WERKS = WERKS AND
exdat IN BUDAT.
* ORDER BY EXDAT.
IF SY-SUBRC = 0.
APPEND IT_CHDR.
ELSE.
CONTINUE.
ENDIF.
* IF SY-SUBRC <> 0.
* MESSAGE E084.
* ENDIF.
ENDLOOP.

LOOP AT IT_CHDR.
SELECT * FROM J_1IEXCDTL
INTO CORRESPONDING FIELDS OF IT_CDTL
* FOR ALL ENTRIES IN IT_CHDR
WHERE
TRNTYP = 'GRPO' AND
DOCNO = IT_CHDR-DOCNO AND
DOCYR = IT_CHDR-DOCYR AND
EXNUM = IT_CHDR-EXNUM AND
EXDAT = IT_CHDR-EXDAT AND
WERKS = IT_CHDR-WERKS.
IF SY-SUBRC = 0.
APPEND IT_CDTL.
ELSE.
CONTINUE.
ENDIF.
ENDSELECT.
ENDLOOP.

LOOP AT IT_CDTL.
CLEAR TEXT.
DB_CNT = DB_CNT + 1.
READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM.
READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .
IT_OUT-SERIALNO = IT_PART2-SERIALNO.
SELECT SINGLE NAME1 FROM LFA1
INTO IT_OUT-NAME
WHERE LIFNR = IT_CDTL-LIFNR.

SELECT SINGLE * FROM LFA1
WHERE LIFNR = IT_CDTL-LIFNR.

IF LFA1-LAND1 EQ 'IN'.
TEXT = 'INVOICE'.
IT_OUT-TEXT1 = TEXT.
ELSE.
TEXT = 'BOE'.
IT_OUT-TEXT1 = TEXT.
ENDIF.

SELECT SINGLE * FROM J_1IMOVEND
WHERE LIFNR = IT_CDTL-LIFNR.

SELECT SINGLE * FROM DD07T
* INTO IT_OUT-DDTEXT
WHERE DOMNAME = 'J_1IVTYP' AND
DDLANGUAGE = 'EN' AND
DOMVALUE_L = J_1IMOVEND-J_1IVTYP.

IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'
OR
DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.
DD07T-DDTEXT = 'Dealer'.
ENDIF.
IT_OUT-DDTEXT = DD07T-DDTEXT.


* ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable
*goods'.
* DD07T-DDTEXT =
CLEAR EBELN_T.

SELECT SINGLE LFBNR FROM MSEG
INTO EBELN_T
WHERE MBLNR = IT_CDTL-RDOC2 .

SELECT SINGLE * FROM MSEG
WHERE BWART = '106' AND
LFBNR = EBELN_T ."and
* ebeln = ebeln_t.

IF SY-SUBRC = 0.

IT_OUT-DEL_IND = 'X'.
ELSE.
IT_OUT-DEL_IND = ' '.
ENDIF.

SELECT SINGLE BUDAT FROM MKPF
INTO IT_OUT-BUDAT
WHERE MBLNR = EBELN_T ."MSEG-LFBNR.

IT_OUT-EXNUM = IT_CDTL-EXNUM.
IT_OUT-EXDAT = IT_CDTL-EXDAT.
IT_OUT-EXCCD = IT_CHDR-EXCCD.
IT_OUT-EXBAS = IT_CDTL-EXBAS.
IT_OUT-EXBED = IT_CDTL-EXBED.
IT_OUT-ECS = IT_CDTL-ECS.
IT_OUT-MATNR = IT_CDTL-MATNR.
IT_OUT-MAKTX = IT_CDTL-MAKTX.
IT_OUT-CHAPID = IT_CDTL-CHAPID.
IT_OUT-MENGE = IT_CDTL-MENGE.
IT_OUT-MEINS = IT_CDTL-MEINS.

APPEND IT_OUT.
* EX_NO = IT_CDTL-EXNUM.

ENDLOOP.
*--------------------------------------------------------
* Title Portion

IF REGTYP_1 = 'A'.
SET TITLEBAR 'BALAJI' WITH DB_CNT.
ELSEIF REGTYP_1 = 'C'.
SET TITLEBAR 'BALAJI1' WITH DB_CNT.
ENDIF.
*---------------------------------------------------------
AFIELD-COL_POS = 1.
AFIELD-FIELDNAME = 'SERIALNO'.
AFIELD-SELTEXT_L = 'INPUTS'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 2.
AFIELD-FIELDNAME = 'TEXT1'.
AFIELD-SELTEXT_L = 'TYPE OF DOC'.
AFIELD-JUST = 'L'.
AFIELD-DECIMALS_OUT = '0'.
AFIELD-NO_ZERO = 'X'.
APPEND AFIELD TO FIELDCAT.


AFIELD-COL_POS = 3.
AFIELD-FIELDNAME = 'EXNUM'.
AFIELD-SELTEXT_L = 'DOC.NO'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 4.
AFIELD-FIELDNAME = 'EXDAT'.
AFIELD-SELTEXT_L = 'DOC.DATE'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 5.
AFIELD-FIELDNAME = 'NAME'.
AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.
AFIELD-NO_ZERO = 'X'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.


AFIELD-COL_POS = 6.
AFIELD-FIELDNAME = 'DDTEXT'.
AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 7.
AFIELD-FIELDNAME = 'EXCCD'.
AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.
AFIELD-NO_ZERO = 'X'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 8.
AFIELD-FIELDNAME = 'BUDAT'.
AFIELD-SELTEXT_L = 'INPUT RECV DATE'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 9.
AFIELD-FIELDNAME = 'EXBAS'.
AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.
AFIELD-DO_SUM = 'X'.
AFIELD-JUST = 'R'.
AFIELD-DECIMALS_OUT = '2'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 10.
AFIELD-FIELDNAME = 'EXBED'.
AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.
AFIELD-JUST = 'R'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 11.
AFIELD-FIELDNAME = 'ECS'.
AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.
AFIELD-JUST = 'R'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 12.
AFIELD-FIELDNAME = 'MATNR'.
AFIELD-SELTEXT_L = 'MATERIAL-CODE'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 13.
AFIELD-FIELDNAME = 'MAKTX'.
AFIELD-SELTEXT_L = 'DESCRIPTION'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 14.
AFIELD-FIELDNAME = 'CHAPID'.
AFIELD-SELTEXT_L = 'TARIFF-ID'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 15.
AFIELD-FIELDNAME = 'MENGE'.
AFIELD-SELTEXT_L = 'QUANTITY'.
AFIELD-JUST = 'R'.
AFIELD-DO_SUM = ' '.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 16.
AFIELD-FIELDNAME = 'MEINS'.
AFIELD-SELTEXT_L = 'UOM'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.

AFIELD-COL_POS = 17.
AFIELD-FIELDNAME = 'DEL_IND'.
AFIELD-SELTEXT_L = 'Deleted'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.


* * LAYOUT FOR ZEBRA CATLOG
LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT_IN-ZEBRA = 'X'.
LAYOUT_IN-GET_SELINFOS = 'X'.
LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.
LAYOUT_IN-DETAIL_POPUP = 'X' .
* SORTCAT-decimals = '0'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_SAVE = G_SAVE
IS_VARIANT = GS_VARIANT
IT_FIELDCAT = FIELDCAT
IT_SORT = SORTCAT
IS_LAYOUT = LAYOUT_IN
IT_EVENTS = EVENTCAT
* I_BACKGROUND_ID = g_back_ground
TABLES
T_OUTTAB = IT_OUT.


*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE_LIST_HEADER
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->LIST_HEADERtext
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.

DATA : HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C.

CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
* WRITE 'ROOTS INDUSTRIES LTD' TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.

SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.

CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'PLANT :' TO TEXT.
WRITE WERKS TO TEXT+8.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-NAME1 TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-STRAS TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-ORT01 TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.

CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'DATE :' TO TEXT.
WRITE BUDAT-LOW TO TEXT+7.


IF BUDAT-HIGH NE ''.
WRITE 'TO' TO TEXT+18.
WRITE BUDAT-HIGH TO TEXT+22.
ENDIF.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.

ENDFORM. "TOP_OF_PAGE_LIST_HEADER


*&--------------------------------------------------------------------*
*& Form ALV_EVENT_INIT
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM ALV_EVENT_INIT .

CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.
APPEND ALV_EVENT TO EVENTCAT.

CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.
APPEND ALV_EVENT TO EVENTCAT.

* CLEAR ALV_EVENT.
* ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.
* ALV_EVENT-FORM = 'ALV_END_OF_LIST'.
* APPEND ALV_EVENT TO GT_EVENTS.

* CLEAR ALV_EVENT.
* ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.
* ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.
* APPEND ALV_EVENT TO GT_EVENTS.

ENDFORM. "ALV_EVENT_INIT


*&--------------------------------------------------------------------*
*& Form ALV_TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM ALV_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LIST_HEADER
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM. "ALV_TOP_OF_PAGE

*&---------------------------------------------------------------------*
*& Form BUILD_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENTS[] text
*----------------------------------------------------------------------*
FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
ALV_EVENT.

IF SY-SUBRC = 0.
MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.
APPEND ALV_EVENT TO P_EVENTS.
ENDIF.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO
ALV_EVENT.

IF SY-SUBRC = 0.
MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.
APPEND ALV_EVENT TO P_EVENTS.
ENDIF.

ENDFORM. " BUILD_EVENT

Reward all helpfull answers

Regards

Pavan

Read only

Former Member
0 Likes
718

Hi,

You can use the following FM's

REUSE_ALV_COMMENTARY_WRITE

REUSE_ALV_GRID_COMMENTARY_SET

to use these you need to define the User command & call this FM when you handle the user command.

Regards,

guarav

Read only

sreeramkumar_madisetty
Active Contributor
0 Likes
718

Hi Manjula

<b>If you have patience, this ALV will give the same requirement along with so many things on ALV.</b>

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

  • Program Name : ZV30_WM_STOCK_OVERVIEW *

  • Author : M.Sreeram Kumar *

  • Date : 2006-12-15 *

  • Description : The purpose of this program is to get stock *

  • overview for the control of distribution activ *

  • ities in the warehouse. *

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

  • Original Transport Number : I30K903365 *

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

  • SYS id: SYS_30_0208_01_55_WM_Stock_Overview.doc *

  • TDS id: TDS_30_D_0208_01_55_WM_Stock_Overview.doc *

  • UT ID UTS_30_D_0208_01_55_WM_Stock_Overview.doc *

======================================================================

  • Change History *

----


  • Date | Change No | Name | Description *

----


  • yyyy/mm/dd | AAAYYYYMMDD | xxxxxxxxxxxx | *

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

REPORT zv30_wm_stock_overview MESSAGE-ID zv30_sd

NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE zv30_wm_stock_overview_top. " Include for Variable Declarations and Section Secreens

INCLUDE zv30_wm_stock_overview_data. " Include for ALV Processing

&----


*& INITIALIZATION

&----


INITIALIZATION.

PERFORM f_initialize. " Perform to Initialize the Selection Parameters

&----


*& AT SELECTION-SCREEN

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_werks-low.

PERFORM search_help_werks. " Search Help for WERKS(PLANT)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgort-low.

PERFORM search_help_lgort . " Search Help for LGORT(STORAGE LOCATION)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgtyp-low.

PERFORM search_help_lgtyp . " Search Help for LGTYP(STORAGE TYPE)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgtkz-low.

PERFORM search_help_lgtkz . " Search Help for LGTKZ(STORAGE TYPE INDICATOR FOR STOCK PLACEMENT)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgtkz1-low.

PERFORM search_help_lgtkz1. " Search Help for LGTKZ1(STORAGE TYPE INDICATOR FOR STOCK REMOVAL)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgbkz-low.

PERFORM search_help_lgbkz . " Search Help for LGBKZ(STORAGE SECTION INDICATOR)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_letyp-low.

PERFORM search_help_letyp . " Search Help for LETYP(STORAGE UNIT TYPE)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_spgru-low.

PERFORM search_help_spgru . " Search Help for SPGRU(BLOCKING REASON)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgpla-low.

PERFORM search_help_lgpla . " Search Help for LGPLA(STORAGE BIN)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_charg-low.

PERFORM search_help_charg . " Search Help for CHARG(BATCH)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout. " CHECK FOR VARIANT

PERFORM alv_f4.

PERFORM top_of_page. " Perform for Header information of the ALV Report.

&----


*& START-OF-SELECTION.

&----


START-OF-SELECTION.

PERFORM data_retrieval. " Perform to fetch the data from database tables to Internal Tab

PERFORM build_table. " Perform to build the final Internal Table

PERFORM f_layout_display. " Perform to fill the FieldCatalog

PERFORM alv_event. " Perform for ALV Events

PERFORM fill_listheader. " Perform to fill the ALV List Header

PERFORM sort_alv. " Perform to sort the ALV Report

&----


*& END-OF-SELECTION.

&----


END-OF-SELECTION.

PERFORM alv_display. " Perform to display the data in ALV form

&----


*& Include ZV30_WM_STOCK_OVERVIEW_TOP

&----


  • Type pools

TYPE-POOLS: slis. " Global types for generic cunning components

  • Database tables

TABLES: lqua, " Quants

mcha, " Batch Data

lagp, " Storage bins

t300, " WM Warehouse Numbers

t001w, " Plants/Branches

t001l, " Storage Locations

t301, " WM Storage Types

mara, " General Material Data

t134, " Material Types

t305, " Storage Type Indicators

t304, " Storage Section Indicators

t330, " Blocking Reasons

t307, " Storage Unit Types

vtbbewe, " Flow Records in Cash Flow Calculator

mmim_rep_print. " Print Settings, Reporting MM-IM

&----


*& Types Declarations

&----


TYPES: BEGIN OF type_stock,

lgnum TYPE lqua-lgnum, " Warehouse Number

werks TYPE lqua-werks, " Plant

lgort TYPE lqua-lgort, " Storage Location

lgtyp TYPE lqua-lgtyp, " Storage Type

lgpla TYPE lqua-lgpla, " Storage Bin

matnr TYPE lqua-matnr, " Material number

maktx TYPE makt-maktx, " Material name

mtart TYPE mara-mtart, " Material Type

ltkze TYPE mlgn-ltkze, " Storage Type Indicator for Stock Placement

ltkza TYPE mlgn-ltkza, " Storage Type Indicator for Stock Removal

lgbkz TYPE mlgn-lgbkz, " Storage section Indicator

charg TYPE lqua-charg, " Batch

zustd TYPE mcha-zustd, " Batch Status

atwrt TYPE ausp-atwrt, " Batch Status Characteristic

hsdat TYPE mcha-hsdat, " Date of Manufacture

vfdat TYPE lqua-vfdat, " Expiry Date

bestq TYPE lqua-bestq, " Stock Type

bdatu TYPE lqua-bdatu, " Last Movement Date

date1 TYPE vtbbewe-atage, " Number of days since last goods receipt

wdatu TYPE lqua-wdatu, " Goods Receipt Date

date2 TYPE vtbbewe-atage, " Number of days since no movement

letyp TYPE lqua-letyp, " Storage Unit Type

lenum TYPE lqua-lenum, " Storage Unit Number

skzue TYPE lqua-skzue, " Put Away Block for Quant

skzua TYPE lqua-skzua, " Stock Removal Block for Quant

spgru TYPE lqua-spgru, " Blocking reason for Quant

skzue1 TYPE lagp-skzue, " Put Away Block

skzua1 TYPE lagp-skzua, " Stock Removal Block

spgru1 TYPE lagp-spgru, " Blocking reason

qplos TYPE lqua-qplos, " Inspection lot number

verme TYPE lqua-verme, " Quantity

meins TYPE lqua-meins, " Unit of measure

quan TYPE lqua-verme, " Value of stock

waers TYPE t001-waers, " Currency

END OF type_stock.

TYPES: BEGIN OF type_lqua,

lgnum TYPE lqua-lgnum, " Warehouse Number

werks TYPE lqua-werks, " Plant

matnr TYPE lqua-matnr, " Material number

lgtyp TYPE lqua-lgtyp, " Storage Type

lgpla TYPE lqua-lgpla, " Storage Bin

lgort TYPE lqua-lgort, " Storage Location

lenum TYPE lqua-lenum, " Storage Unit Number

letyp TYPE lqua-letyp, " Storage Unit Type

charg TYPE lqua-charg, " Batch

vfdat TYPE lqua-vfdat, " Expiry Date

bestq TYPE lqua-bestq, " Stock Type

verme TYPE lqua-verme, " Quantity

meins TYPE lqua-meins, " Unit of measure

bdatu TYPE lqua-bdatu, " Last Movement Date

wdatu TYPE lqua-wdatu, " Goods Receipt Date

skzue TYPE lqua-skzue, " Put Away Block for Quant

skzua TYPE lqua-skzua, " Stock Removal Block for Quant

spgru TYPE lqua-spgru, " Blocking reason

qplos TYPE lqua-qplos, " Inspection Lot Number

END OF type_lqua.

TYPES: BEGIN OF type_mara,

matnr TYPE mara-matnr, " Material number

mtart TYPE mara-mtart, " Material Type

END OF type_mara.

TYPES: BEGIN OF type_mcha,

matnr TYPE mcha-matnr, " Material number

werks TYPE mcha-werks, " Plant

charg TYPE mcha-charg, " Batch

zustd TYPE mcha-zustd, " Batch Status

hsdat TYPE mcha-hsdat, " Date of Manufacture

END OF type_mcha.

TYPES: BEGIN OF type_mlgn,

matnr TYPE mlgn-matnr, " matnr

lgnum TYPE mlgn-lgnum, " Warehouse Number

lgbkz TYPE mlgn-lgbkz, " Storage section Indicator

ltkze TYPE mlgn-ltkze, " Storage Type Indicator for Stock Placement

ltkza TYPE mlgn-ltkza, " Storage Type Indicator for Stock Removal

END OF type_mlgn.

TYPES: BEGIN OF type_lagp,

lgnum TYPE lagp-lgnum, " Warehouse Number

lgtyp TYPE lagp-lgtyp, " Storage Type

lgpla TYPE lagp-lgpla, " Storage Bin

skzua TYPE lagp-skzua, " Stock Removal Block

skzue TYPE lagp-skzue, " Put Away Block

spgru TYPE lagp-spgru, " Blocking reason

END OF type_lagp.

TYPES: BEGIN OF type_mbew,

matnr TYPE mbew-matnr, " Material Number

bwkey TYPE mbew-bwkey, " Valuation area

stprs TYPE mbew-stprs, " Standard price

END OF type_mbew.

TYPES: BEGIN OF type_t001k,

bwkey TYPE t001k-bwkey, " Valuation area

bukrs TYPE t001k-bukrs, " Company Code

END OF type_t001k.

TYPES: BEGIN OF type_t001,

bukrs TYPE t001-bukrs, " Company Code

waers TYPE t001-waers, " Currency Key

END OF type_t001.

TYPES: BEGIN OF type_makt,

matnr TYPE makt-matnr, " Material Number

spras TYPE makt-spras, " Language Key

maktx TYPE makt-maktx, " Material name

END OF type_makt.

TYPES: BEGIN OF type_ausp,

objek TYPE ausp-objek, " Key of object to be classified

atinn TYPE ausp-atinn, " Internal characteristic

klart TYPE ausp-klart, " Class Type

atwrt TYPE ausp-atwrt, " Characteristic Value

END OF type_ausp.

TYPES: BEGIN OF type_inob,

cuobj TYPE inob-cuobj, " Configuration (internal object number)

objek TYPE inob-objek, " Key of Object to be Classified

END OF type_inob.

RANGES: r_cuobj FOR inob-cuobj. " To filter the INOB Table

RANGES: r_wdatu FOR lqua-wdatu. " To Filter the No.of Days Since last Goods Receipt

DATA : t_return TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE. " Retun Parameter of Searc Helps

&----


*& Internal tables and work area declarations

&----


DATA: itab_stock TYPE STANDARD TABLE OF type_stock, " Internal Table for final Output

wa_stock TYPE type_stock, " Workarea for Internal Table Stock

itab_lqua TYPE STANDARD TABLE OF type_lqua, " Internal Table for LQUA

wa_lqua TYPE type_lqua, " Workarea for Internal Table LQUA

itab_mara TYPE STANDARD TABLE OF type_mara, " Internal Table for MARA

wa_mara TYPE type_mara, " Workarea for Internal Table MARA

itab_mcha TYPE STANDARD TABLE OF type_mcha, " Internal Table for MCHA

wa_mcha TYPE type_mcha, " Workarea for Internal Table MCHA

itab_mlgn TYPE STANDARD TABLE OF type_mlgn, " Internal Table for MLGN

wa_mlgn TYPE type_mlgn, " Workarea for Internal Table MLGN

itab_lagp TYPE STANDARD TABLE OF type_lagp, " Internal Table for LAGP

wa_lagp TYPE type_lagp, " Workarea for Internal Table LAGP

itab_mbew TYPE STANDARD TABLE OF type_mbew, " Internal Table for MBEW

wa_mbew TYPE type_mbew, " Workarea for Internal Table MBEW

itab_t001k TYPE STANDARD TABLE OF type_t001k, " Internal Table for T001K

wa_t001k TYPE type_t001k, " Workarea for Internal Table T001K

itab_t001 TYPE STANDARD TABLE OF type_t001, " Internal Table for T001

wa_t001 TYPE type_t001, " Workarea for Internal Table T001

itab_makt TYPE STANDARD TABLE OF type_makt, " Internal Table for LQUA

wa_makt TYPE type_makt, " Workarea for Internal Table LQUA

itab_ausp TYPE STANDARD TABLE OF type_ausp, " Internal Table for AUSP

wa_ausp TYPE type_ausp, " Workarea for Internal table AUSP

itab_inob TYPE STANDARD TABLE OF type_inob, " Internal Table for INOB

wa_inob TYPE type_inob. " Workarea for Internal Table INOB

&----


*& Variable declarations

&----


DATA: g_pos TYPE i, " Column position in Fieldcatalog

g_repid TYPE sy-repid, " Program Name

g_date(10) TYPE c, " Processing date of Report

g_time(10) TYPE c. " Processing time of Report

DATA: v_temp1(50) TYPE c, " Variable for INOB-OBJEK

v_bdatu-low(10) TYPE c, " Variable for Last Movement Date

v_bdatu-high(10) TYPE c, " Variable for Last Movement Date

v_date-low(5) TYPE c, " variable for No.of days since last goods receipt

v_date-high(5) TYPE c, " variable for No.of days since last goods receipt

v_datet TYPE sy-datum, " Variable for Goods Receipt Date

v_wdatu-low(10) TYPE c, " Variable for Last Movement Date

v_datelow TYPE sy-datum, " Variable for Number of Days Since Last Goods Receipt

v_datehigh TYPE sy-datum, " Variable for Number of Days Since Last Goods Receipt

v_atinn(20) TYPE c. " Variable for Batch Status Characteristic

  • Variables to calcualte No.of Days Since last goods receipt & since no movement

DATA: v_days1 TYPE vtbbewe-atage,

v_days2 TYPE vtbbewe-atage,

v_date_from1 TYPE vtbbewe-dbervon,

v_date_to1 TYPE vtbbewe-dberbis,

v_date_from2 TYPE vtbbewe-dbervon,

v_date_to2 TYPE vtbbewe-dberbis.

&----


*& ALV data declarations

&----


DATA : itab_fcat TYPE slis_t_fieldcat_alv, " ALV Fieldcatalog

itab_layout TYPE slis_layout_alv, " ALV Layout

itab_listheader TYPE slis_t_listheader, " ListHeader

itab_event TYPE slis_t_event, " ALV Events

itab_sort TYPE slis_t_sortinfo_alv , " ALV Sort

wa_fcat TYPE slis_fieldcat_alv , " Workarea for Fieldcatalog

wa_listheader TYPE slis_listheader, " Workarea for Listheader

wa_event TYPE slis_alv_event, " Workarea for ALV Events

wa_sort TYPE slis_sortinfo_alv, " Workarea for ALV Sort

alv_keyinfo TYPE slis_keyinfo_alv, " ALV Key Info

alv_variant TYPE disvariant, " ALV Variant

alv_layout TYPE slis_layout_alv, " ALV Layout

alv_repid TYPE sy-repid, " ALV Program Name

alv_print TYPE slis_print_alv, " ALV Printing Parameters

alv_detail_func(30), " ALV Detail Function

alv_default_variant TYPE disvariant-variant, " ALV Default Variant

alv_colourize_fields TYPE mmim_rep_print-color. " ALV Color Parameters

&----


*& Selection Screen Declarations

&----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS:

s_lgnum FOR t300-lgnum OBLIGATORY, " Warehouse Number

s_werks FOR t001w-werks, " Plant

s_lgort FOR t001l-lgort, " Storage Location

s_lgtyp FOR t301-lgtyp. " Storage Type

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS:

s_matnr FOR mara-matnr, " Material number

s_mtart FOR t134-mtart, " Material Type

s_charg FOR mcha-charg, " Batch

s_zustd FOR mcha-zustd, " Batch Status

s_lgtkz FOR t305-lgtkz, " Storage Type Indicator for Stock Placement

s_lgtkz1 FOR t305-lgtkz, " Storage Type Indicator for Stock Removal

s_lgbkz FOR t304-lgbkz. " Storage section indicator

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

SELECT-OPTIONS:

s_bestq FOR lqua-bestq, " Stock Type

s_letyp FOR t307-letyp, " Storage Unit Type

s_bdatu FOR lqua-bdatu, " Last Movement Date

s_date FOR vtbbewe-atage. " Number of days since last goods receipt

  • s_wdatu FOR lqua-wdatu," OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.

SELECT-OPTIONS:

s_lgpla FOR lagp-lgpla, " Storage bin

s_skzue FOR lagp-skzue, " Put Away Block

s_skzua FOR lagp-skzua, " Stock Removal Block

s_spgru FOR t330-spgru. " Blocking Reason

SELECTION-SCREEN END OF BLOCK b4.

SELECTION-SCREEN BEGIN OF BLOCK b5 WITH FRAME TITLE text-041.

PARAMETERS:

p_layout TYPE disvariant-variant. " Layout

SELECTION-SCREEN END OF BLOCK b5.

&----


*& Include ZV30_WM_STOCK_OVERVIEW_DATA

&----


&----


*& Form data_retrieval

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_retrieval .

IF s_date IS NOT INITIAL.

r_wdatu-sign = s_date-sign.

r_wdatu-option = s_date-option.

v_datelow = s_date-low.

v_datehigh = s_date-high.

r_wdatu-low = sy-datum - v_datehigh .

r_wdatu-high = sy-datum - v_datelow.

APPEND r_wdatu.

ENDIF.

  • select data from LQUA table

SELECT lgnum werks matnr lgtyp lgpla lgort lenum letyp charg

vfdat bestq verme meins bdatu wdatu skzue skzua spgru qplos

FROM lqua

INTO TABLE itab_lqua

WHERE lgnum IN s_lgnum AND

werks IN s_werks AND

lgort IN s_lgort AND

lgtyp IN s_lgtyp AND

matnr IN s_matnr AND

bestq IN s_bestq AND

charg IN s_charg AND

wdatu IN r_wdatu AND

bdatu IN s_bdatu AND

lgpla IN s_lgpla AND

letyp IN s_letyp.

IF sy-subrc EQ 0.

SORT itab_lqua BY lgnum matnr werks charg.

ENDIF.

*select data from MARA Table

SELECT matnr mtart FROM mara

INTO TABLE itab_mara

FOR ALL ENTRIES IN itab_lqua

WHERE mtart IN s_mtart

AND matnr = itab_lqua-matnr.

IF sy-subrc EQ 0.

SORT itab_mara BY matnr.

ENDIF.

  • select data from MCHA table

SELECT matnr werks charg zustd hsdat FROM mcha

INTO TABLE itab_mcha

FOR ALL ENTRIES IN itab_lqua

WHERE zustd IN s_zustd

AND matnr EQ itab_lqua-matnr AND

werks EQ itab_lqua-werks AND

charg EQ itab_lqua-charg.

IF sy-subrc EQ 0.

SORT itab_mcha BY matnr werks charg.

ENDIF.

  • select data from MLGN table

SELECT matnr lgnum lgbkz ltkze ltkza FROM mlgn

INTO TABLE itab_mlgn

FOR ALL ENTRIES IN itab_lqua

WHERE ltkze IN s_lgtkz AND

ltkza IN s_lgtkz1 AND

lgbkz IN s_lgbkz AND

lgnum IN s_lgnum AND

matnr EQ itab_lqua-matnr.

IF sy-subrc EQ 0.

SORT itab_mlgn BY matnr.

ENDIF.

  • select data from LAGP table

SELECT lgnum lgtyp lgpla skzua skzue spgru FROM lagp

INTO TABLE itab_lagp

FOR ALL ENTRIES IN itab_lqua

WHERE skzua IN s_skzua AND

skzue IN s_skzue AND

spgru IN s_spgru AND

lgnum = itab_lqua-lgnum AND

lgtyp = itab_lqua-lgtyp AND

lgpla = itab_lqua-lgpla.

IF sy-subrc EQ 0.

SORT itab_lagp BY lgnum lgtyp lgpla.

ENDIF.

  • select data from MBEW table

SELECT matnr bwkey stprs FROM mbew

INTO TABLE itab_mbew

FOR ALL ENTRIES IN itab_lqua

WHERE matnr = itab_lqua-matnr

AND bwkey = itab_lqua-werks.

IF sy-subrc EQ 0.

SORT itab_mbew BY matnr bwkey.

ENDIF.

  • select data from T001K table

SELECT bwkey bukrs FROM t001k

INTO TABLE itab_t001k

FOR ALL ENTRIES IN itab_lqua

WHERE bwkey = itab_lqua-werks.

IF sy-subrc EQ 0.

SORT itab_t001k BY bwkey.

ENDIF.

  • select data from T001 table

SELECT bukrs waers FROM t001

INTO TABLE itab_t001

FOR ALL ENTRIES IN itab_t001k

WHERE bukrs = itab_t001k-bukrs.

IF sy-subrc EQ 0.

SORT itab_t001 BY bukrs.

ENDIF.

  • select data from MAKT table

SELECT matnr spras maktx FROM makt

INTO TABLE itab_makt

FOR ALL ENTRIES IN itab_lqua

WHERE matnr = itab_lqua-matnr

AND spras = 'EN'.

IF sy-subrc EQ 0.

SORT itab_makt BY matnr.

ENDIF.

  • select data from INOB table

SELECT cuobj objek FROM inob

INTO TABLE itab_inob

WHERE cuobj IN r_cuobj.

IF sy-subrc EQ 0.

SORT itab_inob BY objek.

ENDIF.

CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'

EXPORTING

input = 'KERNEL_STATUS'

IMPORTING

output = v_atinn.

  • select data from AUSP table

SELECT objek atinn klart atwrt FROM ausp

INTO TABLE itab_ausp

WHERE atinn EQ v_atinn AND

klart EQ '022' .

IF sy-subrc EQ 0.

SORT itab_ausp BY objek.

ENDIF.

ENDFORM. " data_retrieval

&----


*& Form f_layout_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_layout_display .

PERFORM f_catalog USING :

'LGNUM' 'TYPE_STOCK' text-005,

'WERKS' 'TYPE_STOCK' text-006,

'LGORT' 'TYPE_STOCK' text-007,

'LGTYP' 'TYPE_STOCK' text-008,

'LGPLA' 'TYPE_STOCK' text-009,

'MATNR' 'TYPE_STOCK' text-010,

'MAKTX' 'TYPE_STOCK' text-011,

'MTART' 'TYPE_STOCK' text-012,

'LTKZE' 'TYPE_STOCK' text-013,

'LTKZA' 'TYPE_STOCK' text-014,

'LGBKZ' 'TYPE_STOCK' text-015,

'CHARG' 'TYPE_STOCK' text-016,

'ZUSTD' 'TYPE_STOCK' text-017,

'ATWRT' 'TYPE_STOCK' text-018,

'HSDAT' 'TYPE_STOCK' text-019,

'VFDAT' 'TYPE_STOCK' text-020,

'BESTQ' 'TYPE_STOCK' text-021,

'BDATU' 'TYPE_STOCK' text-022,

'DATE1' 'TYPE_STOCK' text-023,

'WDATU' 'TYPE_STOCK' text-024,

'DATE2' 'TYPE_STOCK' text-025,

'LETYP' 'TYPE_STOCK' text-026,

'LENUM' 'TYPE_STOCK' text-027,

'SKZUE' 'TYPE_STOCK' text-028,

'SKZUA' 'TYPE_STOCK' text-029,

'SPGRU' 'TYPE_STOCK' text-030,

'SKZUE1' 'TYPE_STOCK' text-031,

'SKZUA1' 'TYPE_STOCK' text-032,

'SPGRU1' 'TYPE_STOCK' text-033,

'QPLOS' 'TYPE_STOCK' text-034,

'VERME' 'TYPE_STOCK' text-035,

'MEINS' 'TYPE_STOCK' text-036,

'QUAN' 'TYPE_STOCK' text-037,

'WAERS' 'TYPE_STOCK' text-038.

ENDFORM. " f_layout_display

&----


*& Form alv_event

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM alv_event .

  • Get ALV event

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = itab_event.

READ TABLE itab_event WITH KEY name = slis_ev_top_of_page INTO wa_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO wa_event-form.

APPEND wa_event TO itab_event.

ENDIF.

CLEAR wa_event.

ENDFORM. " alv_event

&----


*& Form fill_listheader

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_listheader .

CONCATENATE g_date6(2) '.' g_date4(2) '.' g_date+0(4) INTO g_date.

  • ALV Header Information

wa_listheader-typ = 'H'.

wa_listheader-info = text-039.

CONCATENATE text-039 ':' g_date INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'H'.

wa_listheader-info = text-040.

CONCATENATE text-040 ':' g_time INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

CLEAR wa_listheader.

  • ALV Selection Criteria

IF s_lgnum IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-060 .

CONCATENATE text-060 ':' s_lgnum-low s_lgnum-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_werks IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-042.

CONCATENATE text-042 ':' s_werks-low s_werks-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_lgort IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-043.

CONCATENATE text-043 ':' s_lgort-low s_lgort-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_lgtyp IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-044.

CONCATENATE text-044 ':' s_lgtyp-low s_lgtyp-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_matnr IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-045.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

input = s_matnr-low

IMPORTING

output = s_matnr-low.

CONCATENATE text-045 ':' s_matnr-low s_matnr-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_mtart IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-046.

CONCATENATE text-046 ':' s_mtart-low s_mtart-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_charg IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-047.

CONCATENATE text-047 ':' s_charg-low s_charg-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_zustd[] IS NOT INITIAL AND s_zustd-low EQ ' '.

wa_listheader-typ = 'S'.

wa_listheader-info = text-048.

CONCATENATE text-048 ':' s_zustd-low s_zustd-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_lgtkz IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-049.

CONCATENATE text-049 ':' s_lgtkz-low s_lgtkz-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_lgtkz1 IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-050.

CONCATENATE text-050 ':' s_lgtkz1-low s_lgtkz1-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_lgbkz IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-051.

CONCATENATE text-051 ':' s_lgbkz-low s_lgbkz-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_bestq IS NOT INITIAL AND s_bestq EQ ' '.

wa_listheader-typ = 'S'.

wa_listheader-info = text-052.

CONCATENATE text-052 ':' s_bestq-low s_bestq-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_letyp IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-053.

CONCATENATE text-053 ':' s_letyp-low s_letyp-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

CONCATENATE s_bdatu-low6(2) '.' s_bdatu-low4(2) '.' s_bdatu-low+0(4) INTO v_bdatu-low.

CONCATENATE s_bdatu-high6(2) '.' s_bdatu-high4(2) '.' s_bdatu-high+0(4) INTO v_bdatu-high.

IF s_bdatu IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-054.

CONCATENATE text-054 ':' v_bdatu-low v_bdatu-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

v_date-low = s_date-low.

v_date-high = s_date-high.

IF s_date IS NOT INITIAL .

wa_listheader-typ = 'S'.

wa_listheader-info = text-055.

CONCATENATE text-055 ':' v_date-low v_date-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_lgpla IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-056.

CONCATENATE text-056 ':' s_lgpla-low s_lgpla-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_skzue IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-057.

CONCATENATE text-057 ':' s_skzue-low s_skzue-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_skzua IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-058.

CONCATENATE text-058 ':' s_skzua-low s_skzua-high ';' INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

IF s_spgru IS NOT INITIAL.

wa_listheader-typ = 'S'.

wa_listheader-info = text-059.

CONCATENATE text-059 ':' s_spgru-low s_spgru-high INTO wa_listheader-info SEPARATED BY space.

APPEND wa_listheader TO itab_listheader.

ENDIF.

CLEAR wa_listheader.

ENDFORM. " fill_listheader

&----


*& Form alv_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM alv_display .

g_repid = sy-repid.

itab_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = g_repid

is_layout = itab_layout

it_fieldcat = itab_fcat[]

it_sort = itab_sort

i_save = 'X'

is_variant = alv_variant

it_events = itab_event

TABLES

t_outtab = itab_stock

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE e017.

ENDIF.

REFRESH itab_stock.

ENDFORM. " alv_display

&----


*& Form f_initialize

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_initialize .

REFRESH: itab_lqua,itab_mara,itab_mcha,itab_mlgn,itab_lagp,itab_mbew,itab_t001k,itab_t001,itab_makt,itab_inob,itab_ausp,itab_stock.

g_date = sy-datum.

g_time = sy-uzeit.

ENDFORM. " f_initialize

&----


*& Form build_table

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_table .

LOOP AT itab_lqua INTO wa_lqua.

MOVE:

wa_lqua-lgnum TO wa_stock-lgnum,

wa_lqua-werks TO wa_stock-werks,

wa_lqua-matnr TO wa_stock-matnr,

wa_lqua-lgtyp TO wa_stock-lgtyp,

wa_lqua-lgpla TO wa_stock-lgpla,

wa_lqua-lgort TO wa_stock-lgort,

wa_lqua-lenum TO wa_stock-lenum,

wa_lqua-letyp TO wa_stock-letyp,

wa_lqua-charg TO wa_stock-charg,

wa_lqua-vfdat TO wa_stock-vfdat,

wa_lqua-bestq TO wa_stock-bestq,

wa_lqua-verme TO wa_stock-verme,

wa_lqua-meins TO wa_stock-meins,

wa_lqua-wdatu TO wa_stock-wdatu,

wa_lqua-bdatu TO wa_stock-bdatu,

wa_lqua-skzue TO wa_stock-skzue,

wa_lqua-skzua TO wa_stock-skzua,

wa_lqua-spgru TO wa_stock-spgru,

wa_lqua-qplos TO wa_stock-qplos.

v_date_from1 = wa_stock-wdatu.

v_date_to1 = sy-datum.

CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'

EXPORTING

i_date_from = v_date_from1

i_date_to = v_date_to1

IMPORTING

e_days = v_days1.

MOVE v_days1 TO wa_stock-date1.

v_date_from2 = wa_stock-bdatu.

v_date_to2 = sy-datum.

CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'

EXPORTING

i_date_from = v_date_from2

i_date_to = v_date_to2

IMPORTING

e_days = v_days2.

MOVE v_days2 TO wa_stock-date2.

READ TABLE itab_mbew INTO wa_mbew WITH KEY matnr = wa_stock-matnr

bwkey = wa_stock-werks BINARY SEARCH.

IF sy-subrc = 0.

wa_stock-quan = wa_stock-verme * wa_mbew-stprs.

ENDIF.

READ TABLE itab_t001k INTO wa_t001k WITH KEY bwkey = wa_lqua-werks BINARY SEARCH.

IF sy-subrc = 0.

READ TABLE itab_t001 INTO wa_t001 WITH KEY bukrs = wa_t001k-bukrs BINARY SEARCH.

IF sy-subrc = 0.

MOVE: wa_t001-waers TO wa_stock-waers.

ENDIF.

ENDIF.

READ TABLE itab_makt INTO wa_makt WITH KEY matnr = wa_stock-matnr BINARY SEARCH.

IF sy-subrc = 0.

MOVE : wa_makt-maktx TO wa_stock-maktx.

ENDIF.

READ TABLE itab_mara INTO wa_mara WITH KEY matnr = wa_stock-matnr BINARY SEARCH.

IF sy-subrc = 0.

MOVE : wa_mara-mtart TO wa_stock-mtart.

  • ENDIF.

READ TABLE itab_mlgn INTO wa_mlgn WITH KEY matnr = wa_stock-matnr BINARY SEARCH.

IF sy-subrc = 0.

MOVE: wa_mlgn-ltkze TO wa_stock-ltkze,

wa_mlgn-ltkza TO wa_stock-ltkza,

wa_mlgn-lgbkz TO wa_stock-lgbkz.

  • ENDIF.

READ TABLE itab_lagp INTO wa_lagp WITH KEY lgnum = wa_stock-lgnum

lgtyp = wa_stock-lgtyp

lgpla = wa_stock-lgpla BINARY SEARCH.

IF sy-subrc = 0.

MOVE: wa_lagp-skzue TO wa_stock-skzue1,

wa_lagp-skzua TO wa_stock-skzua1,

wa_lagp-spgru TO wa_stock-spgru1.

  • ENDIF.

READ TABLE itab_mcha INTO wa_mcha WITH KEY matnr = wa_stock-matnr

werks = wa_stock-werks

charg = wa_stock-charg

BINARY SEARCH.

IF sy-subrc = 0.

CONCATENATE wa_mcha-matnr wa_mcha-werks wa_mcha-charg INTO v_temp1.

MOVE: wa_mcha-zustd TO wa_stock-zustd,

wa_mcha-hsdat TO wa_stock-hsdat.

READ TABLE itab_inob INTO wa_inob WITH KEY objek = v_temp1 BINARY SEARCH.

IF sy-subrc = 0.

READ TABLE itab_ausp INTO wa_ausp WITH KEY objek = wa_inob-cuobj

atinn = v_atinn

klart = '022' BINARY SEARCH .

IF sy-subrc = 0.

MOVE: wa_ausp-atwrt TO wa_stock-atwrt.

ENDIF.

ENDIF."INOB

APPEND wa_stock TO itab_stock.

ENDIF."MCHA

ENDIF."LAGP

ENDIF."MLGN

ENDIF. "MARA

CLEAR wa_stock.

ENDLOOP.

ENDFORM. " build_table

&----


*& Form top_of_page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM top_of_page .

  • ALV commetry write function

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = itab_listheader.

ENDFORM. " top_of_page

*&----


**& Form f_catalog

*&----


    • text

*----


    • -->P_0403 text

    • -->P_0404 text

    • -->P_TEXT_005 text

*----


FORM f_catalog USING p_field TYPE any

p_table TYPE any

p_text TYPE any.

ADD 1 TO g_pos.

wa_fcat-row_pos = 1.

wa_fcat-col_pos = g_pos.

wa_fcat-fieldname = p_field.

wa_fcat-tabname = p_table.

wa_fcat-seltext_l = p_text.

APPEND wa_fcat TO itab_fcat.

CLEAR wa_fcat.

ENDFORM. " f_catalog

&----


*& Form sort_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sort_alv .

PERFORM f_sort USING:

'1' 'LGNUM' ,

'2' 'WERKS' ,

'3' 'LGORT' ,

'4' 'LGTYP' ,

'5' 'LGPLA' ,

'6' 'MATNR' ,

'7' 'MAKTX' ,

'8' 'MTART' ,

'9' 'LTKZE' ,

'10' 'LTKZA' ,

'11' 'LGBKZ' ,

'12' 'CHARG' ,

'13' 'ZUSTD' ,

'14' 'ATWRT' ,

'15' 'HSADT' ,

'16' 'VFDAT' ,

'17' 'BESTQ' ,

'18' 'BDATU' ,

'19' 'DATE1' ,

'20' 'WDATU' ,

'21' 'DATE2' ,

'22' 'LETYP' ,

'23' 'LENUM' ,

'24' 'SKZUE' ,

'25' 'SKZUA' ,

'26' 'SPGRU' ,

'27' 'SKZUE1' ,

'28' 'SKZUA1' ,

'29' 'SPGRU1' ,

'30' 'QPLOS' ,

'31' 'VERME' ,

'32' 'MEINS' ,

'33' 'QUAN' ,

'34' 'WAERS' .

ENDFORM. " sort_alv

&----


*& Form f_sort

&----


  • text

----


  • -->P_1679 text

  • -->P_1680 text

----


FORM f_sort USING p_spos TYPE any

p_field TYPE any.

CLEAR wa_sort.

wa_sort-spos = p_spos.

wa_sort-fieldname = p_field.

APPEND wa_sort TO itab_sort.

ENDFORM. " f_sort

&----


*& Form search_help_werks

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_werks .

DATA: BEGIN OF itab_werks OCCURS 0,

werks TYPE t320-werks, " Plant

lgnum TYPE t320-lgnum, " Warehouse Number

END OF itab_werks.

SELECT awerks blgnum

INTO TABLE itab_werks

FROM t320 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'WERKS'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_WERKS'

value_org = 'S'

TABLES

value_tab = itab_werks

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_werks INDEX 1. "transporting werks.

IF sy-subrc EQ 0.

MOVE itab_werks-werks TO s_werks-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_werks

&----


*& Form search_help_lgort

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_lgort .

DATA: BEGIN OF itab_lgort OCCURS 0,

lgort TYPE t320-lgort, " Storage Location

lgnum TYPE t320-lgnum, " Warehouse Number

END OF itab_lgort.

SELECT algort blgnum

INTO TABLE itab_lgort

FROM t320 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGORT'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LGORT'

value_org = 'S'

TABLES

value_tab = itab_lgort

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_lgort INDEX 1. "transporting LGORT.

IF sy-subrc EQ 0.

MOVE itab_lgort-lgort TO s_lgort-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_lgort

&----


*& Form search_help_lgtyp

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_lgtyp .

DATA: BEGIN OF itab_lgtyp OCCURS 0,

lgtyp TYPE t301-lgtyp, " Storage Type

lgnum TYPE t301-lgnum, " Warehouse Number

END OF itab_lgtyp.

SELECT algtyp blgnum

INTO TABLE itab_lgtyp

FROM t301 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGTYP'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LGTYP'

value_org = 'S'

TABLES

value_tab = itab_lgtyp

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_lgtyp INDEX 1. "transporting LGTYP.

IF sy-subrc EQ 0.

MOVE itab_lgtyp-lgtyp TO s_lgtyp-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_lgtyp

&----


*& Form search_help_lgtkz

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_lgtkz .

DATA: BEGIN OF itab_lgtkz OCCURS 0,

lgtkz TYPE t305-lgtkz, " Storage type indicator for Stock Placement

lgnum TYPE t305-lgnum, " Warehouse Number

END OF itab_lgtkz.

SELECT algtkz blgnum

INTO TABLE itab_lgtkz

FROM t305 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGTKZ'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LGTKZ'

value_org = 'S'

TABLES

value_tab = itab_lgtkz

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_lgtkz INDEX 1. "transporting LGTKZ.

IF sy-subrc EQ 0.

MOVE itab_lgtkz-lgtkz TO s_lgtkz-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_lgtkz

&----


*& Form search_help_lgbkz

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_lgbkz .

DATA: BEGIN OF itab_lgbkz OCCURS 0,

lgbkz TYPE t304-lgbkz, " Storage section Indicator

lgnum TYPE t304-lgnum, " Warehouse Number

END OF itab_lgbkz.

SELECT algbkz blgnum

INTO TABLE itab_lgbkz

FROM t304 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGBKZ'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LGBKZ'

value_org = 'S'

TABLES

value_tab = itab_lgbkz

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_lgbkz INDEX 1. "transporting LGBKZ.

IF sy-subrc EQ 0.

MOVE itab_lgbkz-lgbkz TO s_lgbkz-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_lgbkz

&----


*& Form search_help_letyp

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_letyp .

DATA: BEGIN OF itab_letyp OCCURS 0,

letyp TYPE t307-letyp, " Storage Unit Type

lgnum TYPE t307-lgnum, " Warehouse Number

END OF itab_letyp.

SELECT aletyp blgnum

INTO TABLE itab_letyp

FROM t307 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LETYP'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LETYP'

value_org = 'S'

TABLES

value_tab = itab_letyp

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_letyp INDEX 1. "transporting LETYP.

IF sy-subrc EQ 0.

MOVE itab_letyp-letyp TO s_letyp-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_letyp

&----


*& Form search_help_spgru

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_spgru .

DATA: BEGIN OF itab_spgru OCCURS 0,

spgru TYPE t330-spgru, " Blocking Reason

lgnum TYPE t330-lgnum, " Warehouse Number

END OF itab_spgru.

SELECT aspgru blgnum

INTO TABLE itab_spgru

FROM t330 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'SPGRU'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_SPGRU'

value_org = 'S'

TABLES

value_tab = itab_spgru

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_spgru INDEX 1. "transporting SPGRU.

IF sy-subrc EQ 0.

MOVE itab_spgru-spgru TO s_spgru-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_spgru

&----


*& Form search_help_lgpla

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_lgpla .

DATA: BEGIN OF itab_lgpla OCCURS 0,

lgpla TYPE lagp-lgpla, " Storage Bin

lgtyp TYPE lagp-lgtyp, " Storage Type

lgnum TYPE lagp-lgnum, " Warehouse Number

END OF itab_lgpla.

SELECT algpla algtyp b~lgnum

INTO TABLE itab_lgpla

FROM lagp AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum AND

a~lgtyp IN s_lgtyp.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGPLA'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LGPLA'

value_org = 'S'

TABLES

value_tab = itab_lgpla

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_lgpla INDEX 1. "transporting SPGRU.

IF sy-subrc EQ 0.

MOVE itab_lgpla-lgpla TO s_lgpla-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_lgpla

&----


*& Form search_help_charg

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_charg .

DATA: BEGIN OF itab_charg OCCURS 0,

charg TYPE mchb-charg, " Batch

werks TYPE mchb-werks, " Plant

lgort TYPE mchb-lgort, " Storage Location

matnr TYPE mchb-matnr, " Material Number

END OF itab_charg.

SELECT acharg awerks algort amatnr

INTO TABLE itab_charg

FROM mchb AS a INNER JOIN t320 AS b

ON awerks EQ bwerks AND

algort EQ blgort

WHERE a~matnr IN s_matnr AND

b~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'CHARG'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_CHARG'

value_org = 'S'

TABLES

value_tab = itab_charg

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_charg INDEX 1. "transporting CHARG.

IF sy-subrc EQ 0.

MOVE itab_charg-charg TO s_charg-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_charg

&----


*& Form search_help_lgtkz1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM search_help_lgtkz1 .

DATA: BEGIN OF itab_lgtkz OCCURS 0,

lgtkz TYPE t305-lgtkz, " Storage type indicator for Stock Removal

lgnum TYPE t305-lgnum, " Warehouse Number

END OF itab_lgtkz.

SELECT algtkz blgnum

INTO TABLE itab_lgtkz

FROM t305 AS a INNER JOIN t300 AS b

ON algnum EQ blgnum

WHERE a~lgnum IN s_lgnum.

IF sy-subrc NE 0.

MESSAGE s051(zv30_sd) .

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGTKZ'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_LGTKZ'

value_org = 'S'

TABLES

value_tab = itab_lgtkz

return_tab = t_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

READ TABLE itab_lgtkz INDEX 1. "transporting LGTKZ.

IF sy-subrc EQ 0.

MOVE itab_lgtkz-lgtkz TO s_lgtkz1-low.

ENDIF.

ENDIF.

ENDFORM. " search_help_lgtkz1

  • ALV Layouts

&----


*& Form alv_f4

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM alv_f4 .

alv_repid = sy-repid.

alv_variant-report = alv_repid.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

is_variant = alv_variant

i_save = 'A'

IMPORTING

es_variant = alv_variant

EXCEPTIONS

not_found = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.

p_layout = alv_variant-variant.

ENDIF.

ENDFORM. " alv_f4

&----


*& Form alv_check

&----


  • text

----


FORM alv_check.

SET CURSOR FIELD 'P_LAYOUT'.

alv_variant-report = alv_repid.

alv_variant-variant = p_layout.

IF NOT p_layout IS INITIAL.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

i_save = 'A'

CHANGING

cs_variant = alv_variant

EXCEPTIONS

OTHERS = 1.

IF sy-subrc <> 0.

MESSAGE e321(m7) WITH p_layout alv_repid.

ENDIF.

ELSE.

  • the user wants no initial display variant

IF NOT alv_default_variant IS INITIAL.

  • but the SAP-LIST-VIEWER will apply the existing

  • initial display variant / emerge warning 393 ?

CALL FUNCTION 'ME_CHECK_T160M'

EXPORTING

i_arbgb = 'M7'

i_msgnr = '393'

EXCEPTIONS

nothing = 0

OTHERS = 1.

IF sy-subrc <> 0.

  • list will be created using the initial layout &

MESSAGE w393(m7) WITH alv_default_variant.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. "alv_check

Regards,

Sree