Skip to Content
author's profile photo Former Member
Former Member

Radio-buttons in selection-screen

Hi Experts,

I need three radio buttons in my selection screen.

if i click 1st radiobutton, remaining two will be disabled

- 3 parameters are there

if clicked 2nd radiobutton, remaining twoll be disabled (1 and 3)

- one paramenter is there.

if clicked 3rd radiobutton, remaining twoll be disabled (1 and 2 )

- 5 select options are there.

If any one having sample piece of code, or send me some piece of code, so that it will be helpful to me.

Thanks in advance

Rams

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

3 Answers

  • Posted on Dec 04, 2007 at 07:26 AM

    Hi,

    Refer this code

    ----


    • PARAMETERS & SELECT-OPTIONS *

    ----


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

    PARAMETERS : p_pay1 RADIOBUTTON GROUP grp USER-COMMAND fc DEFAULT 'X',

    p_pay2 RADIOBUTTON GROUP grp.

    SELECTION-SCREEN END OF BLOCK b1.

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

    SELECT-OPTIONS : s_pernr FOR pa0000-pernr. "Personnel Number

    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN COMMENT (31) text-018.

    PARAMETERS : p_begda LIKE pa0000-begda OBLIGATORY. "Start Date

    SELECTION-SCREEN COMMENT 52(05) text-019.

    PARAMETERS : p_endda LIKE pa0000-endda OBLIGATORY. "End Date

    SELECTION-SCREEN END OF LINE.

    SELECT-OPTIONS : s_stat2 FOR pa0000-stat2, "Status

    s_werks FOR pa0001-werks, "Personnel Area

    s_raufnr FOR catsdb-raufnr MODIF ID md1. "Internal Order Number

    SELECTION-SCREEN END OF BLOCK b2.

    ----


    • AT SELECTION-SCREEN *

    ----


    AT SELECTION-SCREEN OUTPUT.

    IF p_pay1 EQ 'X'.

    LOOP AT SCREEN.

    IF screen-group1 = 'MD1'.

    screen-active = '1'.

    screen-input = '0'.

    MODIFY SCREEN.

    ENDIF.

    ENDLOOP.

    ELSEIF p_pay2 EQ 'X'.

    LOOP AT SCREEN.

    IF screen-group1 = 'MD1'.

    screen-active = '1'.

    screen-input = '1'.

    MODIFY SCREEN.

    ENDIF.

    ENDLOOP.

    ENDIF.

    Regards,

    Prashant

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      thn check this code..sending u same code as per your requirement.

      this is your selection sceen.

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

      SELECT-OPTIONS:

      s_aufnr FOR afko-aufnr,

      s_matnr FOR resb-matnr,

      s_fevor FOR afko-fevor.

      SELECTION-SCREEN END OF BLOCK b1.

      • second block of selection screen for period

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

      PARAMETERS : r_week RADIOBUTTON GROUP gp DEFAULT 'X' USER-COMMAND sy-ucomm,

      r_date RADIOBUTTON GROUP gp.

      SELECT-OPTIONS : s_week FOR v_week NO INTERVALS NO-EXTENSION MODIF ID wk.

      PARAMETERS: p_week1 TYPE mkpf-mjahr DEFAULT sy-datum(4) MODIF ID wk. " parameter for year

      SELECT-OPTIONS: s_date FOR sy-datum NO-EXTENSION MODIF ID dt .

      SELECTION-SCREEN END OF BLOCK b2.

      • modifying fields of selection screen on the basis of radio button selected

      AT SELECTION-SCREEN OUTPUT.

      IF r_week = 'X'.

      LOOP AT SCREEN.

      IF screen-group1 = 'DT' .

      screen-input = 0.

      CLEAR : s_date[] , s_date.

      p_week1 = sy-datum+0(4).

      MODIFY SCREEN.

      ENDIF.

      ENDLOOP.

      ELSEIF r_date = 'X'.

      LOOP AT SCREEN.

      IF screen-group1 = 'WK' .

      screen-input = 0.

      CLEAR : s_week[] , p_week1, s_week.

      MODIFY SCREEN.

      ENDIF.

      ENDLOOP.

      ENDIF.

      revert back for any help on this.

      plz reward points if helps.

      regards,

      rahul

  • author's profile photo Former Member
    Former Member
    Posted on Dec 04, 2007 at 07:29 AM

    REPORT zsptud01 LINE-SIZE 80

    LINE-COUNT 65

    NO STANDARD PAGE HEADING.

    TABLES: dd02l, dd03l.

    • selection screen

    SELECTION-SCREEN BEGIN OF BLOCK b00 WITH FRAME TITLE text-b00.

    *

    SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.

    PARAMETERS: tabname LIKE dd02l-tabname OBLIGATORY.

    SELECTION-SCREEN END OF BLOCK b01.

    *

    SELECTION-SCREEN BEGIN OF BLOCK b03 WITH FRAME TITLE text-b03.

    PARAMETERS: path(30) TYPE c DEFAULT 'C:\SAPWorkdir'.

    SELECTION-SCREEN END OF BLOCK b03.

    *

    SELECTION-SCREEN BEGIN OF BLOCK b04 WITH FRAME TITLE text-b04.

    <b>PARAMETERS: p_exp RADIOBUTTON GROUP radi,

    p_imp RADIOBUTTON GROUP radi,

    p_clear AS CHECKBOX.</b>SELECTION-SCREEN END OF BLOCK b04.

    SELECTION-SCREEN END OF BLOCK b00.

    • data

    DATA: q_return LIKE syst-subrc,

    err_flag(1) TYPE c,

    answer(1) TYPE c,

    w_text1(62) TYPE c,

    w_text2(40) TYPE c,

    winfile(128) TYPE c,

    w_system(40) TYPE c,

    winsys(7) TYPE c,

    zname(8) TYPE c,

    w_line(80) TYPE c.

    • internal tables

    DATA : BEGIN OF textpool_tab OCCURS 0.

    INCLUDE STRUCTURE textpool.

    DATA : END OF textpool_tab.

    • table for subroutine pool

    DATA : itab(80) OCCURS 0.

    • events

    INITIALIZATION.

    PERFORM check_system.

    *

    AT SELECTION-SCREEN ON tabname.

    PERFORM check_table_exists.

    *

    START-OF-SELECTION.

    PERFORM init_report_texts.

    PERFORM request_confirmation.

    *

    END-OF-SELECTION.

    IF answer = 'J'.

    PERFORM execute_program_function.

    ENDIF.

    *

    TOP-OF-PAGE.

    PERFORM process_top_of_page.

    • forms

    ----


    • FORM CHECK_TABLE_EXISTS *

    ----


    FORM check_table_exists.

    SELECT SINGLE * FROM dd02l

    INTO CORRESPONDING FIELDS OF dd02l

    WHERE tabname = tabname.

    CHECK syst-subrc NE 0.

    MESSAGE e402(mo) WITH tabname.

    ENDFORM.

    ----


    • FORM INIT_REPORT_TEXTS *

    ----


    FORM init_report_texts.

    READ TEXTPOOL syst-repid

    INTO textpool_tab LANGUAGE syst-langu.

    LOOP AT textpool_tab

    WHERE id EQ 'R' OR id EQ 'T'.

    REPLACE '&1............................'

    WITH tabname INTO textpool_tab-entry.

    MODIFY textpool_tab.

    ENDLOOP.

    ENDFORM.

    ----


    • FORM REQUEST_CONFIRMATION *

    ----


    FORM request_confirmation.

    • import selected, confirm action

    IF p_imp = 'X'.

    • build message text for popup

    CONCATENATE 'Data for table'

    tabname

    'will be imported' INTO w_text1 SEPARATED BY space.

    • check if delete existing selected, and change message text

    IF p_clear = ' '.

    w_text2 = 'and appended to the end of existing data'.

    ELSE.

    w_text2 = 'Existing Data will be deleted'.

    ENDIF.

    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

    EXPORTING

    defaultoption = 'N'

    textline1 = w_text1

    textline2 = w_text2

    titel = 'Confirm Import of Data'

    cancel_display = ' '

    IMPORTING

    answer = answer

    EXCEPTIONS

    OTHERS = 1.

    ELSE.

    • export selected, set answer to yes so export can continue

    answer = 'J'.

    ENDIF.

    ENDFORM.

    ----


    • FORM EXECUTE_PROGRAM_FUNCTION *

    ----


    FORM execute_program_function.

    PERFORM build_file_name.

    CLEAR: q_return,err_flag.

    IF p_imp = 'X'.

    PERFORM check_file_exists.

    CHECK err_flag = ' '.

    PERFORM func_import.

    ELSE.

    PERFORM func_export.

    ENDIF.

    ENDFORM.

    ----


    • FORM BUILD_FILE_NAME *

    ----


    FORM build_file_name.

    MOVE path TO winfile.

    WRITE '\' TO winfile+30.

    WRITE tabname TO winfile+31.

    WRITE '.TAB' TO winfile+61(4).

    CONDENSE winfile NO-GAPS.

    ENDFORM.

    ----


    • FORM CHECK_FILE_EXISTS *

    ----


    FORM check_file_exists.

    CALL FUNCTION 'WS_QUERY'

    EXPORTING

    filename = winfile

    query = 'FE'

    IMPORTING

    return = q_return

    EXCEPTIONS

    OTHERS = 1.

    IF syst-subrc NE 0 OR q_return NE 1.

    err_flag = 'X'.

    ENDIF.

    ENDFORM.

    ----


    • FORM func_export *

    ----


    FORM func_export.

    CLEAR itab. REFRESH itab.

    APPEND 'PROGRAM SUBPOOL.' TO itab.

    APPEND 'FORM DOWNLOAD.' TO itab.

    APPEND 'DATA: BEGIN OF IT_TAB OCCURS 0.' TO itab.

    CONCATENATE 'INCLUDE STRUCTURE'

    tabname

    '.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'DATA: END OF IT_TAB.' TO itab.

    CONCATENATE 'SELECT * FROM'

    tabname

    'INTO TABLE IT_TAB.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'CALL FUNCTION ''WS_DOWNLOAD''' TO itab.

    APPEND 'EXPORTING' TO itab.

    CONCATENATE 'filename = ' ''''

    winfile '''' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'filetype = ''DAT''' TO itab.

    APPEND 'TABLES' TO itab.

    APPEND 'DATA_TAB = IT_TAB.' TO itab.

    APPEND 'DESCRIBE TABLE IT_TAB LINES sy-index.' TO itab.

    APPEND 'FORMAT COLOR COL_NORMAL INTENSIFIED OFF.' TO itab.

    APPEND 'WRITE: /1 syst-vline,' TO itab.

    APPEND '''EXPORT'',' TO itab.

    APPEND '15 ''data line(s) have been exported'',' TO itab.

    APPEND '68 syst-index,' TO itab.

    APPEND '80 syst-vline.' TO itab.

    APPEND 'ULINE.' TO itab.

    APPEND 'ENDFORM.' TO itab.

    GENERATE SUBROUTINE POOL itab NAME zname.

    PERFORM download IN PROGRAM (zname).

    ENDFORM.

    ----


    • FORM func_import *

    ----


    FORM func_import.

    CLEAR itab. REFRESH itab.

    APPEND 'PROGRAM SUBPOOL.' TO itab.

    APPEND 'FORM UPLOAD.' TO itab.

    APPEND 'DATA: BEGIN OF IT_TAB OCCURS 0.' TO itab.

    CONCATENATE 'INCLUDE STRUCTURE'

    tabname

    '.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'DATA: END OF IT_TAB.' TO itab.

    APPEND 'DATA: BEGIN OF IT_TAB2 OCCURS 0.' TO itab.

    CONCATENATE 'INCLUDE STRUCTURE'

    tabname

    '.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'DATA: END OF IT_TAB2.' TO itab.

    APPEND 'CALL FUNCTION ''WS_UPLOAD''' TO itab.

    APPEND 'EXPORTING' TO itab.

    CONCATENATE 'filename = ' ''''

    winfile '''' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'filetype = ''DAT''' TO itab.

    APPEND 'TABLES' TO itab.

    APPEND 'DATA_TAB = IT_TAB.' TO itab.

    IF p_clear = 'X'.

    CONCATENATE 'SELECT * FROM'

    tabname

    'INTO TABLE IT_TAB2.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'LOOP AT IT_TAB2.' TO itab.

    CONCATENATE 'DELETE'

    tabname

    'FROM IT_TAB2.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'ENDLOOP.' TO itab.

    APPEND 'COMMIT WORK.' TO itab.

    ENDIF.

    APPEND 'LOOP AT IT_TAB.' TO itab.

    CONCATENATE 'MODIFY'

    tabname

    'FROM IT_TAB.' INTO w_line SEPARATED BY space.

    APPEND w_line TO itab.

    APPEND 'ENDLOOP.' TO itab.

    APPEND 'DESCRIBE TABLE IT_TAB LINES sy-index.' TO itab.

    APPEND 'FORMAT COLOR COL_NORMAL INTENSIFIED OFF.' TO itab.

    APPEND 'WRITE: /1 syst-vline,' TO itab.

    APPEND '''IMPORT'',' TO itab.

    APPEND '15 ''data line(s) have been imported'',' TO itab.

    APPEND '68 syst-index,' TO itab.

    APPEND '80 syst-vline.' TO itab.

    APPEND 'ULINE.' TO itab.

    APPEND 'ENDFORM.' TO itab.

    GENERATE SUBROUTINE POOL itab NAME zname.

    PERFORM upload IN PROGRAM (zname).

    ENDFORM.

    ----


    • Form CHECK_SYSTEM

    • Check users workstation is running

    • WINDOWS 95, or WINDOWS NT.

    • OS/2 uses 8.3 file names which are no good for

    • this application as filenames created are 30 char

    • same as table name.

    • You could change the logic to only use the first 8 chars

    • of the table name for the filename, but you could possibly

    • get problems if users had exported already with a table

    • with the same first 8 chars.

    • As an alternate method you could request the user to input

    • the full path including filename and remove the logic to

    • build the path using the table name.

    ----


    FORM check_system.

    CALL FUNCTION 'WS_QUERY'

    EXPORTING

    query = 'WS'

    IMPORTING

    return = winsys.

    IF winsys NE 'WN32_95'.

    WRITE: 'Windows NT or Windows 95/98 is required'.

    EXIT.

    ENDIF.

    ENDFORM. " CHECK_SYSTEM

    ----


    • FORM PROCESS_TOP_OF_PAGE *

    ----


    FORM process_top_of_page.

    FORMAT COLOR COL_HEADING INTENSIFIED ON.

    ULINE.

    CONCATENATE syst-sysid

    syst-saprl

    syst-host INTO w_system SEPARATED BY space.

    WRITE : AT /1(syst-linsz) w_system CENTERED.

    WRITE : AT 1 syst-vline, syst-uname.

    syst-linsz = syst-linsz - 11.

    WRITE : AT syst-linsz syst-repid(008).

    syst-linsz = syst-linsz + 11.

    WRITE : AT syst-linsz syst-vline.

    LOOP AT textpool_tab WHERE id EQ 'R'.

    WRITE : AT /1(syst-linsz) textpool_tab-entry CENTERED.

    ENDLOOP.

    WRITE : AT 1 syst-vline, syst-datum.

    syst-linsz = syst-linsz - 11.

    WRITE : AT syst-linsz syst-tcode(004).

    syst-linsz = syst-linsz + 11.

    WRITE : AT syst-linsz syst-vline.

    LOOP AT textpool_tab WHERE id EQ 'T'.

    WRITE : AT /1(syst-linsz) textpool_tab-entry CENTERED.

    ENDLOOP.

    WRITE : AT 1 syst-vline, syst-uzeit.

    syst-linsz = syst-linsz - 11.

    WRITE : AT syst-linsz 'Page', syst-pagno.

    syst-linsz = syst-linsz + 11.

    WRITE : AT syst-linsz syst-vline.

    ULINE.

    FORMAT COLOR COL_HEADING INTENSIFIED OFF.

    LOOP AT textpool_tab WHERE id EQ 'H'.

    WRITE : AT /1(syst-linsz) textpool_tab-entry.

    ENDLOOP.

    ULINE.

    ENDFORM

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 04, 2007 at 07:31 AM

    Find the following code.

    PARAMETERS:

    R1 RADIOBUTTON GROUP G1 USER_COMMAND U1,

    R2 RADIOBUTTON GROUP G1 DEFAULT 'X',

    P_VAR2 TYPE I MODIFID SC1,

    P_VAR3 TYPE I MODIFID SC2.

    AT SELECTION-SCREEN OUTPUT.

    LOOP AT SCREEN.

    IF R1 ='X'.

    IF SCREEN-GROUP = 'SC1'.

    SCREEN-ACTIVE = 1.

    MODIFY SCREEN.

    ELSEIF SCREEN-GROUP = 'SC2'.

    SCREEN-ACTIVE = 0.

    MODIFY SCREEN.

    ENDIF.

    ELSEIF R2 ='X'.

    IF SCREEN-GROUP = 'SC1'.

    SCREEN-ACTIVE = 0.

    MODIFY SCREEN.

    ELSEIF SCREEN-GROUP = 'SC2'.

    SCREEN-ACTIVE = 1.

    MODIFY SCREEN.

    ENDIF.

    ENDIF.

    ENDLOOP.

    Rewards if useful.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.