2008 Apr 02 6:43 AM
Hi All,
I have created a list in ALV format ,now i want to interact with the list in alv and i want to catch the two fields from the record not one field, how it can be possible.
example in my record
vbeln kunnr posnr ...........etc
when i interact i have to catch the vbeln and kunnr in to different variables please help me how it can be done.
Regards
krishna
2008 Apr 02 6:47 AM
Hi,
See this Example coding,
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = rep_id
I_CALLBACK_PF_STATUS_SET = data_slis_form
i_callback_user_command = '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_GRID_SETTINGS =
is_layout = gd_layout
it_fieldcat = fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = var_tab
it_events = gt_events
* IT_EVENT_EXIT =
IS_PRINT = gd_prntparams
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_op
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.
*------------------------------------------------------------------*
* FORM USER_COMMAND *
*------------------------------------------------------------------*
* --> R_UCOMM *
* --> RS_SELFIELD *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
* Check function code
CASE r_ucomm.
WHEN '&IC1'.
** Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EQUNR'.
** Read data table, using index of row user clicked on
READ TABLE it_op INTO wa_op INDEX rs_selfield-tabindex.
* Set parameter ID for transaction screen field
SET PARAMETER ID 'EQN' FIELD wa_op-equnr.
CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. "user_commandRegards,
Morris Bond.
Reward Points if Helpful.
Hi All,
I have created a list in ALV format ,now i want to interact with the list in alv and i want to catch the two fields from the record not one field, how it can be possible.
example in my record
vbeln kunnr posnr ...........etc
when i interact i have to catch the vbeln and kunnr in to different variables please help me how it can be done.
Regards
krishna
2008 Apr 02 6:47 AM
Hi,
See this Example coding,
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = rep_id
I_CALLBACK_PF_STATUS_SET = data_slis_form
i_callback_user_command = '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_GRID_SETTINGS =
is_layout = gd_layout
it_fieldcat = fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = var_tab
it_events = gt_events
* IT_EVENT_EXIT =
IS_PRINT = gd_prntparams
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_op
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.
*------------------------------------------------------------------*
* FORM USER_COMMAND *
*------------------------------------------------------------------*
* --> R_UCOMM *
* --> RS_SELFIELD *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
* Check function code
CASE r_ucomm.
WHEN '&IC1'.
** Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EQUNR'.
** Read data table, using index of row user clicked on
READ TABLE it_op INTO wa_op INDEX rs_selfield-tabindex.
* Set parameter ID for transaction screen field
SET PARAMETER ID 'EQN' FIELD wa_op-equnr.
CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. "user_commandRegards,
Morris Bond.
Reward Points if Helpful.
2008 Apr 02 6:47 AM
sample program for interactive ALV
&----
*& AS : ALV report displaying all the transaction codes in SAP
*& User can click any tcode on ALV and go to the same .The ALV displays
*& first 25 records and on refreshing displays the next set
*& of 25 records and so on
*& *
&----
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
2008 Apr 02 6:51 AM
HI,
see the code
FORM TEST using comm like sy-ucomm
sel type slis_selfield.
read table itab into wa_itab index sel-tabindex.
*from wa_itab u can move the values to desired variables
endform.
rgds,
bharat.
2008 Apr 02 6:54 AM
Hi,
Have a look on the folowing code,it displays the secondary list
based on the field EBELN in first level report.
===================================================================
This report was initially created by ALVRobot.com.ar
Please, read terms and conditions on the site.
===================================================================
Author:
16.11.07 -
*
===================================================================
report ZSDN_PRG1.
========================== Global definitions ====================
TYPE-POOLS SLIS.
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.
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.
DATA: V_REPID TYPE SY-REPID,
I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT TYPE SLIS_FIELDCAT_ALV,
I_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST ALV REPORT',
I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDARY ALV REPORT'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM FLDCATALOG.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM DISPLAY_ALV_REPORT.
FORM FLDCATALOG.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'EBELN'.
WA_FLDCAT-SELTEXT_M = 'PO NUMBER'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'AEDAT'.
WA_FLDCAT-SELTEXT_M = 'DATE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'BUKRS'.
WA_FLDCAT-SELTEXT_M = 'DOCUMENT TYPE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-TABNAME = 'IT_EKKO'.
WA_FLDCAT-FIELDNAME = 'LIFNR'.
WA_FLDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FLDCAT TO I_FLDCAT.
CLEAR WA_FLDCAT.
ENDFORM.
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR
FROM EKKO INTO TABLE IT_EKKO.
ENDFORM.
FORM DISPLAY_ALV_REPORT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = I_FLDCAT[]
I_SAVE = 'A'
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.
FORM USER_COMMAND USING R_COMM TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_COMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'EBELN'.
SET PARAMETER ID 'BES' FIELD WA_EKKO-EBELN. " BES is data element of EBELN
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM FLDCAT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM DISPLAY_ALV_REPORT_EKPO.
ENDIF.
ENDCASE.
ENDFORM.
FORM FLDCAT_EKPO.
WA_FLDCAT1-TABNAME = 'IT_EKPO'.
WA_FLDCAT1-FIELDNAME = 'EBELN'.
WA_FLDCAT1-SELTEXT_M = 'PO NUMBER'.
APPEND WA_FLDCAT1 TO I_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-TABNAME = 'IT_EKPO'.
WA_FLDCAT1-FIELDNAME = 'EBELP'.
WA_FLDCAT1-SELTEXT_M = 'LINE NO'.
APPEND WA_FLDCAT1 TO I_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-TABNAME = 'IT_EKPO'.
WA_FLDCAT1-FIELDNAME = 'MATNR'.
WA_FLDCAT1-SELTEXT_M = 'MATERIAL NUMBER'.
APPEND WA_FLDCAT1 TO I_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-TABNAME = 'IT_EKPO'.
WA_FLDCAT1-FIELDNAME = 'MENGE'.
WA_FLDCAT1-SELTEXT_M = 'QUANTITY'.
APPEND WA_FLDCAT1 TO I_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-TABNAME = 'IT_EKPO'.
WA_FLDCAT1-FIELDNAME = 'MEINS'.
WA_FLDCAT1-SELTEXT_M = 'BASE UNIT OF MEASURE'.
APPEND WA_FLDCAT1 TO I_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-TABNAME = 'IT_EKPO'.
WA_FLDCAT1-FIELDNAME = 'NETPR'.
WA_FLDCAT1-SELTEXT_M = 'PRICE'.
APPEND WA_FLDCAT1 TO I_FLDCAT1.
CLEAR WA_FLDCAT1.
ENDFORM.
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR
INTO TABLE IT_EKPO
FROM EKPO.
ENDFORM.
FORM DISPLAY_ALV_REPORT_EKPO.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
IT_FIELDCAT = I_FLDCAT1[]
I_SAVE = 'A'
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.
REFRESH: IT_EKPO,I_FLDCAT1.
ENDFORM.
Reward,if useful.
Thanks,
Chandu
2008 Apr 02 10:32 AM
Hi,
Please see the code below:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZMPMA01A'
I_CALLBACK_USER_COMMAND = 'USER-COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = ITFLD[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 25
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 115
I_SCREEN_END_LINE = 20
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_PLAN
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.
WHEN 'EXIT' .
CALL SCREEN 112.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
&----
*& Form USER-COMMAND
&----
text
----
--> p1 text
<-- p2 text
----
FORM USER-COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE
SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'ERDAT'
OR RS_SELFIELD-FIELDNAME = 'AUFNR'
OR RS_SELFIELD-FIELDNAME = 'OPERN'
OR RS_SELFIELD-FIELDNAME = 'QMNUM'
OR RS_SELFIELD-FIELDNAME = 'TPLNR'.
*MOVE-CORRESPONDING RS_SELFIELD to SPFLI.
READ TABLE IT_PLAN index RS_SELFIELD-tabindex
INTO WA_PLAN.
SELECT SINGLE *
FROM ZIRPACTIVITY
INTO zirpactivity
WHERE ERDAT = WA_PLAN-ERDAT AND
AUFNR = WA_PLAN-AUFNR AND
OPERN = WA_PLAN-OPERN AND
QMNUM = WA_PLAN-QMNUM AND
TPLNR = WA_PLAN-TPLNR.
IF SY-SUBRC = 0.
*
CALL SCREEN 112.
ENDIF.
ENDCASE.
ENDFORM. " USER-COMMAND
Hope this helps.
Reward if helpful.
Regards,
Sipra
2008 Apr 02 11:22 AM
REPORT intractive.
TYPE-POOLS: slis.
TABLES: kna1,vbak.
TYPES: BEGIN OF ty_kna1,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
END OF ty_kna1.
TYPES: BEGIN OF ty_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
END OF ty_vbak.
DATA: it_kna1 TYPE TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1,
it_vbak TYPE TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_event TYPE slis_t_event,
wa_event TYPE slis_alv_event,
it_listheader TYPE slis_t_listheader,
wa_listheader TYPE slis_listheader,
wa_layout TYPE slis_layout_alv ,
hline TYPE slis_listheader.
wa_selfield TYPE slis_selfield.
DATA: i_title_KNA1 TYPE lvc_title VALUE 'FIRST LIST DISPLAYED',
i_title_VBAK TYPE lvc_title VALUE 'SECONDRY LIST DISPLAYED'.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr DEFAULT 1000 TO 1500.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS: r1 RADIOBUTTON GROUP g1 DEFAULT 'X'.
PARAMETERS: r2 RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b2.
INITIALIZATION.
PERFORM layout.
PERFORM fieldcat_kna1.
PERFORM event.
PERFORM eventpopulate.
START-OF-SELECTION.
PERFORM datafetch_kna1.
IF r1 = 'X'.
PERFORM display.
ENDIF.
IF r2 = 'X'.
PERFORM grid.
ENDIF.
&----
*& Form fieldcat
&----
text
----
FORM fieldcat_kna1.
**************FOR THE TABLE KNA1**********************
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-seltext_l = 'CUSTOMER NUMBER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C11'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LAND1'.
wa_fieldcat-seltext_l = 'COUNTRY CODE'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-emphasize = 'C61'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_l = 'CUSTOMER NAME'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C31'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ORT01'.
wa_fieldcat-seltext_l = 'COUNTRY '.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C71'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************************************************************
ENDFORM. "fieldcat
&----
*& Form datafetch
&----
text
----
FORM datafetch_kna1.
SELECT kunnr land1 name1 ort01
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN s_kunnr.
ENDFORM. "datafetch
&----
*& Form LAYOUT
&----
text
----
FORM layout.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
ENDFORM. "LAYOUT
&----
*& Form display
&----
text
----
FORM display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET =
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_kna1
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
&----
*& Form GRID
&----
text
----
--> p1 text
<-- p2 text
----
FORM grid .
*******************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = '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_KNA1
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_kna1
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. "GRID
&----
*& Form EVENT
&----
text
----
--> p1 text
<-- p2 text
----
FORM event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event
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
&----
*& Form eventpopulate
&----
text
----
--> p1 text
<-- p2 text
----
FORM eventpopulate .
READ TABLE it_event INTO wa_event WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc EQ 0.
wa_event-form = 'TOP_OF_PAGE'.
MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.
ENDIF.
READ TABLE it_event INTO wa_event WITH KEY name = 'END_OF_LIST'.
IF sy-subrc EQ 0.
wa_event-form = 'END_OF_LIST'.
MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.
ENDIF.
READ TABLE it_event INTO wa_event WITH KEY name = 'USER_COMMAND'.
IF sy-subrc EQ 0.
wa_event-form = 'USER_COMMAND'.
MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.
ENDIF.
ENDFORM. " eventpopulate
&----
*& Form top-of-page
&----
text
----
FORM top_of_page.
hline-typ = 'H'.
hline-info = 'Customer Details'.
APPEND hline TO it_listheader.
CLEAR hline.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'JELOGO'
I_END_OF_LIST_GRID =
I_ALV_FORM =
.
REFRESH it_listheader.
ENDFORM. "top-of-page
&----
*& Form END-OF-PAGE
&----
text
----
FORM end_of_list.
WRITE:/ 'JAGADISH RAJ KUMAR'.
ENDFORM. "end-of-LIST
&----
*& Form USER-COMMAND
&----
text
----
-->V_UCOMM text
----
FORM USER_COMMAND
USING U_COMM TYPE SY-UCOMM
R_SELFIELD TYPE SLIS_SELFIELD.
SELECT kunnr vbeln erdat ernam
FROM vbak
INTO corresponding fields of TABLE it_vbak
WHERE kunnr = R_SELFIELD-value.
PERFORM fieldcat_vbak.
PERFORM display_vbak.
ENDFORM. "USER-COMMAND
&----
*& Form FIELDCAT_VBAK
&----
text
----
FORM fieldcat_vbak.
refresh it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_l = 'SALES ORDER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C11'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-seltext_l = 'CREATED ON'.
wa_fieldcat-datatype = 'DATS'.
wa_fieldcat-outputlen = 12.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-seltext_l = 'CREATED BY'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C61'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-cfieldname = 'NETWR'.
wa_fieldcat-seltext_l = 'NET VALUE'.
wa_fieldcat-datatype = 'CURR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 4.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "FIELDCAT_VBAK
*&----
*& Form DISPLAY_VBAK
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_vbak .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_VBAK
I_GRID_SETTINGS =
IS_LAYOUT = wa_layout
IT_FIELDCAT = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = it_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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_vbak
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_VBAK
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |