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

selection-screen validations

Former Member
0 Likes
477

how to perform validation on AT SELECTION-SCREEN dynamically on field level through SELECT-OPTIONS.

its urgent please give the answer to me

thanks in advance

4 REPLIES 4
Read only

pradeep_nellore
Participant
0 Likes
454

Hi,

Try this.

at selection screen.

select single 'field name' into var1 from t001(control table).

if sy-subrc ne 0.

raise a message.

endif.

Reward if helpful.

Bye.

Read only

Former Member
0 Likes
454

<b>Refer the following code:</b>

*---------------------------------------------------------------------
* SELECTION SCREEN
*---------------------------------------------------------------------

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-020.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 .
PARAMETERS: p_locl  RADIOBUTTON GROUP g1                   " desktop file
                    DEFAULT 'X' USER-COMMAND fil,
            p_phys  RADIOBUTTON GROUP g1.                  " appln server file
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002 .
PARAMETERS: p_ifile  TYPE   dxfile-filename LOWER CASE,       " source file
            p_afile  TYPE   dxfile-filename LOWER CASE,       " asset class file
            p_cfile  TYPE   dxfile-filename LOWER CASE,       " Cost center file
            p_dfile  TYPE   dxfile-filename LOWER CASE,       " Depr key  file
            p_ofile  TYPE   dxfile-filename LOWER CASE.       " Audit file
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-015.
PARAMETERS: p_test RADIOBUTTON GROUP g2 DEFAULT 'X',        " test run
            p_create RADIOBUTTON GROUP g2.                  " data migretion
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF BLOCK b4.



*---------------------------------------------------------------------
* AT SELECTION-SCREEN
*---------------------------------------------------------------------
AT SELECTION-SCREEN.

  PERFORM check_screen USING p_ifile p_afile p_cfile p_dfile
                             p_ofile p_locl p_phys.

*&---------------------------------------------------------------------*
*&      Form  check_screen
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM check_screen  USING p_ifile1 TYPE dxfile-filename
                         p_afile1 TYPE dxfile-filename
                         p_cfile1 TYPE dxfile-filename
                         p_dfile1 TYPE dxfile-filename
                         p_ofile1 TYPE dxfile-filename
                         p_locl1 TYPE any p_phys1 TYPE any .


  IF sy-ucomm EQ 'FIL'.
    CLEAR:p_ofile1, p_ifile1, p_afile1, p_cfile1, p_dfile1.
    EXIT.
  ENDIF.

  IF p_ifile1 IS INITIAL.
    SET CURSOR FIELD 'P_IFILE1'.
    MESSAGE e000 WITH text-013.
  ENDIF.

  IF p_afile1 IS INITIAL.
    SET CURSOR FIELD 'P_AFILE1'.
    MESSAGE e000 WITH text-068.
  ENDIF.

  IF p_cfile1 IS INITIAL.
    SET CURSOR FIELD 'P_CFILE1'.
    MESSAGE e000 WITH text-069.
  ENDIF.

  IF p_dfile1 IS INITIAL.
    SET CURSOR FIELD 'P_DFILE1'.
    MESSAGE e000 WITH text-070.
  ENDIF.

  IF p_ofile1 IS INITIAL.
    SET CURSOR FIELD 'P_OFILE1'.
    MESSAGE e000 WITH text-014.
  ENDIF.

  IF p_phys1 EQ 'X'.

    CLEAR: g_file_flag.
    g_file_flag = 'I'.
    PERFORM check_phys_file USING p_ifile1.
    g_file_flag = 'A'.
    PERFORM check_phys_file USING p_afile1.
    g_file_flag = 'C'.
    PERFORM check_phys_file USING p_cfile1.
    g_file_flag = 'D'.
    PERFORM check_phys_file USING p_dfile1.

  ELSEIF p_locl1 EQ 'X'.

    CLEAR: g_file_flag.
    g_file_flag = 'I'.
    PERFORM check_local_file USING p_ifile1.
    g_file_flag = 'A'.
    PERFORM check_local_file USING p_afile1.
    g_file_flag = 'C'.
    PERFORM check_local_file USING p_cfile1.
    g_file_flag = 'D'.
    PERFORM check_local_file USING p_dfile1.

  ENDIF.


ENDFORM.                    " check_screen

*&---------------------------------------------------------------------*
*&      Form  check_phys_file
*&---------------------------------------------------------------------*
*      Validation of Physical  File
*----------------------------------------------------------------------*
FORM check_phys_file  USING  p_file TYPE any.

  DATA: l_str(300) TYPE c.
  CLEAR l_str.

  OPEN DATASET p_file IN TEXT MODE FOR INPUT ENCODING DEFAULT.
  IF sy-subrc <> 0.
    IF g_file_flag = 'I'.
      MESSAGE e000 WITH text-021.
    ELSEIF g_file_flag = 'A'.
      MESSAGE e000 WITH text-095.
    ELSEIF g_file_flag = 'C'.
      MESSAGE e000 WITH text-096.
    ELSEIF g_file_flag = 'D'.
      MESSAGE e000 WITH text-097.
    ENDIF.
  ENDIF.

  READ DATASET p_file INTO l_str.
  IF sy-subrc <> 0.
    IF g_file_flag = 'I'.
      MESSAGE e000 WITH text-017.
    ELSEIF g_file_flag = 'A'.
      MESSAGE e000 WITH text-098.
    ELSEIF g_file_flag = 'C'.
      MESSAGE e000 WITH text-099.
    ELSEIF g_file_flag = 'D'.
      MESSAGE e000 WITH text-100.
    ENDIF.
  ENDIF.

  CLEAR: g_file_flag.

  CLOSE DATASET p_file.

ENDFORM.                    " check_phys_file

*&---------------------------------------------------------------------*
*&      Form  check_local_file
*&---------------------------------------------------------------------*
*       Validation of Local File
*----------------------------------------------------------------------*

FORM check_local_file  USING    p_file TYPE any.

  DATA:  l_size       TYPE     i.
  CLEAR: l_size.


  CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'
    EXPORTING
      fname          = p_file
    IMPORTING
*      exist          = l_exist
      filesize       = l_size
    EXCEPTIONS
      fileinfo_error = 1
      OTHERS         = 2.

  IF sy-subrc <> 0.
    IF g_file_flag = 'I'.
      MESSAGE e000 WITH text-016.
    ELSEIF g_file_flag = 'A'.
      MESSAGE e000 WITH text-101.
    ELSEIF g_file_flag = 'C'.
      MESSAGE e000 WITH text-102.
    ELSEIF g_file_flag = 'D'.
      MESSAGE e000 WITH text-103.
    ENDIF.
  ENDIF.


  IF l_size IS INITIAL.
    IF g_file_flag = 'I'.
      MESSAGE e000 WITH text-024.
    ELSEIF g_file_flag = 'A'.
      MESSAGE e000 WITH text-107.
    ELSEIF g_file_flag = 'C'.
      MESSAGE e000 WITH text-108.
    ELSEIF g_file_flag = 'D'.
      MESSAGE e000 WITH text-109.
    ENDIF.
  ENDIF.

  CLEAR: g_file_flag.

ENDFORM.                    " check_local_file

Read only

Former Member
0 Likes
454

Hi,

You have to do validations for selection screen fields in AT SELECTION-SCREEN Event.

AT SELECTION-SCREEN.

If p_matnr is initial.

message e000 with 'Material number is empty'.

endif.

Reward if it is helfpul.

Regards,

Sangeetha.A

Read only

Former Member
0 Likes
454

at selection screen on s_<fieldname>

select * from table itab where <fieldname> in s_<fieldname>.