Application Development 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: 

ALV report

Former Member
0 Kudos

Hi all

In ALV report when I click on a particular field for ex if I click on material number It should display description of that martial number in another screen (like at selection screen operation) . How to do this? Please Help me.

Regards

Prajwal K.

2 REPLIES 2

Former Member
0 Kudos

hi!

Have a look on this sample report.

You have to assign the Events to it and populate it

REPORT YINTERACTIVE_ALV .

tables: vbrk.

type-pools slis.

data: it_vbrk like vbrk occurs 0 with header line,

it_vbrp like vbrp occurs 0 with header line,

wk_vbeln like vbrk-vbeln,

wk_vbrk like it_vbrk.

selection-screen begin of block block1.

select-options: so_vbeln for vbrk-vbeln,

so_fkdat for vbrk-fkdat obligatory,

so_kunag for vbrk-kunag.

selection-screen end of block block1.

*VARIABLES FOR ALV.

DATA:

AFIELD TYPE SLIS_FIELDCAT_ALV ,

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

V_REPID LIKE SY-REPID ,

IT_EVENTS TYPE SLIS_T_EVENT,

WK_EVENTS LIKE LINE OF IT_EVENTS,

wk_layout TYPE slis_layout_alv,

wa_color TYPE lvc_s_scol,

IT_LIST_COMMENTS TYPE SLIS_T_LISTHEADER,

WK_LIST_COMMENTS LIKE LINE OF IT_LIST_COMMENTS,

i_sort TYPE slis_t_sortinfo_alv,

w_sort LIKE LINE OF i_sort.

CONSTANTS: C_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME

VALUE 'F_TOP_OF_PAGE'.

start-of-selection.

perform get_maindata.

perform it_events.

perform populate_events.

perform display_maindata.

&----


*& Form GET_MAINDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form GET_MAINDATA .

SELECT * FROM vbrk into table it_vbrk

WHERE vbeln in so_vbeln

AND fkdat in so_fkdat

AND kunag in so_kunag.

endform. " GET_MAINDATA

&----


*& Form DISPLAY_MAINDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form DISPLAY_MAINDATA .

sort it_vbrk by vbeln.

AFIELD-COL_POS = 1 .

AFIELD-FIELDNAME = 'VBELN'.

AFIELD-FIX_COLUMN = 'X'.

AFIELD-SELTEXT_M = 'Bill Docu No'.

afield-emphasize = 'C700'.

afield-hotspot = 'X'.

APPEND AFIELD TO FIELDCAT.

CLEAR AFIELD.

AFIELD-COL_POS = 2 .

AFIELD-FIELDNAME = 'FKDAT'.

AFIELD-SELTEXT_M = 'Bill Date'.

APPEND AFIELD TO FIELDCAT.

CLEAR AFIELD.

AFIELD-COL_POS = 3.

AFIELD-FIELDNAME = 'VBTYP'.

AFIELD-SELTEXT_M = 'Docu Category'.

APPEND AFIELD TO FIELDCAT.

CLEAR AFIELD.

AFIELD-COL_POS = 6 .

AFIELD-FIELDNAME = 'LAND1'.

AFIELD-SELTEXT_M = 'Desti Country'.

APPEND AFIELD TO FIELDCAT.

CLEAR AFIELD.

AFIELD-COL_POS = 7.

AFIELD-FIELDNAME = 'REGIO'.

AFIELD-SELTEXT_M = 'Region'.

APPEND AFIELD TO FIELDCAT.

CLEAR AFIELD.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_user_command = 'USER_COMMAND'

i_save = 'A'

it_fieldcat = fieldcat[]

it_events = it_events

  • is_layout = wk_layout

  • it_sort = i_sort[]

TABLES

t_outtab = it_vbrk

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_MAINDATA

&----


*& Form F_TOP_OF_PAGE

&----


FORM F_TOP_OF_PAGE.

DATA: WK_FRMDATE(10), WK_TODATE(10).

DATA: wk_fyear(4), wk_fmonth(2), wk_fday(2), wk_tyear(4),

wk_tmonth(2), wk_tday(2).

CLEAR: IT_LIST_COMMENTS[].

WK_LIST_COMMENTS-TYP = 'H'. "H=Header, S=Selection, A=Action

WK_LIST_COMMENTS-KEY = ''.

WK_LIST_COMMENTS-INFO = 'INTERACTIVE ALV'.

APPEND WK_LIST_COMMENTS TO IT_LIST_COMMENTS.

CLEAR WK_LIST_COMMENTS.

WK_LIST_COMMENTS-TYP = 'S'. " H = Header, S = Selection, A = Action

WK_LIST_COMMENTS-KEY = ''.

if so_fkdat-high <> '00000000'.

wk_fyear = so_fkdat-low+0(4).

wk_fmonth = so_fkdat-low+4(2).

wk_fday = so_fkdat-low+6(2).

wk_tyear = so_fkdat-high+0(4).

wk_tmonth = so_fkdat-high+4(2).

wk_tday = so_fkdat-high+6(2).

concatenate wk_fday '.' wk_fmonth '.' wk_fyear into wk_frmdate.

concatenate wk_tday '.' wk_tmonth '.' wk_tyear into wk_todate.

else.

wk_fyear = so_fkdat-low+0(4).

wk_fmonth = so_fkdat-low+4(2).

wk_fday = so_fkdat-low+6(2).

concatenate wk_fday '.' wk_fmonth '.' wk_fyear into wk_frmdate.

endif.

if so_fkdat-high <> '00000000'.

CONCATENATE 'FROM:' WK_FRMDATE 'TO:' WK_TODATE INTO

WK_LIST_COMMENTS-INFO SEPARATED BY SPACE.

APPEND WK_LIST_COMMENTS TO IT_LIST_COMMENTS.

elseif so_fkdat-high = '00000000'.

CONCATENATE 'FROM:' WK_FRMDATE INTO

WK_LIST_COMMENTS-INFO SEPARATED BY SPACE.

APPEND WK_LIST_COMMENTS TO IT_LIST_COMMENTS.

endif.

*FOR LOGO.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

I_LOGO = 'ENJOYSAP_LOGO'

IT_LIST_COMMENTARY = IT_LIST_COMMENTS.

ENDFORM. "F_TOP_OF_PAGE

&----


*& Form IT_EVENTS

&----


form IT_EVENTS .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IT_EVENTS.

READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO WK_EVENTS.

IF SY-SUBRC = 0.

MOVE C_FORMNAME_TOP_OF_PAGE TO WK_EVENTS-FORM.

MODIFY IT_EVENTS FROM WK_EVENTS INDEX SY-TABIX.

ENDIF.

endform. " IT_EVENTS

&----


*& Form POPULATE_EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form POPULATE_EVENTS .

READ TABLE it_events INTO WK_EVENTS WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WK_EVENTS-FORM = 'TOP_OF_PAGE'.

MODIFY it_EVENTS FROM WK_EVENTS TRANSPORTING FORM WHERE NAME =

WK_EVENTS-FORM.

ENDIF.

READ TABLE it_EVENTS INTO WK_EVENTS WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WK_EVENTS-FORM = 'USER_COMMAND'.

MODIFY it_EVENTS FROM WK_EVENTS TRANSPORTING FORM WHERE NAME =

WK_EVENTS-NAME.

ENDIF.

endform. " POPULATE_EVENTS

*&----


**& 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_vbrk INTO Wk_vbrk INDEX RS_SELFIELD-TABINDEX.

wk_vbeln = wk_vbrk-vbeln.

PERFORM BUILD_FIELDCATLOG_vbrp.

PERFORM EVENT_CALL_vbrp.

PERFORM POPULATE_EVENT_vbrp.

perform get_nextdata.

PERFORM DISPLAY_ALV_vbrp.

ENDCASE.

ENDFORM. "user_command

&----


*& Form GET_NEXTDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form GET_NEXTDATA .

clear: it_vbrp, it_vbrp[].

SELECT * FROM vbrp into table it_vbrp

WHERE vbeln = wk_vbeln.

endform. " GET_NEXTDATA

Reward me if its useful.

Regards,

Nagulan

Former Member
0 Kudos

thanks