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

Former Member
0 Kudos

Hi all,

I have created a report in ALV it is interactive and on the click of particular field i want to open some document in pdf...

Please help on this ASAP.... with some example code..

Thanks & Regards

Ashu Singh.

1 ACCEPTED SOLUTION

former_member194669
Active Contributor
0 Kudos

Have you had a look at sample report SAP_PDF_VIEWER_DEMO already ?

3 REPLIES 3

former_member194669
Active Contributor
0 Kudos

Have you had a look at sample report SAP_PDF_VIEWER_DEMO already ?

Former Member
0 Kudos

SEE THIS CODE:

*interactive alv

&----


*& Report Y_INTERATIVE_ALV

*&

&----


*&

*&

&----


REPORT Y_INTERACTIVE_ALV.

TYPE-POOLS: SLIS.

TABLES : KNA1,KNB1,VBAK,VBAP .

data : itab like kna1 occurs 0 with header line.

data : itab1 like knb1 occurs 0 with header line.

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.

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.

SELECT * FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE itab.

************************************************************************

***----


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.

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 = 'KNA1'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

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

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

  • 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 USECOMM USING UCOMM LIKE SY-UCOMM FIELDS TYPE SLIS_SELFIELD.

READ TABLE itab INDEX FIELDS-TABINDEX.

SELECT * FROM KNB1 INTO CORRESPONDING FIELDS OF TABLE itab1 WHERE

KUNNR = itab-KUNNR.

*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 = ' '

    • I_GRID_TITLE =

    • I_GRID_SETTINGS =

    • IS_LAYOUT =

  • IT_FIELDCAT = vcat[]

    • 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

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

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

*

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'Hi Nishant'

  • I_SELECTION = 'X'

  • I_ALLOW_NO_SELECTION =

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 =

  • I_LINEMARK_FIELDNAME =

  • I_SCROLL_TO_SEL_LINE = 'X'

I_TABNAME = 'ITAB1'

I_STRUCTURE_NAME = 'KNB1'

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • I_CALLBACK_PROGRAM =

  • I_CALLBACK_USER_COMMAND =

  • IS_PRIVATE =

  • IMPORTING

  • ES_SELFIELD =

  • E_EXIT =

TABLES

T_OUTTAB = ITAB1

  • 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 points if useful

thanks and regards,

Nishant

Former Member
0 Kudos

Hi,

1. First declare the class with the hotspot event.

Class <alv grid name> definition.

Public section.

Methods:

<hotspot name> for event hotspot_click

Of cl_gui_alv_grid importing e_row_id,

E_column_id,

Es_row_no.

Endclass

2. Implement the class:

Class <alv grid name> implementation

Method <hotspot name>

Perform <ur requirement> using e_row_id,

E_column_id,

Es_row_no.

Endmethod.

Endclass.

Inside the perform open the required pdf.

Sharin