‎2008 Dec 23 7:48 AM
I am working with Version 4.6C.
In this version the selection screen having Two Blocks Say Block1, Block2 and Two Radio Buttons.
If i select Radio button1 Block 1 Should be Visible and block 2 should be in-Visiable same as vice versa for radio button 2.
Its working fine in ECC 6.0.
But in 4.6C the screens are Ovelapping.
The sample code as below.
TABLES: RKWA,EKKO,EKPO.
PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND AA.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_ITEM LIKE EKPO-PSTYP MODIF ID AA.
SELECT-OPTIONS: S_BUKRS FOR RKWA-BUKRS MODIF ID AA,
S_LIFNR FOR RKWA-LIFNR MODIF ID AA,
S_WERKS FOR RKWA-BUKRS MODIF ID AA,
S_MATNR FOR RKWA-MATNR MODIF ID AA,
S_EKORG FOR EKKO-EKORG MODIF ID AA,
S_EKGRP FOR EKKO-EKGRP MODIF ID AA,
S_MBLNR FOR RKWA-MBLNR MODIF ID AA,
S_BLDAT FOR RKWA-BLDAT MODIF ID AA,
S_BUDAT FOR RKWA-BUDAT MODIF ID AA.
SELECTION-SCREEN: END OF BLOCK B1 .
SELECTION-SCREEN SKIP.
PARAMETERS : R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_ITEM1 LIKE EKPO-PSTYP MODIF ID CC.
SELECT-OPTIONS:S_LIFNR1 FOR RKWA-LIFNR MODIF ID CC,
S_WERKS1 FOR RKWA-BUKRS MODIF ID CC,
S_MATNR1 FOR RKWA-MATNR MODIF ID CC,
S_BLDAT1 FOR RKWA-BLDAT MODIF ID CC,
S_EKORG1 FOR EKKO-EKORG MODIF ID CC.
SELECTION-SCREEN: END OF BLOCK B2 .
TYPES: BEGIN OF TYPE_RKWA,
BUKRS TYPE RKWA-BUKRS,
LIFNR TYPE RKWA-LIFNR,
MBLNR TYPE RKWA-MBLNR,
MJAHR TYPE RKWA-MJAHR,
ZEILE TYPE RKWA-ZEILE,
BLDAT TYPE RKWA-BLDAT,
WERKS TYPE RKWA-WERKS,
MATNR TYPE RKWA-MATNR,
BSTMG TYPE RKWA-BSTMG,
BSTME TYPE RKWA-BSTME,
BWAER TYPE RKWA-BWAER,
WRBTR TYPE RKWA-WRBTR,
BELNR TYPE RKWA-BELNR,
GJAHR TYPE RKWA-GJAHR,
BUZEI TYPE RKWA-BUZEI,
END OF TYPE_RKWA.
DATA: I_RKWA TYPE STANDARD TABLE OF TYPE_RKWA.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
PERFORM VALIDATIONS.
FORM VALIDATIONS .
IF R1 = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'AA'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ENDIF.
IF SCREEN-GROUP1 = 'CC'.
SCREEN-INPUT = '0'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSEIF R2 = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'AA'.
SCREEN-INPUT = '0'.
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
IF SCREEN-GROUP1 = 'CC'.
SCREEN-INPUT = '1'.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " Validations
‎2008 Dec 23 9:53 AM
Try like this.
you can get screen-name from screen1000(Element List)
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: rb_manul RADIOBUTTON GROUP grp1 DEFAULT 'X'
USER-COMMAND ucom,
rb_filup RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS pa_werks LIKE marc-werks.
PARAMETERS pa_spart TYPE /dceur/zzsparte.
SELECT-OPTIONS: so_matnr FOR mara-matnr NO INTERVALS,
so_rkey FOR /dceur/md_winstg-z_reference_key
NO INTERVALS.
PARAMETERS pa_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-014.
PARAMETERS ch_fail AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b3.
AT SELECTION-SCREEN OUTPUT.
*Screen modification based on the selection
PERFORM modify_screen.
FORM modify_screen.
IF rb_manul EQ 'X'.
LOOP AT SCREEN.
IF screen-name = '%_PA_FILE_%_APP_%-TEXT' OR
screen-name = 'PA_FILE'.
screen-input = 0.
screen-invisible = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ELSEIF rb_filup EQ 'X'.
LOOP AT SCREEN.
IF screen-name = 'PA_SPART' OR
screen-name = '%_PA_SPART_%_APP_%-TEXT' OR
screen-name = '%_SO_MATNR_%_APP_%-TEXT' OR
screen-name = '%_SO_MATNR_%_APP_%-OPTI_PUSH'OR
screen-name = 'SO_MATNR-LOW' OR
screen-name = '%_SO_MATNR_%_APP_%-VALU_PUSH' OR
screen-name = '%_SO_RKEY_%_APP_%-TEXT'OR
screen-name = '%_SO_RKEY_%_APP_%-OPTI_PUSH' OR
screen-name = 'SO_RKEY-LOW' OR
screen-name = '%_SO_RKEY_%_APP_%-VALU_PUSH'.
screen-input = 0.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " modify_screen
‎2008 Dec 23 8:32 AM
Hi,
The code is working fine in 4.6 B version too.
Reg
Hemanth
‎2008 Dec 23 8:40 AM
Hi there....
go to transaction se51 and pun in your program name and screen number..... edit the field as per your requirement.... put the two blocks at certain distance so that they fulfill your requirement....
get back if this doesnt help....
‎2008 Dec 23 9:53 AM
Try like this.
you can get screen-name from screen1000(Element List)
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: rb_manul RADIOBUTTON GROUP grp1 DEFAULT 'X'
USER-COMMAND ucom,
rb_filup RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS pa_werks LIKE marc-werks.
PARAMETERS pa_spart TYPE /dceur/zzsparte.
SELECT-OPTIONS: so_matnr FOR mara-matnr NO INTERVALS,
so_rkey FOR /dceur/md_winstg-z_reference_key
NO INTERVALS.
PARAMETERS pa_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-014.
PARAMETERS ch_fail AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b3.
AT SELECTION-SCREEN OUTPUT.
*Screen modification based on the selection
PERFORM modify_screen.
FORM modify_screen.
IF rb_manul EQ 'X'.
LOOP AT SCREEN.
IF screen-name = '%_PA_FILE_%_APP_%-TEXT' OR
screen-name = 'PA_FILE'.
screen-input = 0.
screen-invisible = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ELSEIF rb_filup EQ 'X'.
LOOP AT SCREEN.
IF screen-name = 'PA_SPART' OR
screen-name = '%_PA_SPART_%_APP_%-TEXT' OR
screen-name = '%_SO_MATNR_%_APP_%-TEXT' OR
screen-name = '%_SO_MATNR_%_APP_%-OPTI_PUSH'OR
screen-name = 'SO_MATNR-LOW' OR
screen-name = '%_SO_MATNR_%_APP_%-VALU_PUSH' OR
screen-name = '%_SO_RKEY_%_APP_%-TEXT'OR
screen-name = '%_SO_RKEY_%_APP_%-OPTI_PUSH' OR
screen-name = 'SO_RKEY-LOW' OR
screen-name = '%_SO_RKEY_%_APP_%-VALU_PUSH'.
screen-input = 0.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " modify_screen