INTERACTIVE REPORT USING SY-LISEL VARIABLE :
SY-LISEL- stands for line select. This is a system variable and stores the line selected by the user in a report.
In the below program we use sy-lisel to create an interactive report.
Scenario- Display company code, company name and city in the basic list. If the user double click on any one of the record then display company code, vendor and reconcilation account in the next list. If the user double click on any one of the record then display vendor no, vendor name and city in the next list.
IF YOU DOUBLE CLICK ON ANY ONE OF THE RECORD THEN THE NEXT LIST IS AS FOLLOWS.
IF YOU DOUBLE CLIKC ON ANY ONE OF THE RECORD THEN THE NEXT LIST IS AS FOLLOWS.
SY-LISEL- stands for line select. This is a system variable and stores the line selected by the user in a report.
In the below program we use sy-lisel to create an interactive report.
Scenario- Display company code, company name and city in the basic list. If the user double click on any one of the record then display company code, vendor and reconcilation account in the next list. If the user double click on any one of the record then display vendor no, vendor name and city in the next list.
*&---------------------------------------------------------------------*
*& Report ZR_INTA_REPORT_SY_LISEL_TECH
*&
*&---------------------------------------------------------------------*
REPORT ZR_INTA_REPORT_SY_LISEL_TECH.
DATA V1 TYPE T001-BUKRS.
SELECT-OPTIONS S_BUKRS FOR V1.
TYPES: BEGIN OF TY_T001,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
ORT01 TYPE T001-ORT01,
END OF TY_T001.
DATA : WA_T001 TYPE TY_T001,
IT_T001 TYPE TABLE OF TY_T001.
TYPES: BEGIN OF TY_LFB1,
BUKRS TYPE LFB1-BUKRS,
LIFNR TYPE LFB1-LIFNR,
AKONT TYPE LFB1-AKONT,
END OF TY_LFB1.
DATA : WA_LFB1 TYPE TY_LFB1,
IT_LFB1 TYPE TABLE OF TY_LFB1.
TYPES: BEGIN OF TY_LFA1,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
ORT01 TYPE LFA1-ORT01,
END OF TY_LFA1.
DATA : WA_LFA1 TYPE TY_LFA1,
IT_LFA1 TYPE TABLE OF TY_LFA1.
DATA V TYPE T001-BUKRS.
AT SELECTION-SCREEN.
SELECT SINGLE BUKRS
FROM T001
INTO V WHERE
BUKRS IN S_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE E000(ZMESSAGE1) WITH 'INVALID NUMBER'.
ENDIF.
START-OF-SELECTION.
SELECT BUKRS BUTXT ORT01
FROM T001
INTO TABLE IT_T001
WHERE BUKRS IN S_BUKRS.
LOOP AT IT_T001 INTO WA_T001.
WRITE:/ WA_T001-BUKRS, WA_T001-BUTXT, WA_T001-ORT01.
ENDLOOP.
AT LINE-SELECTION.
IF SY-LSIND = '1'.
SELECT BUKRS LIFNR AKONT
FROM LFB1
INTO TABLE IT_LFB1
WHERE BUKRS = SY-LISEL+0(4).
LOOP AT IT_LFB1 INTO WA_LFB1.
WRITE:/ WA_LFB1-BUKRS, WA_LFB1-LIFNR, WA_LFB1-AKONT.
ENDLOOP.
ELSEIF SY-LSIND = '2'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = SY-LISEL+5(10)
IMPORTING
OUTPUT = SY-LISEL+5(10).
SELECT LIFNR NAME1 ORT01
FROM LFA1
INTO TABLE IT_LFA1
WHERE LIFNR = SY-LISEL+5(10).
LOOP AT IT_LFA1 INTO WA_LFA1.
WRITE:/ WA_LFA1-LIFNR, WA_LFA1-NAME1, WA_LFA1-ORT01.
ENDLOOP.
ENDIF.
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND = '1'.
WRITE: 'THESE ARE VENDORS UNDER COMPANY:', SY-LISEL+0(4).
ELSEIF SY-LSIND = '2'.
WRITE: 'THESE ARE VENDOR DETAILS OF :', SY-LISEL+5(10).
ENDIF.
*& Report ZR_INTA_REPORT_SY_LISEL_TECH
*&
*&---------------------------------------------------------------------*
REPORT ZR_INTA_REPORT_SY_LISEL_TECH.
DATA V1 TYPE T001-BUKRS.
SELECT-OPTIONS S_BUKRS FOR V1.
TYPES: BEGIN OF TY_T001,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
ORT01 TYPE T001-ORT01,
END OF TY_T001.
DATA : WA_T001 TYPE TY_T001,
IT_T001 TYPE TABLE OF TY_T001.
TYPES: BEGIN OF TY_LFB1,
BUKRS TYPE LFB1-BUKRS,
LIFNR TYPE LFB1-LIFNR,
AKONT TYPE LFB1-AKONT,
END OF TY_LFB1.
DATA : WA_LFB1 TYPE TY_LFB1,
IT_LFB1 TYPE TABLE OF TY_LFB1.
TYPES: BEGIN OF TY_LFA1,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
ORT01 TYPE LFA1-ORT01,
END OF TY_LFA1.
DATA : WA_LFA1 TYPE TY_LFA1,
IT_LFA1 TYPE TABLE OF TY_LFA1.
DATA V TYPE T001-BUKRS.
AT SELECTION-SCREEN.
SELECT SINGLE BUKRS
FROM T001
INTO V WHERE
BUKRS IN S_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE E000(ZMESSAGE1) WITH 'INVALID NUMBER'.
ENDIF.
START-OF-SELECTION.
SELECT BUKRS BUTXT ORT01
FROM T001
INTO TABLE IT_T001
WHERE BUKRS IN S_BUKRS.
LOOP AT IT_T001 INTO WA_T001.
WRITE:/ WA_T001-BUKRS, WA_T001-BUTXT, WA_T001-ORT01.
ENDLOOP.
AT LINE-SELECTION.
IF SY-LSIND = '1'.
SELECT BUKRS LIFNR AKONT
FROM LFB1
INTO TABLE IT_LFB1
WHERE BUKRS = SY-LISEL+0(4).
LOOP AT IT_LFB1 INTO WA_LFB1.
WRITE:/ WA_LFB1-BUKRS, WA_LFB1-LIFNR, WA_LFB1-AKONT.
ENDLOOP.
ELSEIF SY-LSIND = '2'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = SY-LISEL+5(10)
IMPORTING
OUTPUT = SY-LISEL+5(10).
SELECT LIFNR NAME1 ORT01
FROM LFA1
INTO TABLE IT_LFA1
WHERE LIFNR = SY-LISEL+5(10).
LOOP AT IT_LFA1 INTO WA_LFA1.
WRITE:/ WA_LFA1-LIFNR, WA_LFA1-NAME1, WA_LFA1-ORT01.
ENDLOOP.
ENDIF.
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND = '1'.
WRITE: 'THESE ARE VENDORS UNDER COMPANY:', SY-LISEL+0(4).
ELSEIF SY-LSIND = '2'.
WRITE: 'THESE ARE VENDOR DETAILS OF :', SY-LISEL+5(10).
ENDIF.
OUTPUT:
BASIC LIST
IF YOU DOUBLE CLICK ON ANY ONE OF THE RECORD THEN THE NEXT LIST IS AS FOLLOWS.
IF YOU DOUBLE CLIKC ON ANY ONE OF THE RECORD THEN THE NEXT LIST IS AS FOLLOWS.