2008 May 19 11:09 AM
Can anybody send me a sample progrma for alv report including interactive report
Can anybody send me a sample progrma for alv report including interactive report
2008 May 19 11:12 AM
You can have a look at belwo link:
[ALV Interactive Report Sample Code|http://abapprogramming.blogspot.com/2007/11/alv-interactive-report-sample-code.html]
Also please have a look at belwo report:
*&---------------------------------------------------------------------*
*& Report Zalv *
*& *
*&---------------------------------------------------------------------*
*& This is an Interactive ALV report, where on line slection we can see
*& the secondry list
*&
*& *
*&---------------------------------------------------------------------*
REPORT zalv 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.I hope it helps.
Best Regards,
Vibha
Please mark all the helpful answers
2008 May 19 11:13 AM
2008 May 19 11:14 AM
Goto SE38>Environment>Examples.....
you will find a programs in all categories.....
Hope it helps....
OR
&----
*& 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.
2008 May 19 1:55 PM
Dear friend
i am seanding you a live MIS ALV report.
pls go through it if ther is any problem pls keep in touch.
REPORT Y_DAILY_SAP_REPORT
NO STANDARD PAGE HEADING
LINE-SIZE 215.
TYPE-POOLS: slis.
TABLES: EKKO, EKPO, ZADVMUTH,mseg.
TYPES : BEGIN OF s_ekko,
ebeln like ekko-ebeln,
ekgrp like ekko-ekgrp,
AEDAT LIKE EKKO-AEDAT,
END OF s_ekko,
Begin of s_ekkpo ,
netwr like ekpo-netwr,
ekgrp like ekko-ekgrp,
werks like ekpo-werks,
aedat like ekko-aedat,
loekz like ekpo-loekz,
End of s_ekkpo,
Begin of s_Final,
descr type string,
emode type string,
Cimmco type ekpo-netwr,
BMT type ekpo-netwr,
BTB type ekpo-netwr,
PTP type ekpo-netwr,
Cimmco1 type ekpo-netwr,
BMT1 type ekpo-netwr,
BTB1 type ekpo-netwr,
PTP1 type ekpo-netwr,
Srno type c length 1,
Final type ekpo-netwr,
final1 type ekpo-netwr,
end of s_final.
DATA : it_ekkpo type table of s_ekkpo,
wa_ekkpo type s_ekkpo,
it_final type table of s_final,
wa_final type s_final.
DATA: rptname LIKE sy-repid .
*-->Tables for field catalog
DATA: fcat TYPE TABLE OF slis_fieldcat_alv WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
fs_layo TYPE slis_layout_alv,
fevents TYPE TABLE OF slis_alv_event WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0,
fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0.
DATA: it_sortcat TYPE slis_sortinfo_alv OCCURS 1,
wa_sort LIKE LINE OF it_sortcat,
gd_layout TYPE slis_layout_alv,
gd_prntparams TYPE slis_print_alv.
****************************************************************
******USER INTERACTION OPTION FOR THE INVOICE NO
****************************************************************
SELECTION-SCREEN : begin OF BLOCK B1 WITH FRAME TITLE R.
SELECT-OPTIONS: DAD FOR EKKO-AEDAT OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK B1.
****************************************************************
******USER INTERACTION OPTION FOR THE INVOICE NO
****************************************************************
START-OF-SELECTION.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = '93'
text = 'Wait Processing ....'.
SELECT sum( ekpo~netwr )
ekko~ekgrp
ekpo~werks
ekko~aedat
ekpo~loekz
into table it_ekkpo
from ekko
inner join ekpo
on ekkoebeln = ekpoebeln
WHERE ekgrp IN ('C01', 'C02', 'DG1', 'E01', 'O01', 'P01', 'R02' , 'E02')
and WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')
and ekko~aedat in dad
Group by
ekko~ekgrp
ekpo~werks
ekko~aedat
ekpo~loekz.
loop at it_ekkpo into wa_ekkpo where ekgrp ne 'E02'
and loekz ne 'L'.
if wa_ekkpo-aedat eq dad-high.
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp = wa_ekkpo-netwr.
endif.
wa_final-final = wa_ekkpo-netwr.
For cumulative
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp1 = wa_ekkpo-netwr.
endif.
wa_final-final1 = wa_ekkpo-netwr.
else. " For cumulative
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp1 = wa_ekkpo-netwr.
endif.
wa_final-final1 = wa_ekkpo-netwr.
endif.
wa_final-descr = 'Purchase Order Placed.'.
wa_final-srno = 'A'.
wa_final-emode = 'Domestic'.
Collect wa_final into it_final.
endloop.
loop at it_ekkpo into wa_ekkpo where ekgrp eq 'E02'
and loekz ne 'L'.
if wa_ekkpo-aedat eq dad-high.
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp = wa_ekkpo-netwr.
wa_final-final = wa_ekkpo-netwr.
endif.
**** For cumulative
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp1 = wa_ekkpo-netwr.
endif.
wa_final-final1 = wa_ekkpo-netwr.
else. " For cumulative
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb1 = wa_ekkpo-netwr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp1 = wa_ekkpo-netwr.
endif.
wa_final-final1 = wa_ekkpo-netwr.
endif.
wa_final-descr = 'Purchase Order Placed'.
wa_final-srno = 'B'.
wa_final-emode = 'Import'.
Collect wa_final into it_final.
clear wa_final.
endloop.
***********************************************************************
********************material recieved*and ***material issued*******
TYPES : BEGIN OF s_msegM,
ebeln like ekpo-ebeln,
werks like ekpo-werks,
MBLNR LIKE MSEG-MBLNR,
dmbtr like mseg-dmbtr,
shkzg like mseg-shkzg,
ekgrp like ekko-ekgrp,
aedat like ekko-aedat,
END OF s_msegM.
DATA : it_msegm TYPE TABLE OF s_msegm,
wa_msegm TYPE s_msegm.
SELECT ekpo~ebeln
ekpo~werks
MSEG~MBLNR
mseg~dmbtr
mseg~shkzg
ekko~ekgrp
ekko~aedat
into corresponding fields of table it_msegm
from ekpo
inner join ekko
on ekpoebeln = ekkoebeln
inner join mseg
on ekpoebeln = msegebeln
WHERE ekgrp IN ('C01', 'C02', 'DG1', 'E01', 'O01', 'P01', 'R02' , 'E02')
and ekpo~WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')
and ekko~aedat in dad .
Group by
ekpo~ebeln
ekpo~werks
MSEG~MBLNR
mseg~dmbtr
ekko~ekgrp
ekpo~ebeln
ekko~aedat.
break sildev01.
loop at it_msegm into wa_msegm where shkzg eq 'S'. " Recieved
if wa_msegm-aedat eq dad-high.
if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.
wa_final-cimmco = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.
wa_final-bmt = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1120.
wa_final-btb = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1130.
wa_final-ptp = wa_msegm-dmbtr.
endif.
wa_final-final = wa_msegm-dmbtr.
For cumulative
if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.
wa_final-cimmco1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.
wa_final-bmt1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1120.
wa_final-btb1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1130.
wa_final-ptp1 = wa_msegm-dmbtr.
endif.
wa_final-final1 = wa_msegm-dmbtr.
else. " For cumulative
if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.
wa_final-cimmco1 = wa_msegm-dmbtr.
elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.
wa_final-bmt1 = wa_msegm-dmbtr.
elseif wa_ekkpo-werks eq 1120.
wa_final-btb1 = wa_msegm-dmbtr.
elseif wa_ekkpo-werks eq 1130.
wa_final-ptp1 = wa_msegm-dmbtr.
endif.
wa_final-final1 = wa_msegm-dmbtr.
endif.
wa_final-descr = 'MATERIAL RECIEVED'.
wa_final-srno = 'D'.
Collect wa_final into it_final.
clear wa_final.
endloop.
sort it_final by srno.
loop at it_msegm into wa_msegm where shkzg eq 'H'. " ISSUED
if wa_msegm-aedat eq dad-high.
if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.
wa_final-cimmco = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.
wa_final-bmt = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1120.
wa_final-btb = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1130.
wa_final-ptp = wa_msegm-dmbtr.
endif.
wa_final-final = wa_msegm-dmbtr.
For cumulative
if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.
wa_final-cimmco1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.
wa_final-bmt1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1120.
wa_final-btb1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1130.
wa_final-ptp1 = wa_msegm-dmbtr.
endif.
wa_final-final1 = wa_msegm-dmbtr.
else. " For cumulative
if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.
wa_final-cimmco1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.
wa_final-bmt1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1120.
wa_final-btb1 = wa_msegm-dmbtr.
elseif wa_msegm-werks eq 1130.
wa_final-ptp1 = wa_msegm-dmbtr.
endif.
wa_final-final1 = wa_msegm-dmbtr.
endif.
wa_final-descr = 'MATERIAL ISSUED'.
wa_final-srno = 'E'.
Collect wa_final into it_final.
clear wa_final.
endloop.
sort it_final by srno.
***********************************************************************************************
************invoices booked******************************************************************
TYPES : BEGIN OF s_ekkoB,
ebeln like ekko-ebeln,
ekgrp like ekko-ekgrp,
aedat like ekko-aedat,
END OF s_ekkoB,
BEGIN OF s_ekBEb,
DMBTR like ekBE-dmbtr,
ekgrp like ekko-ekgrp,
werks like ekpo-werks,
aedat like ekko-aedat,
END OF s_ekBEb.
DATA : it_ekBEb TYPE TABLE OF s_ekBEb,
wa_ekBEb TYPE s_ekBEb.
break sildev01.
SELECT sum( ekBE~dmbtr )
ekko~ekgrp
ekpo~werks
ekko~aedat
into table it_ekBEb
from ekko
inner join ekpo
on ekkoebeln = ekpoebeln
inner join EKBE
on ekpoebeln = EKBEebeln
WHERE ekgrp IN ('C01', 'C02', 'DG1', 'E01', 'O01', 'P01', 'R02' , 'E02')
and ekpo~WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')
and ekbe~WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')
and ekko~aedat in dad
Group by
ekko~ekgrp
ekpo~werks
ekbe~WERKS
ekko~aedat.
loop at it_ekBEb into wa_ekBEb.
if wa_ekBEb-aedat eq dad-high.
if wa_ekBEb-werks eq 1100 or wa_ekBEb-werks eq 1101.
wa_final-cimmco = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1110 or wa_ekBEb-werks eq 1111.
wa_final-bmt = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1120.
wa_final-btb = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1130.
wa_final-ptp = wa_ekBEb-dmbtr.
endif.
wa_final-final = wa_ekbeb-dmbtr.
For cumulative
if wa_ekBEb-werks eq 1100 or wa_ekBEb-werks eq 1101.
wa_final-cimmco1 = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1110 or wa_ekBEb-werks eq 1111.
wa_final-bmt1 = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1120.
wa_final-btb1 = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1130.
wa_final-ptp1 = wa_ekBEb-dmbtr.
endif.
wa_final-final1 = wa_ekbeb-dmbtr.
else. " For cumulative
if wa_ekBEb-werks eq 1100 or wa_ekBEb-werks eq 1101.
wa_final-cimmco1 = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1110 or wa_ekBEb-werks eq 1111.
wa_final-bmt1 = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1120.
wa_final-btb1 = wa_ekBEb-dmbtr.
elseif wa_ekBEb-werks eq 1130.
wa_final-ptp1 = wa_ekBEb-dmbtr.
endif.
wa_final-final1 = wa_ekbeb-dmbtr.
endif.
wa_final-descr = 'INVOICE BOOKED'.
wa_final-srno = 'F'.
Collect wa_final into it_final.
clear wa_final.
endloop.
sort it_final by srno.
PERFORM process_data.
PERFORM display_data.
FORM process_data .
ENDFORM.
&----
*& Form display_data
&----
FORM display_data .
PERFORM field_cat.
PERFORM alv_display.
ENDFORM. " display_data
&----
*& Form process_mchb_data
&----
FORM process_mchb_data .
ENDFORM. " process_mchb_data
&----
*& Form field_cat
&----
*FORM field_cat .
FORM topofpage.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = fheader[]
i_logo = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID = 'Hello '
ENDFORM. "TOPOFPAGE
&----
*& Form alv_display
&----
text
----
FORM alv_display .
DATA: w_dthigh(20).
CLEAR fcat.
fcat-fieldname = 'SRNO'.
fcat-outputlen = 20.
fcat-seltext_s = 'SR.No.'.
fcat-seltext_m = 'SR.No.'.
fcat-seltext_l = 'SR.No.'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'DESCR'.
fcat-outputlen = 20.
fcat-seltext_s = 'DESCRIPTION'.
fcat-seltext_m = 'DESCRIPTION'.
fcat-seltext_l = 'DESCRIPTION'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'EMODE'.
fcat-outputlen = 15.
fcat-seltext_s = 'MODE'.
fcat-seltext_m = 'MODE'.
fcat-seltext_l = 'MODE'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'CIMMCO'.
fcat-outputlen = 30.
fcat-seltext_s = 'CIMMCO'.
fcat-seltext_m = 'CIMMCO'.
fcat-seltext_l = 'CIMMCO'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'BMT'.
fcat-outputlen = 20.
fcat-seltext_s = 'BARAMATI'.
fcat-seltext_m = 'BARAMATI'.
fcat-seltext_l = 'BARAMATI'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'BTB'.
fcat-outputlen = 20.
fcat-seltext_s = 'BUTIBORI'.
fcat-seltext_m = 'BUTIBORI'.
fcat-seltext_l = 'BUTIBORI'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'PTP'.
fcat-outputlen = 20.
fcat-seltext_s = 'PITHAMPUR'.
fcat-seltext_m = 'PITHAMPUR'.
fcat-seltext_l = 'PITHAMPUR'.
fcat-ddictxt = 'M'.
fcat-inttype = 'CURR'.
fcat-datatype = 'CURR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'FINAL'.
fcat-outputlen = 20.
fcat-seltext_s = 'TOTAL'.
fcat-seltext_m = 'TOTAL'.
fcat-seltext_l = 'TOTAL'.
fcat-ddictxt = 'M'.
fcat-inttype = 'CHAR'.
fcat-datatype = 'CHAR'.
fcat-no_zero = 'X' .
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'CIMMCO1'.
fcat-outputlen = 15.
fcat-seltext_s = 'CIMMCO'.
fcat-seltext_m = 'CIMMCO'.
fcat-seltext_l = 'CIMMCO'.
fcat-ddictxt = 'M'.
fcat-inttype = 'CHAR'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'BMT1'.
fcat-outputlen = 20.
fcat-seltext_s = 'BARAMATI'.
fcat-seltext_m = 'BARAMATI'.
fcat-seltext_l = 'BARAMATI'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'BTB1'.
fcat-outputlen = 20.
fcat-seltext_s = 'BUTIBORI'.
fcat-seltext_m = 'BUTIBORI'.
fcat-seltext_l = 'BUTIBORI'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'PTP1'.
fcat-outputlen = 20.
fcat-seltext_s = 'PITHAMPUR'.
fcat-seltext_m = 'PITHAMPUR'.
fcat-seltext_l = 'PITHAMPUR'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
APPEND fcat.
CLEAR fcat.
fcat-fieldname = 'FINAL1'.
fcat-outputlen = 20.
fcat-seltext_s = 'TOTAL'.
fcat-seltext_m = 'TOTAL'.
fcat-seltext_l = 'TOTAL'.
fcat-ddictxt = 'M'.
fcat-inttype = 'C'.
fcat-datatype = 'CHAR'.
fcat-no_zero = 'X' .
APPEND fcat.
CLEAR fcat.
fheader-typ = 'H'.
fheader-info = 'DAILY SAP REPORT'.
APPEND fheader.
CLEAR fheader.
************************************************************************
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(601).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = fevents[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
READ TABLE fevents WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
fevents-form = 'TOPOFPAGE'.
MODIFY fevents INDEX sy-tabix.
CLEAR fevents.
ENDIF.
rptname = sy-repid .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = rptname
it_fieldcat = fcat[]
i_default = 'S'
it_events = fevents[]
it_sort = it_sortcat
is_print = gd_prntparams
i_save = 'X'
is_layout = gd_layout
TABLES
t_outtab = it_final[].
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM . " alv_display .
rewards are expected, pls
vivek srivastava
2008 May 19 2:32 PM
2008 May 19 2:38 PM
hi,
please check this sample code
REPORT zalv_report.*type pools for alv declarations
TYPE-POOLS: slis.*structure declaration for tstc table
TYPES : BEGIN OF ty_tstc,
tcode TYPE tcode,
pgmna TYPE program_id,
dypno TYPE dynpronr,
END OF ty_tstc.* Internal table and workarea declarations for tstc
DATA: it_tstc TYPE STANDARD TABLE OF ty_tstc,
wa_tstc TYPE ty_tstc.*data declarations for ALV
DATA: it_layout TYPE slis_layout_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE slis_t_fieldcat_alv,
it_eventexit TYPE slis_t_event_exit,
wa_eventexit TYPE slis_event_exit.*initialisation event
INITIALIZATION.*start of selection event
START-OF-SELECTION.*subroutine to fetch data from the db table
PERFORM fetch_data.*subroutine for output display
PERFORM alv_output.&----
*& Form fetch_data
&----
*subroutine to fetch data from the db table
----
FORM fetch_data.*Internal table and work area declaratin for TSTC (local tables)
DATA : lt_tstc TYPE STANDARD TABLE OF ty_tstc,
ls_tstc TYPE ty_tstc.*Static field definition
*Reads the last tcode and stores it in l_tstc that on refresh further data
*beyond this value is fetched
STATICS l_tstc TYPE tcode.
Selection from the tstc table
*we select till 25 rows and on further refresh next 25 are selected
*we select transactions having screen numbers only
SELECT tcode
pgmna
dypno
FROM tstc
INTO CORRESPONDING FIELDS OF TABLE lt_tstc
UP TO 25 ROWS
WHERE tcode GT l_tstc
AND dypno NE '0000'.* Code for transferring the values of local table to output table
for 25 rows as sy-tfill is 25.
*In case there are no records a message pops up.
IF sy-subrc EQ 0.
DESCRIBE TABLE it_tstc.
READ TABLE lt_tstc INTO ls_tstc INDEX sy-tfill.
l_tstc = ls_tstc-tcode.
it_tstc[] = lt_tstc[].
ELSE.
MESSAGE 'No Records found ' TYPE 'i'.
ENDIF.
ENDFORM. "read_data&----
*& Form alv_output
&----
text
----
FORM alv_output.*subroutine to refresh alv
PERFORM event_exits.
*field catalogue
PERFORM build_fieldcat.
*Layout for alv
PERFORM build_layout.
*output display
PERFORM alv_display.ENDFORM. "alv_output&----
*& Form event_exits
&----
text
----
*subroutine to refresh alvFORM event_exits. CLEAR wa_eventexit.
wa_eventexit-ucomm = '&REFRESH'. " Refresh
wa_eventexit-after = 'X'.
APPEND wa_eventexit TO it_eventexit.ENDFORM. "event_exits&----
*& Form build_fieldcat
&----
text
----
*Field catalogue
FORM build_fieldcat. CLEAR wa_fieldcat.
wa_fieldcat-row_pos = '1'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-fieldname = 'TCODE'.
wa_fieldcat-tabname = 'it_tstc'.
wa_fieldcat-seltext_m = 'TRANSACTION'.
APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.
wa_fieldcat-row_pos = '1'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-fieldname = 'PGMNA'.
wa_fieldcat-tabname = 'it_tstc'.
wa_fieldcat-seltext_m = 'PROGRAM'.
APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.
wa_fieldcat-row_pos = '1'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-fieldname = 'DYPNO'.
wa_fieldcat-tabname = 'it_tstc'.
wa_fieldcat-seltext_m = 'SCREEN'.
APPEND wa_fieldcat TO it_fieldcat.ENDFORM. "build_fieldcat&----
*& Form build_layout
&----
text
----
*Layout
FORM build_layout. it_layout-zebra = 'X'.
it_layout-colwidth_optimize = 'X'.ENDFORM. "build_layout&----
*& Form alv_display
&----
text
----
*ALV output
FORM alv_display. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'PFSTATUS'
it_fieldcat = it_fieldcat
is_layout = it_layout
it_event_exit = it_eventexit
i_screen_start_column = 10
i_screen_start_line = 20
i_screen_end_column = 70
i_screen_end_line = 45
i_grid_title = 'Call Tcode Refresh ALV'
TABLES
t_outtab = it_tstc.ENDFORM. "alv_display
&----
*& Form user_command
&----
text
----
*User actions on ALV
FORM user_command USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield. CASE r_ucomm.*User clicks a transaction code and that tcode is called from ALV
WHEN '&IC1'.
READ TABLE it_tstc INDEX rs_selfield-tabindex INTO wa_tstc.
IF sy-subrc = 0.
CALL TRANSACTION wa_tstc-tcode.
ENDIF.*user clicks the refresh button and the next 25 records are displayed
WHEN '&REFRESH'.
PERFORM fetch_data.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X' .
rs_selfield-row_stable = 'X' .
ENDCASE.ENDFORM. "user_command----
FORM PFSTATUS *
----
*Form for settings the pf status to the alv
FORM pfstatus USING ut_extab TYPE slis_t_extab. SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.ENDFORM. " PF_STATUS_SET
regards
dilip
2008 May 19 2:52 PM
Hi,
Here I am sending you the sample code which uses all the events.
In the first ALV report, im displaying Purchase Order Header details.
I hav one Pushbutton called "display" in the menu.
If I select any "EBELN", and pressd that display button....thn one POPUP ALV comes which has purchase organization details related to that "EBELN".
And if I double clicked on EBELN, then in the next screen, i will get Purchase Order Item details in the next screen.
REPORT z50871_alv_griddisplay message-id z50871msg.
----
STRUCTURE DECLARATIONS
INTERNAL TABLE DECLARATIONS
WORKAREA DECLARATIONS
TYPE-POOLS DECLARATION
----
TYPE-POOLS : slis.
TYPES : BEGIN OF st_ekko,
ebeln TYPE ekko-ebeln, "Purchasing Document Number
bstyp TYPE ekko-bstyp, "Purchasing Document Category
bsart TYPE ekko-bsart, "Purchasing Document Type
aedat TYPE ekko-aedat, "record created on
ernam TYPE ekko-ernam, "Person who Created the Object
check(1),
END OF st_ekko.
TYPES : BEGIN OF st_ekpo,
ebeln TYPE ekko-ebeln,
ebelp TYPE ekpo-ebelp, "Item Number of Purchasing Document
ematn TYPE ekpo-ematn, "Material number
matkl TYPE ekpo-matkl, "Material group
netpr TYPE ekpo-netpr, "Net price in purchasing document
END OF st_ekpo.
TYPES : BEGIN OF st_ebeln,
ebeln TYPE ekpo-ebeln,
END OF st_ebeln.
TYPES : BEGIN OF st_eine,
ebeln TYPE ekko-ebeln,
ekorg TYPE eine-ekorg,
ekgrp TYPE eine-ekgrp,
END OF st_eine.
TYPES : BEGIN OF st_check,
check(1),
END OF st_check.
DATA : it_ekpo TYPE STANDARD TABLE OF st_ekpo,
it_ekko TYPE STANDARD TABLE OF st_ekko,
wa_ekko LIKE LINE OF it_ekko,
it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat,
wa_layout TYPE slis_layout_alv,
it_events TYPE slis_t_event,
st_event LIKE LINE OF it_events,
it_listheadr TYPE slis_t_listheader ,
wa_listheadr LIKE LINE OF it_listheadr,
st_printparams TYPE slis_print_alv,
it_sortinfo TYPE slis_t_sortinfo_alv,
wa_sortinfo LIKE LINE OF it_sortinfo,
it_ekposortinfo TYPE slis_t_sortinfo_alv,
wa_ekposortinfo LIKE LINE OF it_ekposortinfo,
it_filter TYPE slis_t_filter_alv,
it_ebeln TYPE STANDARD TABLE OF st_ebeln,
it_eine TYPE STANDARD TABLE OF st_eine,
wa_eine TYPE st_eine,
it_popup TYPE STANDARD TABLE OF st_eine,
wa_popup TYPE st_eine,
it_check TYPE STANDARD TABLE OF st_check,
wa_check TYPE st_check.
DATA : v_ebeln TYPE ekko-ebeln.
----
SELECTION-SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE tit.
SELECT-OPTIONS: so_ebeln FOR v_ebeln OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b.
----
INITIALIZATION
----
INITIALIZATION.
tit = text-000.
----
AT SELECTION-SCREEN ON
----
AT SELECTION-SCREEN ON so_ebeln.
PERFORM validate_ebeln.
----
START-OF-SELECTION
----
START-OF-SELECTION.
PERFORM get_ekko_data.
PERFORM get_eine_data.
----
END-OF-SELECTION
----
END-OF-SELECTION.
PERFORM populate_fieldcat1.
PERFORM populate_layout.
PERFORM get_eventlist.
PERFORM get_ekkosortinfo.
PERFORM ekkodisplay_onalv.
&----
*& Form POPULATE_FIELDCAT1
&----
FORM populate_fieldcat1.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_l = text-004.
wa_fieldcat-no_zero = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'BSTYP'.
wa_fieldcat-seltext_l = text-005.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'BSART'.
wa_fieldcat-seltext_l = text-006.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'AEDAT'.
wa_fieldcat-seltext_l = text-007.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-seltext_l = text-008.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. "POPULATE_FIELDCAT1
&----
*& Form populate_fieldcat2
&----
FORM populate_fieldcat2 .
CLEAR wa_fieldcat.
CLEAR it_fieldcat.
REFRESH it_fieldcat.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_l = text-004.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-no_zero = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-seltext_l = text-009.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'EMATN'.
wa_fieldcat-seltext_l = text-010.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-seltext_l = text-011.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'NETPR'.
wa_fieldcat-seltext_l = text-012.
wa_fieldcat-datatype = 'CURR'. "Obligatory to perform SUM
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. "populate_fieldcat2
&----
*& Form GET_EVENTLIST
&----
FORM get_eventlist.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_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.
READ TABLE it_events WITH KEY name = slis_ev_pf_status_set INTO st_event.
IF sy-subrc EQ 0.
st_event-form = 'SET_PF_STATUS1'.
APPEND st_event TO it_events.
CLEAR st_event.
ENDIF.
READ TABLE it_events WITH KEY name = slis_ev_end_of_page INTO st_event.
IF sy-subrc EQ 0.
st_event-form = 'END_OF_PAGE'.
APPEND st_event TO it_events.
CLEAR st_event.
ENDIF.
ENDFORM. "GET_EVENTLIST
&----
*& Form ekpodisplay_onalv
&----
FORM ekpodisplay_onalv .
IF it_ekpo[] IS INITIAL.
MESSAGE 'NO DATA FOUND' TYPE 'I'.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'AT_USER_COMMAND1'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_GRID_TITLE
I_GRID_SETTINGS = I_GRID_SETTINGS
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = it_ekposortinfo[]
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_events
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
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.
ENDIF.
ENDFORM. "ekpodisplay_onalv
&----
*& Form SET_PF_STATUS1
&----
FORM set_pf_status1 USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'MENU' excluding rt_extab. "Copy from SALV .
ENDFORM. "SET_PF_STATUS1
&----
*& Form SET_PF_STATUS
&----
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' excluding rt_extab. "Copy from SALV .
ENDFORM. "SET_PF_STATUS
&----
*& Form AT_user_command
&----
FORM at_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-fieldname EQ 'EBELN'.
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
SELECT ebeln ebelp ematn matkl netpr
FROM ekpo
INTO TABLE it_ekpo
WHERE ebeln EQ wa_ekko-ebeln.
PERFORM populate_fieldcat2.
PERFORM populate_layout2.
PERFORM get_ekposortinfo.
PERFORM ekpodisplay_onalv.
ELSE.
MESSAGE i020(z50871msg) WITH text-013.
ENDIF.
WHEN 'SE16'.
CALL TRANSACTION 'SE16'.
WHEN 'SE37'.
CALL TRANSACTION 'SE37'.
WHEN 'DISP'.
PERFORM get_popupdata.
PERFORM get_popupfcat.
PERFORM display_popup.
ENDCASE.
ENDFORM. "AT_user_command
&----
*& Form TOP_OF_PAGE
&----
FORM top_of_page.
REFRESH it_listheadr.
wa_listheadr-typ = 'H'.
wa_listheadr-info = text-001.
APPEND wa_listheadr TO it_listheadr.
CLEAR wa_listheadr.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheadr[]
i_logo = 'ENJOYSAP_LOGO'. "From OAER transaction
ENDFORM. "TOP_OF_PAGE
&----
*& Form build_print_params
&----
FORM build_print_params.
st_printparams-reserve_lines = '3'. "Lines reserved for footer
st_printparams-no_coverpage = 'X'.
ENDFORM. "build_print_params
&----
*& Form end_of_page
&----
FORM end_of_page.
REFRESH it_listheadr.
wa_listheadr-typ = 'H'.
wa_listheadr-info = sy-pagno.
APPEND wa_listheadr TO it_listheadr.
CLEAR wa_listheadr.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheadr[].
ENDFORM. "end_of_page
&----
*& Form GET_EKPOSORTINFO
&----
FORM get_ekposortinfo.
wa_ekposortinfo-up = 'X'.
wa_ekposortinfo-spos = 1.
wa_ekposortinfo-fieldname = 'EBELP'.
wa_ekposortinfo-tabname = 'EKPO'.
APPEND wa_ekposortinfo TO it_ekposortinfo.
CLEAR wa_ekposortinfo.
wa_ekposortinfo-up = 'X'.
wa_ekposortinfo-spos = 2.
wa_ekposortinfo-fieldname = 'EMATN'.
wa_ekposortinfo-tabname = 'EKPO'.
APPEND wa_ekposortinfo TO it_ekposortinfo.
CLEAR wa_ekposortinfo.
ENDFORM. "GET_EKPOSORTINFO
*
&----
*& Form POPULATE_LAYOUT
&----
FORM populate_layout.
wa_layout-colwidth_optimize = 'X'. "column width
wa_layout-zebra = 'X'.
wa_layout-no_hline = 'X'.
wa_layout-no_vline = 'X'.
wa_layout-cell_merge = 'X'.
wa_layout-box_fieldname = 'CHECK'.
wa_layout-box_tabname = 'IT_EKKO'.
wa_layout-window_titlebar = 'PURCHASE ORDER HEADER DETAILS'.
ENDFORM. "POPULATE_LAYOUT
&----
*& Form get_EKKOsortinfo
&----
FORM get_ekkosortinfo.
wa_sortinfo-up = 'X'.
wa_sortinfo-spos = 1.
wa_sortinfo-fieldname = 'EBELN'.
wa_sortinfo-tabname = 'EKKO'.
APPEND wa_sortinfo TO it_sortinfo.
CLEAR wa_sortinfo.
wa_sortinfo-up = 'X'.
wa_sortinfo-spos = 2.
wa_sortinfo-fieldname = 'BSTYP'.
wa_sortinfo-tabname = 'EKKO'.
APPEND wa_sortinfo TO it_sortinfo.
CLEAR wa_sortinfo.
wa_sortinfo-up = 'X'.
wa_sortinfo-spos = 3.
wa_sortinfo-fieldname = 'AEDAT'.
wa_sortinfo-tabname = 'EKKO'.
APPEND wa_sortinfo TO it_sortinfo.
CLEAR wa_sortinfo.
ENDFORM. "get_EKKOsortinfo
&----
*& Form EKKODISPLAY_ONALV
&----
FORM ekkodisplay_onalv.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_PF_STATUS1'
i_callback_user_command = 'AT_USER_COMMAND'
is_layout = wa_layout
it_fieldcat = it_fieldcat
it_sort = it_sortinfo[]
it_filter = it_filter
it_events = it_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. "EKKODISPLAY_ONALV
&----
*& Form validate_ebeln
&----
FORM validate_ebeln.
SELECT ebeln
FROM ekpo
INTO TABLE it_ebeln
WHERE ebeln IN so_ebeln.
IF sy-subrc NE 0.
MESSAGE e020(z50871msg) WITH text-014.
ENDIF.
ENDFORM. "validate_ebeln
&----
*& Form populate_layout2
&----
FORM populate_layout2 .
CLEAR wa_layout.
wa_layout-colwidth_optimize = 'X'. "column width
wa_layout-zebra = 'X'.
wa_layout-no_hline = 'X'.
wa_layout-no_vline = 'X'.
wa_layout-cell_merge = 'X'.
wa_layout-window_titlebar = 'PURCHASE ORDER DETAILS SECOND SCREEN'.
ENDFORM. " populate_layout2
&----
*& Form GET_POPUPDATA
&----
FORM get_popupdata .
LOOP AT it_ekko INTO wa_ekko WHERE check = 'X'.
READ TABLE it_eine INTO wa_eine WITH KEY ebeln = wa_ekko-ebeln.
IF sy-subrc NE 0.
MESSAGE i020(z50871msg) WITH text-015 wa_ekko-ebeln .
ELSE.
wa_popup-ebeln = wa_eine-ebeln.
wa_popup-ekorg = wa_eine-ekorg.
wa_popup-ekgrp = wa_eine-ekgrp.
APPEND wa_popup TO it_popup.
ENDIF.
ENDLOOP.
ENDFORM. " GET_POPUPDATA
&----
*& Form GET_POPUPFCAT
&----
FORM get_popupfcat .
CLEAR wa_fieldcat.
REFRESH it_fieldcat.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_l = text-004.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'EKORG'.
wa_fieldcat-seltext_l = text-016.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'EKGRP'.
wa_fieldcat-seltext_l = text-017.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. " GET_POPUPFCAT
&----
*& Form DISPLAY_POPUP
&----
FORM display_popup .
LOOP AT it_ekko INTO wa_ekko WHERE check EQ 'X'.
wa_check-check = wa_ekko-check.
APPEND wa_check TO it_check.
ENDLOOP.
IF it_check[] IS INITIAL.
MESSAGE i020(z50871msg) WITH text-018.
ENDIF.
IF NOT it_popup[] IS INITIAL.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
i_title = text-003
i_allow_no_selection = 'X'
i_scroll_to_sel_line = 'X'
i_tabname = 'IT_POPUP'
it_fieldcat = it_fieldcat
i_callback_program = sy-repid
TABLES
t_outtab = it_popup
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.
REFRESH it_check.
REFRESH it_popup.
ENDFORM. " DISPLAY_POPUP
&----
*& Form get_ekko_data
&----
FORM get_ekko_data .
SELECT ebeln bstyp bsart aedat ernam
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_ekko
WHERE ebeln IN so_ebeln.
IF sy-subrc NE 0.
MESSAGE e020(z50871msg) WITH text-019.
ENDIF.
ENDFORM. " get_ekko_data
&----
*& Form get_eine_data
&----
FORM get_eine_data .
SELECT ebeln ekorg ekgrp
FROM eine
INTO TABLE it_eine
WHERE ebeln IN so_ebeln.
ENDFORM. " get_eine_data
&----
*& Form at_user_command1
&----
FORM at_user_command1 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'SE16'.
CALL TRANSACTION 'SE16'.
WHEN 'SE37'.
Regards
Sandeep Reddy
CALL TRANSACTION 'SE37'.
ENDCASE.
ENDFORM. "at_user_command1
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |