Dynamic ALV Report.
Say you have a requirement where you want to show a report to indicate one Material is Present in how many purchase order. Say your purchase order number is 'P1' is present in three Material 'M1', 'M2' and 'M3', then your ALV Report show only one row with three column like P1, M1, M2 and M3 and in Material we need to display Material Description.
Here we can show one Purchase Number having Three Material so now i want to display in single Row three Material with there Description.
*&---------------------------------------------------------------------*
*& Report ZDYNAMIC_ALV
*&
*&---------------------------------------------------------------------*
*& Project : Dynamic ALV
*& Authore : Rohit Subhash
*& Description : Display Dynamic Material and Material Description
*&---------------------------------------------------------------------*
REPORT ZDYNAMIC_ALV.
*&---------------------------------------------------------------------*
*& Structure for Purchasing Document Header Table
*&---------------------------------------------------------------------*
TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
TXZ01 TYPE TXZ01,
MATNR TYPE MATNR,
WERKS TYPE EWERK,
MENGE TYPE BSTMG,
NETPR TYPE BPREI,
END OF TY_EKPO.
*& Internal Table Declaration
DATA : GT_EKPO TYPE TABLE OF TY_EKPO,
LT_EKPO TYPE TABLE OF TY_EKPO,
GT_FCAT TYPE LVC_T_FCAT.
*& Workarea Declaration
DATA : GS_EKPO TYPE TY_EKPO,
GS_FCAT TYPE LVC_S_FCAT,
GS_LAY TYPE LVC_S_LAYO.
*& Constant Declaration
DATA : LV_EBELN TYPE EKPO-EBELN,
LV_LINES TYPE INT4,
LV_INDEX TYPE INT4,
LV_MENGE TYPE MENGE_D,
LV_NETPR TYPE NETPR.
*& Declare Local Object for Global Class.
DATA : LO_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
LO_GUI TYPE REF TO CL_GUI_ALV_GRID.
*& Dynamic Internal Table and Dynamic workarea Declaration
FIELD-SYMBOLS : <FT_DYN_TAB> TYPE STANDARD TABLE,
<FS_DYN> TYPE ANY,
<FS_EKPO> TYPE TY_EKPO,
<FS_FINAL> TYPE ANY.
DATA : T_NEWTAB TYPE REF TO DATA,
T_NEWLINE TYPE REF TO DATA.
*& Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_EBELN FOR LV_EBELN.
SELECTION-SCREEN END OF BLOCK A1.
*&---------------------------------------------------------------------*
*& INITIALIZATION Event
*&---------------------------------------------------------------------*
INITIALIZATION.
REFRESH : GT_EKPO[],
LT_EKPO[],
GT_FCAT[].
CLEAR : GS_EKPO,
GS_FCAT,
GS_LAY.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION Event
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*& This Routine is used to Get the Data from EKPO Table
PERFORM GET_EKPO.
*& Populate Dynamic Column and Create Dynamic Internal Table.
PERFORM POP_DYN_COLUMN.
*& Populate Data into Dynamic Internal Table
PERFORM POP_DYN_DATA.
*& Call Screen and Display Data
PERFORM CALL_SCREEN.
*&---------------------------------------------------------------------*
*& Form GET_EKPO
*&---------------------------------------------------------------------*
* This routine is used to get the data from Purchasing Document Item Table
*----------------------------------------------------------------------*
FORM GET_EKPO .
SELECT EBELN
EBELP
TXZ01
MATNR
WERKS
MENGE
NETPR
FROM EKPO INTO TABLE GT_EKPO WHERE EBELN IN S_EBELN.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POP_DYN_COLUMN
*&---------------------------------------------------------------------*
* Populate Dynamic Column and Create Dynamic Internal Table
*----------------------------------------------------------------------*
FORM POP_DYN_COLUMN .
GS_FCAT-FIELDNAME = 'EBELN'.
GS_FCAT-SCRTEXT_M = 'Pur. Order No'.
GS_FCAT-OUTPUTLEN = '10'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = 'MENGE'.
GS_FCAT-SCRTEXT_M = 'Quantity'.
GS_FCAT-OUTPUTLEN = '13'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = 'NETPR'.
GS_FCAT-SCRTEXT_M = 'Price Per Unit'.
GS_FCAT-OUTPUTLEN = '15'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
*& Find Total Number of MATNR(Materia)
LT_EKPO[] = GT_EKPO[].
DELETE LT_EKPO WHERE MATNR IS INITIAL.
SORT LT_EKPO BY MATNR.
DELETE ADJACENT DUPLICATES FROM LT_EKPO COMPARING MATNR.
*& Find total Number of Record.
DESCRIBE TABLE LT_EKPO LINES LV_LINES.
CLEAR LV_INDEX.
DO LV_LINES TIMES.
LV_INDEX = LV_INDEX + 1.
CLEAR GS_EKPO.
" Read Record Based on Index
READ TABLE LT_EKPO INTO GS_EKPO INDEX LV_INDEX.
"Remove Material Leading ZERO
SHIFT GS_EKPO-MATNR LEFT DELETING LEADING '0'.
GS_FCAT-FIELDNAME = GS_EKPO-MATNR.
GS_FCAT-SCRTEXT_L = GS_EKPO-MATNR.
GS_FCAT-OUTPUTLEN = '40'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
ENDDO.
*& Create Dynamic Internal Table.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
* I_STYLE_TABLE =
IT_FIELDCATALOG = GT_FCAT
* I_LENGTH_IN_BYTE =
IMPORTING
EP_TABLE = T_NEWTAB
* E_STYLE_FNAME =
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
ENDIF.
*& Assign the Field Symbol with dynmic Internal Table
ASSIGN T_NEWTAB->* TO <FT_DYN_TAB>.
*& Create Dynamic Workare
CREATE DATA T_NEWLINE LIKE LINE OF <FT_DYN_TAB>.
ASSIGN T_NEWLINE->* TO <FS_DYN>.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POP_DYN_DATA
*&---------------------------------------------------------------------*
* Populate Data into Dynamic Internal Table
*----------------------------------------------------------------------*
FORM POP_DYN_DATA .
LOOP AT GT_EKPO ASSIGNING <FS_EKPO> .
ASSIGN COMPONENT 'EBELN' OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
<FS_FINAL> = <FS_EKPO>-EBELN.
ENDIF.
ASSIGN COMPONENT 'MENGE' OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
LV_MENGE = LV_MENGE + <FS_EKPO>-MENGE.
<FS_FINAL> = LV_MENGE.
ENDIF.
ASSIGN COMPONENT 'NETPR' OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
LV_NETPR = LV_NETPR + <FS_EKPO>-NETPR.
<FS_FINAL> = LV_NETPR.
ENDIF.
"Getting Material Description based on Material Number.
CLEAR GS_EKPO.
READ TABLE GT_EKPO INTO GS_EKPO WITH KEY EBELN = <FS_EKPO>-EBELN EBELP = <FS_EKPO>-EBELP.
IF SY-SUBRC EQ 0.
IF GS_EKPO-MATNR IS NOT INITIAL.
SHIFT GS_EKPO-MATNR LEFT DELETING LEADING '0'.
ASSIGN COMPONENT GS_EKPO-MATNR OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
<FS_FINAL> = <FS_EKPO>-TXZ01.
ENDIF.
ENDIF.
ENDIF.
AT END OF EBELN.
APPEND <FS_DYN> TO <FT_DYN_TAB>.
CLEAR : LV_NETPR, LV_MENGE, <FS_DYN>.
ENDAT.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_SCREEN
*&---------------------------------------------------------------------*
* Call Screen 9001
*----------------------------------------------------------------------*
FORM CALL_SCREEN .
CALL SCREEN 9001.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module DISPLAY OUTPUT
*&---------------------------------------------------------------------*
* Display Data
*----------------------------------------------------------------------*
MODULE DISPLAY OUTPUT.
GS_LAY-CWIDTH_OPT = 'X'.
GS_LAY-ZEBRA = 'X'.
*& Check Docking Container is Initial or Not
CHECK LO_DOCKING IS INITIAL.
*& Creat Object for Docking Container.
CREATE OBJECT LO_DOCKING
EXPORTING
PARENT = CL_GUI_DOCKING_CONTAINER=>DEFAULT_SCREEN
REPID = SY-REPID
DYNNR = SY-DYNNR
* SIDE = DOCK_AT_LEFT
EXTENSION = 2000
* STYLE =
* LIFETIME = lifetime_default
* CAPTION =
* METRIC = 0
* RATIO =
* NO_AUTODEF_PROGID_DYNNR =
* NAME =
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6.
*& Create Object for CL_GUI_ALV_GRID Class.
CREATE OBJECT LO_GUI
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = LO_DOCKING
* 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.
*& Display Data
CALL METHOD LO_GUI->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
I_SAVE = 'A'
I_DEFAULT = 'X'
IS_LAYOUT = GS_LAY
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = <FT_DYN_TAB>
IT_FIELDCATALOG = GT_FCAT
* IT_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.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.
IF SY-UCOMM = 'BACK' OR SY-UCOMM = 'EXIT' OR SY-UCOMM = 'CANCEL'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE.
Output:

Download Sour Code: Code
Say you have a requirement where you want to show a report to indicate one Material is Present in how many purchase order. Say your purchase order number is 'P1' is present in three Material 'M1', 'M2' and 'M3', then your ALV Report show only one row with three column like P1, M1, M2 and M3 and in Material we need to display Material Description.
Here we can show one Purchase Number having Three Material so now i want to display in single Row three Material with there Description.
*&---------------------------------------------------------------------*
*& Report ZDYNAMIC_ALV
*&
*&---------------------------------------------------------------------*
*& Project : Dynamic ALV
*& Authore : Rohit Subhash
*& Description : Display Dynamic Material and Material Description
*&---------------------------------------------------------------------*
REPORT ZDYNAMIC_ALV.
*&---------------------------------------------------------------------*
*& Structure for Purchasing Document Header Table
*&---------------------------------------------------------------------*
TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
TXZ01 TYPE TXZ01,
MATNR TYPE MATNR,
WERKS TYPE EWERK,
MENGE TYPE BSTMG,
NETPR TYPE BPREI,
END OF TY_EKPO.
*& Internal Table Declaration
DATA : GT_EKPO TYPE TABLE OF TY_EKPO,
LT_EKPO TYPE TABLE OF TY_EKPO,
GT_FCAT TYPE LVC_T_FCAT.
*& Workarea Declaration
DATA : GS_EKPO TYPE TY_EKPO,
GS_FCAT TYPE LVC_S_FCAT,
GS_LAY TYPE LVC_S_LAYO.
*& Constant Declaration
DATA : LV_EBELN TYPE EKPO-EBELN,
LV_LINES TYPE INT4,
LV_INDEX TYPE INT4,
LV_MENGE TYPE MENGE_D,
LV_NETPR TYPE NETPR.
*& Declare Local Object for Global Class.
DATA : LO_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
LO_GUI TYPE REF TO CL_GUI_ALV_GRID.
*& Dynamic Internal Table and Dynamic workarea Declaration
FIELD-SYMBOLS : <FT_DYN_TAB> TYPE STANDARD TABLE,
<FS_DYN> TYPE ANY,
<FS_EKPO> TYPE TY_EKPO,
<FS_FINAL> TYPE ANY.
DATA : T_NEWTAB TYPE REF TO DATA,
T_NEWLINE TYPE REF TO DATA.
*& Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_EBELN FOR LV_EBELN.
SELECTION-SCREEN END OF BLOCK A1.
*&---------------------------------------------------------------------*
*& INITIALIZATION Event
*&---------------------------------------------------------------------*
INITIALIZATION.
REFRESH : GT_EKPO[],
LT_EKPO[],
GT_FCAT[].
CLEAR : GS_EKPO,
GS_FCAT,
GS_LAY.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION Event
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*& This Routine is used to Get the Data from EKPO Table
PERFORM GET_EKPO.
*& Populate Dynamic Column and Create Dynamic Internal Table.
PERFORM POP_DYN_COLUMN.
*& Populate Data into Dynamic Internal Table
PERFORM POP_DYN_DATA.
*& Call Screen and Display Data
PERFORM CALL_SCREEN.
*&---------------------------------------------------------------------*
*& Form GET_EKPO
*&---------------------------------------------------------------------*
* This routine is used to get the data from Purchasing Document Item Table
*----------------------------------------------------------------------*
FORM GET_EKPO .
SELECT EBELN
EBELP
TXZ01
MATNR
WERKS
MENGE
NETPR
FROM EKPO INTO TABLE GT_EKPO WHERE EBELN IN S_EBELN.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POP_DYN_COLUMN
*&---------------------------------------------------------------------*
* Populate Dynamic Column and Create Dynamic Internal Table
*----------------------------------------------------------------------*
FORM POP_DYN_COLUMN .
GS_FCAT-FIELDNAME = 'EBELN'.
GS_FCAT-SCRTEXT_M = 'Pur. Order No'.
GS_FCAT-OUTPUTLEN = '10'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = 'MENGE'.
GS_FCAT-SCRTEXT_M = 'Quantity'.
GS_FCAT-OUTPUTLEN = '13'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = 'NETPR'.
GS_FCAT-SCRTEXT_M = 'Price Per Unit'.
GS_FCAT-OUTPUTLEN = '15'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
*& Find Total Number of MATNR(Materia)
LT_EKPO[] = GT_EKPO[].
DELETE LT_EKPO WHERE MATNR IS INITIAL.
SORT LT_EKPO BY MATNR.
DELETE ADJACENT DUPLICATES FROM LT_EKPO COMPARING MATNR.
*& Find total Number of Record.
DESCRIBE TABLE LT_EKPO LINES LV_LINES.
CLEAR LV_INDEX.
DO LV_LINES TIMES.
LV_INDEX = LV_INDEX + 1.
CLEAR GS_EKPO.
" Read Record Based on Index
READ TABLE LT_EKPO INTO GS_EKPO INDEX LV_INDEX.
"Remove Material Leading ZERO
SHIFT GS_EKPO-MATNR LEFT DELETING LEADING '0'.
GS_FCAT-FIELDNAME = GS_EKPO-MATNR.
GS_FCAT-SCRTEXT_L = GS_EKPO-MATNR.
GS_FCAT-OUTPUTLEN = '40'.
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
ENDDO.
*& Create Dynamic Internal Table.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
* I_STYLE_TABLE =
IT_FIELDCATALOG = GT_FCAT
* I_LENGTH_IN_BYTE =
IMPORTING
EP_TABLE = T_NEWTAB
* E_STYLE_FNAME =
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
ENDIF.
*& Assign the Field Symbol with dynmic Internal Table
ASSIGN T_NEWTAB->* TO <FT_DYN_TAB>.
*& Create Dynamic Workare
CREATE DATA T_NEWLINE LIKE LINE OF <FT_DYN_TAB>.
ASSIGN T_NEWLINE->* TO <FS_DYN>.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POP_DYN_DATA
*&---------------------------------------------------------------------*
* Populate Data into Dynamic Internal Table
*----------------------------------------------------------------------*
FORM POP_DYN_DATA .
LOOP AT GT_EKPO ASSIGNING <FS_EKPO> .
ASSIGN COMPONENT 'EBELN' OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
<FS_FINAL> = <FS_EKPO>-EBELN.
ENDIF.
ASSIGN COMPONENT 'MENGE' OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
LV_MENGE = LV_MENGE + <FS_EKPO>-MENGE.
<FS_FINAL> = LV_MENGE.
ENDIF.
ASSIGN COMPONENT 'NETPR' OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
LV_NETPR = LV_NETPR + <FS_EKPO>-NETPR.
<FS_FINAL> = LV_NETPR.
ENDIF.
"Getting Material Description based on Material Number.
CLEAR GS_EKPO.
READ TABLE GT_EKPO INTO GS_EKPO WITH KEY EBELN = <FS_EKPO>-EBELN EBELP = <FS_EKPO>-EBELP.
IF SY-SUBRC EQ 0.
IF GS_EKPO-MATNR IS NOT INITIAL.
SHIFT GS_EKPO-MATNR LEFT DELETING LEADING '0'.
ASSIGN COMPONENT GS_EKPO-MATNR OF STRUCTURE <FS_DYN> TO <FS_FINAL>.
IF <FS_FINAL> IS ASSIGNED.
<FS_FINAL> = <FS_EKPO>-TXZ01.
ENDIF.
ENDIF.
ENDIF.
AT END OF EBELN.
APPEND <FS_DYN> TO <FT_DYN_TAB>.
CLEAR : LV_NETPR, LV_MENGE, <FS_DYN>.
ENDAT.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_SCREEN
*&---------------------------------------------------------------------*
* Call Screen 9001
*----------------------------------------------------------------------*
FORM CALL_SCREEN .
CALL SCREEN 9001.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR 'ZTITLE'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module DISPLAY OUTPUT
*&---------------------------------------------------------------------*
* Display Data
*----------------------------------------------------------------------*
MODULE DISPLAY OUTPUT.
GS_LAY-CWIDTH_OPT = 'X'.
GS_LAY-ZEBRA = 'X'.
*& Check Docking Container is Initial or Not
CHECK LO_DOCKING IS INITIAL.
*& Creat Object for Docking Container.
CREATE OBJECT LO_DOCKING
EXPORTING
PARENT = CL_GUI_DOCKING_CONTAINER=>DEFAULT_SCREEN
REPID = SY-REPID
DYNNR = SY-DYNNR
* SIDE = DOCK_AT_LEFT
EXTENSION = 2000
* STYLE =
* LIFETIME = lifetime_default
* CAPTION =
* METRIC = 0
* RATIO =
* NO_AUTODEF_PROGID_DYNNR =
* NAME =
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6.
*& Create Object for CL_GUI_ALV_GRID Class.
CREATE OBJECT LO_GUI
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = LO_DOCKING
* 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.
*& Display Data
CALL METHOD LO_GUI->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
I_SAVE = 'A'
I_DEFAULT = 'X'
IS_LAYOUT = GS_LAY
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = <FT_DYN_TAB>
IT_FIELDCATALOG = GT_FCAT
* IT_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.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.
IF SY-UCOMM = 'BACK' OR SY-UCOMM = 'EXIT' OR SY-UCOMM = 'CANCEL'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE.
Output:

Download Sour Code: Code
What is the name given for the container? Because I am getting a blank screen
ReplyDeleteIn the screen flow logic make sure following lines are there.
DeletePROCESS BEFORE OUTPUT.
MODULE STATUS_9001.
MODULE DISPLAY.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_9001.