‎2007 Apr 26 1:02 PM
Hello!
I am new with OO.
At selection screen output i have to radiobuttons with two fields.
the code is: PARAMETER: R_MFRPN RADIOBUTTON GROUP ABC DEFAULT 'X'.
PARAMETER: P_MFRPN LIKE MARA-MFRPN.
PARAMETER: R_MATNR RADIOBUTTON GROUP ABC.
PARAMETER: P_MATNR LIKE MARA-MATNR.
I need to create a situation that when R_MFRPN eq X the screen-output of P_MATNR eq 0 and vice versa.
I have to switch between the two options with enter.
I know that i can use abap objects for this.
If anyone has a code for that it will be very helpful.
thanks
Yifat
‎2007 Apr 26 8:37 PM
Hello Yifat
Here is a sample report which toggle SCREEN-INPUT depending on the selected radiobutton - without any ABAP-OO because there is no need for it.
*&---------------------------------------------------------------------*
*& Report ZUS_SDN_RADIOBUTTON
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zus_sdn_radiobutton.
TABLES: mara.
TABLES: sscrfields.
DATA:
gd_ucomm TYPE ui_func.
PARAMETER: r_mfrpn RADIOBUTTON GROUP abc DEFAULT 'X'
USER-COMMAND radio.
PARAMETER: p_mfrpn LIKE mara-mfrpn.
PARAMETER: r_matnr RADIOBUTTON GROUP abc.
PARAMETER: p_matnr LIKE mara-matnr MODIF ID mat.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF ( screen-group1 = 'MAT' ).
IF ( r_matnr = 'X' ).
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
AT SELECTION-SCREEN.
START-OF-SELECTION.
END-OF-SELECTION.Regards
Uwe
‎2007 Apr 26 2:08 PM
Hello Yifat,
Check out the code below :-
REPORT zdocking_splitter.
TABLES: ekko, ekpo, makt.
TYPE-POOLS: slis.
TYPE-POOLS: icon.
User Commands on Screens.
DATA: ok_code TYPE sy-ucomm,
Object references
ref_custom_container TYPE REF TO cl_gui_custom_container,
l_docking_left TYPE REF TO cl_gui_docking_container,
l_docking_top TYPE REF TO cl_gui_docking_container,
l_docking_bottom TYPE REF TO cl_gui_docking_container,
l_docking_bottom2 TYPE REF TO cl_gui_docking_container,
l_container_top TYPE REF TO cl_gui_container,
l_container_bottom TYPE REF TO cl_gui_container,
g_grid_ref1 TYPE REF TO cl_gui_alv_grid,
g_grid_ref2 TYPE REF TO cl_gui_alv_grid,
g_grid_ref3 TYPE REF TO cl_gui_alv_grid.
Variable for Filling the Field Catalog
DATA: fcat TYPE lvc_t_fcat,
lt_fieldcat TYPE lvc_t_fcat,
lt_fieldcat1 TYPE lvc_t_fcat,
lt_fieldcat2 TYPE lvc_t_fcat,
ls_layout TYPE lvc_s_layo.
CONSTANTS: c_marked TYPE c VALUE 'X'.
DATA: counter TYPE i VALUE 0.
*Internal Tables.
DATA: BEGIN OF itab_ekko OCCURS 0,
id TYPE icont-id,
ebeln TYPE ekko-ebeln,
END OF itab_ekko.
DATA: wa_ekko LIKE LINE OF itab_ekko.
DATA: BEGIN OF itab_ekpo OCCURS 0,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
matnr TYPE ekpo-matnr,
meins TYPE ekpo-meins,
menge TYPE ekpo-menge,
END OF itab_ekpo.
DATA: BEGIN OF itab_makt OCCURS 0,
matnr TYPE ekpo-matnr,
maktx TYPE makt-maktx,
END OF itab_makt.
Selection Screen Parameters.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_ebeln FOR ekpo-ebeln.
SELECTION-SCREEN END OF BLOCK b1.
----
CLASS lcl_event_control DEFINATION
----
*
----
CLASS lcl_event_control DEFINITION.
PUBLIC SECTION.
METHODS handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_column_id es_row_no.
ENDCLASS. "lcl_event_control DEFINATION
----
CLASS lcl_event_control IMPLEMENTATION
----
*
----
CLASS lcl_event_control IMPLEMENTATION.
METHOD handle_hotspot_click.
PERFORM handle_double_click USING es_row_no
e_column_id.
ENDMETHOD. "handle_hotspot_click
ENDCLASS. "lcl_event_control IMPLEMENTATION
******************************************************************************
DATA: gr_event_handler TYPE REF TO lcl_event_control.
*******************************************************************************
<b>AT SELECTION-SCREEN.
IF NOT s_ebeln IS INITIAL.
SELECT ebeln FROM ekko
INTO CORRESPONDING FIELDS OF TABLE itab_ekko
WHERE ebeln IN s_ebeln.
IF sy-subrc NE 0.
MESSAGE e002(zsplit).
ENDIF.
ELSE.
MESSAGE e001(zsplit).
ENDIF.
*************************************************************************</b>
START-OF-SELECTION.
CLEAR itab_ekko.
REFRESH itab_ekko.
SELECT ebeln FROM ekko
INTO CORRESPONDING FIELDS OF TABLE itab_ekko
WHERE ebeln IN s_ebeln.
LOOP AT itab_ekko INTO wa_ekko.
MOVE '@B0@' TO wa_ekko-id.
MODIFY itab_ekko FROM wa_ekko.
ENDLOOP.
CALL SCREEN 100.
************************************************************************
*
E N D O F M A I N P R O G R A M *
*
************************************************************************
<b>Reward points if helpful </b>
Thanks,
Sachin
‎2007 Apr 26 8:37 PM
Hello Yifat
Here is a sample report which toggle SCREEN-INPUT depending on the selected radiobutton - without any ABAP-OO because there is no need for it.
*&---------------------------------------------------------------------*
*& Report ZUS_SDN_RADIOBUTTON
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zus_sdn_radiobutton.
TABLES: mara.
TABLES: sscrfields.
DATA:
gd_ucomm TYPE ui_func.
PARAMETER: r_mfrpn RADIOBUTTON GROUP abc DEFAULT 'X'
USER-COMMAND radio.
PARAMETER: p_mfrpn LIKE mara-mfrpn.
PARAMETER: r_matnr RADIOBUTTON GROUP abc.
PARAMETER: p_matnr LIKE mara-matnr MODIF ID mat.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF ( screen-group1 = 'MAT' ).
IF ( r_matnr = 'X' ).
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
AT SELECTION-SCREEN.
START-OF-SELECTION.
END-OF-SELECTION.Regards
Uwe