‎2008 May 23 11:06 AM
hi all,
can any one tell me how to write the alv interactive report.
if possible send me a piece of code.
‎2008 May 23 11:15 AM
hi gupta,
see the below code.
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.
reward me if helpful.
‎2008 May 23 11:09 AM
Hi,
report zna_001..
************************************************************************
***----
DECLARING TYPE-POOLS FOR ALV
************************************************************************
TYPE-POOLS: SLIS.
TYPE-POOLS: LIST.
************************************************************************
***----
DECLARING TABLES WORK AREA
************************************************************************
TABLES : KNA1,KNB1,VBAK,VBAP .
************************************************************************
***----
DECLARING INTERNAL TABLES
************************************************************************
DATA: BEGIN OF IKNA1 OCCURS 10,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
STRAS LIKE KNA1-STRAS,
REGIO LIKE KNA1-REGIO,
TELF1 LIKE KNA1-TELF1,
ORT01 LIKE KNA1-ORT01,
PSTLZ LIKE KNA1-PSTLZ,
LAND1 LIKE KNA1-LAND1,
END OF IKNA1.
DATA: IKNB1 LIKE KNB1 OCCURS 10 WITH HEADER LINE.
DATA: IVBAK LIKE VBAK OCCURS 10 WITH HEADER LINE.
DATA: IVBAP LIKE VBAP OCCURS 10 WITH HEADER LINE.
************************************************************************
TYPES: SLIS_TABNAME(30) TYPE C,
SLIS_FIELDNAME(30) TYPE C.
************************************************************************
***----
DECLARING INTERNAL TABLES FOR FIELDCATALOGUE
************************************************************************
DATA: FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: VCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: OCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: ICAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
************************************************************************
***----
DECLARING INTERNAL TABLES TO WRITE IN THE LIST HEADERS
************************************************************************
DATA: LISTHEAD TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
DATA: LISTKNB1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
DATA: LISTVBAK TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
************************************************************************
***----
DECLARING STRUCTURES FOR LAYOUT
************************************************************************
DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV,
TITLEBAR TYPE RSMPE-TITTEXT.
************************************************************************
***----
DECLARING INTERNAL TABLES FOR EVENTS IN ALV
************************************************************************
DATA: EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.
DATA: EVENTONE TYPE SLIS_T_EVENT WITH HEADER LINE.
DATA: EVENTTWO TYPE SLIS_T_EVENT WITH HEADER LINE.
************************************************************************
***----
DECLARING ALV VARIABLES
************************************************************************
DATA: FIELDS TYPE SLIS_SELFIELD,
FIELDS1 TYPE SLIS_SELFIELD,
FIELDS2 TYPE SLIS_SELFIELD,
LIGHTS_TABNAME TYPE SLIS_TABNAME,
LIGHTS_FIELDNAME TYPE SLIS_FIELDNAME.
***The structure SELFIELD contains the following information about the
***current cursor position
***
***tabname : internal output table name
***tabindex : internal output table index
***fieldname: field name
***value : field contents
************************************************************************
***----
DECLARING VARIABLES
************************************************************************
DATA: UCOMM LIKE SY-UCOMM,
UCOMM1 LIKE SY-UCOMM,
UCOMM2 LIKE SY-UCOMM.
************************************************************************
***----
POPULATING INTERNAL TABLES
************************************************************************
SELECT * FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE IKNA1.
************************************************************************
***----
FIELD CATALOGUE FOR CUSTOMERS, FCAT
************************************************************************
FCAT-COL_POS = 1.
FCAT-FIELDNAME = 'KUNNR'. "CUSTOMER NUMBER
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C211'.
FCAT-HOTSPOT = 'X'.
APPEND FCAT.
FCAT-COL_POS = 2.
FCAT-FIELDNAME = 'NAME1'. "CUSTOMER NAME
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C412'.
FCAT-HOTSPOT = ' '.
APPEND FCAT.
FCAT-COL_POS = 3.
FCAT-FIELDNAME = 'STRAS'. "HOUSE OR STREET NUMBER
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C512'.
APPEND FCAT.
FCAT-COL_POS = 4.
FCAT-FIELDNAME = 'REGIO'. "REGION
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C612'.
APPEND FCAT.
FCAT-COL_POS = 5.
FCAT-FIELDNAME = 'TELF1'. "TELEPHONE NUMBER
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C710'.
APPEND FCAT.
FCAT-COL_POS = 6.
FCAT-FIELDNAME = 'ORT01'. "CITY
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C811'.
APPEND FCAT.
FCAT-COL_POS = 7.
FCAT-FIELDNAME = 'PSTLZ'. "POSTAL CODE
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C112'.
APPEND FCAT.
FCAT-COL_POS = 8.
FCAT-FIELDNAME = 'LAND1'. "COUNTRY
FCAT-REF_TABNAME = 'KNA1'.
FCAT-EMPHASIZE = 'C312'.
APPEND FCAT.
************************************************************************
***----
FIELD CATALOGUE FOR CUSTOMER COCODE, VCAT
************************************************************************
VCAT-COL_POS = 1.
VCAT-FIELDNAME = 'KUNNR'.
VCAT-REF_TABNAME = 'KNB1'.
VCAT-EMPHASIZE = 'C201'.
APPEND VCAT.
VCAT-COL_POS = 2.
VCAT-FIELDNAME = 'BUKRS'.
VCAT-REF_TABNAME = 'KNB1'.
VCAT-EMPHASIZE = 'C402'.
APPEND VCAT.
VCAT-COL_POS = 3.
VCAT-FIELDNAME = 'ERDAT'.
VCAT-REF_TABNAME = 'KNB1'.
VCAT-EMPHASIZE = 'C510'.
APPEND VCAT.
VCAT-COL_POS = 4.
VCAT-FIELDNAME = 'PERNR'.
VCAT-REF_TABNAME = 'KNB1'.
VCAT-EMPHASIZE = 'C811'.
APPEND VCAT.
VCAT-COL_POS = 5.
VCAT-FIELDNAME = 'VRSNR'.
VCAT-REF_TABNAME = 'KNB1'.
VCAT-EMPHASIZE = 'C811'.
APPEND VCAT.
************************************************************************
***----
FIELD CATALOGUE FOR ORDERS, OCAT
************************************************************************
OCAT-COL_POS = 1.
OCAT-FIELDNAME = 'KUNNR'. "CUSTOMER NUMBER
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C911'.
OCAT-HOTSPOT = 'X'.
APPEND OCAT.
OCAT-COL_POS = 2.
OCAT-FIELDNAME = 'VBELN'. "SALES DOCUMENT
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C710'.
OCAT-HOTSPOT = ' '.
APPEND OCAT.
OCAT-COL_POS = 3.
OCAT-FIELDNAME = 'ERDAT'. "DATE CREATED
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C311'.
APPEND OCAT.
OCAT-COL_POS = 4.
OCAT-FIELDNAME = 'AUART'. "SALES DOCUMENT TYPE
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C810'.
APPEND OCAT.
OCAT-COL_POS = 5.
OCAT-FIELDNAME = 'AUDAT'. "DOCUMENT DATE (DATE RECV/SENT)
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C411'.
APPEND OCAT.
OCAT-COL_POS = 6.
OCAT-FIELDNAME = 'NETWR'. "NET VALUE
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C910'.
OCAT-DO_SUM = 'X'.
APPEND OCAT.
OCAT-COL_POS = 7.
OCAT-FIELDNAME = 'WAERK'. "DOCUMENT CURRENCY
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C101'.
OCAT-CURRENCY = 'X'.
APPEND OCAT.
OCAT-COL_POS = 8.
OCAT-FIELDNAME = 'VKORG'. "SALES ORGANIATION
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C201'.
APPEND OCAT.
OCAT-COL_POS = 9.
OCAT-FIELDNAME = 'VTWEG'. "DRISTRIBUTION CHANNEL
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C611'.
APPEND OCAT.
OCAT-COL_POS = 10.
OCAT-FIELDNAME = 'VSBED'. "SHIPPING CONDITIONS
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C301'.
APPEND OCAT.
OCAT-COL_POS = 11.
OCAT-FIELDNAME = 'GRUPP'. "CUSTOMER CREDIT GROUP
OCAT-REF_TABNAME = 'VBAK'.
OCAT-EMPHASIZE = 'C401'.
APPEND OCAT.
************************************************************************
***----
FIELD CATALOGUE FOR ITEMS, ICAT
************************************************************************
ICAT-COL_POS = 1.
ICAT-FIELDNAME = 'VBELN'. "SALES DOCUMENT
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C201'.
APPEND ICAT.
ICAT-COL_POS = 2.
ICAT-FIELDNAME = 'POSNR'. "SALES DOCUMENT ITEM
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C401'.
APPEND ICAT.
ICAT-COL_POS = 3.
ICAT-FIELDNAME = 'MATNR'. "MATERIAL NUMBER
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C510'.
APPEND ICAT.
ICAT-COL_POS = 4.
ICAT-FIELDNAME = 'ZMENG'. "TARGET QUANTITY IN SALES UNITS
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C811'.
APPEND ICAT.
ICAT-COL_POS = 5.
ICAT-FIELDNAME = 'ZIEME'. "TARGET QUANTITY UoM
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C711'.
APPEND ICAT.
ICAT-COL_POS = 6.
ICAT-FIELDNAME = 'MATKL'. "MATERIAL GROUP
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C311'.
APPEND ICAT.
ICAT-COL_POS = 7.
ICAT-FIELDNAME = 'ARKTX'. "SHORT TEXT FOR ITEM TEXT
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C810'.
APPEND ICAT.
ICAT-COL_POS = 8.
ICAT-FIELDNAME = 'POSAR'. "ITEM TYPE
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C811'.
APPEND ICAT.
ICAT-COL_POS = 9.
ICAT-FIELDNAME = 'LFREL'. "ITEM RELEVENT FOR DELIVERY
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C611'.
APPEND ICAT.
ICAT-COL_POS = 10.
ICAT-FIELDNAME = 'FKREL'. "ITEM RELEVANT FOR BILLING
ICAT-REF_TABNAME = 'VBAP'.
ICAT-EMPHASIZE = 'C111'.
APPEND ICAT.
************************************************************************
***----
POPULATING ALV EVENTS INTERNAL TABLES
************************************************************************
EVENT-NAME = 'TOP_OF_PAGE'.
EVENT-FORM = 'TOPPAGE'.
APPEND EVENT.
EVENT-NAME = 'USER_COMMAND'.
EVENT-FORM = 'USECOMM'.
APPEND EVENT.
***----
EVENTONE-NAME = 'TOP_OF_PAGE'.
EVENTONE-FORM = 'TOPPAGEONE'.
APPEND EVENTONE.
EVENTONE-NAME = 'USER_COMMAND'.
EVENTONE-FORM = 'USECOMM1'.
APPEND EVENTONE.
***----
EVENTTWO-NAME = 'TOP_OF_PAGE'.
EVENTTWO-FORM = 'TOPPAGETWO'.
APPEND EVENTTWO.
EVENTTWO-NAME = 'USER_COMMAND'.
EVENTTWO-FORM = 'USECOMM2'.
APPEND EVENTTWO.
************************************************************************
***----
POPULATING ALV LAYOUT STRUCTURE
************************************************************************
I_LAYOUT-WINDOW_TITLEBAR = 'THIS IS MILTONS TITLE BAR'.
************************************************************************
***----
POPULATING ALV LIST HEADERS
************************************************************************
LISTHEAD-TYP = 'H'.
LISTHEAD-INFO = 'CLICK ON THE CUSTOMER TO GET COMPANY CODE DETAILS'.
APPEND LISTHEAD.
*DATA: CUST TYPE KUNNR.
*SELECT SINGLE KUNNR FROM KNA1 INTO CUST WHERE KUNNR = '0000001000'.
*LISTHEAD-TYP = 'S'.
*LISTHEAD-KEY = CUST.
*LISTHEAD-INFO = 'CUSUTOMER'.
*APPEND LISTHEAD.
LISTHEAD-TYP = 'A'.
LISTHEAD-INFO = 'GREAT PYRAMIDS IN THE BACKGROUND'.
APPEND LISTHEAD.
************************************************************************
*----
DISPLAY CUSTOMERS LIST IN GRID
************************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'TRVPICTURE22'
I_GRID_TITLE = 'CUSTOMERS MASTER DETAILS'
I_GRID_SETTINGS =
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = FCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVENT[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IKNA1
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.
************************************************************************
*----
POPULATING ALV EVENT SUBROUTINES
************************************************************************
FORM TOPPAGE.
WRITE:/ 'CUSTOMER LIST'.
***----
ALV FUNTION TO WRITE IN THE LIST HEADER
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LISTHEAD[]
I_LOGO = 'EDSLOGO'
I_END_OF_LIST_GRID =
.
ENDFORM.
FORM TOPPAGEONE.
WRITE:/ 'CUSTOMER COCODE LIST'.
***----
ALV FUNTION TO WRITE IN THE LIST HEADER
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LISTKNB1[]
I_LOGO = 'SAMP'
I_END_OF_LIST_GRID =
.
ENDFORM.
FORM TOPPAGETWO.
WRITE:/ 'CUSTOMER ORDERS LIST'.
***----
ALV FUNTION TO WRITE IN THE LIST HEADER
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LISTVBAK[]
I_LOGO = 'MILTON'
I_END_OF_LIST_GRID =
.
ENDFORM.
************************************************************************
***------SUBROUTINE TO DISPLAY CCODES FOR SEL-CUSTOMERS IN GRID
************************************************************************
FORM USECOMM USING UCOMM LIKE SY-UCOMM FIELDS TYPE SLIS_SELFIELD.
READ TABLE IKNA1 INDEX FIELDS-TABINDEX.
SELECT * FROM KNB1 INTO CORRESPONDING FIELDS OF TABLE IKNB1 WHERE
KUNNR = IKNA1-KUNNR.
PERFORM LISTKNB1 USING IKNA1-KUNNR.
***----
DISPLAY CUSTOMER CCODES LIST IN GRID
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'KNB1'
I_BACKGROUND_ID = 'TRVPICTURE05'
I_GRID_TITLE = 'CUSTOMER COMPANY CODE DETAILS'
I_GRID_SETTINGS =
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT =
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVENTONE[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IKNB1
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.
REFRESH LISTKNB1.
ENDFORM.
************************************************************************
***-------SUBROUTINE POPULATING ALV LIST HEADER FOR COCODE
************************************************************************
FORM LISTKNB1 USING VALUE(CUST) TYPE KUNNR.
LISTKNB1-TYP = 'H'.
LISTKNB1-INFO = 'DOUBLE-CLICK ON CUSTOMER TO GET THE ORDERS PLACED'.
APPEND LISTKNB1.
DATA: NAM TYPE NAME1.
SELECT SINGLE NAME1 FROM KNA1 INTO NAM WHERE KUNNR = CUST.
LISTKNB1-TYP = 'S'.
LISTKNB1-INFO = 'CUSUTOMER NAME'.
LISTKNB1-KEY = NAM.
APPEND LISTKNB1.
LISTKNB1-TYP = 'A'.
LISTKNB1-INFO = 'GREAT COMPANIES IN THE BACKGROUND'.
APPEND LISTKNB1.
LISTKNB1-TYP = 'A'.
LISTKNB1-INFO = 'GREAT PYRAMIDS IN THE BACKGROUND'.
APPEND LISTKNB1.
ENDFORM.
************************************************************************
***-------SUBROUTINE DISPLAYING CUSTOMERS ORDERS IN GRID DISPLAY
************************************************************************
FORM USECOMM1 USING UCOMM1 LIKE SY-UCOMM FIELDS1 TYPE SLIS_SELFIELD.
READ TABLE IKNB1 INDEX FIELDS1-TABINDEX.
SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE IVBAK WHERE
KUNNR = IKNB1-KUNNR.
PERFORM LISTVBAK. " USING IKNB1-KUNNR.
***----
DISPLAYING ORDERS IN GRID
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'TRVPICTURE08'
I_GRID_TITLE = 'ORDERS PLACED BY THE CUSTOMER'
I_GRID_SETTINGS =
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = OCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVENTTWO[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IVBAK
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.
REFRESH LISTVBAK.
ENDFORM.
FORM LISTVBAK. " USING VALUE(ORD) TYPE VBELN.
LISTVBAK-TYP = 'H'.
LISTVBAK-INFO = 'DOUBLE CLICK ON ORDER TO GET THE ITEMS ORDERED'.
APPEND LISTVBAK.
*DATA: NAM TYPE NAME1.
*SELECT SINGLE NAME1 FROM KNA1 INTO NAM WHERE KUNNR = CUST.
*LISTVBAK-TYP = 'S'.
*LISTVBAK-INFO = 'CUSUTOMER NAME'.
*LISTVBAK-KEY = NAM.
*APPEND LISTVBAK.
LISTVBAK-TYP = 'A'.
LISTVBAK-INFO = 'GREAT COMPANIES IN THE BACKGROUND'.
APPEND LISTVBAK.
ENDFORM.
************************************************************************
***------SUBROUTINE DIPLAYING LIST OF ITEMS ORDERD IN POPUP DISPLAY
************************************************************************
***
--------DISPLAYING ITEMS LIST IN POPUP LIST
REUSE_ALV_POPUP_TO_SELECT
Lists in dialog box (single or multiple selection is possible)
***
************************************************************************
FORM USECOMM2 USING UCOMM2 LIKE SY-UCOMM FIELDS2 TYPE SLIS_SELFIELD.
READ TABLE IVBAK INDEX FIELDS2-TABINDEX.
SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE IVBAP WHERE
VBELN = IVBAK-VBELN.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'LIST OF ITEMS OREDERD'
I_SELECTION = 'X'
I_ZEBRA = 'X'
I_SCREEN_START_COLUMN = 15
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 120
I_SCREEN_END_LINE = 15
I_CHECKBOX_FIELDNAME = 'NETWR'
I_LINEMARK_FIELDNAME = 'C50'
I_SCROLL_TO_SEL_LINE = 'X'
I_TABNAME = 'IVBAP'
I_STRUCTURE_NAME =
IT_FIELDCAT = ICAT[]
IT_EXCLUDING =
I_CALLBACK_PROGRAM =
I_CALLBACK_USER_COMMAND =
IS_PRIVATE =
IMPORTING
ES_SELFIELD =
E_EXIT = 'X'
TABLES
T_OUTTAB = IVBAP
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.
************************************************************************
Reward If Helpfull,
Naresh.
‎2008 May 23 11:10 AM
Hi
There are many std reports to be used as samples: see the report like BALV* or BCALV.
Max
‎2008 May 23 11:15 AM
hi gupta,
see the below code.
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.
reward me if helpful.
‎2008 May 23 11:27 AM
Hi Gupta,
Use this code , This produsec an interactive alv of the details of makt based on the value clicked in the first list containing mara table values.
REPORT ZMK_ALVREP.
TYPE-POOLS:SLIS.
TYPES: BEGIN OF TY_MARA.
INCLUDE STRUCTURE MARA.
TYPES: END OF TY_MARA.
TYPES: BEGIN OF TY_MAKT.
INCLUDE STRUCTURE MAKT.
TYPES: END OF TY_MAKT.
DATA: I_MARA TYPE TABLE OF TY_MARA,
W_MARA TYPE TY_MARA,
I_MAKT TYPE TABLE OF TY_MAKT,
W_MAKT TYPE TY_MAKT.
DATA : I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
I_EVENT TYPE SLIS_T_EVENT,
I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
SELECT * FROM MARA INTO TABLE I_MARA.
SELECT * FROM MAKT INTO TABLE I_MAKT.
PERFORM POPULATE.
PERFORM GRID.
FORM POPULATE .
W_FIELDCAT-FIELDNAME = 'MATNR'.
W_FIELDCAT-TABNAME = 'I_MAKT'.
W_FIELDCAT-REF_FIELDNAME ='MATNR'.
W_FIELDCAT-REF_TABNAME ='MAKT'.
W_FIELDCAT-SELTEXT_M = 'MATNR'.
APPEND W_FIELDCAT TO I_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-FIELDNAME = 'ERSDA'.
W_FIELDCAT-TABNAME = 'I_MAKT'.
W_FIELDCAT-REF_FIELDNAME ='ERSDA'.
W_FIELDCAT-REF_TABNAME ='MAKT'.
W_FIELDCAT-SELTEXT_M = 'ERSDA'.
APPEND W_FIELDCAT TO I_FIELDCAT.
CLEAR W_FIELDCAT.
ENDFORM. " populate
FORM GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'LISTDISP'
IT_FIELDCAT = I_FIELDCAT
TABLES
T_OUTTAB = I_MAKT
.
ENDFORM. " Grid
FORM LISTDISP USING V_UCOMM LIKE SY-UCOMM HIDEV TYPE SLIS_SELFIELD.
SELECT * FROM MAKT INTO TABLE I_MAKT WHERE MATNR = HIDEV-VALUE.
PERFORM LIST.
ENDFORM. "LISTDISP
FORM LIST .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_STRUCTURE_NAME = 'MAKT'
TABLES
T_OUTTAB = I_MAKT.
ENDFORM. " List
Reward if useful.
Thanks,
Khan.