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: 

At selection-screen on <FIELD>

Former Member

Hai,

I need one example program for "At selection-screen on <FIELD>" with explanation.

7 REPLIES 7

former_member404244
Active Contributor
0 Kudos

Former Member
0 Kudos

HI,

see this example.

REPORT demo_at_selection_screen.

  • Global data

DATA: sflight_tab TYPE TABLE OF sflight,

sflight_wa LIKE LINE OF sflight_tab.

  • Selection screens

PARAMETERS p_carrid TYPE spfli-carrid.

SELECTION-SCREEN BEGIN OF SCREEN 500.

SELECT-OPTIONS s_conn FOR sflight_wa-connid.

DATA s_conn_wa LIKE LINE OF s_conn.

SELECTION-SCREEN END OF SCREEN 500.

  • Handling selection screen events

<b>AT SELECTION-SCREEN ON p_carrid.

IF p_carrid IS INITIAL.

MESSAGE 'Please enter a value' TYPE 'E'.

ENDIF.

AUTHORITY-CHECK OBJECT 'S_CARRID'

ID 'CARRID' FIELD p_carrid

ID 'ACTVT' FIELD '03'.

IF sy-subrc = 4.

MESSAGE 'No authorization for carrier' TYPE 'E'.

ELSEIF sy-subrc <> 0.

MESSAGE 'Error in authority check' TYPE 'A'.

ELSE.

IF sy-ucomm = 'ONLI'.

CALL SELECTION-SCREEN '0500'.

ENDIF.

ENDIF. </b>

AT SELECTION-SCREEN.

IF sy-dynnr = '0500'.

IF s_conn IS INITIAL.

MESSAGE 'Please enter values' TYPE 'W'.

ELSE.

SELECT *

FROM sflight

INTO TABLE sflight_tab

WHERE carrid = p_carrid AND

connid IN s_conn.

IF sy-subrc <> 0.

MESSAGE 'No flights found' TYPE 'E'.

ENDIF.

ENDIF.

ENDIF.

  • Main program

START-OF-SELECTION.

...

rgds,

bharat.

0 Kudos

This message was moderated.

Former Member
0 Kudos

AT SELECTION-SCREEN ON <Field>

This event is processed before leaving the Selection Screen Element.

To valildate the Individual Input provided through selection screens.

AT SELECTION-SCREEN ON p_var1.

IF p_var1 >= 100.

MESSAGE E000.

ENDIF.

Rewards if useful.

Former Member
0 Kudos

hai Bharat,

Why you are using ONLI.

sy-ucomm = 'ONLI'

Former Member
0 Kudos

Hello Udaya Kumar,

Check this Code............

*"Selection screen elements............................................

SELECT-OPTIONS:

S_EBELN FOR EKKO-EBELN, " Purchasing Document Number

S_LIFNR FOR EKKO-LIFNR, " Vendor's account number

S_EKGRP FOR EKKO-EKGRP, " Purchasing group

S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date

S_UDATE FOR CDHDR-UDATE. " Creation date of the change

" document

"----


  • AT SELECTION-SCREEN EVENT *

"----


AT SELECTION-SCREEN ON S_EBELN.

  • Subroutine to validate Purchase Document Number.

PERFORM VALIDATE_PD_NUM.

AT SELECTION-SCREEN ON S_LIFNR.

  • Subroutine to validate Vendor Number.

PERFORM VALIDATE_VEN_NUM.

AT SELECTION-SCREEN ON S_EKGRP.

  • Subroutine to validate Purchase Group.

PERFORM VALIDATE_PUR_GRP.

&----


*& Form VALIDATE_PD_NUM

&----


  • Subroutine to validate Purchase Document Number

----


  • There are no interface parameters to be passed to this subroutine.

----


FORM VALIDATE_PD_NUM .

IF NOT S_EBELN[] IS INITIAL.

SELECT EBELN " Purchase Document Number

FROM EKKO

INTO W_EBELN

UP TO 1 ROWS

WHERE EBELN IN S_EBELN.

ENDSELECT.

IF SY-SUBRC NE 0.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E717(M8).

ENDIF. " IF SY-SUBRC NE 0

ENDIF. " IF NOT S_EBELN[]...

ENDFORM. " VALIDATE_PD_NUM

&----


*& Form VALIDATE_VEN_NUM

&----


  • Subroutine to validate Vendor Number

----


  • There are no interface parameters to be passed to this subroutine.

----


FORM VALIDATE_VEN_NUM .

IF NOT S_LIFNR[] IS INITIAL.

SELECT LIFNR " Vendor Number

FROM LFA1

INTO W_LIFNR

UP TO 1 ROWS

WHERE LIFNR IN S_LIFNR.

ENDSELECT.

IF SY-SUBRC NE 0.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E002(M8) WITH W_SPACE.

ENDIF. " IF SY-SUBRC NE 0

ENDIF. " IF NOT S_LIFNR[]...

ENDFORM. " VALIDATE_VEN_NUM

&----


*& Form VALIDATE_PUR_GRP

&----


  • Subroutine to validate the Purchase Group

----


  • There are no interface parameters to be passed to this subroutine.

----


FORM VALIDATE_PUR_GRP .

IF NOT S_EKGRP[] IS INITIAL.

SELECT EKGRP " Purchase Group

FROM T024

INTO W_EKGRP

UP TO 1 ROWS

WHERE EKGRP IN S_EKGRP.

ENDSELECT.

IF SY-SUBRC NE 0.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E622(M8) WITH W_SPACE.

ENDIF. " IF SY-SUBRC NE 0

ENDIF. " IF NOT S_EKFRP[]...

ENDFORM. " VALIDATE_PUR_GRP

with Regards,

Vidya

Former Member
0 Kudos

HI

see this program

TYPES : BEGIN OF ST_OBJID_SH,

OTYPE TYPE HRP1000-OTYPE,

OBJID TYPE HRP1000-OBJID,

END OF ST_OBJID_SH.

DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.

DATA : WA_OBJID_SH TYPE ST_OBJID_SH.

***********SELECTION SCREEN DESIGN***********************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .

SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .

SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

**********END OF SELECTION SCREEN DESIGN*****************

*********VALIDATION FOR SCREEN FIELDS********************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.

  • IF S_OBJID IS NOT INITIAL.

SELECT OTYPE OBJID FROM HRP1000

INTO TABLE IT_OBJID_SH

WHERE OTYPE = 'D'.

IF SY-SUBRC EQ 0.

  • SEARCH HELP FOR QUALIFICATION.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'OBJID'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'S_OBJID'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_OBJID_SH

  • FIELD_TAB =

  • RETURN_TAB = RETURN_TAB

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

.