Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

using class on selection screen output

Former Member
0 Likes
1,833

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

1 ACCEPTED SOLUTION
Read only

uwe_schieferstein
Active Contributor
0 Likes
768

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

2 REPLIES 2
Read only

sonu_p2
Active Participant
0 Likes
768

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

Read only

uwe_schieferstein
Active Contributor
0 Likes
769

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