‎2007 May 06 8:31 AM
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
‎2007 May 06 8:40 AM
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.
‎2007 May 06 9:20 AM
<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
‎2007 May 07 8:40 AM
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
‎2007 May 07 10:56 AM
at selection screen on s_<fieldname>
select * from table itab where <fieldname> in s_<fieldname>.