Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

problem in interactive ALV

Former Member
0 Likes
692

Hi,

i have an ALV block list display.in that if i click on some field i have to get the selected field name.

for this i am using user_command option in the block list display.

i am receiving the selected field table name,index and the other info but the fieldname is being empty every time.

please somebody help me to get the selected field name in ALV block list display.

rgds,

Hi.

5 REPLIES 5
Read only

Former Member
0 Likes
671

Reward points if its useful

Read only

Former Member
0 Likes
671

hi,

refer to this program.

TYPE-POOLS: SLIS.

tables: znagempl, znagemplsal.

types: begin of ty_znagempl,

eno type zeno,

ename type zename,

city type zename,

country type zename,

phone type zeno,

email type zename,

end of ty_znagempl.

types: begin of ty_znagemplsal,

eno type zeno,

  • ename type zename,

basic type zbasic,

hra type zhra,

ta type zta,

da type zda,

gross type zgross,

net type znet,

end of ty_znagemplsal.

types: tt_znagempl type STANDARD TABLE OF ty_znagempl,

tt_znagemplsal type STANDARD TABLE OF ty_znagemplsal.

data: it_znagempl type tt_znagempl,

it_znagemplsal type tt_znagemplsal,

wa_znagempl type ty_znagempl,

wa_znagemplsal type ty_znagemplsal.

selection-screen begin of block b1 with frame title text-001.

select-options: s_eno for znagempl-eno.

parameters: p_ename like znagempl-ename.

selection-screen end of block b1.

if not s_eno is initial.

perform get_empl_data.

else.

message e001(znagmsg).

endif.

data: it_events type SLIS_T_EVENT,

  • it_event type SLIS_T_EVENT,

wa_events type SLIS_alv_EVENT.

data: wa_selfield type SLIS_SELFIELD,

g_ucomm type sy-ucomm.

data: it_eve type SLIS_T_EVENT.

DATA : it_field TYPE slis_t_fieldcat_alv,

it_field1 type slis_t_fieldcat_alv,

wa_field TYPE slis_fieldcat_alv,

wa_field1 type slis_fieldcat_alv.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'ENO'.

wa_field-seltext_m = 'emp_num'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'ENAME'.

wa_field-seltext_m = 'empname'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'COUNTRY'.

wa_field-seltext_m = 'empcountry'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'CITY'.

wa_field-seltext_m = 'empcity'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'PHONE'.

WA_FIELD-EDIT = 'X'.

wa_field-seltext_m = 'empphone'.

*wa_field-key = 'x'.

append wa_field to it_field.

wa_field-tabname = 'it_znagempl'.

wa_field-fieldname = 'EMAIL'.

wa_field-seltext_m = 'empmail'.

*wa_field-key = 'x'.

append wa_field to it_field.

*CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

  • IMPORTING

  • ET_EVENTS = it_eve

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

wa_events-name = 'USER_COMMAND'.

wa_events-form = 'SUB_SEC_LIST'.

append wa_events to it_events.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = 'ZALV_NAG'

  • 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 = 'znagempl'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = it_field

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = it_events

  • 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_znagempl

  • 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 SUB_SEC_LIST

&----


  • text

----


  • -->G_UCOMM text

  • -->WA_SELFIELD text

----


form SUB_SEC_LIST using g_ucomm type syucomm

wa_selfield type SLIS_SELFIELD.

if wa_selfield-fieldname = 'ENO'.

select eno basic hra ta da gross net from znagemplsal into table it_znagemplsal

where eno = wa_selfield-value.

endif.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'ENO'.

wa_field1-seltext_m = 'emp num'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

*wa_field1-tabname = 'it_znagemplsal'.

*wa_field1-fieldname = 'ename'.

*wa_field1-seltext_m = 'emp name'.

*wa_field1-key = 'x'.

*append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'BASIC'.

wa_field1-seltext_m = 'emp basic'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'HRA'.

wa_field1-seltext_m = 'emp hra'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'TA'.

wa_field1-seltext_m = 'emp ta'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'DA'.

wa_field1-seltext_m = 'emp da'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'GROSS'.

wa_field1-seltext_m = 'emp gross salary'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

wa_field1-tabname = 'znagemplsal'.

wa_field1-fieldname = 'NET'.

wa_field1-edit = 'X'.

wa_field1-seltext_m = 'emp netsalary'.

*wa_field1-key = 'x'.

append wa_field1 to it_field1.

*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

    • I_INTERFACE_CHECK = ' '

    • I_BYPASSING_BUFFER =

    • I_BUFFER_ACTIVE = ' '

    • I_CALLBACK_PROGRAM = ' '

    • I_CALLBACK_PF_STATUS_SET = ' '

    • I_CALLBACK_USER_COMMAND = ' '

    • I_STRUCTURE_NAME =

    • IS_LAYOUT =

  • IT_FIELDCAT = it_field1

    • 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 = 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_znagemplsal

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

*clear it_field1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • 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_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = it_field1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = it_eve

  • 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_znagemplsal

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

clear it_field1.

endform. "SUB_SEC_LIST

&----


*& Form get_empl_data

&----


  • text

----


form get_empl_data.

select eno ename city country phone email from znagempl into table it_znagempl

where eno in s_eno." and ename = p_ename.

endform.

regards,

sreelakshmi.

Read only

0 Likes
671

Hi,

i have written the code like this only.but in

form SUB_SEC_LIST using g_ucomm type syucomm

wa_selfield type SLIS_SELFIELD.

........

endform.

every time wa_selfield is empty.do u know the reason for that.

rgds,

Hi.

Read only

Former Member
0 Likes
671

hi

good

report yh645_secndry_alv.

type-pools: slis.

data: fieldcat type slis_t_fieldcat_alv,

fieldcat_ln like line of fieldcat,

fs_layout type slis_layout_alv,

t_layoout like standard table

of fs_layout.

data: begin of fs_spfli,

carrid type spfli-carrid,

connid type spfli-connid,

countryfr type spfli-countryfr,

cityfrom type spfli-cityfrom,

airpfrom type spfli-airpfrom,

countryto type spfli-countryto,

cityto type spfli-cityto,

airpto type spfli-airpto,

fltime type spfli-fltime,

deptime type spfli-deptime,

arrtime type spfli-arrtime,

distance type spfli-distance,

distid type spfli-distid,

fltype type spfli-fltype,

period type spfli-period,

checkbox,

color(3),

end of fs_spfli.

data:

begin of fs_table,

carrid type spfli-carrid,

connid type spfli-connid,

end of fs_table.

data: begin of fs_sflight,

check,

color(3).

include type sflight.

data:end of fs_sflight.

data:

begin of fs_table1,

carrid type sflight-carrid,

connid type sflight-connid,

fldate type sflight-fldate,

end of fs_table1.

data:

t_spfli like standard table

of fs_spfli.

data:

t_table like standard table

of fs_table.

data:

t_table1 like standard table

of fs_table1.

data:

t_sflight like standard table

of fs_sflight.

data:

t_sbook like standard table

of sbook.

data t_layout type slis_layout_alv.

select *

into corresponding fields of table t_spfli

from spfli.

perform start_list_viewer.

perform get_spfli_details.

&----


*& Form SUB1

&----


text

-


-->RT_EXTAB text

-


form sub1 using rt_extab type slis_t_extab.

data: flight type slis_extab.

flight-fcode = 'SFLIGHT'.

append flight to rt_extab.

set pf-status 'SFLIGHT'. " EXCLUDING RT_EXTAB.

endform. "SUB1

&----


*& Form START_LIST_VIEWER

&----


text

-


--> p1 text

<-- p2 text

-


form start_list_viewer .

data: pgm like sy-repid.

pgm = sy-repid.

fs_layout-box_fieldname = 'CHECKBOX'.

fs_layout-info_fieldname = 'COLOR'.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_callback_pf_status_set = 'SUB1'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'SPFLI'

is_layout = fs_layout

tables

t_outtab = t_spfli

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. " START_LIST_VIEWER

*******Process Call Back Events (Begin)**************************

form user_command using ucomm like sy-ucomm

selfield type slis_selfield.

case ucomm.

when 'SFLIGHT'.

selfield-refresh = 'X'.

perform get_spfli_details.

select *

from sflight

into corresponding fields of table t_sflight

for all entries in t_table

where carrid eq t_table-carrid

and connid eq t_table-connid.

perform display_sflight.

when 'SBOOK'.

selfield-refresh = 'X'.

perform get_sflight_details.

select *

from sbook

into corresponding fields of table t_sbook

for all entries in t_table1

where carrid eq t_table1-carrid

and connid eq t_table1-connid

and fldate eq t_table1-fldate.

perform display_sbook.

endcase.

endform. "USER_COMMAND

&----


*& Form SUB2

&----


text

-


-->RT_EXTAB text

-


form sub2 using rt_extab type slis_t_extab.

data: flight type slis_extab.

flight-fcode = 'SBOOK'.

append flight to rt_extab.

set pf-status 'SBOOK'. " EXCLUDING RT_EXTAB.

endform. "SUB2

&----


*& Form DISPLAY_SFLIGHT

&----


text

-


--> p1 text

<-- p2 text

-


form display_sflight .

data: pgm like sy-repid.

pgm = sy-repid.

clear t_layout.

fs_layout-box_fieldname = 'CHECK'.

fs_layout-info_fieldname = 'COLOR'.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_callback_pf_status_set = 'SUB2'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'SFLIGHT'

is_layout = fs_layout

tables

t_outtab = t_sflight

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_SFLIGHT

&----


*& Form GET_SPFLI_DETAILS

&----


text

-


--> p1 text

<-- p2 text

-


form get_spfli_details .

loop at t_spfli into fs_spfli.

if fs_spfli-checkbox = 'X'.

fs_spfli-color = 'C51'.

fs_spfli-checkbox = '1'.

fs_table-carrid = fs_spfli-carrid.

fs_table-connid = fs_spfli-connid.

append fs_table to t_table.

modify t_spfli from fs_spfli.

endif.

endloop.

endform. " GET_SFLIGHT_DETAILS

&----


*& Form GET_SFLIGHT_DETAILS

&----


text

-


--> p1 text

<-- p2 text

-


form get_sflight_details .

loop at t_sflight into fs_sflight.

if fs_sflight-check = 'X'.

fs_sflight-color = 'C71'.

fs_sflight-check = '1'.

fs_table1-carrid = fs_sflight-carrid.

fs_table1-connid = fs_sflight-connid.

fs_table1-fldate = fs_sflight-fldate.

append fs_table1 to t_table1.

modify t_sflight from fs_sflight.

endif.

endloop.

endform. " GET_SFLIGHT_DETAILS

&----


*& Form DISPLAY_SBOOK

&----


text

-


--> p1 text

<-- p2 text

-


form display_sbook .

data: pgm like sy-repid.

pgm = sy-repid.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_structure_name = 'SBOOK'

tables

t_outtab = t_sbook

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_SBOOK

thanks

mrutyun^

Read only

Former Member
0 Likes
671

hi,

please check my interactive alv report.

REPORT z50870alv_demo.

TYPE-POOLS : slis.

&----


*& structure declaration

&----


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

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.

&----


*& internal table and work area declaration

&----


DATA : it_ekpo TYPE STANDARD TABLE OF st_ekpo,

wa_ekpo TYPE st_ekpo,

it_ekko TYPE STANDARD TABLE OF st_ekko,

wa_ekko TYPE st_ekko,

it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

wa_layout TYPE slis_layout_alv.

&----


*& internal table and work area declaration

&----


DATA : v_ebeln TYPE ekko-ebeln.

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line TYPE slis_listheader-info,

nl_lines TYPE i,

nl_linesc(10) TYPE c.

&----


*& start-of-selection

&----


START-OF-SELECTION.

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-000.

SELECT-OPTIONS : so_ebeln FOR v_ebeln.

SELECTION-SCREEN END OF BLOCK a.

PERFORM data_retrieval.

PERFORM build_fieldcatalog1.

PERFORM build_layout.

PERFORM ekkogriddisplay_alv.

&----


*& Form build_fieldcatalog2

&----


FORM build_fieldcatalog2.

CLEAR wa_fieldcat.

REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = 'PURCHASE ORDER'.

wa_fieldcat-col_pos = 0.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-seltext_l = 'ITEM NUMBER'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EMATN'.

wa_fieldcat-seltext_l = 'MATERIAL TYPE'.

wa_fieldcat-col_pos = 2.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'MATKL'.

wa_fieldcat-seltext_l = 'MATERIAL GROUP'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'NETPR'.

wa_fieldcat-seltext_l = 'NET PRICE'.

wa_fieldcat-col_pos = 4.

wa_fieldcat-do_sum = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "build_fieldcatalog

&----


*& Form build_fieldcatalog1

&----


FORM build_fieldcatalog1.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = 'PURCHASE ORDER'.

wa_fieldcat-col_pos = 0.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSTYP'.

wa_fieldcat-seltext_l = 'DOCUMENT CATEGORY'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSART'.

wa_fieldcat-seltext_l = 'DOCUMENT TYPE'.

wa_fieldcat-col_pos = 2.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.

wa_fieldcat-seltext_l = 'DATE'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'ERNAME'.

wa_fieldcat-seltext_l = 'NAME'.

wa_fieldcat-col_pos = 4.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "build_fieldcatalog

&----


*& Form data_retrieval

&----


FORM data_retrieval.

SELECT ebeln bstyp bsart aedat ernam

FROM ekko

INTO TABLE it_ekko

WHERE ebeln IN so_ebeln.

ENDFORM. "data_retrieval

&----


*& form build_layout.

&----


FORM build_layout.

wa_layout-zebra ='X'.

wa_layout-no_vline = 'X'.

wa_layout-no_hline = 'X'.

wa_layout-colwidth_optimize = 'X'.

ENDFORM. "build_layout

&----


*& form top-of-page1

&----


FORM top-of-page1.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'PURCHASE ORDER HEADER REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Total No. of Records Selected

DESCRIBE TABLE it_ekko LINES nl_lines.

nl_linesc = nl_lines.

CONCATENATE 'Total No. of Records Selected: ' nl_linesc

INTO t_line SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = t_line.

APPEND wa_header TO t_header.

CLEAR: wa_header, t_line.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header

i_logo = 'SUN_TEST_LOGO1'.

REFRESH t_header.

ENDFORM. "top-of-page

&----


*& form top-of-page2

&----


FORM top-of-page2.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'PURCHASE ORDER ITEM REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Total No. of Records Selected

DESCRIBE TABLE it_ekpo LINES nl_lines.

nl_linesc = nl_lines.

CONCATENATE 'Total No. of Records Selected: ' nl_linesc

INTO t_line SEPARATED BY space.

wa_header-typ = 'A'.

wa_header-info = t_line.

APPEND wa_header TO t_header.

CLEAR: wa_header, t_line.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header

i_logo = 'SUN_TEST_LOGO1'.

REFRESH t_header.

ENDFORM. "top-of-page

&----


*& form set_pf_status

&----


FORM set_pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'MYMENU'.

"Copy of 'STANDARD' pf_status from fgroup 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 build_fieldcatalog2.

PERFORM ekpogriddisplay_alv.

ELSE.

MESSAGE text-002 TYPE 'I'.

ENDIF.

ENDCASE.

ENDFORM. "AT_user_command

&----


*& form ekkogriddisplay_alv.

&----


FORM ekkogriddisplay_alv.

IF it_ekko[] IS INITIAL.

MESSAGE text-001 TYPE 'I'.

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_top_of_page = 'TOP-OF-PAGE1'

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'AT_USER_COMMAND'

is_layout = wa_layout

it_fieldcat = it_fieldcat

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.

ENDIF.

ENDFORM. "listdisplay_alv

&----


*& form ekpogriddisplay_alv.

&----


FORM ekpogriddisplay_alv.

IF it_ekpo[] IS INITIAL.

MESSAGE text-003 TYPE 'I'.

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_top_of_page = 'TOP-OF-PAGE2'

i_callback_pf_status_set = 'SET_PF_STATUS'

is_layout = wa_layout

it_fieldcat = it_fieldcat

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. "ekpogriddisplay_alv

regards,

pavan t.