INCLUDE <icon>.
l_opcode = 2.
CALL 'ThUsrInfo' ID 'OPCODE' FIELD l_opcode
ID 'TAB' FIELD usr_tabl-*sys*.
SORT t_user.
DELETE ADJACENT DUPLICATES FROM t_user.
LOOP AT t_user.
t_user-counter = sy-tabix.
SELECT v~name_first
v~name_last
v~department
v~tel_number
INTO (t_user-name_first,
t_user-name_last,
t_user-department,
t_user-tel_number)
FROM usr21 AS u
JOIN v_adrp_cp AS v
ON u~persnumber = v~persnumber AND
u~addrnumber = v~addrnumber
WHERE u~bname = t_user-bname.
ENDSELECT.
MODIFY t_user.
ENDLOOP.
SORT t_user BY name_last name_first.
PERFORM display_list.
TOP-OF-PAGE.
PERFORM display_menu.
* End of top-of-page
AT LINE-SELECTION.
IF sy-curow = 2.
IF sy-cucol < 19.
t_user-selection = 'X'.
MODIFY t_user TRANSPORTING selection WHERE selection = ''.
PERFORM display_list.
ELSEIF sy-cucol < 36.
CLEAR t_user-selection.
MODIFY t_user TRANSPORTING selection WHERE selection = 'X'.
PERFORM display_list.
ELSEIF sy-cucol < 50.
PERFORM transfer_selection.
PERFORM popup_msg.
ELSEIF sy-cucol < 67.
PERFORM transfer_selection.
SORT t_user BY name_last.
PERFORM display_list.
ELSEIF sy-cucol < 81.
PERFORM transfer_selection.
SORT t_user BY name_first.
PERFORM display_list.
ELSEIF sy-cucol < 93.
PERFORM transfer_selection.
SORT t_user BY mandt.
PERFORM display_list.
ENDIF.
ENDIF.
* End of line-selection
*&---------------------------------------------------------------------*
*& Form DISPLAY_LIST
*&---------------------------------------------------------------------*
FORM display_list.
sy-lsind = 0.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
LOOP AT t_user.
WRITE: / sy-vline, t_user-selection AS CHECKBOX,
sy-vline, t_user-mandt,
sy-vline, t_user-bname,
sy-vline, t_user-name_first(15),
sy-vline, t_user-name_last(15),
sy-vline, t_user-department(20),
sy-vline, t_user-tel_number(20), sy-vline.
HIDE: t_user-counter, t_user-selection.
ENDLOOP.
FORMAT COLOR OFF.
WRITE: /(108) sy-uline.
ENDFORM. " DISPLAY_LIST
*&---------------------------------------------------------------------*
*& Form DISPLAY_MENU
*&---------------------------------------------------------------------*
FORM display_menu.
FORMAT COLOR COL_HEADING HOTSPOT.
WRITE: (91) sy-uline,
/ sy-vline NO-GAP, (4) icon_select_all NO-GAP, 'Select All',
sy-vline NO-GAP, (4) icon_deselect_all NO-GAP, 'Deselect All',
sy-vline NO-GAP, (4) icon_short_message NO-GAP, 'Send Popup',
sy-vline NO-GAP, (4) icon_sort_up NO-GAP, 'Last Name' NO-GAP,
sy-vline NO-GAP, (4) icon_sort_up NO-GAP, 'First Name' NO-GAP,
sy-vline NO-GAP, (4) icon_sort_up NO-GAP, 'Client' NO-GAP,
sy-vline,
/(91) sy-uline,
/(108) sy-uline.
FORMAT HOTSPOT OFF.
*&---------------------------------------------------------------------*
*& Form TRANSFER_SELECTION
*&---------------------------------------------------------------------*
FORM transfer_selection.
DO.
READ LINE sy-index FIELD VALUE t_user-selection.
IF sy-subrc <> 0.
EXIT.
ENDIF.
MODIFY t_user TRANSPORTING selection
WHERE counter = t_user-counter.
ENDDO.
CLEAR t_user.
ENDFORM. " TRANSFER_SELECTION
*&---------------------------------------------------------------------*
*& Form POPUP_MSG
*&---------------------------------------------------------------------*
FORM popup_msg.
DATA: l_msg LIKE sm04dic-popupmsg VALUE 'Experimental Message',
l_len TYPE i,
l_ret TYPE c.
fields-tabname = 'SM04DIC'.
fields-fieldname = 'POPUPMSG'.
fields-fieldtext = 'Message :'.
* CONCATENATE ' - Msg from' SY-UNAME '.' INTO FIELDS-VALUE SEPARATED
* BY ' '.
APPEND fields.
IF p_returncode = 'A'.
EXIT.
ELSE.
READ TABLE fields INDEX 1.
p_l_msg = fields-value.
ENDIF.
ENDFORM. " GET_MESSAGE