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: 

problem in selection screen

Former Member
0 Kudos

Hi All,

problem in selection screen when i am trying to select the second radio button it as to show me the error that enter the document date instead it is still asking me to enter the period

here is the code and plz make the corrections and send it to me..

thanks in advance

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.

SELECT-OPTIONS: bldat FOR bkpf-bldat MODIF ID gr1,

monat FOR bkpf-monat MODIF ID gr2,

gjahr FOR bkpf-gjahr MODIF ID gr2 NO INTERVALS NO-EXTENSION,

xblnr FOR bkpf-xblnr,

blart FOR bkpf-blart,

frmty FOR j_1ifrdtot-j_1ifrmtyp.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-110.

PARAMETERS: rd1 RADIOBUTTON GROUP grp DEFAULT 'X' USER-COMMAND rad,

rd2 RADIOBUTTON GROUP grp.

SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN OUTPUT.

*selection screen when the period & year enabled then date is disabled and viceversa

PERFORM selection_screen_output.

************************************************************************

  • AT SELECTION SCREEN *

************************************************************************

AT SELECTION-SCREEN.

  • This perform will check the mandatory fields

PERFORM f_mandatory_fields.

  • This perform will validate the fields

PERFORM f_validate_sel_screen.

FORM selection_screen_output .

LOOP AT SCREEN.

IF rd1 = 'X'.

IF screen-group1 = 'GR1'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDIF.

IF rd2 = 'X'.

IF screen-group1 = 'GR2'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM.

FORM f_mandatory_fields .

IF sy-ucomm <> 'RAD'.

  • blank document date is not allowed

IF bldat[] IS INITIAL.

MESSAGE e020.

ENDIF.

  • blank period is not allowed

IF monat[] IS INITIAL.

MESSAGE e008.

ENDIF.

  • blank fiscal year is not allowed

IF gjahr[] IS INITIAL.

MESSAGE e009.

ENDIF.

ENDIF.

ENDFORM. " f_mandatory_fields

4 REPLIES 4

vinod_gunaware2
Active Contributor
0 Kudos

Check below code it will be useful

**********************************************************************

      • SELECTION SCREEN

**********************************************************************

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: p_ver RADIOBUTTON GROUP g1 USER-COMMAND rad DEFAULT 'X',

p_sab RADIOBUTTON GROUP g1 .

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln NO INTERVALS MODIF ID gr1.

PARAMETERS: p_dwfile TYPE rlgrap-filename

DEFAULT 'C:\test1.txt' MODIF ID gr2, "#EC NOTEXT

p_upfile TYPE rlgrap-filename

DEFAULT 'C:\test.txt' MODIF ID gr3. "#EC NOTEXT

SELECTION-SCREEN END OF BLOCK b2.

************************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile.

**************F4 Help For Input File Name****************************

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

field_name = 'C:\'

IMPORTING

file_name = p_upfile.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dwfile.

**************F4 Help For Input File Name****************************

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

field_name = 'C:\'

IMPORTING

file_name = p_dwfile.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF p_sab = 'X'.

IF screen-group1 = 'GR1' OR screen-group1 = 'GR2'.

screen-active = '0'.

screen-invisible = '1'.

ELSE.

screen-active = '1'.

screen-invisible = '0'.

ENDIF.

MODIFY SCREEN.

ELSE.

IF screen-group1 = 'GR3'.

screen-active = '0'.

screen-invisible = '1'.

ELSE.

screen-active = '1'.

screen-invisible = '0'.

ENDIF.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

regards

vinod

former_member416164
Participant
0 Kudos

Hi,

In your form "f_mandatory_fields" you have to check wich radiobutton is checked before testing if fields are blank.

Hope i understood the problem correctly

Regards

JM

0 Kudos

thanks jean for u r help

Former Member
0 Kudos

Hi,

As pointed above by jean-michel you have to check which radio button has been chosen.

have a look at the code modified:

TABLES: bkpf, j_1ifrdtot.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.

SELECT-OPTIONS: bldat FOR bkpf-bldat MODIF ID gr1,

monat FOR bkpf-monat MODIF ID gr2,

gjahr FOR bkpf-gjahr MODIF ID gr2 NO INTERVALS NO-EXTENSION,

xblnr FOR bkpf-xblnr,

blart FOR bkpf-blart,

frmty FOR j_1ifrdtot-j_1ifrmtyp.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-110.

PARAMETERS: rd1 RADIOBUTTON GROUP grp DEFAULT 'X' USER-COMMAND rad,

rd2 RADIOBUTTON GROUP grp.

SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN OUTPUT.

*selection screen when the period & year enabled then date is disabled and viceversa

PERFORM selection_screen_output.

************************************************************************

  • AT SELECTION SCREEN *

************************************************************************

AT SELECTION-SCREEN.

  • This perform will check the mandatory fields

PERFORM f_mandatory_fields.

  • This perform will validate the fields

  • PERFORM f_validate_sel_screen.

&----


*& Form selection_screen_output

&----


  • text

----


FORM selection_screen_output .

LOOP AT SCREEN.

IF rd1 = 'X'.

IF screen-group1 = 'GR1'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDIF.

IF rd2 = 'X'.

IF screen-group1 = 'GR2'.

screen-input = '0'.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. "selection_screen_output

&----


*& Form f_mandatory_fields

&----


  • text

----


FORM f_mandatory_fields .

IF sy-ucomm <> 'RAD'.

<b> IF rd2 EQ 'X'.</b>

  • blank document date is not allowed

IF bldat[] IS INITIAL.

MESSAGE 'BLank document date is not allowed' TYPE 'E'.

ENDIF.

<b> ENDIF.</b>

<b> IF rd1 EQ 'X'.</b>

  • blank period is not allowed

IF monat[] IS INITIAL.

MESSAGE 'Blandk period not allowed' TYPE 'E'.

ENDIF.

  • blank fiscal year is not allowed

IF gjahr[] IS INITIAL.

MESSAGE 'Blank fiscal year not allowed' TYPE 'E'.

ENDIF.

<b> ENDIF.</b>

ENDIF.

ENDFORM. " f_mandatory_fields