‎2006 Jun 13 2:03 PM
Hi
Requirement is that,
Depending upon Radio Button selection at selection screen , I will have to hide or make visible some of the input fields at selection screen.
How it could be done ?
Code is like below,
DATA : FLAG.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE
TEXT-001.
PARAMETERS: <b>R_MATGRP</b> RADIOBUTTON GROUP G1
DEFAULT 'X' USER-COMMAND RAD1,
<b>R_PRDGRP</b> RADIOBUTTON GROUP G1,
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE
TEXT-002.
SELECT-OPTIONS: <b>S_MATGRP</b> FOR MARA-MATKL,
<b>S_PRDGRP</b> FOR PGMI-PRGRP,
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP G1.
IF <b>R_MATGRP</b> EQ 'X'.
FLAG = <b>'1'</b>.
ELSEIF <b>R_PRDGRP</b> EQ 'X'.
FLAG = <b>'2'</b>.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
For Material Type
CASE FLAG.
WHEN <b>'1'</b>.
LOOP AT SCREEN.
CASE SCREEN-NAME.
WHEN <b>'S_MATGRP'</b>.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
WHEN <b>'S_PRDGRP'</b>.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
ENDLOOP.
For product type
WHEN <b>'2'</b>.
LOOP AT SCREEN.
CASE SCREEN-NAME.
WHEN <b>'S_MATGRP'</b>.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
WHEN <b>'S_PRDGRP'</b>.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
Please suggest what changes could be made ?
Thanks And Regards,
Amit
‎2006 Jun 13 2:15 PM
This works, I tried to not change to much of your code.
report zrich_0001 .
tables: mara.
data : flag.
selection-screen begin of block b1 with frame title
text-001.
parameters: r_matgrp radiobutton group g1
default 'X' user-command rad1,
r_prdgrp radiobutton group g1.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title
text-002.
select-options: s_matgrp for mara-matkl modif id mat,
s_prdgrp for pgmi-prgrp modif id prd.
selection-screen end of block b2.
at selection-screen output.
if r_matgrp eq 'X'.
flag = '1'.
elseif r_prdgrp eq 'X'.
flag = '2'.
endif.
***** For Material Type
case flag.
when '1'.
loop at screen.
case screen-group1.
when 'MAT'.
screen-invisible = '0'.
screen-active = '1'.
modify screen.
when 'PRD'.
screen-invisible = '1'.
screen-active = '0'.
modify screen.
endcase.
endloop.
**** For product type
when '2'.
loop at screen.
case screen-group1.
when 'MAT'.
screen-invisible = '1'.
screen-active = '0'.
modify screen.
when 'PRD'.
screen-invisible = '0'.
screen-active = '1'.
modify screen.
endcase.
endloop.
endcase.
Regards,
Rich Heilman
‎2006 Jun 13 2:05 PM
REPORT zrsdvsr1
LINE-SIZE 220
LINE-COUNT 65(5).
TYPE-POOLS : slis.
**********************************************************************
TABLES
**********************************************************************
TABLES: vbak.
**********************************************************************
DATA DECLARATIONS
**********************************************************************
Ranges
RANGES: r_posnr FOR vbap-posnr.
DATA: BEGIN OF t_veramt OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
mwsbp TYPE vbap-mwsbp,
END OF t_veramt.
DATA: BEGIN OF t_disamt OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
mwsbp TYPE vbap-mwsbp,
netwr_v TYPE vbap-netwr,
mwsbp_v TYPE vbap-mwsbp,
disc_val TYPE vbap-mwsbp,
END OF t_disamt.
&----
*& ALV FIELDS
&----
DATA : alv_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
alv_layout TYPE slis_layout_alv.
**********************************************************************
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'.
<b>screen-active = '0'.
screen-invisible = '1'.</b>
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.
<b>MODIFY SCREEN.</b>
ENDIF.
ENDLOOP.
**********************************************************************
START-OF-SELECTION
**********************************************************************
START-OF-SELECTION.
Check Radio Button
IF p_ver = 'X'.
PERFORM get_details_open_so_vertex.
ELSE.
PERFORM get_details_open_so.
ENDIF.
Display the output.
PERFORM diplay_report .
regards
vinod
‎2006 Jun 13 2:11 PM
AT SELECTION-SCREEN OUTPUT.
***** For Material Type
CASE FLAG.
WHEN '1'.
LOOP AT SCREEN.
CASE SCREEN-NAME.
<b>WHEN 'S_MATGRP-LOW'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
WHEN 'S_MATGRP-HIGH'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
WHEN 'S_PRDGRP-LOW'.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
WHEN 'S_PRDGRP-HIGH'.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
ENDLOOP.
**** For product type
WHEN '2'.
LOOP AT SCREEN.
CASE SCREEN-NAME.
WHEN 'S_MATGRP-LOW'.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
WHEN 'S_MATGRP-HIGH'.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
WHEN 'S_PRDGRP-LOW'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
WHEN 'S_PRDGRP-HIGH'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDLOOP.</b>
ENDCASE.need to add
-LOW and -HIGH
Regards
vijay
‎2006 Jun 13 2:14 PM
Hi,
<b>I have change ur code Just Copy Paste it ;it will work</b>
DATA : FLAG.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE
TEXT-001.
PARAMETERS: R_MATGRP RADIOBUTTON GROUP G1
DEFAULT 'X' USER-COMMAND RAD1,
R_PRDGRP RADIOBUTTON GROUP G1,
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE
TEXT-002.
SELECT-OPTIONS: S_MATGRP FOR MARA-MATKL <b>MODIF ID ABC</b>,
S_PRDGRP FOR PGMI-PRGRP <b>MODIF ID XYZ</b>,
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF R_MATGRP EQ 'X'.
IF screen-group1 = 'ABC'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ELSEIF R_PRDGRP EQ 'X'.
IF screen-group1 = 'XYZ'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
Just Copy paste this code ur Problem will be solved.
<b>Reward Some Points</b>
Message was edited by: Manoj Gupta
‎2006 Jun 13 2:14 PM
Hi
Try the following code
report ztest_selection_screen .
tables: vbak, sscrfields.
selection-screen: begin of block b1 with frame title text-001.
selection-screen: begin of line.
parameters: p_sale radiobutton group rd1 user-command sal.
select-options: s_vbeln for vbak-vbeln modif id sal.
selection-screen: end of line.
selection-screen: begin of line.
parameters: p_org radiobutton group rd1. "USER-COMMAND org.
select-options: s_vkorg for vbak-vkorg modif id org.
selection-screen: end of line.
parameters: p_vbklt like vbak-vbklt.
selection-screen: end of block b1.
at selection-screen output.
loop at screen.
case screen-group1.
when 'SAL'.
if p_org = 'X'.
screen-active = 0.
endif.
when 'ORG'.
if p_sale = 'X'.
screen-active = 0.
endif.
endcase.
modify screen.
endloop.Hope this helps
Anirban
‎2006 Jun 13 2:15 PM
This works, I tried to not change to much of your code.
report zrich_0001 .
tables: mara.
data : flag.
selection-screen begin of block b1 with frame title
text-001.
parameters: r_matgrp radiobutton group g1
default 'X' user-command rad1,
r_prdgrp radiobutton group g1.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title
text-002.
select-options: s_matgrp for mara-matkl modif id mat,
s_prdgrp for pgmi-prgrp modif id prd.
selection-screen end of block b2.
at selection-screen output.
if r_matgrp eq 'X'.
flag = '1'.
elseif r_prdgrp eq 'X'.
flag = '2'.
endif.
***** For Material Type
case flag.
when '1'.
loop at screen.
case screen-group1.
when 'MAT'.
screen-invisible = '0'.
screen-active = '1'.
modify screen.
when 'PRD'.
screen-invisible = '1'.
screen-active = '0'.
modify screen.
endcase.
endloop.
**** For product type
when '2'.
loop at screen.
case screen-group1.
when 'MAT'.
screen-invisible = '1'.
screen-active = '0'.
modify screen.
when 'PRD'.
screen-invisible = '0'.
screen-active = '1'.
modify screen.
endcase.
endloop.
endcase.
Regards,
Rich Heilman
‎2006 Jun 13 2:16 PM
Hi Amit,
1. I have slightly modified your code.
2. Now it works fantastic
(just copy paste)
3.
report abc.
DATA : FLAG VALUE '1'.
tables : mara .
tables : pgmi.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE
TEXT-001.
PARAMETERS: R_MATGRP RADIOBUTTON GROUP G1
DEFAULT 'X' USER-COMMAND RAD1,
R_PRDGRP RADIOBUTTON GROUP G1.
SELECTION-SCREEN : eND OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE
TEXT-002.
SELECT-OPTIONS: S_MATGRP FOR MARA-MATKL MODIF ID A,
S_PRDGRP FOR PGMI-PRGRP MODIF ID B.
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP G1.
IF R_MATGRP EQ 'X'.
FLAG = '1'.
ELSEIF R_PRDGRP EQ 'X'.
FLAG = '2'.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
For Material Type
CASE FLAG.
WHEN '1'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'B'.
SCREEN-INVISIBLE = 1.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
CASE FLAG.
WHEN '2'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'A'.
SCREEN-INVISIBLE = 1.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDCASE.
regards,
amit m.
‎2006 Jun 13 2:25 PM
Hi Amit,
Just copy paste code which i have given . it will solve ur problem.
If used <b>MODIF ID</b> ; it removes the overhead of activating the field.
activation and deactivation of field are handled internally.
When u use MODIF ID ; other overheads like declaring flag ; logic for activation are eleminated.
if the result is reverse just change the modif id assignment.
<b>Please Award Some Points & close thread.
any problem ; most welcome.
Regards
manoj.baijnath@wipro.com</b>