‎2006 Sep 29 9:57 AM
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
‎2006 Sep 29 10:02 AM
Ater AT SELECTION SCREEN insert this code
START-OF-SELECTION.
END-OF-SELECTION.
WRITE 😕 'report output'.
Now you should see the output.
Regards,
Ravi
‎2006 Sep 29 10:02 AM
hi,
AT user-command event doesnt get triggered when you click buttons on selection screen.
Regards,
Sailaja.
‎2006 Sep 29 10:19 AM
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.
‎2006 Sep 29 10:51 AM
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
‎2006 Sep 29 10:05 AM
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
‎2006 Sep 29 10:08 AM
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.
‎2006 Sep 29 10:11 AM
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.
‎2006 Sep 29 10:16 AM
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
‎2006 Sep 29 10:28 AM
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
‎2006 Sep 29 10:30 AM
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.