‎2008 Oct 22 11:44 AM
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?
‎2008 Oct 22 11:46 AM
Hello,
Yes this is possible.
Read At selection screen event documentation.
Rgds,
Sandeep
‎2008 Oct 22 11:50 AM
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
‎2008 Oct 22 11:53 AM
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
‎2008 Oct 22 11:53 AM
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.
‎2008 Oct 22 11:53 AM
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
‎2008 Oct 22 11:55 AM
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
‎2008 Oct 22 11:58 AM
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.
‎2008 Oct 22 11:58 AM
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
‎2008 Oct 22 11:59 AM
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