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

ALV Interactive

Former Member
0 Likes
846

hi any body can u tell me the example to handle the interactive alv grid and wt parameters i should pass it to fm

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
803

http://www.sap-img.com/abap/an-interactive-alv-report.htm

An Interactive ALV Report

&----


*& Report ZZ_22038_22098_002 *

*& *

&----


*& This is an Interactive ALV report, where on line slection we can see

*& the secondry list

*&

*& *

&----


REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650

MESSAGE-ID ZZ_9838 .

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • 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. "display_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = '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_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

hope that

helps

santhosh

Message was edited by:

Kaluvala Santhosh

6 REPLIES 6
Read only

Former Member
0 Likes
804

http://www.sap-img.com/abap/an-interactive-alv-report.htm

An Interactive ALV Report

&----


*& Report ZZ_22038_22098_002 *

*& *

&----


*& This is an Interactive ALV report, where on line slection we can see

*& the secondry list

*&

*& *

&----


REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650

MESSAGE-ID ZZ_9838 .

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • 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. "display_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = '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_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

hope that

helps

santhosh

Message was edited by:

Kaluvala Santhosh

Read only

Former Member
Read only

Former Member
0 Likes
803

Hi,

Check the following example


REPORT  ZKINTEST_ALV                                                .
tables : COER.
type-pools:slis.
data :   it_fieldcat type slis_t_fieldcat_alv,
          it_fieldcat1 type slis_t_fieldcat_alv.
data: begin of itab2 occurs 0,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of itab2.

select  vbeln posnr  up to 1000 rows
  from vbap
  into table itab2.

data: x_fieldcat type
slis_fieldcat_alv.
x_fieldcat-fieldname = 'VBELN'.x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos  = 1.append x_fieldcat to it_fieldcat.
clear x_fieldcat.
x_fieldcat-fieldname = 'POSNR'.x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos  = 2.append x_fieldcat to it_fieldcat.
clear x_fieldcat.

perform alv_grid_display.

form alv_grid_display .

call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program       = sy-repid
*i_callback_pf_status_set = 'POPUP'
i_callback_user_command  = 'HANDLE_USER_COMMAND'
I_GRID_TITLE             = 'TOP'
*IT_EVENTS                         = i_eve
*I_GRID_SETTINGS          =
i_callback_top_of_page = 'TOP-OF-PAGE'
it_fieldcat              = it_fieldcat
TABLES
t_outtab                 = itab2
EXCEPTIONS
program_error            = 1
others                   = 2.
if
sy-subrc  = 0.
endif.
endform.                    " alv_grid_display

form handle_user_command using r_ucomm     like sy-ucomm
                   rs_selfield type slis_selfield.
case r_ucomm.
when 'BACK' or 'CANC' or 'EXIT'.
  leave to screen 0.
when '&IC1'.
  set parameter id 'AUN' field rs_selfield-value.
  call transaction 'VA03' and skip first screen.
when 'BUTTON'.
  loop at it_fieldcat into x_fieldcat.
    if x_fieldcat-fieldname = 'POSNR'.
      x_fieldcat-no_out = 'X'.
      modify it_fieldcat from x_fieldcat transporting no_out.
    endif.
  endloop.
  rs_selfield-exit = 'X'.
  perform alv_grid_display.
endcase.
endform.

"HANDLE_USER_COMMAND

FORM TOP-OF-PAGE.

*ALV Header declarations
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+10(15) = '                SY-REPID'.
*wa_header-info+21(10) = text-001.
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) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.

endform.

Hope this helps.

Regards,

Kinshuk

Read only

Former Member
0 Likes
803

please try this,

this works for me,

REPORT ZABCD MESSAGE-ID I001.

TYPE-POOLS: SLIS.

TABLES: PLAF, AFPO, AFKO, MSEG, SER05, OBJK, MAKT, MARA,T001W,viqmel .

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

DATA: BEGIN OF MAIN1 OCCURS 3,

WERKS TYPE CRHD-WERKS,

ARBPL TYPE CRHD-ARBPL,

KTEXT TYPE TC24-KTEXT,

END OF MAIN1.

DATA: BEGIN OF T_TC24 OCCURS 3,

WERKS LIKE TC24-WERKS,

KTEXT LIKE TC24-KTEXT,

END OF T_TC24.

DATA: BEGIN OF T_CRHD OCCURS 3,

WERKS LIKE CRHD-WERKS,

ARBPL LIKE CRHD-ARBPL,

END OF T_CRHD.

DATA: BEGIN OF T_MAIN OCCURS 3,

MATNR TYPE EINA-MATNR,

MAKTX TYPE MAKT-MAKTX,

WERKS TYPE EINE-WERKS,

LIFNR TYPE EINA-LIFNR,

EKORG TYPE EINE-EKORG,

TXZ01 TYPE EINA-TXZ01,

INFNR TYPE EINA-INFNR,

MATKL TYPE EINA-MATKL,

ESOKZ TYPE EINE-ESOKZ,

EKGRP TYPE EINE-EKGRP,

EKNAM TYPE T024-EKNAM,

NAME1 TYPE LFA1-NAME1,

WGBEZ TYPE T023T-WGBEZ,

END OF T_MAIN.

DATA: BEGIN OF T_MARA OCCURS 3,

MATKL TYPE MARA-MATKL,

MATNR TYPE MARA-MATNR,

END OF T_MARA.

DATA: BEGIN OF T_T023T OCCURS 3,

MATKL TYPE V023-MATKL,

WGBEZ TYPE V023-WGBEZ,

END OF T_T023T.

DATA: BEGIN OF T_EINA OCCURS 3,

MATNR TYPE EINA-MATNR,

LIFNR TYPE EINA-LIFNR,

INFNR TYPE EINA-INFNR,

TXZ01 TYPE EINA-TXZ01,

MATKL TYPE EINA-MATKL,

END OF T_EINA.

DATA: BEGIN OF T_EINE OCCURS 3,

WERKS TYPE EINE-WERKS,

EKORG TYPE EINE-EKORG,

INFNR TYPE EINA-INFNR,

EKGRP TYPE EINE-EKGRP,

END OF T_EINE.

DATA: BEGIN OF T_T024 OCCURS 3,

EKGRP TYPE EINE-EKGRP,

EKNAM TYPE V_024-EKNAM,

END OF T_T024.

DATA: BEGIN OF T_MAKT OCCURS 0,

MATNR TYPE EINA-MATNR,

MAKTX TYPE MAKT-MAKTX,

END OF T_MAKT.

DATA: BEGIN OF T_LFA1 OCCURS 3,

LIFNR TYPE LFA1-LIFNR,

NAME1 TYPE LFA1-NAME1,

END OF T_LFA1.

DATA: W_MATNR LIKE MARA-MATNR,

W_WERKS TYPE EINE-WERKS,

W_LIFNR TYPE EINA-LIFNR,

W_EKORG TYPE EINE-EKORG,

W_INFNR TYPE EINA-INFNR,

W_MATKL TYPE EINA-MATKL,

W_ESOKZ TYPE EINE-ESOKZ,

W_EKGRP TYPE EINE-EKGRP.

WRITE: SY-DATUM TO SY-TVAR1,

SY-UZEIT TO SY-TVAR2.

DATA: V_REPID LIKE SY-REPID,

wa_main LIKE t_main.

DATA: T_LOUT TYPE SLIS_LAYOUT_ALV,

T_FCAT TYPE SLIS_T_FIELDCAT_ALV,

W_FCAT TYPE SLIS_FIELDCAT_ALV.

DATA: T_LOUT1 TYPE SLIS_LAYOUT_ALV,

T_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,

W_FCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA: HEADER TYPE C VALUE 'H'.

DATA: WT_HEADER TYPE SLIS_T_LISTHEADER,

WA_HEADER TYPE SLIS_LISTHEADER.

INITIALIZATION.

SELECTION-SCREEN : BEGIN OF BLOCK A WITH FRAME TITLE TEXT-010.

SELECT-OPTIONS S_MATNR FOR W_MATNR.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS S_WERKS FOR W_WERKS.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS S_LIFNR FOR W_LIFNR.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS S_EKORG FOR W_EKORG.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS S_INFNR FOR W_INFNR.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS S_MATKL FOR W_MATKL.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS S_EKGRP FOR W_EKGRP.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN: END OF BLOCK A.

*performs

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

  • PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM DISPLAY_ALV_REPORT.

FORM BUILD_FIELDCATLOG.

W_FCAT-FIELDNAME = 'MATNR'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 1.

W_FCAT-REPTEXT_DDIC = 'MATERIAL NUMBER'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'MAKTX'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 2.

W_FCAT-REPTEXT_DDIC = 'MATERIAL DESCRIPTION'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'WERKS'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 3.

W_FCAT-REPTEXT_DDIC = 'PLANT'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'LIFNR'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 4.

W_FCAT-REPTEXT_DDIC = 'VENDOR CODE'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'NAME1'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 5.

W_FCAT-REPTEXT_DDIC = 'VENDOR NAME'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'EKORG'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 6.

W_FCAT-REPTEXT_DDIC = 'PURCHASE ORG'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'TXZ01'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 7.

W_FCAT-REPTEXT_DDIC = 'INFO REC SHORT TEXT'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'INFNR'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 8.

W_FCAT-REPTEXT_DDIC = 'INFO REC NO'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'WGBEZ'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 9.

W_FCAT-REPTEXT_DDIC = 'MATERIAL GROUP'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-FIELDNAME = 'EKNAM'.

W_FCAT-REF_TABNAME = 'T_MAIN'.

W_FCAT-COL_POS = 10.

W_FCAT-REPTEXT_DDIC = 'PURCHASING GROUP'.

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

T_LOUT-COLWIDTH_OPTIMIZE = 'X'.

ENDFORM.

FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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. "EVENT_CALL

*

*FORM POPULATE_EVENT.

  • READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

  • IF SY-SUBRC EQ 0.

  • WA_EVENT-FORM = 'USER_COMMAND'.

  • MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

*WA_EVENT-NAME.

  • ENDIF.

*ENDFORM.

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

CLEAR MAIN1[].

CLEAR T_FCAT1[].

READ TABLE t_main INTO WA_MAIN INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_second.

PERFORM DATA_RETRIEVAL_second.

PERFORM DISPLAY_ALV_second.

ENDCASE.

ENDFORM. "user_command

FORM DATA_RETRIEVAL.

SELECT

MATNR

LIFNR

INFNR

TXZ01

FROM EINA INTO TABLE T_EINA WHERE

MATNR IN S_MATNR

AND LIFNR IN S_LIFNR

AND INFNR IN S_INFNR.

IF SY-SUBRC <> 0.

MESSAGE I001 WITH 'NO RECORDS FOUND'.

EXIT.

ENDIF.

SELECT

MATNR

MAKTX

FROM MAKT INTO CORRESPONDING FIELDS OF TABLE T_MAKT

FOR ALL ENTRIES IN T_EINA

WHERE MATNR = T_EINA-MATNR.

IF SY-SUBRC <> 0.

MESSAGE I001 WITH 'NO RECORDS FOUND'.

EXIT.

ENDIF.

SELECT

WERKS

EKORG

EKGRP

INFNR

FROM EINE INTO CORRESPONDING FIELDS OF TABLE T_EINE

FOR ALL ENTRIES IN T_EINA

WHERE

INFNR = T_EINA-INFNR

AND WERKS IN S_WERKS

AND EKORG IN S_EKORG

AND EKGRP IN S_EKGRP.

IF SY-SUBRC <> 0.

MESSAGE I001 WITH 'NO RECORDS FOUND'.

EXIT.

ENDIF.

SELECT

MATNR

MATKL

FROM MARA INTO CORRESPONDING FIELDS OF TABLE T_MARA

FOR ALL ENTRIES IN T_EINA

WHERE

MATNR = T_EINA-MATNR

AND MATKL IN S_MATKL.

IF SY-SUBRC <> 0.

MESSAGE I001 WITH 'NO RECORDS FOUND'.

EXIT.

ENDIF.

SELECT

WGBEZ

MATKL

FROM T023T INTO CORRESPONDING FIELDS OF TABLE T_T023T

FOR ALL ENTRIES IN T_MARA

WHERE

MATKL = T_MARA-MATKL.

IF SY-SUBRC <> 0.

MESSAGE I001 WITH 'NO RECORDS FOUND'.

EXIT.

ENDIF.

SELECT

EKGRP

EKNAM

FROM T024 INTO CORRESPONDING FIELDS OF TABLE T_T024

FOR ALL ENTRIES IN T_EINE

WHERE

EKGRP = T_EINE-EKGRP.

IF SY-SUBRC <> 0.

MESSAGE I001 WITH 'NO RECORDS FOUND'.

EXIT.

ENDIF.

SELECT

LIFNR

NAME1

FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE T_LFA1

FOR ALL ENTRIES IN T_EINA

WHERE

LIFNR = T_EINA-LIFNR.

LOOP AT T_EINE.

READ TABLE T_EINA WITH KEY INFNR = T_EINE-INFNR.

IF SY-SUBRC = 0.

T_MAIN-MATNR = T_EINA-MATNR.

T_MAIN-WERKS = T_EINE-WERKS.

T_MAIN-LIFNR = T_EINA-LIFNR.

T_MAIN-EKORG = T_EINE-EKORG.

T_MAIN-INFNR = T_EINA-INFNR.

T_MAIN-EKGRP = T_EINE-EKGRP.

T_MAIN-TXZ01 = T_EINA-TXZ01.

APPEND T_MAIN.

ENDIF.

ENDLOOP.

LOOP AT T_MAIN.

READ TABLE T_MARA WITH KEY MATNR = T_MAIN-MATNR.

IF SY-SUBRC = 0.

T_MAIN-MATKL = T_MARA-MATKL.

MODIFY T_MAIN.

ENDIF.

ENDLOOP.

LOOP AT T_MAIN.

READ TABLE T_T023T WITH KEY MATKL = T_MAIN-MATKL.

IF SY-SUBRC = 0.

T_MAIN-WGBEZ = T_T023T-WGBEZ.

MODIFY T_MAIN.

ENDIF.

ENDLOOP.

LOOP AT T_MAIN.

READ TABLE T_T024 WITH KEY EKGRP = T_MAIN-EKGRP.

IF SY-SUBRC = 0.

T_MAIN-EKNAM = T_T024-EKNAM.

MODIFY T_MAIN.

ENDIF.

ENDLOOP.

LOOP AT T_MAIN.

READ TABLE T_MAKT WITH KEY MATNR = T_MAIN-MATNR.

IF SY-SUBRC = 0.

T_MAIN-MAKTX = T_MAKT-MAKTX.

MODIFY T_MAIN.

ENDIF.

ENDLOOP.

LOOP AT T_MAIN.

READ TABLE T_LFA1 WITH KEY LIFNR = T_MAIN-LIFNR.

IF SY-SUBRC = 0.

T_MAIN-NAME1 = T_LFA1-NAME1.

MODIFY T_MAIN.

ENDIF.

ENDLOOP.

ENDFORM. "data_retrieval

FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

*I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = T_FCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = t_main

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

ENDIF.

ENDFORM.

FORM TOP_OF_PAGE.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = 'NUMERIC POWER SYSTEMS LTD'.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = 'MEAN TIME BETWEEN BREAKDOWN'.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = SY-TVAR1.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = SY-TVAR2.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = WT_HEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

clear wt_header.

ENDFORM.

*second report

FORM BUILD_FIELDCATLOG_second.

W_FCAT1-FIELDNAME = 'WERKS'.

W_FCAT1-REF_TABNAME = 'MAIN'.

W_FCAT1-COL_POS = 1.

W_FCAT1-REPTEXT_DDIC = 'PLANT NAME'.

APPEND W_FCAT1 TO T_FCAT1.

CLEAR W_FCAT1.

W_FCAT1-FIELDNAME = 'ARBPL'.

W_FCAT1-REF_TABNAME = 'MAIN'.

W_FCAT1-COL_POS = 2.

W_FCAT1-REPTEXT_DDIC = 'WORK CENTER'.

APPEND W_FCAT1 TO T_FCAT1.

CLEAR W_FCAT1.

W_FCAT1-FIELDNAME = 'KTEXT'.

W_FCAT1-REF_TABNAME = 'MAIN'.

W_FCAT1-COL_POS = 3.

W_FCAT1-REPTEXT_DDIC = 'PERSON RESP'.

APPEND W_FCAT1 TO T_FCAT1.

CLEAR W_FCAT1.

ENDFORM.

FORM DATA_RETRIEVAL_second.

SELECT

WERKS

ARBPL

FROM CRHD

INTO CORRESPONDING FIELDS OF TABLE T_CRHD

WHERE WERKS = WA_MAIN-WERKS.

SELECT

WERKS

KTEXT

FROM TC24

INTO CORRESPONDING FIELDS OF TABLE T_TC24

FOR ALL ENTRIES IN T_CRHD

WHERE WERKS = T_CRHD-WERKS.

LOOP AT T_CRHD.

MAIN1-WERKS = T_CRHD-WERKS.

MAIN1-ARBPL = T_CRHD-ARBPL.

APPEND MAIN1.

ENDLOOP.

LOOP AT MAIN1.

READ TABLE T_TC24 WITH KEY WERKS = MAIN1-WERKS.

IF SY-SUBRC = 0.

MAIN1-KTEXT = T_TC24-KTEXT.

MODIFY MAIN1.

ENDIF.

ENDLOOP.

ENDFORM.

FORM DISPLAY_ALV_second.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE1'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

*I_GRID_TITLE = I_TITLE_second

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = T_FCAT1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

*IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = MAIN1

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.

FORM TOP_OF_PAGE1.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = 'NUMERIC POWER SYSTEMS LTD'.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = 'MEAN TIME BETWEEN BREAKDOWN'.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = SY-TVAR1.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

WA_HEADER-TYP = HEADER.

WA_HEADER-INFO = SY-TVAR2.

APPEND WA_HEADER TO WT_HEADER.

CLEAR WA_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = WT_HEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

clear wt_header.

ENDFORM.

regards,

Venkatesh

Read only

Former Member
0 Likes
803

Hi guidse,

1. In alv we cannot use AT LINE Selection

2. For alv, there is a special syntax, so that when we double-click on alv,

our FORM / routine is called and there we display another alv.

3. just copy paste to get a taste of interactive alv.

4.

REPORT abc.

TYPE-POOLS : slis.

*----


Data

DATA : ITAB LIKE T001 OCCURS 0 WITH HEADER LINE.

DATA : alvfc TYPE slis_t_fieldcat_alv.

DATA : STAB LIKE T001 OCCURS 0 WITH HEADER LINE.

*----


Select Data

SELECT * FROM t001 INTO TABLE itab.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

*----


  • CALL BACK FORM

*----


FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

slis_selfield.

*----


IMPORTANT.

READ TABLE ITAB INDEX WHATROW-TABINDEX.

*

CLEAR STAB.

SELECT * FROM T001

INTO TABLE STAB

WHERE BUKRS = ITAB-BUKRS.

CLEAR ALVFC.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'STAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

TABLES

t_outtab = Stab

EXCEPTIONS

program_error = 1

OTHERS = 2.

ENDFORM. "ITAB_user_command

regards,

amit m.

Read only

Former Member
0 Likes
803

Eg

&----


*& Report ZSD_ALV_INTERACTIVE *

*& *

&----


*& *

*& *

&----


REPORT ZSD_ALV_INTERACTIVE .

TYPE-POOLS : SLIS.

TABLES : EKKO,

EKPO.

                                                            • Global data

DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

G_REPID TYPE SY-REPID,

IT_EVENTS TYPE SLIS_T_EVENT.

DATA : BEGIN OF ITAB OCCURS 0,

EBELN LIKE EKKO-EBELN,

BUKRS LIKE EKKO-EBELN,

LIFNR LIKE EKKO-LIFNR,

EKORG LIKE EKKO-EKORG,

EKGRP LIKE EKKO-EKGRP,

END OF ITAB.

DATA : BEGIN OF PTAB OCCURS 0,

EBELN LIKE EKKO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

WERKS LIKE EKPO-WERKS,

LGORT LIKE EKPO-LGORT,

MATKL LIKE EKPO-MATKL,

END OF PTAB.

********************************Selection-screen

SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.

PARAMETERS : P_BUKRS LIKE EKKO-BUKRS DEFAULT '1000'.

********************************Initialization

INITIALIZATION.

G_REPID = SY-REPID.

PERFORM FIELDCAT USING GT_FIELDCAT[].

********************************Start-of-Selection.

START-OF-SELECTION.

PERFORM SELECT_DATA.

END-OF-SELECTION.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = GT_FIELDCAT

TABLES

T_OUTTAB = ITAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

&----


*& Form fieldcat

&----


  • text

----


  • -->P_GT_fieldcat[] text

----


FORM FIELDCAT USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

LS_FIELDCAT-FIELDNAME = 'EBELN'.

LS_FIELDCAT-REF_TABNAME = 'EKKO'.

LS_FIELDCAT-EMPHASIZE = 'C510'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'BUKRS'.

LS_FIELDCAT-REF_TABNAME = 'EKKO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'LIFNR'.

LS_FIELDCAT-REF_TABNAME = 'EKKO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'EKORG'.

LS_FIELDCAT-REF_TABNAME = 'EKKO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'EKGRP'.

LS_FIELDCAT-REF_TABNAME = 'EKKO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

ENDFORM. " fieldcat

&----


*& Form SELECT_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SELECT_DATA .

SELECT EBELN

BUKRS

LIFNR

EKORG

EKGRP

FROM EKKO

INTO TABLE ITAB

WHERE EBELN IN S_EBELN AND BUKRS = P_BUKRS .

ENDFORM. " SELECT_DATA

                                                                    • Secondary List *************************************

&----


*& Form user_command

&----


  • text

----


FORM USER_COMMAND USING COMM TYPE SY-UCOMM ROW TYPE SLIS_SELFIELD.

READ TABLE ITAB INDEX ROW-TABINDEX.

SELECT EBELN

EBELP

MATNR

WERKS

LGORT

MATKL

FROM EKPO

INTO TABLE PTAB

  • FOR ALL ENTRIES IN ITAB

WHERE EBELN = ITAB-EBELN.

                                • Field catalog for secondary list.

PERFORM FIELDCAT1 USING IT_FIELDCAT[].

*****************Display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = PTAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

  • ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form FIELDCAT1

&----


  • text

----


  • -->P_IT_FIELDCAT[] text

----


FORM FIELDCAT1 USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'EBELN'.

LS_FIELDCAT-REF_TABNAME = 'EKKO'.

LS_FIELDCAT-EMPHASIZE = 'C510'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'EBELP'.

LS_FIELDCAT-REF_TABNAME = 'EKPO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'MATNR'.

LS_FIELDCAT-REF_TABNAME = 'EKPO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'WERKS'.

LS_FIELDCAT-REF_TABNAME = 'EKPO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'LGORT'.

LS_FIELDCAT-REF_TABNAME = 'EKPO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'MATKL'.

LS_FIELDCAT-REF_TABNAME = 'EKPO'.

APPEND LS_FIELDCAT TO P_FIELDCAT.

ENDFORM. " FIELDCAT1