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

user command

Former Member
0 Likes
635

using classes how to provide logic for user command event

like if i select a record in header list&click a push button i have to get item details of tht record. itried using event user_command and method user_command.i didnt get the logic.

4 REPLIES 4
Read only

Former Member
0 Likes
552

Hi Pavan,

you will have to create an "EVENT Handler" class for the control event and get the relevent fields from the event class interface.

If it is an ALV Check the Package SLIS for event handling class examples.

Please Reward Points if this helps.

-Thank You-

Read only

0 Likes
552

Like this

CLASS zcl_dog DEFINITION.

PUBLIC SECTION.

METHODS:

constructor

IMPORTING z_object type ref to zcl_dog,

  • i_parent type ref to cl_gui_custom_container,

display_grid

CHANGING it_fldcat type lvc_t_fcat,

build_dynamic_structures

CHANGING it_fldcat TYPE lvc_t_fcat.

PRIVATE SECTION.

METHODS:

on_user_command FOR EVENT before_user_command OF cl_gui_alv_grid

IMPORTING e_ucomm

sender,

on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid

IMPORTING e_object

e_interactive,

on_dubbelklik FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row

e_column

es_row_no,

handle_data_changed

FOR EVENT data_changed OF cl_gui_alv_grid

IMPORTING er_data_changed,

handle_data_changed_finished

FOR EVENT data_changed_finished OF cl_gui_alv_grid

IMPORTING e_modified

et_good_cells,

et_good_cells,

verwerk

IMPORTING program type sy-repid,

download_to_excel,

return_structure,

create_dynamic_fcat

EXPORTING it_fldcat TYPE lvc_t_fcat,

create_dynamic_table

IMPORTING it_fldcat TYPE lvc_t_fcat

EXPORTING dy_table TYPE REF TO DATA.

DATA:

lr_rtti_struc TYPE REF TO cl_abap_structdescr, "RTTI

zog LIKE LINE OF lr_rtti_struc->components, "RTTI

wa_it_fldcat TYPE lvc_s_fcat,

it_fldcat TYPE lvc_t_fcat,

dy_table TYPE REF TO data,

dy_line TYPE REF TO data,

struct_grid_lset TYPE lvc_s_layo,

grid_container1 TYPE REF TO cl_gui_custom_container,

grid1 TYPE REF TO cl_gui_alv_grid.

data: ls_layout type kkblo_layout,

lt_fieldcat_wa type kkblo_fieldcat,

l_mode type raw4,

celltab type LVC_T_STYL,

wa_celltab type lvc_s_styl,

lt_fieldcat type kkblo_t_fieldcat.

data: l_tabname type slis_tabname.

TYPES:

struc LIKE zog.

DATA:

zogt TYPE TABLE OF struc.

ENDCLASS.

Implementation section

CREATE OBJECT grid_container1

EXPORTING

container_name = 'CCONTAINER1'.

CREATE OBJECT grid1

EXPORTING

i_parent = grid_container1.

SET HANDLER z_object->on_user_command for grid1.

SET HANDLER z_object->on_toolbar for grid1.

SET HANDLER Z_OBJECT->handle_data_changed_finished FOR grid1.

SET HANDLER Z_OBJECT->on_dubbelklik FOR grid1.

CALL METHOD grid1->register_edit_event

EXPORTING

i_event_id = cl_gui_alv_grid=>mc_evt_enter.

ENDMETHOD.

CLASS zcl_dog IMPLEMENTATION.

METHOD constructor.

  • CALL METHOD super->constructor

  • EXPORTING

  • i_appl_events = 'X'

  • i_parent = i_parent.

.

CREATE OBJECT grid_container1

EXPORTING

container_name = 'CCONTAINER1'.

CREATE OBJECT grid1

EXPORTING

i_parent = grid_container1.

SET HANDLER z_object->on_user_command for grid1.

SET HANDLER z_object->on_toolbar for grid1.

SET HANDLER Z_OBJECT->handle_data_changed_finished FOR grid1.

SET HANDLER Z_OBJECT->on_dubbelklik FOR grid1.

CALL METHOD grid1->register_edit_event

EXPORTING

i_event_id = cl_gui_alv_grid=>mc_evt_enter.

ENDMETHOD.

METHOD on_dubbelklik.

break-point 1.

ENDMETHOD.

METHOD handle_data_changed.

  • Insert user code here if required

  • this method is entered if user ENTERS DATA.

ENDMETHOD.

METHOD handle_data_changed_finished.

  • Insert user code here if required

  • Method entered here after data entry has finished.

ENDMETHOD.

METHOD return_structure.

lr_rtti_struc ?= cl_abap_structdescr=>DESCRIBE_BY_DATA( <fs1> ).

zogt[] = lr_rtti_struc->components.

ASSIGN zogt[] TO <fs2>.

ENDMETHOD.

METHOD create_dynamic_fcat.

LOOP AT <fs2> INTO zog.

CLEAR wa_it_fldcat.

wa_it_fldcat-fieldname = zog-name .

wa_it_fldcat-datatype = zog-type_kind.

wa_it_fldcat-inttype = zog-type_kind.

wa_it_fldcat-intlen = zog-length.

wa_it_fldcat-decimals = zog-decimals.

wa_it_fldcat-coltext = zog-name.

wa_it_fldcat-lowercase = 'X'.

APPEND wa_it_fldcat TO it_fldcat .

assign it_fldcat[] to <field_catalog>.

ENDLOOP.

assign it_fldcat[] to <field_catalog>.

ENDMETHOD.

METHOD download_to_excel.

break-point 5.

call function 'LVC_TRANSFER_TO_KKBLO'

exporting

it_fieldcat_lvc = <field_catalog>

  • is_layout_lvc = m_cl_variant->ms_layout

is_tech_complete = ' '

importing

es_layout_kkblo = ls_layout

et_fieldcat_kkblo = lt_fieldcat.

loop at lt_fieldcat into lt_fieldcat_wa.

clear lt_fieldcat_wa-tech_complete.

if lt_fieldcat_wa-tabname is initial.

lt_fieldcat_wa-tabname = '1'.

modify lt_fieldcat from lt_fieldcat_wa.

endif.

l_tabname = lt_fieldcat_wa-tabname.

endloop.

call function 'ALV_XXL_CALL'

exporting

i_tabname = l_tabname

is_layout = ls_layout

it_fieldcat = lt_fieldcat

i_title = sy-title

tables

it_outtab = <dyn_table>

exceptions

fatal_error = 1

no_display_possible = 2

others = 3.

if sy-subrc <> 0.

message id sy-msgid type 'S' number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

  • to be implemented

ENDMETHOD.

METHOD create_dynamic_table.

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = it_fldcat

IMPORTING

ep_table = dy_table.

ENDMETHOD.

METHOD build_dynamic_structures.

CALL METHOD me->return_structure.

CALL METHOD me->create_dynamic_fcat

IMPORTING

it_fldcat = it_fldcat.

CALL METHOD me->create_dynamic_table

EXPORTING

it_fldcat = it_fldcat

IMPORTING

dy_table = dy_table.

ASSIGN dy_table->* TO <dyn_table>.

CREATE DATA dy_line LIKE LINE OF <dyn_table>.

ASSIGN dy_line->* TO <dyn_wa>.

ENDMETHOD.

METHOD display_grid.

struct_grid_lset-edit = 'X'. "To enable editing in ALV

struct_grid_lset-grid_title = 'Bulkwijzigingen inkoopprijzen'.

struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.

struct_grid_lset-stylefname = 'CELLTAB'.

CALL METHOD grid1->set_ready_for_input

EXPORTING

i_ready_for_input = '1'.

loop at <dyn_table> into <dyn_wa>.

refresh celltab.

wa_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

wa_celltab-fieldname = 'KUNNR'.

insert wa_celltab into table celltab.

wa_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

wa_celltab-fieldname = 'NAME1'.

insert wa_celltab into table celltab.

INSERT LINES OF celltab INTO wa_celltab-celltab.

MODIFY <dyn_table> > index sy-index.

endloop.

CALL METHOD grid1->set_table_for_first_display

EXPORTING

is_layout = struct_grid_lset

CHANGING

it_outtab = <dyn_table>

it_fieldcatalog = it_fldcat.

ENDMETHOD.

METHOD on_user_command.

CASE e_ucomm.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'EXCEL'.

CALL METHOD me->download_to_excel.

WHEN 'SAVE'.

WHEN 'VERW'.

CALL METHOD me->verwerk

EXPORTING

PROGRAM = SY-REPID.

ENDCASE.

ENDMETHOD. "on_user_command

METHOD on_toolbar.

DATA: ls_toolbar TYPE stb_button.

CLEAR ls_toolbar.

MOVE 0 TO ls_toolbar-butn_type.

MOVE 'EXIT' TO ls_toolbar-function.

MOVE SPACE TO ls_toolbar-disabled.

MOVE icon_system_end TO ls_toolbar-icon.

MOVE 'Click2Exit' TO ls_toolbar-quickinfo.

APPEND ls_toolbar TO e_object->mt_toolbar.

CLEAR ls_toolbar.

MOVE 0 TO ls_toolbar-butn_type.

MOVE 'SAVE' TO ls_toolbar-function.

MOVE SPACE TO ls_toolbar-disabled.

MOVE icon_system_save TO ls_toolbar-icon.

MOVE 'Save data' TO ls_toolbar-quickinfo.

APPEND ls_toolbar TO e_object->mt_toolbar.

CLEAR ls_toolbar.

MOVE 0 TO ls_toolbar-butn_type.

MOVE 'EDIT' TO ls_toolbar-function.

MOVE SPACE TO ls_toolbar-disabled.

MOVE icon_toggle_display_change TO ls_toolbar-icon.

MOVE 'Edit data' TO ls_toolbar-quickinfo.

MOVE 'EDIT' TO ls_toolbar-text.

APPEND ls_toolbar TO e_object->mt_toolbar.

CLEAR ls_toolbar.

MOVE 0 TO ls_toolbar-butn_type.

MOVE 'VERW' TO ls_toolbar-function.

MOVE SPACE TO ls_toolbar-disabled.

MOVE icon_businav_process to ls_toolbar-icon.

MOVE 'Verw.' TO ls_toolbar-quickinfo.

MOVE 'VERW' TO ls_toolbar-text.

APPEND ls_toolbar TO e_object->mt_toolbar.

CLEAR ls_toolbar.

MOVE 0 TO ls_toolbar-butn_type.

MOVE 'EXCEL' TO ls_toolbar-function.

MOVE SPACE TO ls_toolbar-disabled.

MOVE icon_xxl TO ls_toolbar-icon.

MOVE 'Excel' TO ls_toolbar-quickinfo.

MOVE 'EXCEL' TO ls_toolbar-text.

APPEND ls_toolbar TO e_object->mt_toolbar.

ENDMETHOD.

METHOD verwerk.

PERFORM verwerk IN PROGRAM (program).

LEAVE PROGRAM.

ENDMETHOD.

ENDCLASS.

This should give you all (and more ) of what you need.

In your MAIN program Instantiate the class object with

DATA : z_object type ref to zcl_dog, "Instantiate our class

CREATE OBJECT z_object EXPORTING z_object = z_object.

Now you can access the class and methods.

Use as a sample template as you might want to change the PRIVATE methods to PUBLIC in some cases.

Cheers

Jimbo

Read only

marcelo_ramos1
SAP Mentor
SAP Mentor
0 Likes
552

Hi,

<b>----


  • CLASS lcl_event_receiver DEFINITION

----


</b>

CLASS lcl_event_receiver DEFINITION.

PUBLIC SECTION.

CLASS-METHODS:

handle_user_command

FOR EVENT user_command OF cl_gui_alv_grid

IMPORTING e_ucomm,

handle_hotspot_click

FOR EVENT hotspot_click OF cl_gui_alv_grid

IMPORTING e_row_id.

ENDCLASS.

<b>----


  • CLASS lcl_event_receiver IMPLEMENTATION

----


</b>

CLASS lcl_event_receiver IMPLEMENTATION.

METHOD handle_user_command.

CASE e_ucomm.

WHEN 'ENTE'.

  • DO SOMETHING

WHEN 'APRV'

  • DO SOMETHING

WHEN OTHERS.

  • DO SOMETHING

ENDCASE.

ENDMETHOD. "handle_user_command

METHOD handle_hotspot_click.

READ TABLE t_FILE INTO S_FILE INDEX e_row_id-index.

CHECK: sy-subrc IS INITIAL.

  • DO SOMETHING

ENDMETHOD. "handle_hotspot_click

ENDCLASS.

<b>...</b>

DATA: custom_container1 TYPE REF TO cl_gui_custom_container.

<b>DATA: event_receiver TYPE REF TO lcl_event_receiver.</b>

DATA: grid1 TYPE REF TO cl_gui_alv_grid.

<b>....</b>

CREATE OBJECT custom_container1

EXPORTING

container_name = cont_on_100.

CREATE OBJECT grid1

EXPORTING i_parent = custom_container1.

CALL METHOD grid1->set_table_for_first_display

EXPORTING is_layout = gs_layout

CHANGING it_fieldcatalog = it_fieldcat

it_outtab = t_file[].

<b>CREATE OBJECT event_receiver.</b>

<b> SET HANDLER event_receiver->handle_user_command

event_receiver->handle_hotspot_click

FOR ALL INSTANCES.</b>

Regards.

Marcelo Ramos

Read only

Former Member
0 Likes
552

please refer this example

REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650

MESSAGE-ID ZZ_9838 .

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. "display_alv_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM.