05-18-2006 8:15 AM
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
05-18-2006 8:19 AM
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
05-18-2006 8:20 AM
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
05-18-2006 8:33 AM
05-18-2006 8:36 AM
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