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 requirement

Former Member
0 Likes
1,146

Hi all,

I have two radio buttons on the screen and two parameters. Initially when one radio butto is 'X' by default

other two parameters should not come in picture . when I click the another radio button those should get display and I ahve to give validation for that. Also if I click teh prev radio button again these p[arametrs should get disappear. Is this possible?

9 REPLIES 9
Read only

Sandeep_Panghal
Product and Topic Expert
Product and Topic Expert
0 Likes
1,036

Hello,

Yes this is possible.

Read At selection screen event documentation.

Rgds,

Sandeep

Read only

Former Member
0 Likes
1,036

Hello,

First create 2parameters with in the selection screen with Group id.

Example. Try in this way u will get your requirement.

PARAMETERS: y_p_fdwg RADIOBUTTON GROUP rg2

MODIF ID rng.

PARAMETERS: y_p_3d RADIOBUTTON GROUP rg3

MODIF ID rsg.

AT SELECTION-SCREEN OUTPUT.

IF y_p_efmt EQ y_k_x.

LOOP AT SCREEN.

CASE screen-group1.

WHEN 'RNG'.

screen-active = 0.

MODIFY SCREEN.

WHEN 'RSI'.

screen-active = 0.

MODIFY SCREEN.

ENDCASE.

ENDLOOP.

Edited by: Santosh Marupally on Oct 22, 2008 12:50 PM

Read only

Former Member
0 Likes
1,036

Hi,

you can code lke this

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

SELECTION-SCREEN BEGIN OF BLOCK za2 WITH FRAME.

PARAMETERS: P_1 RADIOBUTTON GROUP grp1 USER-COMMAND abc

DEFALUT 'X',

PARA1 TYPE vbak-vbeln,

P_2 RADIOBUTTON GROUP grp1,

PARA2 TYPE vbak-kunnr.

SELECTION-SCREEN END OF BLOCK za2.

AT SELECTION-SCREEN OUTPUT.

IF P_1 = 'X'.

LOOP AT SCREEN.

IF screen-name = 'PARA1' or screen-name = 'PARA2'.

screen-input = '0'.

MODIFY SCREEN.

endif.

ENDLOOP.

ESLE

LOOP AT SCREEN.

IF screen-name = 'PARA1' or screen-name = 'PARA2'.

screen-input = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

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

Here first radio button will disable the two parameters and the second one will enable them... the validation for those fields you do it..

Regards,

Syed

Read only

Former Member
0 Likes
1,036

Check this code.

selection-screen begin of block b1 with frame title text-002.

parameters : r1 radiobutton group g1 user-command sd.

parameters : r2 radiobutton group g1 .

selection-screen end of block b1.

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

PARAMETERS:p1(10) modif id bbb.

PARAMETERS:p2(10) modif id bbb.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN OUTPUT.

IF r1 = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'BBB'.

screen-input = '1'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

endif.

Read only

Former Member
0 Likes
1,036

Hi,

try like this.....


REPORT test.

PARAMETERS : rd1 RADIOBUTTON GROUP r1 DEFAULT 'X' USER-COMMAND ds,
            rd2 RADIOBUTTON GROUP r1 MODIF ID b1,
            c2  MODIF ID b2,
            c3  MODIF ID b3.

AT SELECTION-SCREEN OUTPUT.
  IF rd1 = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'B2' OR screen-group1 = 'B3'.
        screen-active = 0.
      ELSE.
        screen-active = 1.

      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ELSEIF rd2 = 'X'.
    LOOP AT SCREEN.
      IF screen-group1 = 'B2' OR screen-group1 = 'B3'.
        screen-active = 1.
      ELSE.
        screen-active = 1.

      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.


  ENDIF.

regards,

Debarshi

Read only

BH2408
Active Contributor
0 Likes
1,036

Hi ,

U can do the logic at

At selection-screen output.

loop at screen,

logic here.

endloop.

Before u r posting any thing please try to serach the SCN for this sort of qustions .

Regards,

Bharani

Read only

Former Member
0 Likes
1,036

Hi Devayani,

here's the sample code..

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-t01 .

PARAMETERS : r_abc RADIOBUTTON GROUP GRP1 USER-COMMAND za DEFAULT 'X',

r_def RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-t02.

PARAMETERS :

p_1 like mara-matnr MODIF ID GR1 ,

p_2 like mara-matnr MODIF ID GR1 .

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-t03.

PARAMETERS :

p_3 like mara-matnr MODIF ID GR2 ,

p_4 like mara-matnr MODIF ID GR2 .

SELECTION-SCREEN END OF BLOCK b3.

AT SELECTION-SCREEN OUTPUT.

IF r_abc = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'GR2' .

screen-active = '0'.

ELSEIF screen-group1 = 'GR1'.

screen-active = '1'.

screen-input = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF r_def = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'GR1' .

screen-active = '0'.

ELSEIF screen-group1 = 'GR2'.

screen-active = '1'.

screen-input = '1' .

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

Regards,

Amit.

Read only

Mohamed_Mukhtar
Active Contributor
0 Likes
1,036

hi ,

PARAMETERS: r1 RADIOBUTTON GROUP grp1 USER-COMMAND x DEFAULT 'X',
            r2 RADIOBUTTON GROUP grp1 .
PARAMETERS: p_upload TYPE rlgrap-filename MODIF ID p11,
            p_dnload TYPE rlgrap-filename MODIF ID p12.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF r1 = 'X'.
      IF screen-group1 = 'P12'.
        screen-input = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDIF.

    IF r2 = 'X'.
      IF screen-group1 = 'P11'.
        screen-input = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDIF.
  ENDLOOP.

Thanks and Regards

Read only

Former Member
0 Likes
1,036

hi ...

here is a help...




REPORT zeo_anniversary_extract .

* Type Pools
TYPE-POOLS: slis.

* Tables
TABLES : zet_autofulfill,  
         zet_offer_script,
         euitrans,        
         euiinstln,       
         eanl,             
         ever,            
         eproph.           

* GLobal Data
CONSTANTS: gc_formname TYPE slis_formname VALUE 'TOP_OF_PAGE',
           c_program(40) TYPE c VALUE 'ZEO_ANNIVERSARY_EXTRACT',
           c_seperator TYPE c VALUE '/'.

DATA : g_dat_days TYPE zet_autofulfill-cr_date.

* Data for ALV

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
      gt_fieldcat_b TYPE slis_t_fieldcat_alv,
      gs_toolbar  TYPE stb_button,
      gs_layout   TYPE slis_layout_alv,
      gs_layout_b TYPE slis_layout_alv,
      gt_sp_group TYPE slis_t_sp_group_alv,
      gt_events   TYPE slis_t_event,
      gt_list_top_of_page TYPE slis_t_listheader.

DATA: gt_file_table	TYPE filetable,
      g_rc TYPE i.

*TYPES

TYPES: typ_logical          LIKE filename-fileintern.
TYPES: typ_filename(255)    TYPE c.

* Constants
CONSTANTS : c_programm TYPE program VALUE 'ZEO_ANNIVERSARY_FULFILL',
            c_process TYPE ze_process VALUE 'ANN_FUL',
            c_field_name TYPE char30 VALUE 'NO_OF_DAYS',
            c_days_range TYPE char30 VALUE 'DAYS_RANGE',
            c_path(30)  TYPE c VALUE '/usr/app/sap/ccs/work_out/low/',
            c_filename(15)  TYPE c VALUE 'AF_UPLOAD_ERROR'.
*            c_msg(16) TYPE c VALUE 'Record Incorrect'.


* Select options declaration
DATA : s_sel_gpart TYPE rseloption,
       s_sel_vkont TYPE rseloption,
       s_sel_csa   TYPE rseloption,
       s_sel_esid  TYPE rseloption,
       s_sel_segmnt TYPE rseloption,
       s_sel_fultyp TYPE rseloption,
       s_sel_offer TYPE rseloption,
       s_sel_promoc TYPE rseloption,
       s_sel_campcd TYPE rseloption,
       s_sel_crdate TYPE rseloption,
       s_sel_cruser TYPE rseloption,
       ls_sel_options TYPE rsdsselopt.

* Internal Tables
DATA : lt_input_data  LIKE zet_autofulfill OCCURS 0 WITH HEADER LINE,
       lt_autofulfil TYPE zes_autofulfill_tab,
       lt_autofulfill1 LIKE zet_autofulfill OCCURS 0 WITH HEADER LINE,
       lt_ever LIKE ever OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF lt_tariff OCCURS 0,
       vkont LIKE fkkvkp-vkont,
       vertrag LIKE ever-vertrag,
       anlage LIKE ever-anlage,
       tariftyp LIKE eanlh-tariftyp,
       END OF lt_tariff.

DATA : BEGIN OF lt_tariff1 OCCURS 0,
       vkont LIKE fkkvkp-vkont,
       vertrag LIKE ever-vertrag,
       anlage LIKE ever-anlage,
       tariftyp LIKE eanlh-tariftyp,
       END OF lt_tariff1.

DATA : BEGIN OF lt_upload_data OCCURS 0,
         gpart         TYPE gpart_kk,
         vkont         TYPE vkont_kk,
         esid          TYPE ext_ui,
         offer_code    TYPE ze_offer_code,
         csa_agreement TYPE ze_agreement_no,
         iscsa(1)      TYPE c,
         processed(1)  TYPE c,
         process_date  TYPE datum,
       END OF lt_upload_data,

       lt_csa_data TYPE zet_csa_fulfill_tt,
       lt_ncsa_data TYPE zet_autofulfill_tt,
       lt_proccntrl_tab TYPE STANDARD TABLE OF zet_proc_cntrl,
       lt_message TYPE zes_fulfill_msg_tt,
       lt_message_cr_file TYPE zes_fulfill_msg_tt,
       lt_message_temp TYPE zes_fulfill_msg_tt,
       lt_filecontents TYPE zes_filecontents_tab,
       ls_message TYPE zes_fulfill_msg,
       lt_autofulfill TYPE zet_autofulfill_tt,
       lt_csa_fulfill TYPE zet_csa_fulfill_tt.

* Structures
DATA : BEGIN OF ls_primary,
        partner LIKE zet_autofulfill-partner,
        vkont LIKE zet_autofulfill-vkont,
        ext_ui LIKE zet_autofulfill-ext_ui,
        int_ui LIKE euitrans-int_ui,
        anlage LIKE euiinstln-anlage,
       END OF ls_primary,
       ls_ever LIKE LINE OF lt_ever,
       ls_upload_data LIKE LINE OF lt_upload_data,
       ls_proccntrl_tab LIKE LINE OF lt_proccntrl_tab.

* Flags Declaration
DATA : lf_is_csa TYPE boole-boole,
       lf_is_prep TYPE boole-boole.

* Local Variables
DATA : l_file_name(300),
       l_todate      TYPE sy-datum,
       l_sswtcreason TYPE zetmoveout_rsn-sswtcreason,
       l_tariftyp    TYPE eanlh-tariftyp,
       l_dat_days    TYPE zet_autofulfill-cr_date,
       l_lines_csa   TYPE i,
       l_lines_ncsa  TYPE i,
       l_days        TYPE i,
       l_days1       TYPE i,
       l_days2       TYPE i,
       l_days_temp   TYPE i,
       l_int_ui      TYPE euiinstln-int_ui,
       l_ext_ui      TYPE euitrans-ext_ui,
       l_anlage      TYPE ever-anlage,
       l_csa_agreement_no TYPE eanl-ze_csa_agreement,
       l_inp_file    TYPE string,
       l_filename    TYPE filename,
       l_error TYPE string,
       l_okcode LIKE sy-ucomm,
       l_file(255) TYPE c ,
       l_err_filename TYPE string,
* Counters
       lcnt_records  TYPE i,
       lcnt_records_ncsa TYPE i,
       lcnt_records_csa TYPE i,
       lcnt_error_csa TYPE i,
       lcnt_error_ncsa TYPE i,
       lcnt_error TYPE i,
       lcnt_error_cr_file TYPE i,
       lcnt_rec_no TYPE i,
       l_create_date TYPE zet_autofulfill-cr_date.


** Macro
*----------------------------------------------------------------------*
*** Application Server file input
*----------------------------------------------------------------------*
DEFINE mac_get_file_name.
* INPUT PARAMETERS
* parameter 1 - logical file name
* parameter 2 - physical file name
* OUTPUT PARAMETER
* parameter 2 - physical path and file name

  translate &1 to upper case.

  call function 'FILE_GET_NAME'
       exporting
            logical_filename = &1
            parameter_1      = &2
       importing
            file_name        = &2
       exceptions
            file_not_found   = 1
            others           = 2.

  if sy-subrc ne 0.
*   ignore errors
*   the open statement will handle errors
  endif.

END-OF-DEFINITION.


***********************************************************************
*               Selection Screen
***********************************************************************
* Block 1
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-003.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN:COMMENT 1(21) text-001 FOR FIELD p_inp MODIF ID fil.
PARAMETERS: p_inp RADIOBUTTON GROUP opt DEFAULT 'X'
                                        MODIF ID fil
                                        USER-COMMAND fil.
SELECTION-SCREEN:COMMENT 30(12) text-002 FOR FIELD p_file MODIF ID fil.
PARAMETERS:  p_file RADIOBUTTON GROUP opt
                                MODIF ID fil.

SELECTION-SCREEN:COMMENT 50(20) text-021 FOR FIELD p_file1 MODIF ID fil.
PARAMETERS:  p_file1 RADIOBUTTON GROUP opt
                                MODIF ID fil.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
* End of Block 1

* Block 2
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.

*----------------------------------------------------------------------*
*** Parameters for Application server file input..
*----------------------------------------------------------------------*
PARAMETERS: p_lgfile TYPE typ_logical MODIF ID lg
                     LOWER CASE DEFAULT 'Z_CCS_INBOUND_LOWFREQ',
            p_filenm TYPE typ_filename MODIF ID lg
                     LOWER CASE.
*----------------------------------------------------------------------*

PARAMETERS: p_lfn TYPE rlgrap-filename,
            p_days TYPE i DEFAULT '300'.
SELECT-OPTIONS:
  s_gpart  FOR zet_autofulfill-partner,
  s_vkont  FOR zet_autofulfill-vkont,
  s_csa    FOR ever-zz_agreement_no NO-DISPLAY,
  s_esid   FOR zet_autofulfill-ext_ui,
  s_offer  FOR zet_autofulfill-zz_offer_code
               MATCHCODE OBJECT ze_elem_offercode3.
PARAMETERS: p_crdate TYPE zet_autofulfill-cr_date,
            p_force AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b2.
* End of Block 2


INCLUDE zeo_anniversary_extract_f01.


***********************************************************************
*               At Selection Screen Output
***********************************************************************
AT SELECTION-SCREEN OUTPUT.

  IF p_inp = 'X'.
    LOOP AT SCREEN.
      IF screen-name CS 'P_LFN' OR screen-name CS 'P_FORCE'
       OR screen-name CS 'P_LGFILE' OR screen-name CS 'P_FILENM'.
        screen-active = 0.
        screen-invisible = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.


  ELSEIF p_file = 'X'.
    LOOP AT SCREEN.
      IF ( screen-group3 = 'OPU'  OR
           screen-group3 = 'PAR'    OR
           screen-group3 = 'TXT'    OR
           screen-group3 = 'LOW'    OR
           screen-group3 = 'TOT'    OR
           screen-group3 = 'VPU'    OR
           screen-group3 = 'HGH' )  AND
           screen-name NS 'P_LFN'   AND
           screen-name NS 'P_FORCE' AND
           screen-group1 <> 'FIL' .
        screen-active = 0.
        screen-invisible = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.

  ELSEIF p_file1 = 'X'.
*----------------------------------------------------------------------*
*** Application Server file input
*----------------------------------------------------------------------*
    LOOP AT SCREEN.
      IF ( screen-group3 = 'OPU'     OR
           screen-group3 = 'PAR'     OR
           screen-group3 = 'TXT'     OR
           screen-group3 = 'LOW'     OR
           screen-group3 = 'TOT'     OR
           screen-group3 = 'VPU'     OR
           screen-group3 = 'HGH' )   AND
           screen-name NS 'P_FILENM' AND
           screen-name NS 'P_LGFILE' AND
           screen-name NS 'P_FORCE' AND
           screen-group1 <> 'FIL' .
        screen-active = 0.
        screen-invisible = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.

*----------------------------------------------------------------------*
  ENDIF.


***********************************************************************
*               At Selection Screen
***********************************************************************

AT SELECTION-SCREEN.

* Validation Of User Input.
  IF sy-ucomm = 'ONLI' OR sy-ucomm IS INITIAL.

    IF p_file = 'X'.

      l_inp_file  = p_lfn.

      IF l_inp_file IS INITIAL.

        MESSAGE e000(zecs1) WITH 'Enter the File Name'.
      ENDIF.
    ENDIF.

    IF p_file1 = 'X'.

      IF p_lgfile IS INITIAL OR p_filenm IS INITIAL.
        MESSAGE e000(zecs1) WITH 'Enter Logical Path or file name'.
      ENDIF.

    ENDIF.

    IF p_inp = 'X'.

*** Code to check the date entered in proper days range....
      IF NOT p_crdate IS INITIAL.
        l_days = sy-datum - p_crdate.
      ELSE.
        IF NOT p_days IS INITIAL.
          l_days = p_days.
        ELSE.
          CALL METHOD z_eclenrltools=>read_proccntrl
             EXPORTING
               im_programm      = c_programm
               im_process       = c_process
               im_field_name    = c_field_name
             IMPORTING
               ex_proccntrl_tab = lt_proccntrl_tab
             EXCEPTIONS
               no_data_found    = 1
               OTHERS           = 2.

          READ TABLE lt_proccntrl_tab INTO ls_proccntrl_tab
                     WITH KEY override = ' '.

          l_days = ls_proccntrl_tab-field_val1.

        ENDIF.
      ENDIF.

** Check the date inserted is withing the range specified in
** table zet_proc_cntrl with Method z_eclenrltools=>read_proccntrl

      CALL METHOD z_eclenrltools=>read_proccntrl
         EXPORTING
           im_programm      = c_programm
           im_process       = c_process
           im_field_name    = c_days_range                  
         IMPORTING
           ex_proccntrl_tab = lt_proccntrl_tab
         EXCEPTIONS
           no_data_found    = 1
           OTHERS           = 2.

      READ TABLE lt_proccntrl_tab INTO ls_proccntrl_tab
                 WITH KEY override = ' '.

*      l_days1 = ls_proccntrl_tab-field_val1.
**      l_days2 = ls_proccntrl_tab-field_val2.
*
**      IF l_days < l_days1 OR l_days > l_days2.
*      IF l_days < l_days1.
**        MESSAGE e000(zecs1) WITH text-020 l_days1 'and' l_days2.
*        MESSAGE e000(zecs1) WITH text-033 l_days1.
*      ENDIF.

***  00917349
      l_days1 = ls_proccntrl_tab-field_val1.
      l_days2 = ls_proccntrl_tab-field_val2.

      IF l_days < l_days1 OR l_days > l_days2.
        MESSAGE e000(zecs1) WITH text-020 l_days1 'and' l_days2.
      ENDIF.

    ENDIF.
  ENDIF.

***********************************************************************
*               At Selection Screen Value Request
***********************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lfn.

*** Read from local file is checked.
  IF p_file = 'X'.

    CALL FUNCTION 'F4_FILENAME'
         EXPORTING
              program_name  = sy-cprog
              dynpro_number = sy-dynnr
              field_name    = 'P_LFN '
         IMPORTING
              file_name     = p_lfn.

  ENDIF.

regards

vivek

Edited by: vivek jain on Oct 22, 2008 1:00 PM