Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

ZSDM 000 FM Onek SH Exit

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

FUNCTION zsdm_fm_onek_sh_exit.

*"----------------------------------------------------------------------
*"*"Local Interface:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCR_TAB_T
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR_T
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
*"----------------------------------------------------------------------

DATA :
lv_index TYPE sy-index,
wa_selopt TYPE ddshselopt,
wa_selops TYPE ddshselopt,
lv_selops TYPE rsdsselop_,
lv_case_flg TYPE xfeld,
ls_shlp_fielddrop TYPE ddshfprop,
lr_model TYPE REF TO /mds/_cl_m_request,
lr_ui_controller TYPE REF TO /mds/cl_ui_controller.

RANGES :
lr_zznumon FOR zxx_012_t_numek-zznumon,
lr_zznumon_tx FOR zxx_012_t_numek-zznumon_tx.

IF callcontrol-step = 'DISP' AND sy-ucomm = 'ENTER'.


callcontrol-step = 'RETURN'.
EXIT.
ENDIF.

IF callcontrol-step = 'SELECT'.

lr_ui_controller = /mds/cl_ui_controller=>create_instance( ).

lr_model = lr_ui_controller->get_model( ).

CASE lr_model->mds_request-type.
WHEN 1. "person
WHEN 2. "organization
WHEN 3. "group
ENDCASE.

IF shlp-selopt IS NOT INITIAL.

LOOP AT shlp-selopt INTO wa_selopt.

wa_selops = wa_selopt.

IF wa_selops-option = 'EQ' OR wa_selops-option = 'CP'.

lv_selops = wa_selops-low.

TRANSLATE lv_selops TO UPPER CASE. "#EC SYNTCHAR

WHILE lv_selops NE wa_selops-low.


wa_selops-option = 'CP'.
lv_case_flg = 'X'.
lv_index = sy-index - 1.
IF lv_selops+lv_index(1) NE '*'.
lv_selops+lv_index(1) = wa_selops-low+lv_index(1) = '+'.
ENDIF.
ENDWHILE.

REPLACE '*+' WITH '*' INTO wa_selops-low.


REPLACE '+*' WITH '*' INTO wa_selops-low.
REPLACE '**' WITH '*' INTO wa_selops-low.

ENDIF.

* APPEND wa_selops TO lt_selops.

CASE wa_selopt-shlpfield.
WHEN 'NUMO'.
MOVE-CORRESPONDING wa_selopt TO lr_numo.
APPEND lr_numon.
WHEN 'NUMO_TX'.
MOVE-CORRESPONDING wa_selopt TO lr_numo_tx.
APPEND lr_numon_tx.
ENDCASE.

ENDLOOP.

ENDIF.

SELECT numo, numo_tx FROM zxx_t_numek INTO TABLE @DATA(lt_numonek) WHERE numo
IN @lr_numo AND numon_tx IN @lr_numon_tx.

ENDIF.

CALL FUNCTION 'F4UT_RESULTS_MAP'


TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = lt_numonek[]
CHANGING
shlp = shlp
callcontrol = callcontrol.

callcontrol-step = 'DISP'.
ENDIF.

IF callcontrol-step = 'DISP'.
EXIT.
ENDIF.

ENDFUNCTION.

You might also like