Go on link..

link us with ...

Showing posts with label ALV Report. Show all posts
Showing posts with label ALV Report. Show all posts

Saturday, January 8, 2011

Creating an ALV Grid in 3 lines



Did you know that you can create an ALV Grid very fast; you don't need to define a layout, a fieldcatalog, a container and all the other small things we usually define in an ALV Grid. If we don't need to finetune the ALV Grid and just want to display a list on the screen or to the printer, here is a very simple way to proceed:


Code:
DATA: l_alv      TYPE REF TO   cl_gui_alv_grid,
lt_sflight TYPE TABLE OF sflight.

SELECT * FROM sflight INTO TABLE lt_sflight.

* Creation of the ALV object, when we use cl_gui_container=>screen0 as parent, the ALVGrid control will
* automatically use the full screen to display the grid, NO CONTAINER DEFINITION IS REQUIRED !
CREATE OBJECT l_alv EXPORTING i_parent = cl_gui_container=>screen0.

* calling the display of the grid, the system will automatically create the fieldcatalog based
* on the table name you pass in parameter
CALL METHOD l_alv->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
CHANGING it_outtab = lt_sflight.

* You have to create an EMPTY screen, put NOTHING in the layout and this is going to work
CALL SCREEN 100.


Instead of creating an empty screen 100, you can also define an empty selection screen in you program and use it, no more screen painter required !

Code:
SELECTION-SCREEN BEGIN OF SCREEN 1001.
SELECTION-SCREEN END OF SCREEN 1001.
CALL SELECTION-SCREEN 1001.

Monday, January 3, 2011

Report on Production Order

SAP ABAP programming report provides a summarized list of production orders based on userspecified criteria. It is a powerful tool for monitoring the progress of orders through the production process, both from a manufacturing and an accounting perspective.

From this report, you can drill down to the order in display or change mode. The report also lets you display the dependent demand for components and the pegging reports to the demand source. For a configured product, it lets you drill down to the details of the configuration.

There are some additional flags such as component storage location, deletion indicator, and rework and collective order indicators which may further filter the selection. Since a production order database can be very large, it is advisable to use the filters provided in the first section to limit data selection and improve performance. All filters and settings may be saved for future use as a variant.

The report provides three basic views:

1. Object overview (MRP controller, plant, order type, system status, basic dates)
2. Order header overview (all header-level dates, last changed by, material description)
3. Object detail list (based on objects chosen, displays/groups related fields; see below) Use of the standard profile will list a predefined set of fields for each order, but these may be changed for the particular session, or a new profile may be created for the future.

This report contains data obtained from production orders. There are two cases in which data may be changed:

1. An order brought up in change mode from the menu option (Environment → Change order; an icon is also provided).

2. By choosing Goto → Object detail list → Components you are provided various branch points under the subsequent Environment menu, including the ability to change the order, create and process pick lists (goods issues) and invoke backorder processing.

To access the first screen for this report, choose Logistics → Production → Production control → Control → Information systems → Order Info system → Object overview.

1. Select the standard profile in Overall profile.
2. Enter 3000 in Plant.
3. Choose List → Execute.

This screen shows the Object Overview. The orders are listed along with the various status codes from the order. Click the node to expand the line entry.

1. Enter DLV in System status and then, select Excl. (exclude). This selection assures that the report will ignore orders that are “technically completed.”

2. Under Relative dates at header level enter the number of days (plus or minus) from the current day. Combining the number of days (for example, 60) with the selection option of less than (<) selects orders started more than 60 days ago. 3. Choose Execute. This screen shows the list restricted to orders that do not have the DLV status. The actual start date for these orders is more than 60 days ago.
1. Click the node for the production order you want to expand on.
2. Select the expand node button to display a full listing for the order.
3. Each subordinate object can be expanded to reveal more detail.
4. Choose Fields to modify individual columns.
5. The individual order can be displayed or changed by selecting the appropriate menu choice or
icon. The cursor is placed on the order to display or change, then the icon is selected. In this example, we choose Display order.



Adding Default PF STATUS in ALV

Today, we will see how to add standard PF Status (GUI Status) in this Standard ALV created using the class CL_SALV_TABLE. The object created with reference to CL_SALV_TABLE contains the method which can be helpful to add the PF-Status in the ALV.

Here is the code Snippet which provides the ADD-ON code. This ADD-ON code can be replaced with the relevent section from this code snippet in the base program. You can find the base program code snippet in the post Normal ALV Table Display. Adding code to base program is like adding the code correction from the OSS Note.
The new UML diagram of our application is like:


Code Snippet to add Default PF Status
  
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
*
* In this section we will define the private methods which can
* be implemented to set the properties of the ALV and can be
* called in the
*
PRIVATE SECTION.
METHODS:
set_pf_status
CHANGING
co_alv TYPE REF TO cl_salv_table.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
*
*
*$*$*.....CODE_ADD_2 - Begin..................................2..*$*$*
*
* In this area we will call the methods which will set the
* different properties to the ALV
*
CALL METHOD set_pf_status
CHANGING
co_alv = o_alv.
*$*$*.....CODE_ADD_2 - End....................................2..*$*$*
*
*
*$*$*.....CODE_ADD_3 - Begin..................................3..*$*$*
*
* In this area we will implement the methods which are defined in
* the class definition
*
METHOD set_pf_status.
*
DATA: lo_functions TYPE REF TO cl_salv_functions_list.
*
lo_functions = co_alv->get_functions( ).
lo_functions->set_default( abap_true ).
*
ENDMETHOD. "set_pf_status
*$*$*.....CODE_ADD_3 - End....................................3..*$*$*


This will generate the output like:

Adding Default PF STATUS in ALV

Today, we will see how to add standard PF Status (GUI Status) in this Standard ALV created using the class CL_SALV_TABLE. The object created with reference to CL_SALV_TABLE contains the method which can be helpful to add the PF-Status in the ALV.

Here is the code Snippet which provides the ADD-ON code. This ADD-ON code can be replaced with the relevent section from this code snippet in the base program. You can find the base program code snippet in the post Normal ALV Table Display. Adding code to base program is like adding the code correction from the OSS Note.
The new UML diagram of our application is like:


Code Snippet to add Default PF Status
  
*$*$*.....CODE_ADD_1 - Begin..................................1..*$*$*
*
* In this section we will define the private methods which can
* be implemented to set the properties of the ALV and can be
* called in the
*
PRIVATE SECTION.
METHODS:
set_pf_status
CHANGING
co_alv TYPE REF TO cl_salv_table.
*$*$*.....CODE_ADD_1 - End....................................1..*$*$*
*
*
*$*$*.....CODE_ADD_2 - Begin..................................2..*$*$*
*
* In this area we will call the methods which will set the
* different properties to the ALV
*
CALL METHOD set_pf_status
CHANGING
co_alv = o_alv.
*$*$*.....CODE_ADD_2 - End....................................2..*$*$*
*
*
*$*$*.....CODE_ADD_3 - Begin..................................3..*$*$*
*
* In this area we will implement the methods which are defined in
* the class definition
*
METHOD set_pf_status.
*
DATA: lo_functions TYPE REF TO cl_salv_functions_list.
*
lo_functions = co_alv->get_functions( ).
lo_functions->set_default( abap_true ).
*
ENDMETHOD. "set_pf_status
*$*$*.....CODE_ADD_3 - End....................................3..*$*$*


This will generate the output like:

Friday, December 31, 2010

alv report

DATA: IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

W_REPID LIKE SY-REPID,

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

alv_sort type slis_sortinfo_alv occurs 1 with header line,

IT_EVENTS TYPE SLIS_T_EVENT,

user_command type slis_formname.

DATA: W_GT_SORT TYPE SLIS_SORTINFO_ALV OCCURS 1 WITH HEADER LINE .

CONSTANTS: C_TOP_OF_PAGE_DB TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE_DB'.

PERFORM EVENTTAB_BUILD USING IT_EVENTS[].

FORM EVENTTAB_BUILD USING LT_EVENTS TYPE SLIS_T_EVENT.

DATA: WA_EVENT TYPE SLIS_ALV_EVENT.

DATA: C_TOP_OF_PAGE TYPE SLIS_FORMNAME.

C_TOP_OF_PAGE = C_TOP_OF_PAGE_DB.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = LT_EVENTS.

READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO WA_EVENT.

IF SY-SUBRC = 0.

MOVE C_TOP_OF_PAGE TO WA_EVENT-FORM.

APPEND WA_EVENT TO LT_EVENTS.

ELSE.

MOVE C_TOP_OF_PAGE TO WA_EVENT-FORM.

MODIFY LT_EVENTS FROM WA_EVENT INDEX SY-TABIX .

ENDIF.

endform. "EVENTTAB_BUILD

BEFORE DISPALY

W_GT_SORT-FIELDNAME = 'VBELN1'.

W_GT_SORT-UP = 'X'.

APPEND W_GT_SORT.

W_GT_SORT-FIELDNAME = 'REFER'.

W_GT_SORT-UP = 'X'.

APPEND W_GT_SORT.

W_GT_SORT-FIELDNAME = 'KUNNR'.

W_GT_SORT-UP = 'X'.

APPEND W_GT_SORT.

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

read table wa_itab2 index rs_selfield-tabindex into wa_itab3.

CASE R_UCOMM.

WHEN '&IC1'.

SET PARAMETER ID 'VF' FIELD wa_itab3-vbeln1.

call transaction 'VF02' and skip first screen.

ENDCASE.

ENDFORM. "USER_COMMAND.

FORM TOP-OF-PAGE.

DATA : T_HEADER TYPE SLIS_T_LISTHEADER,

WA_HEADER TYPE SLIS_LISTHEADER,

T_LINE LIKE WA_HEADER-INFO,

LD_LINES TYPE I,

LD_LINESC(10) TYPE C.

*TITLE

WA_HEADER-TYP = 'H'.

WA_HEADER-INFO = 'EXPORT REPORT'.

APPEND WA_HEADER TO T_HEADER.

CLEAR WA_HEADER.

*DATE

WA_HEADER-TYP = 'S'.

WA_HEADER-KEY = 'DATE'.

CONCATENATE SY-DATUM+6(2) '.'

SY-DATUM+4(2) '.'

SY-DATUM+4(2) INTO WA_HEADER-INFO.

APPEND WA_HEADER TO T_HEADER .

CLEAR :WA_HEADER.

**TOTAL NO OF RECORDS

DESCRIBE TABLE IT_OBD2 LINES LD_LINES.

LD_LINESC = LD_LINES.

CONCATENATE 'TOTAL NO OF RECORDS SELECTED' LD_LINESC INTO T_LINE separated BY SPACE.

WA_HEADER-TYP = 'A'.

WA_HEADER-INFO = T_LINE.

APPEND WA_HEADER TO T_HEADER.

CLEAR : WA_HEADER, T_LINE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER[]

* I_LOGO =

* I_END_OF_LIST_GRID =

.

ENDFORM.

Monday, December 13, 2010

Standard Table Report

*&---------------------------------------------------------------------*
*& Report ZTR_DEMO_REPORT12 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

*Report : ALV Report Classical / Interactive

REPORT ZTR_DEMO_REPORT12 .

TYPE-POOLS : SLIS.

TABLES : VBAK , VBAP , KNA1 .

DATA : GD_REPID LIKE SY-REPID .

***TYPE Declaration .

TYPES : BEGIN OF ST_VBAK ,

VBELN TYPE VBAK-VBELN,
VBTYP TYPE VBAK-VBTYP,
NETWR TYPE VBAK-NETWR,
VKORG TYPE VBAK-VKORG,
BSTNK TYPE VBAK-BSTNK,
VTWEG TYPE VBAK-VTWEG,
SPART TYPE VBAK-SPART,
VKGRP TYPE VBAK-VKGRP,
VKBUR TYPE VBAK-VKBUR,
GSBER TYPE VBAK-GSBER,
KUNNR TYPE VBAK-KUNNR,

END OF ST_VBAK ,

BEGIN OF ST_VBAP ,

VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ARKTX TYPE VBAP-ARKTX,
KWMENG TYPE VBAP-KWMENG,

END OF ST_VBAP,

BEGIN OF ST_FINAL ,

VBELN TYPE VBAK-VBELN,
VBTYP TYPE VBAK-VBTYP,
NETWR TYPE VBAK-NETWR,
VKORG TYPE VBAK-VKORG,
BSTNK TYPE VBAK-BSTNK,
VTWEG TYPE VBAK-VTWEG,
SPART TYPE VBAK-SPART,
VKGRP TYPE VBAK-VKGRP,
VKBUR TYPE VBAK-VKBUR,
GSBER TYPE VBAK-GSBER,
KUNNR TYPE VBAK-KUNNR,
NAME1 TYPE KNA1-NAME1,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ARKTX TYPE VBAP-ARKTX,
KWMENG TYPE VBAP-KWMENG,

END OF ST_FINAL,

BEGIN OF ST_KNA1 ,

KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,

END OF ST_KNA1.

**** Field Catlog Declaration

DATA: WA_FCAT TYPE SLIS_FIELDCAT_ALV ,
WA_I_FCAT TYPE SLIS_FIELDCAT_ALV ,
W_EVENT TYPE SLIS_ALV_EVENT,
I_EVENT TYPE SLIS_T_EVENT,
IT_FCAT LIKE STANDARD TABLE OF WA_FCAT,
IT_I_FCAT LIKE STANDARD TABLE OF WA_FCAT.

******DATA Declaration .

***Work area declaration .

DATA : WA_VBAK TYPE ST_VBAK,
WA_VBAP TYPE ST_VBAP,
WA_KNA1 TYPE ST_KNA1,
WA_FINAL TYPE ST_FINAL.

***Internal table declaration .

DATA : IT_VBAK LIKE STANDARD TABLE OF WA_VBAK,
IT_VBAP LIKE STANDARD TABLE OF WA_VBAP,
IT_KNA1 LIKE STANDARD TABLE OF WA_KNA1,

IT_FINAL LIKE STANDARD TABLE OF WA_FINAL .

*** Selection-screen design.
SELECTION-SCREEN : BEGIN OF BLOCK B3 WITH FRAME TITLE t3.


SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE T1 .

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN.

SELECTION-SCREEN : END OF BLOCK B1 .

SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE T2 .

PARAMETERS : C_ALV_LT RADIOBUTTON GROUP GRP1,
C_ALV_GD RADIOBUTTON GROUP GRP1,

I_ALV_LT RADIOBUTTON GROUP GRP1,
I_ALV_GD RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN : END OF BLOCK B2 .

SELECTION-SCREEN : END OF BLOCK B3 .

***event : INITILIZATION .

INITIALIZATION.

T1 = 'Selection-screen design' .
T2 = 'ALV Report Interactive / Classical ' .
t3 = 'all datas'.
***Event : AT SELECTION-SCREEN ON FIELD .

AT SELECTION-SCREEN ON S_VBELN .

IF S_VBELN IS INITIAL.
MESSAGE 'Please enter a value' TYPE 'E'.
ENDIF.

***START-OF-SELECTION .

START-OF-SELECTION.

PERFORM GETDATA .

PERFORM FIELD_CATLOG .

IF C_ALV_LT = 'X'.

PERFORM C_ALV_LIST .

ENDIF.

IF C_ALV_GD = 'X'.

PERFORM C_ALV_GRID .

ENDIF.

IF I_ALV_LT = 'X'.

PERFORM I_ALV_LIST .

ENDIF.

IF I_ALV_GD = 'X'.

PERFORM I_ALV_GRID .

ENDIF.

***END-OF-SELECTION .

*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM GETDATA .

SELECT VBELN
VBTYP
NETWR
VKORG
BSTNK
VTWEG
SPART
VKGRP
VKBUR
GSBER
KUNNR

FROM VBAK
INTO TABLE IT_VBAK
WHERE VBELN IN S_VBELN .

IF IT_VBAK[] IS NOT INITIAL.

SELECT KUNNR
NAME1
FROM KNA1
INTO TABLE IT_KNA1
FOR ALL ENTRIES IN IT_VBAK
WHERE KUNNR EQ IT_VBAK-KUNNR.

SELECT VBELN
POSNR
MATNR
ARKTX
KWMENG
FROM VBAP
INTO TABLE IT_VBAP
FOR ALL ENTRIES IN IT_VBAK
WHERE VBELN EQ IT_VBAK-VBELN.

ENDIF.

LOOP AT IT_VBAP INTO WA_VBAP.

MOVE : WA_VBAP-VBELN TO WA_FINAL-VBELN,
WA_VBAP-POSNR TO WA_FINAL-POSNR,
WA_VBAP-MATNR TO WA_FINAL-MATNR,
WA_VBAP-ARKTX TO WA_FINAL-ARKTX,
WA_VBAP-KWMENG TO WA_FINAL-KWMENG.

APPEND WA_FINAL TO IT_FINAL.

ENDLOOP.

LOOP AT IT_FINAL INTO WA_FINAL.

READ TABLE IT_VBAK INTO WA_VBAK WITH KEY VBELN = WA_FINAL-VBELN .

IF SY-SUBRC EQ 0 .

MOVE : WA_VBAK-VBTYP TO WA_FINAL-VBTYP,
WA_VBAK-NETWR TO WA_FINAL-NETWR,
WA_VBAK-VKORG TO WA_FINAL-VKORG,
WA_VBAK-BSTNK TO WA_FINAL-BSTNK,
WA_VBAK-VTWEG TO WA_FINAL-VTWEG,
WA_VBAK-SPART TO WA_FINAL-SPART,
WA_VBAK-VKGRP TO WA_FINAL-VKGRP,
WA_VBAK-VKBUR TO WA_FINAL-VKBUR,
WA_VBAK-GSBER TO WA_FINAL-GSBER,
WA_VBAK-KUNNR TO WA_FINAL-KUNNR.

ENDIF.

READ TABLE IT_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_FINAL-KUNNR .

IF SY-SUBRC EQ 0 .

MOVE : WA_KNA1-NAME1 TO WA_FINAL-NAME1.

ENDIF.

MODIFY IT_FINAL FROM WA_FINAL .

ENDLOOP.

ENDFORM. " GETDATA

*&---------------------------------------------------------------------*
*& Form C_ALV_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM C_ALV_LIST .

PERFORM ALV_LIST.

ENDFORM. " C_ALV_LIST

*&---------------------------------------------------------------------*
*& Form Field_catlog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM FIELD_CATLOG .

WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-COL_POS = '1' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Sales Order'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VBTYP'.
WA_FCAT-COL_POS = '2' .
WA_FCAT-OUTPUTLEN = '1'.
WA_FCAT-SELTEXT_L = 'SD document category'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NETWR'.
WA_FCAT-COL_POS = '3' .
WA_FCAT-OUTPUTLEN = '15'.
WA_FCAT-SELTEXT_L = 'Net Value'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VKORG'.
WA_FCAT-COL_POS = '4' .
WA_FCAT-OUTPUTLEN = '4'.
WA_FCAT-SELTEXT_L = 'Sales Organization'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'BSTNK'.
WA_FCAT-COL_POS = '5' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'purchase order number'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VTWEG'.
WA_FCAT-COL_POS = '6' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Distribution Channel'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'SPART'.
WA_FCAT-COL_POS = '7' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Division'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VKGRP'.
WA_FCAT-COL_POS = '8' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Sales group'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VKBUR'.
WA_FCAT-COL_POS = '9' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Sales office'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'GSBER'.
WA_FCAT-COL_POS = '10' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Business Area'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'KUNNR'.
WA_FCAT-COL_POS = '11' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'SOLD TO PARTY'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NAME1'.
WA_FCAT-COL_POS = '12' .
WA_FCAT-OUTPUTLEN = '20'.
WA_FCAT-SELTEXT_L = 'Customer Number'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'POSNR'.
WA_FCAT-COL_POS = '13' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Item No'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-COL_POS = '14' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Material'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'ARKTX'.
WA_FCAT-COL_POS = '15' .
WA_FCAT-OUTPUTLEN = '50'.
WA_FCAT-SELTEXT_L = 'Material Description'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'KWMENG'.
WA_FCAT-COL_POS = '16' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Sales Order Qty'.
APPEND WA_FCAT TO IT_FCAT.

ENDFORM. " Field_catlog

*&---------------------------------------------------------------------*
*& Form alv_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALV_LIST .

GD_REPID = SY-REPID .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM. " alv_list

*&---------------------------------------------------------------------*
*& Form C_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM C_ALV_GRID .

GD_REPID = SY-REPID .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM. " C_ALV_GRID

*&---------------------------------------------------------------------*
*& Form I_ALV_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM I_ALV_LIST .

FREE : IT_FCAT,
IT_VBAP.

SORT IT_FINAL BY VBELN.
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING VBELN.
PERFORM FIELD_CATLOG_INTERACTIVE .
PERFORM ALV_INTERACTIVE .

ENDFORM. " I_ALV_LIST
*&---------------------------------------------------------------------*
*& Form ALV_Interactive
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALV_INTERACTIVE .

GD_REPID = SY-REPID .

IF I_ALV_GD = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE =
* IS_VARIANT =
IT_EVENTS = I_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

IF I_ALV_LT = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = I_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

ENDFORM. " ALV_Interactive
*&---------------------------------------------------------------------*
*& Form FIELD_CATLOG_interactive
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELD_CATLOG_INTERACTIVE .

WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-COL_POS = '1' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'Sales Order'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VBTYP'.
WA_FCAT-COL_POS = '2' .
WA_FCAT-OUTPUTLEN = '1'.
WA_FCAT-SELTEXT_L = 'SD document category'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NETWR'.
WA_FCAT-COL_POS = '3' .
WA_FCAT-OUTPUTLEN = '15'.
WA_FCAT-SELTEXT_L = 'Net Value'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'VKORG'.
WA_FCAT-COL_POS = '4' .
WA_FCAT-OUTPUTLEN = '4'.
WA_FCAT-SELTEXT_L = 'Sales Organization'.
APPEND WA_FCAT TO IT_FCAT.

W_EVENT-NAME = 'USER_COMMAND'.
W_EVENT-FORM = 'INTERACTIVE_FORM'.
APPEND W_EVENT TO I_EVENT.

ENDFORM. " FIELD_CATLOG_interactive

*&--------------------------------------------------------------------*
*& Form INTERACTIVE_FORM
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->USER_COMMANtext
* -->SEL text
*---------------------------------------------------------------------*
FORM INTERACTIVE_FORM USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.

DATA: CUS(10) TYPE N,
SAL(10).

IF SEL-FIELDNAME = 'VBELN'.

CUS = SEL-VALUE.

SELECT VBELN
POSNR
MATNR
ARKTX
KWMENG
FROM VBAP
INTO TABLE IT_VBAP
WHERE VBELN EQ CUS.

PERFORM IT_I_FCAT.

GD_REPID = SY-REPID.

IF I_ALV_LT = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = IT_I_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBAP
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

IF I_ALV_GD = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_I_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBAP
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

ENDIF.

ENDFORM. "INTERACTIVE_FORM
*&---------------------------------------------------------------------*
*& Form IT_I_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM IT_I_FCAT .

WA_I_FCAT-FIELDNAME = 'POSNR'.
WA_I_FCAT-COL_POS = '1' .
WA_I_FCAT-OUTPUTLEN = '10'.
WA_I_FCAT-SELTEXT_L = 'Item No'.
APPEND WA_I_FCAT TO IT_I_FCAT.

WA_I_FCAT-FIELDNAME = 'MATNR'.
WA_I_FCAT-COL_POS = '2' .
WA_I_FCAT-OUTPUTLEN = '10'.
WA_I_FCAT-SELTEXT_L = 'Material'.
APPEND WA_I_FCAT TO IT_I_FCAT.

WA_I_FCAT-FIELDNAME = 'ARKTX'.
WA_I_FCAT-COL_POS = '3' .
WA_I_FCAT-OUTPUTLEN = '50'.
WA_I_FCAT-SELTEXT_L = 'Material Description'.
APPEND WA_I_FCAT TO IT_I_FCAT.

WA_I_FCAT-FIELDNAME = 'KWMENG'.
WA_I_FCAT-COL_POS = '4' .
WA_I_FCAT-OUTPUTLEN = '10'.
WA_I_FCAT-SELTEXT_L = 'Sales Order Qty'.
APPEND WA_I_FCAT TO IT_I_FCAT.


ENDFORM. " IT_I_FCAT
*&---------------------------------------------------------------------*
*& Form I_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM I_ALV_GRID .

FREE : IT_FCAT,
IT_VBAP.

SORT IT_FINAL BY VBELN.
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING VBELN.
PERFORM FIELD_CATLOG_INTERACTIVE .
PERFORM ALV_INTERACTIVE .

ENDFORM. " I_ALV_GRID

BIG ALv Report

*&---------------------------------------------------------------------*
*& Report ZPRAVEEN10 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ZPRAVEEN10 .

TYPE-POOLS : SLIS.

tables : ZSTUD123 , ZSTUD_DET.
DATA : GD_REPID LIKE SY-REPID .

types : begin of st_stud,
studid type zstud123-studid,
studname type zstud123-studname,
studadd type zstud123-studadd,
studage type zstud123-studage,
end of st_stud.

types : begin of st_detail,
studid type ZSTUD_DET-studid,
course type ZSTUD_DET-course ,
coursfee type ZSTUD_DET-coursfee,
end of st_detail.


types : begin of st_JOIN,
studid type zstud123-studid,
studname type zstud123-studname,
studadd type zstud123-studadd,
studage type zstud123-studage,
course type ZSTUD_DET-course ,
coursfee type ZSTUD_DET-coursfee,
end of st_JOIN.

data : wa_stud type st_stud,
wa_detail type st_detail,
wa_join type st_join.

data : it_stud like standard table of wa_stud,
it_detail like standard table of wa_detail,
it_join like standard table of wa_join.

DATA: WA_FCAT TYPE SLIS_FIELDCAT_ALV ,
WA_I_FCAT TYPE SLIS_FIELDCAT_ALV ,
W_EVENT TYPE SLIS_ALV_EVENT,
I_EVENT TYPE SLIS_T_EVENT,
IT_FCAT LIKE STANDARD TABLE OF WA_FCAT,
IT_I_FCAT LIKE STANDARD TABLE OF WA_FCAT.

SELECTION-SCREEN : BEGIN OF BLOCK B3 WITH FRAME TITLE t3.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE T1 .

SELECT-OPTIONS: S_STUD FOR ZSTUD123-STUDID.

SELECTION-SCREEN : END OF BLOCK B1 .

SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE T2 .

PARAMETERS : C_ALV_LT RADIOBUTTON GROUP GRP1,
C_ALV_GD RADIOBUTTON GROUP GRP1,

I_ALV_LT RADIOBUTTON GROUP GRP1,
I_ALV_GD RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN : END OF BLOCK B2 .

SELECTION-SCREEN : END OF BLOCK B3 .


PERFORM GETDATA.
PERFORM IT_FCAT.

IF C_ALV_LT = 'X'.

PERFORM C_ALV_LIST .

ENDIF.

IF C_ALV_GD = 'X'.

PERFORM C_ALV_GRID .

ENDIF.

IF I_ALV_LT = 'X'.

PERFORM I_ALV_LIST .

ENDIF.

IF I_ALV_GD = 'X'.

PERFORM I_ALV_GRID .

ENDIF.






*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
select * from zstud123 into table it_stud
WHERE STUDID IN S_STUD .


select studid
course
coursfee
from zstud_det into table it_detail
for all entries in it_stud
where studid eq it_stud-studid.

loop at it_detail into wa_detail.
move : wa_detail-studid to wa_join-studid,
wa_detail-course to wa_join-course,
wa_detail-coursfee to wa_join-coursfee.

append wa_join to it_join.
endloop.

loop at it_join into wa_join.

read table it_stud into wa_stud
with key studid = wa_join-studid.

move : wa_stud-studname to wa_join-studname,
wa_stud-studadd to wa_join-studadd,
wa_stud-studage to wa_join-studage.

modify it_join from wa_join.
endloop.

ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form IT_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM IT_FCAT .

WA_FCAT-FIELDNAME = 'STUDID'.
WA_FCAT-COL_POS = '1 ' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'STUDentID'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'STUDNAME'.
WA_FCAT-COL_POS = '5' .
WA_FCAT-OUTPUTLEN = '8'.
WA_FCAT-SELTEXT_L = 'STUDNAME'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'STUDADD'.
WA_FCAT-COL_POS = '3' .
WA_FCAT-OUTPUTLEN = '12'.
WA_FCAT-SELTEXT_L = 'STUDADD'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'STUDAGE'.
WA_FCAT-COL_POS = '4' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'STUDAGE'.
APPEND WA_FCAT TO IT_FCAT.

ENDFORM. " IT_FCAT
*&---------------------------------------------------------------------*
*& Form C_ALV_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM C_ALV_LIST .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


ENDFORM. " C_ALV_LIST
*&---------------------------------------------------------------------*
*& Form C_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM C_ALV_GRID .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


ENDFORM. " C_ALV_GRID
*&---------------------------------------------------------------------*
*& Form I_ALV_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM I_ALV_LIST .

FREE : IT_FCAT,
IT_STUD.

SORT IT_JOIN BY STUDID.
DELETE ADJACENT DUPLICATES FROM IT_JOIN COMPARING STUDID.
PERFORM FIELD_CATLOG_INTERACTIVE .
PERFORM ALV_INTERACTIVE .



ENDFORM. " I_ALV_LIST
*&---------------------------------------------------------------------*
*& Form FIELD_CATLOG_INTERACTIVE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELD_CATLOG_INTERACTIVE .
WA_FCAT-FIELDNAME = 'STUDID'.
WA_FCAT-COL_POS = '1 ' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'STUDentID'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'STUDNAME'.
WA_FCAT-COL_POS = '2' .
WA_FCAT-OUTPUTLEN = '8'.
WA_FCAT-SELTEXT_L = 'STUDNAME'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'STUDADD'.
WA_FCAT-COL_POS = '3' .
WA_FCAT-OUTPUTLEN = '12'.
WA_FCAT-SELTEXT_L = 'STUDADD'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'STUDAGE'.
WA_FCAT-COL_POS = '4' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'STUDAGE'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'COURSE'.
WA_FCAT-COL_POS = '5' .
WA_FCAT-OUTPUTLEN = '12'.
WA_FCAT-SELTEXT_L = 'COURSE'.
APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'COURSFEE'.
WA_FCAT-COL_POS = '6' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'COURSFEE'.
APPEND WA_FCAT TO IT_FCAT.



W_EVENT-NAME = 'USER_COMMAND'.
W_EVENT-FORM = 'INTERACTIVE_FORM'.
APPEND W_EVENT TO I_EVENT.




ENDFORM. " FIELD_CATLOG_INTERACTIVE
*&---------------------------------------------------------------------*
*& Form ALV_INTERACTIVE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALV_INTERACTIVE .

GD_REPID = SY-REPID.
IF I_ALV_LT = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = I_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

IF I_ALV_GD = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = I_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
ENDFORM. " ALV_INTERACTIVE


FORM INTERACTIVE_FORM USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.

DATA: CUS(5) TYPE C,
SAL(10).

IF SEL-FIELDNAME = 'STUDID'.
CUS = SEL-VALUE.

SELECT STUDADD
STUDAGE
FROM ZSTUD INTO CORRESPONDING FIELDS OF TABLE IT_STUD
WHERE STUDID EQ CUS.

PERFORM IT_I_FCAT.

ENDIF.


GD_REPID = SY-REPID.
IF I_ALV_LT = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
IT_FIELDCAT = IT_I_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_STUD
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

IF I_ALV_GD = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_I_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_STUD
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

ENDFORM.


*&---------------------------------------------------------------------*
*& Form IT_I_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM IT_I_FCAT .

FREE : IT_I_FCAT.
CLEAR : WA_FCAT.



WA_FCAT-FIELDNAME = 'STUDADD'.
WA_FCAT-COL_POS = '1' .
WA_FCAT-OUTPUTLEN = '12'.
WA_FCAT-SELTEXT_L = 'STUDADD'.
APPEND WA_FCAT TO IT_I_FCAT.

WA_FCAT-FIELDNAME = 'STUDAGE'.
WA_FCAT-COL_POS = '2' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'STUDAGE'.
APPEND WA_FCAT TO IT_I_FCAT.


ENDFORM. " IT_I_FCAT
*&---------------------------------------------------------------------*
*& Form I_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM I_ALV_GRID .


FREE : IT_FCAT,
IT_STUD.

CLEAR : WA_FCAT.

SORT IT_JOIN BY STUDID.
DELETE ADJACENT DUPLICATES FROM IT_JOIN COMPARING STUDID.
PERFORM FIELD_CATLOG_INTERACTIVE .
PERFORM ALV_INTERACTIVE .


ENDFORM. " I_ALV_GRID

ALV report with Check box

*&---------------------------------------------------------------------*
*& Report ZSUMIT9 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ZSUMIT9 .

TYPE-POOLS : SLIS.

TABLES : ZSTUD123 , ZSTUD_DET.

DATA : GD_REPID LIKE SY-REPID .

TYPES : BEGIN OF ST_STUD,
STUDID TYPE ZSTUD123-STUDID,
STUDNAME TYPE ZSTUD123-STUDNAME,
STUDADD TYPE ZSTUD123-STUDADD,
STUDAGE TYPE ZSTUD123-STUDAGE,
END OF ST_STUD.

TYPES : BEGIN OF ST_DETAIL,
STUDID TYPE ZSTUD_DET-STUDID,
COURSE TYPE ZSTUD_DET-COURSE ,
COURSFEE TYPE ZSTUD_DET-COURSFEE,
END OF ST_DETAIL.


TYPES : BEGIN OF ST_JOIN,
STUDID TYPE ZSTUD123-STUDID,
STUDNAME TYPE ZSTUD123-STUDNAME,
STUDADD TYPE ZSTUD123-STUDADD,
STUDAGE TYPE ZSTUD123-STUDAGE,
COURSE TYPE ZSTUD_DET-COURSE ,
COURSFEE TYPE ZSTUD_DET-COURSFEE,
END OF ST_JOIN.

DATA : WA_STUD TYPE ST_STUD,
WA_DETAIL TYPE ST_DETAIL,
WA_JOIN TYPE ST_JOIN.

DATA : IT_STUD LIKE STANDARD TABLE OF WA_STUD,
IT_DETAIL LIKE STANDARD TABLE OF WA_DETAIL,
IT_JOIN LIKE STANDARD TABLE OF WA_JOIN.

DATA: WA_FCAT TYPE SLIS_FIELDCAT_ALV ,
IT_FCAT LIKE STANDARD TABLE OF WA_FCAT,
W_EVENT TYPE SLIS_ALV_EVENT,
I_EVENT TYPE SLIS_T_EVENT,
WA_I_FCAT TYPE SLIS_FIELDCAT_ALV ,
IT_I_FCAT LIKE STANDARD TABLE OF WA_FCAT.


SELECTION-SCREEN : BEGIN OF BLOCK B3 WITH FRAME TITLE T3.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE T1 .

SELECT-OPTIONS: S_STUD FOR ZSTUD123-STUDID.

SELECTION-SCREEN : END OF BLOCK B1 .

SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE T2 .

PARAMETERS : C_ALV_LT RADIOBUTTON GROUP GRP1,
C_ALV_GD RADIOBUTTON GROUP GRP1,

I_ALV_LT RADIOBUTTON GROUP GRP1,
I_ALV_GD RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN : END OF BLOCK B2 .

SELECTION-SCREEN : END OF BLOCK B3 .


PERFORM GETDATA.
PERFORM IT_FCAT.

IF C_ALV_LT = 'X'.

PERFORM C_ALV_LIST .

ENDIF.

IF C_ALV_GD = 'X'.

PERFORM C_ALV_GRID .

ENDIF.

IF I_ALV_LT = 'X'.

PERFORM I_ALV_LIST .

ENDIF.

IF I_ALV_GD = 'X'.

PERFORM I_ALV_GRID .

ENDIF.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM GETDATA . SELECT * FROM ZSTUD123 INTO TABLE IT_STUD WHERE STUDID IN S_STUD . SELECT STUDID COURSE COURSFEE FROM ZSTUD_DET INTO TABLE IT_DETAIL FOR ALL ENTRIES IN IT_STUD WHERE STUDID EQ IT_STUD-STUDID. LOOP AT IT_DETAIL INTO WA_DETAIL. MOVE : WA_DETAIL-STUDID TO WA_JOIN-STUDID, WA_DETAIL-COURSE TO WA_JOIN-COURSE, WA_DETAIL-COURSFEE TO WA_JOIN-COURSFEE. APPEND WA_JOIN TO IT_JOIN. ENDLOOP. LOOP AT IT_JOIN INTO WA_JOIN. READ TABLE IT_STUD INTO WA_STUD WITH KEY STUDID = WA_JOIN-STUDID. MOVE : WA_STUD-STUDNAME TO WA_JOIN-STUDNAME, WA_STUD-STUDADD TO WA_JOIN-STUDADD, WA_STUD-STUDAGE TO WA_JOIN-STUDAGE. MODIFY IT_JOIN FROM WA_JOIN. ENDLOOP. ENDFORM. " GETDATA *&---------------------------------------------------------------------* *& Form IT_FCAT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM IT_FCAT . WA_FCAT-FIELDNAME = 'STUDID'. WA_FCAT-COL_POS = '1 ' . WA_FCAT-OUTPUTLEN = '10'. WA_FCAT-SELTEXT_L = 'STUDentID'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'STUDNAME'. WA_FCAT-COL_POS = '5' . WA_FCAT-OUTPUTLEN = '8'. WA_FCAT-SELTEXT_L = 'STUDNAME'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'STUDADD'. WA_FCAT-COL_POS = '3' . WA_FCAT-OUTPUTLEN = '12'. WA_FCAT-SELTEXT_L = 'STUDADD'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'STUDAGE'. WA_FCAT-COL_POS = '4' . WA_FCAT-OUTPUTLEN = '10'. WA_FCAT-SELTEXT_L = 'STUDAGE'. APPEND WA_FCAT TO IT_FCAT. ENDFORM. " IT_FCAT *&---------------------------------------------------------------------* *& Form C_ALV_LIST *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM C_ALV_LIST . CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' * I_CALLBACK_PROGRAM = ' ' * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_STRUCTURE_NAME = * IS_LAYOUT = IT_FIELDCAT = IT_FCAT * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_VARIANT = * IT_EVENTS = * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES T_OUTTAB = IT_STUD * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2 . IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


ENDFORM. " C_ALV_LIST
*&---------------------------------------------------------------------*
*& Form C_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM C_ALV_GRID . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = ' ' * I_BUFFER_ACTIVE = ' ' * I_CALLBACK_PROGRAM = ' ' * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_CALLBACK_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_END_OF_LIST = ' ' * I_STRUCTURE_NAME = * I_BACKGROUND_ID = ' ' * I_GRID_TITLE = * I_GRID_SETTINGS = * IS_LAYOUT = IT_FIELDCAT = IT_FCAT * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_VARIANT = * IT_EVENTS = * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IT_ALV_GRAPHICS = * IT_HYPERLINK = * IT_ADD_FIELDCAT = * IT_EXCEPT_QINFO = * I_HTML_HEIGHT_TOP = * I_HTML_HEIGHT_END = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES T_OUTTAB = IT_STUD * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2 . IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


ENDFORM. " C_ALV_GRID
*&---------------------------------------------------------------------*
*& Form I_ALV_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM I_ALV_LIST . FREE : IT_FCAT, IT_STUD. SORT IT_JOIN BY STUDID. DELETE ADJACENT DUPLICATES FROM IT_JOIN COMPARING STUDID. PERFORM FIELD_CATLOG_INTERACTIVE . PERFORM ALV_INTERACTIVE . ENDFORM. " I_ALV_LIST *&---------------------------------------------------------------------* *& Form FIELD_CATLOG_INTERACTIVE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM FIELD_CATLOG_INTERACTIVE . WA_FCAT-FIELDNAME = 'STUDID'. WA_FCAT-COL_POS = '1 ' . WA_FCAT-OUTPUTLEN = '10'. WA_FCAT-SELTEXT_L = 'STUDentID'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'STUDNAME'. WA_FCAT-COL_POS = '2' . WA_FCAT-OUTPUTLEN = '8'. WA_FCAT-SELTEXT_L = 'STUDNAME'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'STUDADD'. WA_FCAT-COL_POS = '3' . WA_FCAT-OUTPUTLEN = '12'. WA_FCAT-SELTEXT_L = 'STUDADD'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'STUDAGE'. WA_FCAT-COL_POS = '4' . WA_FCAT-OUTPUTLEN = '10'. WA_FCAT-SELTEXT_L = 'STUDAGE'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'COURSE'. WA_FCAT-COL_POS = '5' . WA_FCAT-OUTPUTLEN = '12'. WA_FCAT-SELTEXT_L = 'COURSE'. APPEND WA_FCAT TO IT_FCAT. WA_FCAT-FIELDNAME = 'COURSFEE'. WA_FCAT-COL_POS = '6' . WA_FCAT-OUTPUTLEN = '10'. WA_FCAT-SELTEXT_L = 'COURSFEE'. APPEND WA_FCAT TO IT_FCAT. W_EVENT-NAME = 'USER_COMMAND'. W_EVENT-FORM = 'INTERACTIVE_FORM'. APPEND W_EVENT TO I_EVENT. ENDFORM. " FIELD_CATLOG_INTERACTIVE *&---------------------------------------------------------------------* *& Form ALV_INTERACTIVE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM ALV_INTERACTIVE . GD_REPID = SY-REPID. IF I_ALV_LT = 'X'. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' I_CALLBACK_PROGRAM = GD_REPID * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_STRUCTURE_NAME = * IS_LAYOUT = IT_FIELDCAT = IT_FCAT * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_VARIANT = IT_EVENTS = I_EVENT * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES T_OUTTAB = IT_JOIN * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2 . IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
GD_REPID = SY-REPID.
IF I_ALV_GD = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = I_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
ENDFORM. " ALV_INTERACTIVE

*&--------------------------------------------------------------------*
*& Form INTERACTIVE_FORM
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->USER_COMMANtext
* -->SEL text
*---------------------------------------------------------------------*
FORM INTERACTIVE_FORM USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.

DATA: CUS(5) TYPE C,
SAL(10).

IF SEL-FIELDNAME = 'STUDID'.
CUS = SEL-VALUE.

SELECT STUDADD
STUDAGE
FROM ZSTUD INTO CORRESPONDING FIELDS OF TABLE IT_STUD
WHERE STUDID EQ CUS.

PERFORM IT_I_FCAT.

ENDIF.




*&---------------------------------------------------------------------*
*& Form I_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* GD_REPID = SY-REPID. IF I_ALV_LT = 'X'. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' I_CALLBACK_PROGRAM = GD_REPID * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_STRUCTURE_NAME = * IS_LAYOUT = IT_FIELDCAT = IT_I_FCAT * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_VARIANT = * IT_EVENTS = I_EVENT * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES T_OUTTAB = IT_JOIN * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2 . IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.
GD_REPID = SY-REPID.
IF I_ALV_GD = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_I_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS = I_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDIF.

ENDFORM. "INTERACTIVE_FORM

*&---------------------------------------------------------------------*
*& Form IT_I_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM IT_I_FCAT .

WA_FCAT-FIELDNAME = 'STUDADD'.
WA_FCAT-COL_POS = '1' .
WA_FCAT-OUTPUTLEN = '12'.
WA_FCAT-SELTEXT_L = 'STUDADD'.
APPEND WA_FCAT TO IT_I_FCAT.

WA_FCAT-FIELDNAME = 'STUDAGE'.
WA_FCAT-COL_POS = '2' .
WA_FCAT-OUTPUTLEN = '10'.
WA_FCAT-SELTEXT_L = 'STUDAGE'.
APPEND WA_FCAT TO IT_I_FCAT.


ENDFORM. " IT_I_FCAT


*&--------------------------------------------------------------------*
*& Form I_ALV_GRID
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM I_ALV_GRID .


FREE : IT_FCAT,
IT_STUD.



SORT IT_JOIN BY STUDID.
DELETE ADJACENT DUPLICATES FROM IT_JOIN COMPARING STUDID.
PERFORM FIELD_CATLOG_INTERACTIVE .
PERFORM ALV_INTERACTIVE .


ENDFORM. " I_ALV_GRID

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)