07-20-2007 7:34 AM
1. I am having two selection frames in the selection screen, in the firest selection screen i am having Date,Purchase order, Vendor, City fields and in the second frame i having 3 radio buttons with Date, P.order, Vendor, if i select one radio buttion in the second frame i need to remain highlight the fields related to that radiobutton rest of them should be hide. How can u write logic for this?
2. Is it possible to create inner join between two cluster tables and
is it possible to create inner join between two pooled tables?
07-20-2007 7:53 AM
Hi...
You can test the code below.
&----
*& Report ZZSEL_DYNAMIC *
*& *
&----
*& *
*& *
&----
REPORT zzsel_dynamic .
TABLES : sscrfields.
DATA :v_ucomm TYPE sscrfields-ucomm.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 NO INTERVALS .
PARAMETERS : p_bedat TYPE ekko-bedat,
p_ebeln TYPE ekko-ebeln,
p_lifnr TYPE ekko-lifnr.
SELECTION-SCREEN: END OF BLOCK b1 .
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002 .
PARAMETERS : rb_bedat RADIOBUTTON GROUP a USER-COMMAND rb, "Function code
rb_ebeln RADIOBUTTON GROUP a ,
rb_lifnr RADIOBUTTON GROUP a .
SELECTION-SCREEN : END OF BLOCK b2 .
AT SELECTION-SCREEN .
v_ucomm = sscrfields-ucomm.
AT SELECTION-SCREEN OUTPUT.
CASE v_ucomm.
WHEN 'RB'.
CASE 'X'.
WHEN rb_bedat.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_BEDAT'.
screen-input = 1.
WHEN 'P_EBELN' OR 'P_LIFNR'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
WHEN rb_ebeln.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_EBELN'.
screen-input = 1.
WHEN 'P_BEDAT' OR 'P_LIFNR'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
WHEN rb_lifnr.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_LIFNR'.
screen-input = 1.
WHEN 'P_BEDAT' OR 'P_EBELN'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
ENDCASE.
************************************
Note: SSCRFIELDS-UCOMM stores the Fct code in selection screen.
<b>Reward if it is helpful</b>
07-20-2007 7:36 AM
hi
copy paste the following code and make changes accordingly in the fields
TABLES: eban,
SSCRFIELDS.
SELECTION-SCREEN BEGIN OF SCREEN 100 TITLE title.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETER:rad1 RADIOBUTTON GROUP rad USER-COMMAND frad1 DEFAULT 'X',
rad2 RADIOBUTTON GROUP rad .
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
PARAMETER: mtr AS CHECKBOX MODIF ID g3 USER-COMMAND chk1,
p_matnr TYPE eban-matnr MODIF ID g1,
sloc AS CHECKBOX MODIF ID g3 USER-COMMAND chk2,
str_loc TYPE eban-lgort MODIF ID g4.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
SELECT-OPTIONS: matnr1 FOR eban-matnr MODIF ID g2.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN PUSHBUTTON /20(10) name USER-COMMAND UCOM.
SELECTION-SCREEN END OF SCREEN 100.
name = 'FETCH'.
title = 'Test Report'.
CALL SELECTION-SCREEN '100'.
TYPE-POOLS slis.
* declaration of internal tables and work areas to be used
DATA: BEGIN OF it_pr OCCURS 0,
banfn TYPE eban-banfn,
bnfpo TYPE eban-bnfpo,
loekz TYPE eban-loekz,
statu TYPE eban-statu,
ekgrp TYPE eban-ekgrp,
matnr TYPE eban-matnr,
werks TYPE eban-werks,
lgort TYPE eban-lgort,
preis TYPE eban-preis,
peinh TYPE eban-peinh,
END OF it_pr.
DATA: BEGIN OF it_mat OCCURS 0,
matnr TYPE eban-matnr,
END OF it_mat.
*DATA:BEGIN OF ITAB1 OCCURS 0,
DATA: l_answer.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat,
it_event TYPE slis_t_event,
wa_event TYPE slis_alv_event.
* declaration of variables to be used
DATA: r_ucomm TYPE sy-ucomm,
mat_no TYPE eban-matnr,
len TYPE i VALUE 1,
count TYPE i VALUE IS INITIAL,
iflag TYPE i VALUE IS INITIAL,
iflag1 TYPE i VALUE 0.
DATA :pr_id TYPE sy-repid,
rt_extab TYPE slis_t_extab.
INITIALIZATION.
pr_id = sy-repid.
hope it solves ur probs
regards
ravish
<b>plz dont forget to reward points if helpful</b>
07-20-2007 7:53 AM
Hi...
You can test the code below.
&----
*& Report ZZSEL_DYNAMIC *
*& *
&----
*& *
*& *
&----
REPORT zzsel_dynamic .
TABLES : sscrfields.
DATA :v_ucomm TYPE sscrfields-ucomm.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 NO INTERVALS .
PARAMETERS : p_bedat TYPE ekko-bedat,
p_ebeln TYPE ekko-ebeln,
p_lifnr TYPE ekko-lifnr.
SELECTION-SCREEN: END OF BLOCK b1 .
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002 .
PARAMETERS : rb_bedat RADIOBUTTON GROUP a USER-COMMAND rb, "Function code
rb_ebeln RADIOBUTTON GROUP a ,
rb_lifnr RADIOBUTTON GROUP a .
SELECTION-SCREEN : END OF BLOCK b2 .
AT SELECTION-SCREEN .
v_ucomm = sscrfields-ucomm.
AT SELECTION-SCREEN OUTPUT.
CASE v_ucomm.
WHEN 'RB'.
CASE 'X'.
WHEN rb_bedat.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_BEDAT'.
screen-input = 1.
WHEN 'P_EBELN' OR 'P_LIFNR'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
WHEN rb_ebeln.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_EBELN'.
screen-input = 1.
WHEN 'P_BEDAT' OR 'P_LIFNR'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
WHEN rb_lifnr.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_LIFNR'.
screen-input = 1.
WHEN 'P_BEDAT' OR 'P_EBELN'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
ENDCASE.
************************************
Note: SSCRFIELDS-UCOMM stores the Fct code in selection screen.
<b>Reward if it is helpful</b>
07-20-2007 7:57 AM
Hi,
Try this code.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text1.
PARAMETER: p_matnr TYPE eban-matnr MODIF ID g1,
str_loc TYPE eban-lgort MODIF ID g2,
p_name TYPE trdir-name MODIF ID g3.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text2.
PARAMETER:rad1 RADIOBUTTON GROUP rad USER-COMMAND rad DEFAULT 'X',
rad2 RADIOBUTTON GROUP rad,
rad3 RADIOBUTTON GROUP rad.
SELECTION-SCREEN END OF BLOCK b2.
INITIALIZATION.
text1 = 'Input parameters'.
text2 = 'Radiobuttons'.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF rad1 = 'X'.
IF screen-group1 = 'G1'.
screen-input = '1'.
ELSEIF screen-group1 = 'G2' OR screen-group1 = 'G3'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF rad2 = 'X'.
IF screen-group1 = 'G2'.
screen-input = '1'.
ELSEIF screen-group1 = 'G1' OR screen-group1 = 'G3'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF rad3 = 'X'.
IF screen-group1 = 'G3'.
screen-input = '1'.
ELSEIF screen-group1 = 'G2' OR screen-group1 = 'G1'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Thanks & Regards
Santhosh
07-20-2007 8:06 AM
Hi Murli Santhosh ,
I would like to make corection in the above solution. The correction are in bold.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text1.
PARAMETER: p_matnr TYPE eban-matnr MODIF ID g1,
str_loc TYPE eban-lgort MODIF ID g2,
p_name TYPE trdir-name MODIF ID g3.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text2.
PARAMETER:rad1 RADIOBUTTON GROUP rad USER-COMMAND rad DEFAULT 'X',
rad2 RADIOBUTTON GROUP rad,
rad3 RADIOBUTTON GROUP rad.
SELECTION-SCREEN END OF BLOCK b2.
INITIALIZATION.
text1 = 'Input parameters'.
text2 = 'Radiobuttons'.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF rad1 = 'X'.
IF screen-group1 = 'G1'.
<b>screen-active = 'X'.</b>
ELSEIF screen-group1 = 'G2' OR screen-group1 = 'G3'.
<b>screen-invisible = '1'.</b>
ENDIF.
MODIFY SCREEN.
ENDIF.
IF rad2 = 'X'.
IF screen-group1 = 'G2'.
<b>screen-active = 'X'.</b>
ELSEIF screen-group1 = 'G1' OR screen-group1 = 'G3'.
<b>screen-invisible = '1'.</b>
ENDIF.
MODIFY SCREEN.
ENDIF.
IF rad3 = 'X'.
IF screen-group1 = 'G3'.
<b>screen-active = 'X'.</b>
ELSEIF screen-group1 = 'G2' OR screen-group1 = 'G1'.
<b>screen-invisible = '1'.</b>
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Regards
Sourabh Verma
07-20-2007 8:10 AM
Hi,
Check Out the below code...
U have to Use USER COMMAND & MODIF ID.
REPORT ZMMS_RADIO .
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-033.
PARAMETERS :
rb_app RADIOBUTTON GROUP fil DEFAULT 'X' USER-COMMAND u1,
rb_pre RADIOBUTTON GROUP fil.
SELECTION-SCREEN END OF BLOCK b1 .
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-034.
PARAMETERS : p_upload LIKE rlgrap-filename OBLIGATORY DEFAULT
'C:' MODIF ID f1,
p_file1 LIKE filename-pathintern OBLIGATORY
DEFAULT 'Z_CELESTICA_UPLOAD' MODIF ID f2,
p_fl1_nm LIKE rlgrap-filename OBLIGATORY
DEFAULT 'UPLOAD.TXT' MODIF ID f2.
* p_appl LIKE rlgrap-filename NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK b2 .
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-035.
PARAMETERS:
p_dwload LIKE rlgrap-filename OBLIGATORY DEFAULT 'C:' MODIF ID f1,
p_err1 LIKE filename-pathintern OBLIGATORY
DEFAULT 'Z_CELESTICA_UPLOAD' MODIF ID f2,
p_er_nm LIKE rlgrap-filename OBLIGATORY
DEFAULT 'ERR.TXT' MODIF ID f2.
* p_appldw LIKE rlgrap-filename NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK b3 .
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF RB_APP = 'X' AND screen-group1 = 'F1'.
screen-output = 0.
screen-active = 0.
screen-input = 0.
ELSEIF RB_PRE = 'X' AND screen-group1 = 'F2'.
screen-output = 0.
screen-active = 0.
screen-input = 0.
ENDIF.
* IF RB_TEST = 'X' AND SCREEN-GROUP1 = 'XYZ'.
*
* SCREEN-INPUT = 0.
* ENDIF.
MODIFY SCREEN.
ENDLOOP.
*F4 Functionality for Upload File to enable user to choose file
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_UPLOAD.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
* IMPORTING
* FILE_NAME =
.
*F4 Functionality for Download File to enable user to choose file
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DWLOAD.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
* IMPORTING
* FILE_NAME =
.
Reward Points if it is Useful.
Thanks,
Manjunath MS
07-20-2007 8:26 AM
hi, this will help you.
***SELECTION SCREEN FOR RADIO BUTTON AND SELECT OPTIONS *********
SELECTION-SCREEN BEGIN OF BLOCK sel1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK sel2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND ucomm.
PARAMETERS:r2 RADIOBUTTON GROUP rad1.
PARAMETERS:r3 RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK sel2.
SELECTION-SCREEN BEGIN OF BLOCK sel3 WITH FRAME TITLE text-002.
SELECT-OPTIONS so_sorg FOR vbak-vkorg MODIF ID ss.
SELECT-OPTIONS:so_sno FOR vbak-vbeln MODIF ID ss.
SELECTION-SCREEN END OF BLOCK sel3.
SELECTION-SCREEN BEGIN OF BLOCK sel4 WITH FRAME TITLE text-002.
SELECT-OPTIONS so_porg FOR ekko-ekorg MODIF ID s1.
SELECT-OPTIONS:so_pno FOR ekko-ebeln MODIF ID s1.
SELECTION-SCREEN END OF BLOCK sel4.
SELECTION-SCREEN BEGIN OF BLOCK sel5 WITH FRAME TITLE text-002.
SELECT-OPTIONS so_vno FOR lfa1-lifnr MODIF ID s2.
SELECTION-SCREEN END OF BLOCK sel5.
SELECTION-SCREEN END OF BLOCK sel1.
************************************************************************
************************************************************************
AT S E L E C T I O N S C R E E N
*
************************************************************************
***TO DISPLAY SELECT-OPTIONS OF SELECTED RADIOBUTTON*****************
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF ( r3 = c_sel OR r2 = c_sel ) AND screen-group1 = 'SS'.
screen-input = c_zero.
ENDIF.
IF ( r1 = c_sel OR r3 = c_sel ) AND screen-group1 = 'S1'.
screen-input = c_zero.
ENDIF.
IF ( r1 = c_sel OR r2 = c_sel ) AND screen-group1 = 'S2'.
screen-input = c_zero.
ENDIF.
MODIFY SCREEN.
ENDLOOP.