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

Hi experts Interactive alv

Former Member
0 Likes
579

Build and display ALV GRID

i am using these tables :vbak ,

vbap,

t001w,

t001k and one custom table.

So i want to develop a interactive ALV .

A new ABAP program will be executed to display the ALV Grid.

user actions:

1 double click on sales order no jump to va03 tcode

2 double click on item : diplay item alv grid

3 double click custom field: it will go to screen 4004

if u have sample code plz me.

its very urgent.

Good answers will be rewarded for sure.

Thanks and regards,

shilpa.

1 ACCEPTED SOLUTION
Read only

GauthamV
Active Contributor
0 Likes
545

hi,

search BCALV* in se38 u will get lots of alv interactive reports.

use them in ur program and make report with ur tables.

Build and display ALV GRID

i am using these tables :vbak ,

vbap,

t001w,

t001k and one custom table.

So i want to develop a interactive ALV .

A new ABAP program will be executed to display the ALV Grid.

user actions:

1 double click on sales order no jump to va03 tcode

2 double click on item : diplay item alv grid

3 double click custom field: it will go to screen 4004

if u have sample code plz me.

its very urgent.

Good answers will be rewarded for sure.

Thanks and regards,

shilpa.

3 REPLIES 3
Read only

GauthamV
Active Contributor
0 Likes
546

hi,

search BCALV* in se38 u will get lots of alv interactive reports.

use them in ur program and make report with ur tables.

Read only

Former Member
0 Likes
545

hi,

below is sample example for the call transaction va02 which may be useful,

type-pools: slis.

types: BEGIN OF TY_KNA1,

KUNNR TYPE KUNNR,

NAME1 TYPE NAME1,

ORT01 TYPE ORT01,

END OF TY_KNA1.

TYPES: BEGIN OF TY_VBAK,

VBELN TYPE VBELN,

ERNAM TYPE ERNAM,

ERDAT TYPE ERDAT,

NETWR TYPE NETWR,

WAERK TYPE WAERK,

END OF TY_VBAK.

*&--


WORK AREA & TABLE DECLARATION--


DATA: W_KNA1 TYPE TY_KNA1.

DATA: T_KNA1 TYPE STANDARD TABLE OF TY_KNA1 INITIAL SIZE 1.

DATA: W_VBAK TYPE TY_VBAK.

DATA: T_VBAK TYPE STANDARD TABLE OF TY_VBAK INITIAL SIZE 1.

*&--


FIELDCAT TABLE & WORK AREA--


DATA: W_FCAT TYPE SLIS_FIELDCAT_ALV.

DATA: T_FCAT TYPE SLIS_T_FIELDCAT_ALV.

*&----


DATA: W_FCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA: T_FCAT1 TYPE SLIS_T_FIELDCAT_ALV.

*&--


EVENT TABLE AND WORK AREA--


DATA: W_EVENTS TYPE SLIS_ALV_EVENT.

DATA: T_EVENTS TYPE SLIS_T_EVENT.

*&----


DATA: W_EVENTS1 TYPE SLIS_ALV_EVENT.

DATA: T_EVENTS1 TYPE SLIS_T_EVENT.

*&--


COMMENT TABLE & WORK AREA--


DATA: W_COMMENT TYPE SLIS_LISTHEADER.

DATA: T_COMMENT TYPE SLIS_T_LISTHEADER.

*&----


DATA: W_COMMENT1 TYPE SLIS_LISTHEADER.

DATA: T_COMMENT1 TYPE SLIS_T_LISTHEADER.

*&----


APPENDING FCAT

-


W_FCAT-COL_POS = 1.

W_FCAT-FIELDNAME = 'KUNNR'.

W_FCAT-SELTEXT_M = 'CUST. NO'.

W_FCAT-HOTSPOT = 'X'. "HOT SPOT HAND SYMBOL

W_FCAT-EMPHASIZE = 'C119'. "FOR COLORING THE COLUMN 1

APPEND W_FCAT TO T_FCAT.

CLEAR W_FCAT.

W_FCAT-COL_POS = 2.

W_FCAT-FIELDNAME = 'NAME1'.

W_FCAT-SELTEXT_M = 'CUST. NAME'.

APPEND W_FCAT TO T_FCAT.

W_FCAT-COL_POS = 3.

W_FCAT-FIELDNAME = 'ORT01'.

W_FCAT-SELTEXT_M = 'CITY'.

APPEND W_FCAT TO T_FCAT.

*&----


W_FCAT1-COL_POS = 1.

W_FCAT1-FIELDNAME = 'VBELN'.

W_FCAT1-SELTEXT_M = 'ORDER NO'.

W_FCAT1-EMPHASIZE = 'C519'.

APPEND W_FCAT1 TO T_FCAT1.

CLEAR W_FCAT.

W_FCAT1-COL_POS = 2.

W_FCAT1-FIELDNAME = 'ERNAM'.

W_FCAT1-SELTEXT_M = 'NAME OF PARTY'.

APPEND W_FCAT1 TO T_FCAT1.

W_FCAT1-COL_POS = 3.

W_FCAT1-FIELDNAME = 'ERDAT'.

W_FCAT1-SELTEXT_M = 'DATE'.

APPEND W_FCAT1 TO T_FCAT1.

W_FCAT1-COL_POS = 4.

W_FCAT1-FIELDNAME = 'NETWR'.

W_FCAT1-SELTEXT_M = 'ORDER VALUE'.

APPEND W_FCAT1 TO T_FCAT1.

W_FCAT1-COL_POS = 5.

W_FCAT1-FIELDNAME = 'WAERK'.

W_FCAT1-SELTEXT_M = 'CURRENCY'.

APPEND W_FCAT1 TO T_FCAT1.

*&--


APPEND COMMENTRY--


W_COMMENT-TYP = 'H'.

W_COMMENT-INFO = 'CUSTOMER DETAILS'.

APPEND W_COMMENT TO T_COMMENT.

CLEAR W_COMMENT.

*&--


APPEND EVENTS TABLE--


W_EVENTS-NAME = 'TOP_OF_PAGE'.

W_EVENTS-FORM = 'TOPPAGE'.

APPEND W_EVENTS TO T_EVENTS.

W_EVENTS-NAME = 'USER_COMMAND'.

W_EVENTS-FORM = 'SUB2'.

APPEND W_EVENTS TO T_EVENTS.

W_EVENTS1-NAME = 'TOP_OF_PAGE'.

W_EVENTS1-FORM = 'TOPPAGE1'.

APPEND W_EVENTS1 TO T_EVENTS1.

CLEAR W_EVENTS1.

W_EVENTS1-NAME = 'USER_COMMAND'.

W_EVENTS1-FORM = 'SUB3'.

APPEND W_EVENTS1 TO T_EVENTS1.

*&----


SELECT-OPTIONS: CUSTNO FOR W_KNA1-KUNNR.

*&----


SELECT KUNNR

NAME1

ORT01 FROM KNA1 INTO TABLE T_KNA1

WHERE KUNNR IN CUSTNO.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

*I_BACKGROUND_ID = 'BIKE'

I_GRID_TITLE = 'CUSTOMER DETAILS'

IT_FIELDCAT = T_FCAT

IT_EVENTS = T_EVENTS

TABLES

T_OUTTAB = T_KNA1 .

*&----


FORM TOPPAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_COMMENT

I_LOGO = 'LOGO_ALV'.

ENDFORM. "END OF TOPPAGE SUB.

*&----


FORM SUB2 USING UCOMM LIKE SY-UCOMM FIELDS1 TYPE SLIS_SELFIELD.

READ TABLE T_KNA1 INTO W_KNA1 INDEX FIELDS1-TABINDEX.

SELECT VBELN

ERNAM

ERDAT

NETWR

WAERK

FROM VBAK

INTO TABLE T_VBAK

WHERE KUNNR = W_KNA1-KUNNR.

*&----


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

*I_BACKGROUND_ID = 'KALEEM'

I_GRID_TITLE = 'LIST OF ORDERS'

IT_FIELDCAT = T_FCAT1

IT_EVENTS = T_EVENTS1

TABLES

T_OUTTAB = T_VBAK.

ENDFORM. "END OF SUB2.

*&----


FORM TOPPAGE1.

*&--


APPEND COMMENTRYOF SECONDRY SCREEN--


W_COMMENT1-TYP = 'H'.

W_COMMENT1-INFO = 'LIST OF ORDERS'.

APPEND W_COMMENT1 TO T_COMMENT1.

W_COMMENT1-TYP = 'S'.

W_COMMENT1-KEY = 'CUSTOMER'.

W_COMMENT1-INFO = W_KNA1-KUNNR.

APPEND W_COMMENT1 TO T_COMMENT1.

CLEAR W_COMMENT.

W_COMMENT1-TYP = 'A'.

W_COMMENT1-INFO = W_KNA1-NAME1.

APPEND W_COMMENT1 TO T_COMMENT1.

CLEAR W_COMMENT1.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_COMMENT1

I_LOGO = 'LOGO_ALV'

.

REFRESH T_COMMENT1.

ENDFORM. "END OF TOPPAGE1

FORM SUB3 USING UCOMM LIKE SY-UCOMM FIELDS1 TYPE SLIS_SELFIELD.

READ TABLE T_VBAK INTO W_VBAK INDEX FIELDS1-TABINDEX.

SET PARAMETER ID 'VBAk' FIELD W_VBAK-VBELN.

CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.

ENDFORM.

reward if useful.

thanks and regards

Read only

Former Member
0 Likes
545

I found the way to manage hotspot with function 'REUSE_ALV_GRID_DISPLAY' :

I am just giving u the brief idea to make hot spot in intractive ALV .

u just use ur T-code in place of 'YYYY' and parameter value in place of 'XXX' in the hot spot .

1) If not yet done, declare type group :

Code: Select all

TYPE-POOLS: slis.

2) Declare callback program and callback subroutine. SAP must know which subroutine of which program must be executed when clicking on a hotspot of an ALV grid :

Code: Select all

data : w_callback_subroutine TYPE slis_formname,

w_callback_program LIKE sy-repid.

3) Assign value to those two variables before calling ALV grid :

Code: Select all

w_callback_program = sy-repid.

w_callback_subroutine = 'USER_COMMAND'.

(or any other subroutine name but in upper case)

4) Define subroutine handling double-click :

Code: Select all

FORM user_command USING p_ucomm LIKE sy-ucomm

p_selfield TYPE slis_selfield.

CASE p_ucomm.

WHEN '&IC1'. " SAP standard code for double-clicking

SET PARAMETER ID 'XXX' FIELD p_selfield-value.

CALL TRANSACTION 'YYYY'.

ENDCASE.

ENDFORM.

5) Call ALV grid function :

Code: Select all

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = w_callback_program

it_fieldcat = it_fieldcat

i_callback_user_command = w_callback_subroutine

TABLES

t_outtab = it_data

EXCEPTIONS

program_error = 1

OTHERS = 2.

N.B. : don't forget in your catalog to set field 'hotspot' to 'X' for the desired field.