Skip to Content
0
Former Member
Mar 01, 2016 at 09:19 AM

screen-exit f-02

668 Views

HI gurus

I have an assignment to add a new field on screen 300 of F_02 .I therefore tried to use a badi.

BADI_FDCB_SUBBAS02 and have created a field in structure invfo ZZSUM .

THESE ARE THE TWO METHODS I HAVE IMPLEMENTED IN THE BADI

method IF_EX_BADI_FDCB_SUBBAS02~PUT_DATA_TO_SCREEN_OBJECT.

IF sy-tcode EQ 'F-02'.

me->if_ex_badi_fdcb_subbas02~invfo = im_invfo.

ENDIF.

endmethod.


method IF_EX_BADI_FDCB_SUBBAS02~GET_DATA_FROM_SCREEN_OBJECT.

IF sy-tcode EQ 'F-02'.

ex_invfo = me->if_ex_badi_fdcb_subbas02~invfo.

ENDIF.

endmethod.



On subscreens Tab flow logic FOR SCREEN 100

PROCESS BEFORE OUTPUT.

* MODULE STATUS_0100.

MODULE receive_data.

*

PROCESS AFTER INPUT.

* get again actual data from main screen

MODULE receive_actual_data.

*

* implement from here on customer coding

* enumerate ALL fields on the screen because of field transportation

* with or within a module

FIELD:

invfo-zzsum.

* send data back to main screen

MODULE USER_COMMAND_0100.


PROGRAM SAPLZBADI_EXAMPLE_FDCB_BAS

******************************************************************

* System-defined Include-files. *

*******************************************************************

INCLUDE LZBADI_EXAMPLE_FDCB_BASTOP. " Global Data

INCLUDE LZBADI_EXAMPLE_FDCB_BASUXX. " Function Modules

*******************************************************************

* User-defined Include-files (if necessary). *

*******************************************************************

* INCLUDE LBADI_EXAMPLE_FDCB_BASF... " Subprograms

* INCLUDE LBADI_EXAMPLE_FDCB_BASO... " PBO-Modules

* INCLUDE LBADI_EXAMPLE_FDCB_BASI... " PAI-Modules

INCLUDE LZBADI_EXAMPLE_FDCB_BASO01.

*INCLUDE LBADI_EXAMPLE_FDCB_BASO01.

INCLUDE LZBADI_EXAMPLE_FDCB_BASI01.

*INCLUDE LBADI_EXAMPLE_FDCB_BASI01.


INCLUDE LZBADI_EXAMPLE_FDCB_BASTOP.


FUNCTION-POOL ZBADI_EXAMPLE_FDCB_BAS. "MESSAGE-ID ..

tables: invfo.

data: o_badi_fdcb_subbas02 type ref to if_ex_badi_fdcb_subbas02.

constants:

exit_name_fdcb_subbas02 type exit_def

value 'BADI_FDCB_SUBBAS02'.


INCLUDE LZBADI_EXAMPLE_FDCB_BASO01.


MODULE receive_data OUTPUT.

IF o_badi_fdcb_subbas02 IS INITIAL.

CALL METHOD cl_exithandler=>get_instance_for_subscreens

CHANGING

instance = o_badi_fdcb_subbas02

EXCEPTIONS

no_reference = 1

no_interface_reference = 2

no_exit_interface = 3

data_incons_in_exit_managem = 4

class_not_implement_interface = 5

OTHERS = 6.

IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

* object created ?

CHECK NOT o_badi_fdcb_subbas02 IS INITIAL.

* get data from main screen

CALL METHOD o_badi_fdcb_subbas02->get_data_from_screen_object

IMPORTING

ex_invfo = invfo.

ENDMODULE.


INCLUDE LZBADI_EXAMPLE_FDCB_BASI01.

module receive_actual_data input.

* object created ?

CHECK NOT o_badi_fdcb_subbas02 IS INITIAL.

* get data from main screen

CALL METHOD o_badi_fdcb_subbas02->get_data_from_screen_object

IMPORTING

ex_invfo = invfo.

endmodule. " receive_actual_data INPUT

*&---------------------------------------------------------------------*

*& Module USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

module USER_COMMAND_0100 input.

CHECK NOT o_badi_fdcb_subbas02 IS INITIAL.

* put data to main screen

CALL METHOD o_badi_fdcb_subbas02->put_data_to_screen_object

EXPORTING

im_invfo = invfo.

endmodule.



................................................................................................................................................................


I DID NOT SEE ANY CHANGE WITH THIS METHOD.Now am trying to go to se51 on screen 300 i can see there is a subscreen area BLOCK but i am failing to modify it.


Please help am stuck ,dont know what else to do.


regards,


Attachments

subscreen.gif (418.5 kB)
f-02.gif (410.1 kB)
badi1.gif (424.2 kB)