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: 

Buttons in ALV

Former Member
0 Kudos

Can someone tell me how to add buttons to the application toolbar in the ALV.

I am not using OOABAP.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Copy the gui status STANDARD_FULLSCREEN from standard program SAPLSLVC_FULLSCREEN and make required changes in that....

Dont forget to call the new gui status in ur program....

12 REPLIES 12

Former Member
0 Kudos

hi,

refer

Hope this solves your purpose.

Award points if it helps.

-Gaurang

Former Member
0 Kudos

Hi,

Check the Program BCALV_EDIT_05 ..which is the best example for the appplication tool bar ...

Reward Points if it is Useful.

Thanks,

Manjunath MS

Former Member
0 Kudos

hi,

sorry the prgm is BCALV_GRID_05

Thanks,

Manjunath MS

Former Member
0 Kudos

please see the below coding and it was sample which will have the buttons in the alv report ...

REPORT ZTESTALV.

TYPE-POOLS: SLIS.

*- Fieldcatalog

DATA: IT_FIELDCAT TYPE LVC_T_FCAT,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV..

*- For Events

DATA:IT_EVENTS TYPE SLIS_T_EVENT.

DATA: X_FIELDCAT TYPE LVC_S_FCAT,

X_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA:X_LAYOUT TYPE LVC_S_LAYO.

"{ FOR DISABLE

DATA: LS_EDIT TYPE LVC_S_STYL,

LT_EDIT TYPE LVC_T_STYL.

"} FOR DISABLE

DATA: BEGIN OF IT_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

HANDLE_STYLE TYPE LVC_T_STYL, "FOR DISABLE

<b> BUTTON(10),</b>

END OF IT_VBAP.

DATA: LS_OUTTAB LIKE LINE OF IT_VBAP.

SELECT VBELN

POSNR

UP TO 10 ROWS

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

FROM VBAP.

DATA:L_POS TYPE I VALUE 1.

CLEAR: L_POS.

L_POS = L_POS + 1.

<b>X_FIELDCAT-SELTEXT = 'Button'.

x_fieldcat-fieldname = 'BUTTON'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = L_POS.

X_FIELDCAT-OUTPUTLEN = '10'.

X_FIELDCAT-style = X_FIELDCAT-style bit-xor

cl_gui_alv_grid=>MC_STYLE_BUTTON bit-xor

cl_gui_alv_grid=>MC_STYLE_ENABLEd.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.</b>

L_POS = L_POS + 1.

X_FIELDCAT-SELTEXT = 'VBELN'.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = L_POS.

X_FIELDCAT-EDIT = 'X'.

X_FIELDCAT-OUTPUTLEN = '10'.

x_fieldcat-ref_field = 'VBELN'.

x_fieldcat-ref_table = 'VBAK'.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

L_POS = L_POS + 1.

X_FIELDCAT-SELTEXT = 'POSNR'.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = L_POS.

X_FIELDCAT-EDIT = 'X'.

X_FIELDCAT-OUTPUTLEN = '5'.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

L_POS = L_POS + 1.

"{FOR DISABLE HERE 6ROW IS DISABLED

SY-TABIX = 6.

LS_EDIT-FIELDNAME = 'VBELN'.

LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.

LS_EDIT-STYLE2 = SPACE.

LS_EDIT-STYLE3 = SPACE.

LS_EDIT-STYLE4 = SPACE.

LS_EDIT-MAXLEN = 10.

INSERT LS_EDIT INTO TABLE LT_EDIT.

*LS_EDIT-FIELDNAME = 'POSNR'.

*LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.

*LS_EDIT-STYLE2 = SPACE.

*LS_EDIT-STYLE3 = SPACE.

*LS_EDIT-STYLE4 = SPACE.

*LS_EDIT-MAXLEN = 6.

*INSERT LS_EDIT INTO TABLE LT_EDIT.

INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.

MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB TRANSPORTING

HANDLE_STYLE .

X_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.

"} UP TO HERE

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT_LVC = X_LAYOUT

IT_FIELDCAT_LVC = IT_FIELDCAT

TABLES

T_OUTTAB = IT_VBAP[]

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.

girish

Former Member
0 Kudos

hi,

data : gd_repid like sy-repid.

gd_repid = sy-repid.

we can call pf-status in a function module reuse_alv_grid_display.

exporting.

programme = gd_repid.

set-pf-status = 'SET_PF_STATUS'.

t_fieldcat = d_fieldcat.

importing.

t_outtab = itab.

exceptions.

form set_pf_status using rt_extab type slis_t_extab.

SET PF-STATUS 'NEWSTATUS'.

endform.

double click on NEWSTATUS.it will take u to new window where in u can include buttons which u require to appear on the report after selecting activate.

Reward with points if helpful.

Former Member
0 Kudos
REPORT ZTESTALV.
 
TYPE-POOLS: SLIS.
 
*- Fieldcatalog
DATA: IT_FIELDCAT  TYPE LVC_T_FCAT,
      IT_FIELDCAT1  TYPE SLIS_T_FIELDCAT_ALV..
*- For Events
DATA:IT_EVENTS TYPE SLIS_T_EVENT.
 
DATA:  X_FIELDCAT  TYPE LVC_S_FCAT,
        X_FIELDCAT1  TYPE SLIS_FIELDCAT_ALV.
DATA:X_LAYOUT TYPE LVC_S_LAYO.
"{ FOR DISABLE
DATA: LS_EDIT TYPE LVC_S_STYL,
      LT_EDIT TYPE LVC_T_STYL.
"} FOR DISABLE
DATA: BEGIN OF IT_VBAP OCCURS 0,
      VBELN LIKE VBAP-VBELN,
      POSNR LIKE VBAP-POSNR,
      HANDLE_STYLE TYPE LVC_T_STYL, "FOR DISABLE
   <b>   BUTTON(10),</b>
     END OF IT_VBAP.
DATA: LS_OUTTAB LIKE LINE OF IT_VBAP.
SELECT VBELN
       POSNR
       UP TO 10 ROWS
      INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
      FROM VBAP.
 
 
DATA:L_POS TYPE I VALUE 1.
CLEAR: L_POS.
L_POS = L_POS + 1.
 
<b>X_FIELDCAT-SELTEXT = 'Button'.
x_fieldcat-fieldname = 'BUTTON'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS    = L_POS.
X_FIELDCAT-OUTPUTLEN = '10'.
 
X_FIELDCAT-style = X_FIELDCAT-style bit-xor
                  cl_gui_alv_grid=>MC_STYLE_BUTTON bit-xor
                  cl_gui_alv_grid=>MC_STYLE_ENABLEd.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.</b>
 
L_POS = L_POS + 1.
 
 
X_FIELDCAT-SELTEXT = 'VBELN'.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS    = L_POS.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-OUTPUTLEN = '10'.
x_fieldcat-ref_field = 'VBELN'.
x_fieldcat-ref_table = 'VBAK'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
 
X_FIELDCAT-SELTEXT = 'POSNR'.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS    = L_POS.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-OUTPUTLEN = '5'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
"{FOR DISABLE HERE 6ROW IS DISABLED
SY-TABIX = 6.
LS_EDIT-FIELDNAME = 'VBELN'.
LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
LS_EDIT-STYLE2 = SPACE.
LS_EDIT-STYLE3 = SPACE.
LS_EDIT-STYLE4 = SPACE.
LS_EDIT-MAXLEN = 10.
INSERT LS_EDIT INTO TABLE LT_EDIT.
*LS_EDIT-FIELDNAME = 'POSNR'.
*LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
*LS_EDIT-STYLE2 = SPACE.
*LS_EDIT-STYLE3 = SPACE.
*LS_EDIT-STYLE4 = SPACE.
*LS_EDIT-MAXLEN = 6.
*INSERT LS_EDIT INTO TABLE LT_EDIT.
INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.
MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB  TRANSPORTING
                                  HANDLE_STYLE .
 
X_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.
"} UP TO HERE
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT_LVC      = X_LAYOUT
    IT_FIELDCAT_LVC    = IT_FIELDCAT
  TABLES
    T_OUTTAB           = IT_VBAP[]
  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.



Former Member
0 Kudos

I am using REUSE_ALV_HIERSEQ_LIST_DISPLAY.Can the above specified FM be used after this FM??

Former Member
0 Kudos

Hi,

Copy the gui status STANDARD_FULLSCREEN from standard program SAPLSLVC_FULLSCREEN and make required changes in that....

Dont forget to call the new gui status in ur program....

Former Member
0 Kudos

hi,

check these sites.

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/webDynproABAP-ALVControllingStandard+Buttons&

chk this.

alv-pfstatus:

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_pfstatus.htm

then how to capture that button click.

chk here.

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_ucomm.htm

Former Member
0 Kudos

How can we copy the status from one program to another.And when i copy the status will i copy the Functions of the buttons associated with it or i will have to write the whole thing again?

0 Kudos

Goto SE41.

type the std prog name and std status name.

then copy status( Ctrl+F6).

give ur new status name....

no u need not to copy anything else...