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

How to use PUSHBUTTON in ABAP Program?

Former Member
0 Likes
6,505

Hi, I'm not able to get any output for the below code.

SELECTION-SCREEN BEGIN OF BLOCK TT WITH FRAME TITLE TEXT-004.

PARAMETERS : X(15) TYPE C DEFAULT 'HI SAPERS'.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(70) TEXT-000.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN ULINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN PUSHBUTTON 1(10) TEXT-001 USER-COMMAND pb01.

SELECTION-SCREEN PUSHBUTTON 20(10) TEXT-002 USER-COMMAND pb02.

SELECTION-SCREEN END OF BLOCK TT.

*DATA: OK_CODE LIKE SY-UCOMM.

AT SELECTION-SCREEN.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'PB01'.

write:/ 'hello'.

WRITE : / 'STRING ENTERED IS :', X.

WHEN 'PB02'.

LEAVE PROGRAM.

ENDCASE.

WRITE : / '!! AFTER EVENT !!'.

ty

10 REPLIES 10
Read only

Former Member
0 Likes
3,076

Ater AT SELECTION SCREEN insert this code

START-OF-SELECTION.

END-OF-SELECTION.

WRITE 😕 'report output'.

Now you should see the output.

Regards,

Ravi

Read only

Former Member
0 Likes
3,076

hi,

AT user-command event doesnt get triggered when you click buttons on selection screen.

Regards,

Sailaja.

Read only

0 Likes
3,076

If AT user-command event doesnt get triggered when you click buttons on selection screen. then how to trigger them...

the other options are not working

thx for ur suggestions guys.

Read only

0 Likes
3,076

Hi

Check below sample code.

TABLES sscrfields.

DATA flag(1) TYPE c.

SELECTION-SCREEN:
    BEGIN OF LINE,
      PUSHBUTTON 2(10) but1 USER-COMMAND cli1,
      PUSHBUTTON 12(10) but2 USER-COMMAND cli2,
    END OF LINE,
    BEGIN OF LINE,
      PUSHBUTTON 2(10) but3 USER-COMMAND cli3,
      PUSHBUTTON 12(10) but4 USER-COMMAND cli4,
    END OF LINE.

AT SELECTION-SCREEN.

  CASE sscrfields-ucomm.
    WHEN 'CLI1'.
      flag = '1'.
    WHEN 'CLI2'.
      flag = '2'.
    WHEN 'CLI3'.
      flag = '3'.
    WHEN 'CLI4'.
      flag = '4'.
  ENDCASE.

INITIALIZATION.
  MOVE: 'Button1' to but1,
        'Button2' to but2,
        'Button3' to but3,
        'Button4' to but4.

START-OF-SELECTION.

  CASE flag.
    WHEN '1'.
      WRITE / 'Button 1 was clicked'.
    WHEN '2'.
      WRITE / 'Button 2 was clicked'.
    WHEN '3'.
      WRITE / 'Button 3 was clicked'.
    WHEN '4'.
      WRITE / 'Button 4 was clicked'.
    WHEN OTHERS.
      WRITE / 'No Button was clicked'.
  ENDCASE.

Note that WRITE statements will not work in AT SELECTION-SCREEN events, alternativey you can use some popup to display the same.

You can also check demo program: DEMO_SEL_SCREEN_PUSHBUTTON

Hope this clarifies you.

Kind Regards

Eswar

Read only

Former Member
0 Likes
3,076

HI,

SELECTION-SCREEN BEGIN OF BLOCK TT WITH FRAME TITLE TEXT-004.

PARAMETERS : X(15) TYPE C DEFAULT 'HI SAPERS'.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(70) TEXT-000.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN ULINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN PUSHBUTTON 1(10) TEXT-001 USER-COMMAND pb01.

SELECTION-SCREEN PUSHBUTTON 20(10) TEXT-002 USER-COMMAND pb02.

SELECTION-SCREEN END OF BLOCK TT.

*DATA: OK_CODE LIKE SY-UCOMM.

AT SELECTION-SCREEN.

<b>start-of-selection.</b>

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'PB01'.

write:/ 'hello'.

WRITE : / 'STRING ENTERED IS :', X.

WHEN 'PB02'.

LEAVE PROGRAM.

ENDCASE.

WRITE : / '!! AFTER EVENT !!'.

Regards

amole

Read only

Former Member
0 Likes
3,076

hi, U have to defind function code for that push button by the statement SET PF-STATUS .That function code u can trap in At USER-COMMAND. watch bellow example for help

REPORT demo_at_user_command.

START-OF-SELECTION.

SET PF-STATUS 'MYLIST'.

WRITE 'List line'.

AT USER-COMMAND.

IF sy-lsind = 20.

SET PF-STATUS 'MYLIST' EXCLUDING 'MY_SELECTION'.

ENDIF.

CASE sy-ucomm.

WHEN 'MY_SELECTION'.

WRITE: / 'You worked on list', sy-listi,

/ 'You are on list', sy-lsind.

...

ENDCASE.

program works with a self-defined GUI status MYLIST. The function that is linked there with the function code MY_SELECTION causes the event AT USER-COMMAND during list display and also creates details lists.

Read only

0 Likes
3,076

The best way of reacting to the pushbutton is in the AT SELECTION-SCREEN event. The field SSCRFIELDS-UCOMM contains the user command ucom. You need to declare the SSCRFIELDS table using the TABLES statement.

Use this piece of code in you program and check.

AT SELECTION-SCREEN.

CASE sy-ucomm.

WHEN 'PB01'.

ENDCASE.

Read only

Former Member
0 Likes
3,076

Hi,

use bwlow logic

<b>TABLES SSCRFIELDS.</b>

SELECTION-SCREEN BEGIN OF BLOCK TT WITH FRAME TITLE TEXT-004.

PARAMETERS : X(15) TYPE C DEFAULT 'HI SAPERS'.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(70) TEXT-000.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN ULINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN PUSHBUTTON 1(10) TEXT-001 USER-COMMAND PB01.

SELECTION-SCREEN PUSHBUTTON 20(10) TEXT-002 USER-COMMAND PB02.

SELECTION-SCREEN END OF BLOCK TT.

*DATA: OK_CODE LIKE SY-UCOMM.

AT SELECTION-SCREEN.

CASE SSCRFIELDS-UCOMM.

WHEN 'PB01'.

<b>LEAVE TO LIST-PROCESSING.</b>

WRITE:/ 'hello'.

WRITE : / 'STRING ENTERED IS :', X.

WHEN 'PB02'.

LEAVE PROGRAM.

ENDCASE.

regards

amole

Read only

suresh_datti
Active Contributor
0 Likes
3,076

PL check this <a href="http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/dba81635c111d1829f0000e829fbfe/frameset.htm">SAP Help</a>.. there is also demo code in it..

~Suresh

Read only

Former Member
0 Likes
3,076

HI,

Start-of-selection gets triggered only when you click button with Fcode ONLI. so, i have set the same fcode to my button on selection screen.

Change your code like this.

SELECTION-SCREEN BEGIN OF BLOCK TT WITH FRAME TITLE TEXT-004.

PARAMETERS : X(15) TYPE C DEFAULT 'HI SAPERS'.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(70) TEXT-000.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN ULINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN PUSHBUTTON 1(10) TEXT-001 USER-COMMAND <b>onli</b>.

SELECTION-SCREEN PUSHBUTTON 20(10) TEXT-002 USER-COMMAND pb02.

SELECTION-SCREEN END OF BLOCK TT.

at selection-screen.

CASE SY-ucomm.

<b>WHEN 'ONLI'.

*write:/ 'hello'.

*WRITE : / 'STRING ENTERED IS :', X.</b>

WHEN 'PB02'.

LEAVE PROGRAM.

ENDCASE.

<b>start-of-selection.

write:/ 'hello'.

WRITE : / 'STRING ENTERED IS :', X.</b>

WRITE : / '!! AFTER EVENT !!'.

Regards,

Sailaja.