CR LIST
来源:互联网 发布:淘宝干衣机哪个品牌好 编辑:程序博客网 时间:2024/06/05 20:22
*&---------------------------------------------------------------------**& Report ZCR_LIST*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT ZCR_LIST.*---------------------------------------------------------------------** Overview transport requests for all systems and clients **---------------------------------------------------------------------** Author : Michel PIOUD - Updated 28-Jan-09 ** HomePage : http://www.geocities.com/mpioud/Abap_programs.html **---------------------------------------------------------------------** Macro definitionDEFINE mac_line. selection-screen begin of block b0&1. selection-screen begin of line. selection-screen position 1. parameters p_pgmid&1 type sctsobject-pgmid modif id out. parameters p_objct&1 type sctsobject-object value check. selection-screen position 11. parameters p_objtx&1 type sctsobject-text visible length 19 lower case modif id 2d. selection-screen position 31. parameters p_objnm&1 type ty_objnam. selection-screen: pushbutton 77(4) v_90&1 user-command zd&1. "#EC NEEDED selection-screen end of line. selection-screen end of block b0&1.END-OF-DEFINITION.*---------------------------------------------------------------------** Macro definitionDEFINE mac_selection_screen.at selection-screen on p_objct&1. perform f_selection_screen_object using p_objct&1 changing p_pgmid&1 p_objtx&1.at selection-screen on block b0&1. if sscrfields-ucomm = 'ZD&1'. clear : p_pgmid&1, p_objct&1, p_objnm&1, p_objtx&1. endif. perform f_selection_screen using p_pgmid&1 p_objct&1 p_objnm&1 gt_where&1.at selection-screen on value-request for p_objnm&1. perform f_help_object_name using p_pgmid&1 p_objct&1 'P_OBJNM&1' changing p_objnm&1.END-OF-DEFINITION.*---------------------------------------------------------------------*TABLES sscrfields. " Screen fields*---------------------------------------------------------------------*TYPE-POOLS : slis. " Types for ALV*---------------------------------------------------------------------*TYPES : ty_trkorr TYPE RANGE OF trkorr, ty_where_t TYPE STANDARD TABLE OF char50, ty_objnam(43) TYPE c.*---------------------------------------------------------------------*DATA gt_tmstpalog TYPE tmstpalogs.DATA gs_tmstpalog TYPE tmstpalog.DATA gt_syslst TYPE tmscsyslst_typ.DATA gt_fieldcat TYPE slis_t_fieldcat_alv. " Field catalogDATA gr_trkorr TYPE RANGE OF trkorr.DATA gt_where1 TYPE ty_where_t.DATA gt_where2 TYPE ty_where_t.DATA gt_where3 TYPE ty_where_t.DATA gt_where4 TYPE ty_where_t.DATA gt_where5 TYPE ty_where_t.DATA gt_object_texts TYPE tr_object_texts.DATA gt_e071 TYPE TABLE OF e071.*---------------------------------------------------------------------*FIELD-SYMBOLS : <gt_data> TYPE STANDARD TABLE, " Data to display <field_header> TYPE ANY.*---------------------------------------------------------------------*CONSTANTS: c_x VALUE 'X', c_eb9 TYPE syucomm VALUE '&EB9', c_refresh TYPE syucomm VALUE '&REFRESH', c_trkorr TYPE fieldname VALUE 'TRKORR', c_checkbox TYPE fieldname VALUE 'CHECKBOX', c_colortab TYPE fieldname VALUE 'COLORTAB'.*---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF BLOCK bl0 WITH FRAME TITLE text-bl0.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(31) text_100 FOR FIELD p_date_b.PARAMETERS : p_date_b TYPE dats OBLIGATORY.SELECTION-SCREEN PUSHBUTTON 58(4) v_100 USER-COMMAND tbck7."#EC NEEDEDSELECTION-SCREEN PUSHBUTTON 65(4) v_101 USER-COMMAND tbck. "#EC NEEDEDSELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(31) text_101 FOR FIELD p_date_e.PARAMETERS : p_date_e TYPE dats OBLIGATORY DEFAULT sy-datum.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(28) text_102 FOR FIELD s_trkorr.SELECT-OPTIONS s_trkorr FOR gs_tmstpalog-trkorr.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(28) text_103 FOR FIELD s_truser.SELECT-OPTIONS s_truser FOR gs_tmstpalog-truser DEFAULT sy-uname MATCHCODE OBJECT user_addr.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(28) text_104 FOR FIELD s_korrdv.SELECT-OPTIONS s_korrdv FOR gs_tmstpalog-korrdev.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(28) text_105 FOR FIELD s_trfnct.SELECT-OPTIONS s_trfnct FOR gs_tmstpalog-trfunction.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK bl0.SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.mac_line 1.mac_line 2.mac_line 3.mac_line 4.mac_line 5.SELECTION-SCREEN END OF BLOCK bl1.SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-bl2.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS p_format AS CHECKBOX.SELECTION-SCREEN COMMENT 5(30) text_106 FOR FIELD p_format.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS p_nocolr AS CHECKBOX.SELECTION-SCREEN COMMENT 5(30) text_107 FOR FIELD p_nocolr.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS p_alvlst AS CHECKBOX.SELECTION-SCREEN COMMENT 5(30) text_108 FOR FIELD p_alvlst.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS p_iconrc AS CHECKBOX.SELECTION-SCREEN COMMENT 5(30) text_109 FOR FIELD p_iconrc.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS p_no_rc AS CHECKBOX.SELECTION-SCREEN COMMENT 5(30) text_110 FOR FIELD p_no_rc.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS p_nouser AS CHECKBOX.SELECTION-SCREEN COMMENT 5(30) text_111 FOR FIELD p_nouser.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK bl2.*---------------------------------------------------------------------*LOAD-OF-PROGRAM. CALL FUNCTION 'TMS_CI_GET_SYSTEMLIST' EXPORTING iv_only_active = c_x TABLES tt_syslst = gt_syslst EXCEPTIONS tms_is_not_active = 1 invalid_ci_conf_with_domain = 2 no_systems = 3 OTHERS = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. PERFORM read_object_table CHANGING gt_object_texts. v_901 = v_902 = v_903 = v_904 = v_905 = '@11@'.*---------------------------------------------------------------------* mac_selection_screen 1. mac_selection_screen 2. mac_selection_screen 3. mac_selection_screen 4. mac_selection_screen 5.*---------------------------------------------------------------------*AT SELECTION-SCREEN. IF sscrfields-ucomm = 'TBCK'. SUBTRACT 1 FROM p_date_b. ELSEIF sscrfields-ucomm = 'TBCK7'. SUBTRACT 7 FROM p_date_b. ENDIF.*---------------------------------------------------------------------*AT SELECTION-SCREEN OUTPUT. IF p_date_b IS INITIAL. p_date_b = sy-datum - 20. ENDIF. PERFORM at_selection_screen_output.*---------------------------------------------------------------------*INITIALIZATION. v_100 = '@0G@'. v_101 = '@0D@'. text_100 = 'Start date'(100). text_101 = 'End date'(101). text_102 = 'Transport Requests'(102). text_103 = 'Owner of the Request'(103). text_104 = 'Request Category'(104). text_105 = 'Type of request'(105). text_106 = 'Date DD.MM.YYYY'(106). text_107 = 'No Color'(107). text_108 = 'ALV List'(108). text_109 = 'No icon for return code'(109). text_110 = 'No return code'(110). text_111 = 'No User'(111).*---------------------------------------------------------------------*START-OF-SELECTION. PERFORM read_data.*---------------------------------------------------------------------*END-OF-SELECTION. PERFORM display_data.*---------------------------------------------------------------------** Form read_data*---------------------------------------------------------------------*FORM read_data. CONSTANTS : lc_admin TYPE char8 VALUE '_ADMIN', lc_retcode TYPE char8 VALUE '_RETCODE'. DATA : l_ind TYPE i VALUE 1, l_system TYPE char7, l_field TYPE char20, lt_system TYPE TABLE OF char7, ls_tabcolor TYPE lvc_s_scol, lt_tabcolor1 TYPE lvc_t_scol, lt_tabcolor2 TYPE lvc_t_scol, lp_table TYPE REF TO data, " Pointer to dynamic table ls_lvc_cat TYPE lvc_s_fcat, lt_lvc_cat TYPE lvc_t_fcat, " Field catalog ls_fieldcat TYPE slis_fieldcat_alv, ls_tmstpalog TYPE tmstpalog, ls_e070 TYPE e070, lt_e070 TYPE SORTED TABLE OF e070 WITH UNIQUE KEY trkorr, lp_struct TYPE REF TO data, ls_tmscsys TYPE tmscsyslst, lr_trkorr TYPE ty_trkorr, ls_trkorr LIKE LINE OF gr_trkorr. FIELD-SYMBOLS : <header> TYPE ANY. REFRESH : gt_tmstpalog, gt_fieldcat. IF <gt_data> IS ASSIGNED. REFRESH <gt_data>. ENDIF. APPEND LINES OF gr_trkorr TO lr_trkorr. APPEND LINES OF s_trkorr TO lr_trkorr. LOOP AT gt_syslst INTO ls_tmscsys. PERFORM get_transport USING ls_tmscsys-sysnam p_date_b p_date_e lr_trkorr. ENDLOOP. DELETE gt_tmstpalog WHERE truser NOT IN s_truser OR trfunction NOT IN s_trfnct. IF gt_tmstpalog[] IS NOT INITIAL. REFRESH lr_trkorr. LOOP AT gt_tmstpalog INTO ls_tmstpalog. ls_trkorr-sign = 'I'. ls_trkorr-option = 'EQ'. ls_trkorr-low = ls_tmstpalog-trkorr. APPEND ls_trkorr TO lr_trkorr. ENDLOOP. SORT lr_trkorr. DELETE ADJACENT DUPLICATES FROM lr_trkorr. REFRESH : gt_tmstpalog. LOOP AT gt_syslst INTO ls_tmscsys. PERFORM get_transport USING ls_tmscsys-sysnam '20000101' '21000101' lr_trkorr. ENDLOOP. ENDIF. SORT gt_tmstpalog BY listname trcli. IF gt_tmstpalog[] IS NOT INITIAL. SELECT * FROM e070 INTO TABLE lt_e070 FOR ALL ENTRIES IN gt_tmstpalog WHERE trkorr = gt_tmstpalog-trkorr AND korrdev IN s_korrdv. ENDIF. LOOP AT gt_tmstpalog INTO ls_tmstpalog. READ TABLE lt_e070 WITH KEY trkorr = ls_tmstpalog-trkorr TRANSPORTING NO FIELDS. CHECK sy-subrc IS NOT INITIAL. DELETE gt_tmstpalog. ENDLOOP. READ TABLE lt_e070 INDEX 1 INTO ls_e070. LOOP AT gt_tmstpalog INTO ls_tmstpalog WHERE listname(3) = sy-sysid. CONCATENATE ls_tmstpalog-listname(3) '_' ls_tmstpalog-trcli INTO l_system. READ TABLE lt_system WITH TABLE KEY table_line = l_system TRANSPORTING NO FIELDS. IF sy-subrc IS NOT INITIAL. APPEND l_system TO lt_system. ENDIF. ENDLOOP. LOOP AT gt_tmstpalog INTO ls_tmstpalog WHERE listname(3) = ls_e070-tarsystem. CONCATENATE ls_tmstpalog-listname(3) '_' ls_tmstpalog-trcli INTO l_system. READ TABLE lt_system WITH TABLE KEY table_line = l_system TRANSPORTING NO FIELDS. IF sy-subrc IS NOT INITIAL. APPEND l_system TO lt_system. ENDIF. ENDLOOP. LOOP AT gt_tmstpalog INTO ls_tmstpalog WHERE listname(3) <> sy-sysid AND listname(3) <> ls_e070-tarsystem. CONCATENATE ls_tmstpalog-listname(3) '_' ls_tmstpalog-trcli INTO l_system. READ TABLE lt_system WITH TABLE KEY table_line = l_system TRANSPORTING NO FIELDS. IF sy-subrc IS NOT INITIAL. APPEND l_system TO lt_system. ENDIF. ENDLOOP. DELETE ADJACENT DUPLICATES FROM lt_system. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = c_checkbox. ls_lvc_cat-ref_table = 'ALV_S_FCAT'. APPEND ls_lvc_cat TO lt_lvc_cat. IF p_nocolr IS INITIAL. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = 'COLORTAB'. ls_lvc_cat-ref_table = 'SWLWPSYSALVEDIT'. APPEND ls_lvc_cat TO lt_lvc_cat. ENDIF. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = c_trkorr. ls_lvc_cat-ref_table = 'E070'. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = c_trkorr. ls_fieldcat-ref_tabname = 'E070'. ls_fieldcat-hotspot = c_x. ls_fieldcat-key = c_x. APPEND ls_fieldcat TO gt_fieldcat. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = 'AS4TEXT'. ls_lvc_cat-ref_table = 'TMSTPALOG'. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'AS4TEXT'. ls_fieldcat-ref_tabname = 'TMSTPALOG'. ls_fieldcat-key = c_x. APPEND ls_fieldcat TO gt_fieldcat. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = 'TRFUNCTION'. ls_lvc_cat-ref_table = 'TMSTPALOG'. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'TRFUNCTION'. ls_fieldcat-rollname = 'TRFUNCTION'. APPEND ls_fieldcat TO gt_fieldcat. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = 'KORRDEV'. ls_lvc_cat-ref_table = 'E070'. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'KORRDEV'. ls_fieldcat-rollname = 'TRCATEG'. APPEND ls_fieldcat TO gt_fieldcat. CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = 'AS4USER'. ls_lvc_cat-ref_table = 'E070'. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'AS4USER'. ls_fieldcat-ref_tabname = 'E070'. APPEND ls_fieldcat TO gt_fieldcat. LOOP AT lt_system INTO l_system.* For each line, a column is created in the fieldcatalog* Build Fieldcatalog CLEAR ls_lvc_cat. ls_lvc_cat-fieldname = l_system. IF p_format = c_x. ls_lvc_cat-ref_field = 'DATUM'. ls_lvc_cat-ref_table = 'SYST'. ELSE. ls_lvc_cat-ref_field = 'TRTIME'. ls_lvc_cat-ref_table = 'TMSTPALOG'. ENDIF. APPEND ls_lvc_cat TO lt_lvc_cat.* Build Fieldcatalog CLEAR ls_fieldcat. ls_fieldcat-fieldname = ls_lvc_cat-fieldname. IF p_format = c_x.* ls_fieldcat-ref_fieldname = 'DATUM'.* ls_fieldcat-ref_tabname = 'SYST'. ls_fieldcat-rollname = 'DATUM'. ELSE. ls_fieldcat-ref_fieldname = 'TRTIME'. ls_fieldcat-ref_tabname = 'TMSTPALOG'. ls_fieldcat-edit_mask = '==TSTPS'. ENDIF. ls_fieldcat-seltext_s = l_system. ls_fieldcat-seltext_m = l_system. ls_fieldcat-seltext_l = l_system. ls_fieldcat-just = 'C'. APPEND ls_fieldcat TO gt_fieldcat. IF p_no_rc IS INITIAL. CLEAR ls_lvc_cat. CONCATENATE l_system lc_retcode INTO ls_lvc_cat-fieldname. IF p_iconrc IS NOT INITIAL. ls_lvc_cat-ref_field = 'RETCODE'. ls_lvc_cat-ref_table = 'TMSTPALOG'. ELSE. ls_lvc_cat-inttype = 'CHAR'. ls_lvc_cat-outputlen = 30. ENDIF. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = ls_lvc_cat-fieldname. IF p_iconrc IS NOT INITIAL. ls_fieldcat-ref_fieldname = 'RETCODE'. ls_fieldcat-ref_tabname = 'TMSTPALOG'. ls_fieldcat-no_zero = c_x. ELSE. ls_fieldcat-inttype = 'CHAR'. ls_fieldcat-outputlen = 30. ls_fieldcat-icon = c_x. ls_fieldcat-seltext_s = ls_fieldcat-seltext_m = ls_fieldcat-seltext_l = 'RC'. ENDIF. APPEND ls_fieldcat TO gt_fieldcat. ENDIF. IF p_nouser IS INITIAL. CLEAR ls_lvc_cat. CONCATENATE l_system lc_admin INTO ls_lvc_cat-fieldname. ls_lvc_cat-ref_field = 'ADMIN'. ls_lvc_cat-ref_table = 'TMSTPALOG'. APPEND ls_lvc_cat TO lt_lvc_cat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = ls_lvc_cat-fieldname. ls_fieldcat-ref_fieldname = 'ADMIN'. ls_fieldcat-ref_tabname = 'TMSTPALOG'. APPEND ls_fieldcat TO gt_fieldcat. ENDIF. ENDLOOP. IF <gt_data> IS NOT ASSIGNED.* Create internal table CALL METHOD cl_alv_table_create=>create_dynamic_table EXPORTING it_fieldcatalog = lt_lvc_cat IMPORTING ep_table = lp_table. ASSIGN lp_table->* TO <gt_data>. ENDIF. IF <header> IS NOT ASSIGNED.* Create structure = structure of the internal table CREATE DATA lp_struct LIKE LINE OF <gt_data>. ASSIGN lp_struct->* TO <header>. ENDIF. IF p_nocolr IS INITIAL. LOOP AT lt_lvc_cat INTO ls_lvc_cat WHERE fieldname <> c_checkbox AND fieldname <> c_colortab. CLEAR ls_tabcolor. ls_tabcolor-fname = ls_lvc_cat-fieldname. IF ls_lvc_cat-fieldname+3(1) = '_'. CASE ls_lvc_cat-fieldname(3). WHEN ls_e070-tarsystem. ls_tabcolor-color-col = 5. WHEN sy-sysid. ls_tabcolor-color-col = 3. WHEN OTHERS. ls_tabcolor-color-col = 6. ENDCASE. ELSE. ls_tabcolor-color-col = 4. ENDIF. APPEND ls_tabcolor TO lt_tabcolor1. ls_tabcolor-color-int = 1. APPEND ls_tabcolor TO lt_tabcolor2. ENDLOOP. ENDIF. SORT gt_tmstpalog BY trkorr trtime.* Fill the internal to display <gt_data> LOOP AT lt_e070 INTO ls_e070. CLEAR <header>. ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <header> TO <field_header>. IF sy-subrc EQ 0. <field_header> = ls_e070-as4user. ENDIF. LOOP AT gt_tmstpalog INTO ls_tmstpalog WHERE trkorr = ls_e070-trkorr. MOVE-CORRESPONDING ls_tmstpalog TO <header>. CONCATENATE ls_tmstpalog-listname(3) '_' ls_tmstpalog-trcli INTO l_system. APPEND l_system TO lt_system. ASSIGN COMPONENT l_system OF STRUCTURE <header> TO <field_header>. IF sy-subrc EQ 0. <field_header> = ls_tmstpalog-trtime. ENDIF. CONCATENATE l_system lc_retcode INTO l_field. ASSIGN COMPONENT l_field OF STRUCTURE <header> TO <field_header>. IF sy-subrc IS INITIAL. IF p_iconrc IS NOT INITIAL. <field_header> = ls_tmstpalog-retcode. ELSE. CASE ls_tmstpalog-retcode. WHEN '0000'. WHEN '0004'. <field_header> = '@5D@'. WHEN '0008'. <field_header> = '@5C@'. ENDCASE. ENDIF. ENDIF. CONCATENATE l_system lc_admin INTO l_field. ASSIGN COMPONENT l_field OF STRUCTURE <header> TO <field_header>. IF sy-subrc IS INITIAL. <field_header> = ls_tmstpalog-admin. ENDIF. ENDLOOP. ASSIGN COMPONENT 'KORRDEV' OF STRUCTURE <header> TO <field_header>. IF sy-subrc EQ 0. MOVE ls_e070-korrdev TO <field_header>. ENDIF. IF p_nocolr IS INITIAL. ASSIGN COMPONENT c_colortab OF STRUCTURE <header> TO <field_header>. IF sy-subrc EQ 0. IF l_ind = 1. MOVE lt_tabcolor1 TO <field_header>. ELSE. MOVE lt_tabcolor2 TO <field_header>. ENDIF. ENDIF. l_ind = l_ind * -1. ENDIF. APPEND <header> TO <gt_data>. ENDLOOP.ENDFORM. " READ_DATA*---------------------------------------------------------------------** Form get_transport*---------------------------------------------------------------------*FORM get_transport USING u_tmssysnam TYPE tmssysnam u_startdate TYPE dats u_enddate TYPE dats ur_trkorr TYPE ty_trkorr. DATA : l_exp TYPE flag, lt_log TYPE tmstpalogs. IF u_tmssysnam = sy-sysid. l_exp = c_x. ENDIF. CALL FUNCTION 'TMS_TM_GET_TRLIST' EXPORTING iv_system = u_tmssysnam iv_startdate = u_startdate iv_starttime = '000000' iv_enddate = u_enddate iv_endtime = '240000' iv_allcli = c_x iv_imports = c_x iv_exports = l_exp iv_last_import = c_x IMPORTING et_tmstpalog = lt_log TABLES irt_requests = ur_trkorr EXCEPTIONS alert = 1 OTHERS = 2. APPEND LINES OF lt_log TO gt_tmstpalog.ENDFORM. " GET_TRANSPORT*---------------------------------------------------------------------** Form display_data*---------------------------------------------------------------------*FORM display_data. DATA : ls_layout TYPE slis_layout_alv, ls_event_exit TYPE slis_event_exit, lt_event_exit TYPE slis_t_event_exit, ls_print TYPE slis_print_alv, ls_sort TYPE slis_sortinfo_alv, lt_sort TYPE slis_t_sortinfo_alv.* IF p_alvlst IS INITIAL. ls_layout-box_fieldname = c_checkbox.* ENDIF. ls_layout-colwidth_optimize = c_x. ls_layout-group_change_edit = c_x. IF p_nocolr IS INITIAL. ls_layout-coltab_fieldname = c_colortab. ENDIF.* Activate refresh button CLEAR ls_event_exit. ls_event_exit-ucomm = c_refresh. " Refresh ls_event_exit-after = c_x. APPEND ls_event_exit TO lt_event_exit. ls_event_exit-ucomm = c_eb9. " More ls_event_exit-after = c_x. APPEND ls_event_exit TO lt_event_exit.* Build Sort Table ls_sort-up = c_x. ls_sort-fieldname = c_trkorr. APPEND ls_sort TO lt_sort. ls_print-no_print_selinfos = c_x. " Display no selection infos ls_print-no_print_listinfos = c_x. " Display no listinfos IF p_alvlst IS INITIAL. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-cprog i_callback_user_command = 'USER_COMMAND' i_callback_pf_status_set = 'PF_STATUS_SET' it_fieldcat = gt_fieldcat it_sort = lt_sort is_layout = ls_layout is_print = ls_print it_event_exit = lt_event_exit i_save = 'A' TABLES t_outtab = <gt_data>. ELSE. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = sy-cprog i_callback_user_command = 'USER_COMMAND' i_callback_pf_status_set = 'PF_STATUS_SET' it_fieldcat = gt_fieldcat it_sort = lt_sort is_layout = ls_layout is_print = ls_print it_event_exit = lt_event_exit i_save = 'A' TABLES t_outtab = <gt_data>. ENDIF.ENDFORM. " DISPLAY_DATA*---------------------------------------------------------------------** Form user_command*---------------------------------------------------------------------*FORM user_command USING u_ucomm TYPE syucomm "#EC CALLED us_selfield TYPE slis_selfield. DATA lp_struct TYPE REF TO data. FIELD-SYMBOLS : <l_header> TYPE ANY. CASE u_ucomm. WHEN '&IC1'. CHECK us_selfield-fieldname = c_trkorr.* Create structure = structure of the internal table CREATE DATA lp_struct LIKE LINE OF <gt_data>. ASSIGN lp_struct->* TO <l_header>. READ TABLE <gt_data> ASSIGNING <l_header> INDEX us_selfield-tabindex. CHECK sy-subrc EQ 0. ASSIGN COMPONENT c_trkorr OF STRUCTURE <l_header> TO <field_header>. IF sy-subrc EQ 0. CALL FUNCTION 'TR_PRESENT_REQUEST' EXPORTING iv_trkorr = <field_header> iv_highlight = c_x. ENDIF. WHEN c_refresh. REFRESH gr_trkorr.* Read object in requests PERFORM f_read_request USING gt_where1 space. PERFORM f_read_request USING gt_where2 space. PERFORM f_read_request USING gt_where3 space. PERFORM f_read_request USING gt_where4 space. PERFORM f_read_request USING gt_where5 space. PERFORM read_data. us_selfield-refresh = c_x. WHEN c_eb9. PERFORM f_show_objects. ENDCASE.ENDFORM. " USER_COMMAND*---------------------------------------------------------------------** FORM PF_STATUS_SET **---------------------------------------------------------------------*FORM pf_status_set USING ut_extab TYPE slis_t_extab. "#EC CALLED* Display refresh button DELETE ut_extab WHERE fcode = c_refresh OR fcode = c_eb9. SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL' EXCLUDING ut_extab.ENDFORM. " PF_STATUS_SET*---------------------------------------------------------------------** Form at_selection_screen_output*---------------------------------------------------------------------*FORM at_selection_screen_output. LOOP AT SCREEN. CASE screen-group1. WHEN 'OUT'. screen-input = '0'. MODIFY SCREEN. WHEN '2D'. screen-input = '0'. screen-display_3d = '0'. MODIFY SCREEN. ENDCASE. ENDLOOP.ENDFORM. " AT_SELECTION_SCREEN_OUTPUT*---------------------------------------------------------------------** Form f_selection_screen*---------------------------------------------------------------------*FORM f_selection_screen USING u_pgmid TYPE pgmid u_object TYPE trobjtype u_objnam TYPE ty_objnam ut_where TYPE ty_where_t. DATA : l_temp TYPE char50, l_where TYPE char50, lt_where TYPE TABLE OF char50. IF u_object IS INITIAL AND u_objnam IS NOT INITIAL. SELECT SINGLE pgmid object INTO (u_pgmid, u_object) FROM tadir WHERE obj_name = u_objnam. ENDIF. CHECK u_pgmid IS NOT INITIAL AND u_object IS NOT INITIAL AND u_objnam IS NOT INITIAL.* Build dynamic where CONCATENATE '''' sy-sysid '%' '''' INTO l_temp. CONCATENATE 'A~TRKORR LIKE ' l_temp 'AND' INTO l_where SEPARATED BY space. APPEND l_where TO lt_where. CONCATENATE '''' u_pgmid '''' INTO l_temp. CONCATENATE 'PGMID = ' l_temp 'AND' INTO l_where SEPARATED BY space. APPEND l_where TO lt_where. CONCATENATE '''' u_object '''' INTO l_temp. CONCATENATE 'OBJECT = ' l_temp 'AND' INTO l_where SEPARATED BY space. APPEND l_where TO lt_where. CONCATENATE '''' u_objnam '''' INTO l_temp. IF u_objnam CS '*'. TRANSLATE l_temp USING '*%'. CONCATENATE 'OBJ_NAME LIKE ' l_temp INTO l_where SEPARATED BY space. ELSE. CONCATENATE 'OBJ_NAME = ' l_temp INTO l_where SEPARATED BY space. ENDIF. APPEND l_where TO lt_where. CHECK ut_where[] <> lt_where[].* Read object in requests PERFORM f_read_request USING lt_where c_x. ut_where[] = lt_where[].ENDFORM. " F_SELECTION_SCREEN*---------------------------------------------------------------------** Form F_HELP_OBJECT_NAME*---------------------------------------------------------------------*FORM f_help_object_name USING u_pgmid TYPE pgmid u_object TYPE trobjtype u_field TYPE fieldname CHANGING u_objnam TYPE ty_objnam. TYPES: BEGIN OF ty_values, object TYPE trobjtype, obj_name TYPE sobj_name, END OF ty_values. DATA : l_dynprofld TYPE dynfnam,* ls_values TYPE ty_values, lt_values TYPE TABLE OF ty_values, ls_return TYPE ddshretval, lt_return TYPE dmc_ddshretval_table, ls_dynpread TYPE dynpread, lt_dynpread TYPE TABLE OF dynpread, l_dynnum TYPE sy-dynnr, l_progname TYPE sy-repid. CHECK u_pgmid = 'R3TR'. l_progname = sy-repid. l_dynnum = sy-dynnr. ls_dynpread-fieldname = u_field. APPEND ls_dynpread TO lt_dynpread. CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING dyname = l_progname dynumb = l_dynnum translate_to_upper = c_x TABLES dynpfields = lt_dynpread. READ TABLE lt_dynpread INDEX 1 INTO ls_dynpread. IF ls_dynpread-fieldvalue CS '*' OR ls_dynpread-fieldvalue CS '+'. TRANSLATE ls_dynpread-fieldvalue USING '*%'.* Lecture de TADIR SELECT object obj_name INTO TABLE lt_values FROM tadir UP TO 200 ROWS WHERE object = u_object AND devclass NE '$TMP' AND obj_name LIKE ls_dynpread-fieldvalue AND pgmid = 'R3TR'. ELSE.* Lecture de TADIR SELECT object obj_name INTO TABLE lt_values FROM tadir UP TO 200 ROWS WHERE object = u_object AND devclass NE '$TMP' AND pgmid = 'R3TR'. ENDIF. l_dynprofld = u_field.* F4 help CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = u_field dynpprog = l_progname dynpnr = l_dynnum dynprofield = l_dynprofld value_org = 'S' TABLES value_tab = lt_values return_tab = lt_return EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CHECK NOT lt_return[] IS INITIAL. READ TABLE lt_return INDEX 1 INTO ls_return. u_objnam = ls_return-fieldval.ENDFORM. " F_HELP_OBJECT_NAME*---------------------------------------------------------------------** Form f_selection_screen_object*---------------------------------------------------------------------*FORM f_selection_screen_object USING u_object TYPE trobjtype CHANGING u_pgmid TYPE pgmid u_objtxt TYPE trtext. DATA ls_object_text TYPE ko100. CHECK u_object IS NOT INITIAL. READ TABLE gt_object_texts INTO ls_object_text WITH KEY object = u_object. IF sy-subrc <> 0.* Sélectionnez un type d'objet valide MESSAGE e870(tk). ELSE. u_pgmid = ls_object_text-pgmid. u_objtxt = ls_object_text-text. ENDIF.ENDFORM. " F_SELECTION_SCREEN_OBJECT*---------------------------------------------------------------------** Form READ_OBJECT_TABLE*---------------------------------------------------------------------*FORM read_object_table CHANGING ut_object_texts TYPE tr_object_texts. CHECK ut_object_texts[] IS INITIAL. CALL FUNCTION 'TR_OBJECT_TABLE' TABLES wt_object_text = ut_object_texts. DELETE ut_object_texts WHERE pgmid <> 'R3TR' AND pgmid <> 'R3OB' AND pgmid <> 'LIMU' AND pgmid <> 'CORR'. SORT ut_object_texts BY pgmid object.ENDFORM. " READ_OBJECT_TABLE*---------------------------------------------------------------------** Form f_read_request*---------------------------------------------------------------------*FORM f_read_request USING ut_where TYPE ty_where_t u_flag TYPE xfeld. DATA : lr_trkorr TYPE RANGE OF trkorr. FIELD-SYMBOLS : <trkorr> LIKE LINE OF lr_trkorr. CHECK ut_where[] IS NOT INITIAL. SELECT a~trkorr AS low INTO CORRESPONDING FIELDS OF TABLE lr_trkorr FROM e071 AS a JOIN e070 AS b ON a~trkorr = b~trkorr WHERE (ut_where) AND as4user IN s_truser AND as4date BETWEEN p_date_b AND p_date_e AND trfunction IN s_trfnct AND korrdev IN s_korrdv AND trstatus = 'R' AND strkorr = space. LOOP AT lr_trkorr ASSIGNING <trkorr>. <trkorr>-sign = 'I'. <trkorr>-option = 'EQ'. ENDLOOP. APPEND LINES OF lr_trkorr TO gr_trkorr. SORT gr_trkorr. DELETE ADJACENT DUPLICATES FROM gr_trkorr. IF lr_trkorr[] IS INITIAL AND u_flag = c_x. MESSAGE e208(00) WITH 'No requests found'(001). ENDIF.ENDFORM. " F_READ_REQUEST*---------------------------------------------------------------------** Form f_show_objects*---------------------------------------------------------------------*FORM f_show_objects. DATA : lp_struct TYPE REF TO data, lt_e071 TYPE TABLE OF e071, lt_trkorr TYPE TABLE OF trkorr, ls_sort TYPE slis_sortinfo_alv, lt_sort TYPE slis_t_sortinfo_alv. FIELD-SYMBOLS : <l_header> TYPE ANY.* Create structure = structure of the internal table CREATE DATA lp_struct LIKE LINE OF <gt_data>. ASSIGN lp_struct->* TO <l_header>. LOOP AT <gt_data> ASSIGNING <l_header>. ASSIGN COMPONENT c_checkbox OF STRUCTURE <l_header> TO <field_header>. CHECK sy-subrc IS INITIAL. CHECK <field_header> EQ c_x. ASSIGN COMPONENT c_trkorr OF STRUCTURE <l_header> TO <field_header>. CHECK sy-subrc IS INITIAL. APPEND <field_header> TO lt_trkorr. ENDLOOP. CHECK lt_trkorr[] IS NOT INITIAL. SELECT * FROM e071 INTO TABLE lt_e071 FOR ALL ENTRIES IN lt_trkorr WHERE trkorr = lt_trkorr-table_line. DELETE lt_e071 WHERE pgmid = 'CORR'. CHECK lt_e071 IS NOT INITIAL. SORT lt_e071 BY pgmid object obj_name. DELETE ADJACENT DUPLICATES FROM lt_e071 COMPARING pgmid object obj_name.* Build Sort Table ls_sort-up = c_x. ls_sort-fieldname = 'PGMID'. APPEND ls_sort TO lt_sort. ls_sort-fieldname = 'OBJECT'. APPEND ls_sort TO lt_sort. ls_sort-fieldname = 'OBJ_NAME'. APPEND ls_sort TO lt_sort. gt_e071[] = lt_e071[]. IF p_alvlst IS INITIAL. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-cprog i_callback_user_command = 'USER_COMMAND_2' i_structure_name = 'E071' it_sort = lt_sort TABLES t_outtab = gt_e071. ELSE. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = sy-cprog i_callback_user_command = 'USER_COMMAND_2' i_structure_name = 'E071' it_sort = lt_sort TABLES t_outtab = gt_e071. ENDIF.ENDFORM. " F_SHOW_OBJECTS*--------------------------------------------------------------------** Form F_READ_INSTALLED_LANGUAGES*--------------------------------------------------------------------*FORM f_read_installed_languages. DATA: l_len TYPE i, l_off TYPE i, zcsa_lang(50) TYPE c, " Zul?ssige Sprachen ($,T) zcsa_param(40) VALUE 'zcsa/installed_languages'.* Installed languages CALL 'C_SAPGPARAM' ID 'NAME' FIELD zcsa_param ID 'VALUE' FIELD zcsa_lang. FIELD-SYMBOLS <f> TYPE char1. l_len = STRLEN( zcsa_lang ). DO l_len TIMES. l_off = sy-index - 1. ASSIGN zcsa_lang+l_off(1) TO <f>. CHECK <f> NE space.* APPEND <f> TO t_langu. ENDDO.* Logon language on Top of t_langu* DELETE t_langu WHERE table_line = sy-langu.* INSERT sy-langu INTO t_langu INDEX 1.ENDFORM. " F_READ_INSTALLED_LANGUAGES*--------------------------------------------------------------------**--------------------------------------------------------------------** Form user_command_2*--------------------------------------------------------------------*FORM user_command_2 USING u_ucomm TYPE syucomm "#EC CALLED us_selfield TYPE slis_selfield.* Macro definition DEFINE mac_dynpro. clear ls_bdcdata. ls_bdcdata-program = &1. ls_bdcdata-dynpro = &2. ls_bdcdata-dynbegin = c_x. append ls_bdcdata to lt_bdcdata. END-OF-DEFINITION.* Macro definition DEFINE mac_field. clear ls_bdcdata. ls_bdcdata-fnam = &1. ls_bdcdata-fval = &2. append ls_bdcdata to lt_bdcdata. END-OF-DEFINITION. DATA : ls_e071 TYPE e071, ls_bdcdata TYPE bdcdata, lt_bdcdata TYPE TABLE OF bdcdata. CASE u_ucomm. WHEN '&IC1'. READ TABLE gt_e071 INTO ls_e071 INDEX us_selfield-tabindex. CHECK sy-subrc IS INITIAL. IF us_selfield-fieldname = c_trkorr. CALL FUNCTION 'TR_PRESENT_REQUEST' EXPORTING iv_trkorr = ls_e071-trkorr iv_highlight = c_x. RETURN. ENDIF. CASE ls_e071-object. WHEN 'FORM'.* SAPscript form SET PARAMETER ID 'TXF' FIELD ls_e071-obj_name. SET PARAMETER ID 'TXL' FIELD 'FR'. CALL TRANSACTION 'SE71' USING lt_bdcdata MODE 'A'. WHEN 'SSFO'. SELECT SINGLE formname INTO ls_e071-obj_name FROM stxfadm WHERE formname = ls_e071-obj_name AND formtype = space. IF sy-subrc IS INITIAL.* SAP Smart Forms: Name of a Smart Form SET PARAMETER ID 'SSFNAME' FIELD ls_e071-obj_name.* SAP Smart Forms CALL TRANSACTION 'SMARTFORMS'. ELSE. mac_dynpro 'SAPMSSFO' '0100'. mac_field 'RB_TX' c_x. mac_field 'BDC_OKCODE' '=RB'. mac_dynpro 'SAPMSSFO' '0100'. mac_field 'SSFSCREENS-TNAME' ls_e071-obj_name. CALL TRANSACTION 'SMARTFORMS' USING lt_bdcdata MODE 'E'. ENDIF. WHEN 'SSST'.* SAP Smart Forms: Name of a Smart Style SET PARAMETER ID 'SSFSTYLE' FIELD ls_e071-obj_name. mac_dynpro 'SAPMSSFO' '0100'. mac_field 'RB_ST' c_x. mac_field 'BDC_OKCODE' '/00'. CALL TRANSACTION 'SMARTFORMS' USING lt_bdcdata MODE 'E'. WHEN 'AQBG'. " query user group SET PARAMETER ID 'AQW' FIELD 'G'. " global SET PARAMETER ID 'AQB' FIELD ls_e071-obj_name. CALL TRANSACTION 'SQ03'. WHEN 'AQQU'. " query SET PARAMETER ID 'AQW' FIELD 'G'. " global SET PARAMETER ID 'AQB' FIELD ls_e071-obj_name(12). " user group SET PARAMETER ID 'AQQ' FIELD ls_e071-obj_name+12. CALL TRANSACTION 'SQ01'. WHEN 'AQSG'. " query info set SET PARAMETER ID 'AQW' FIELD 'G'. " global SET PARAMETER ID 'AQS' FIELD ls_e071-obj_name. CALL TRANSACTION 'SQ02'. WHEN 'SCVI'. " screen variant SET PARAMETER ID 'TCD' FIELD ls_e071-obj_name. SET PARAMETER ID 'STV' FIELD space. CALL TRANSACTION 'SHD0'. WHEN 'STVI'. SET PARAMETER ID 'SCRVAR' FIELD space. SET PARAMETER ID 'STV' FIELD ls_e071-obj_name. CALL TRANSACTION 'SHD0'. WHEN 'CMOD'. PERFORM show_cmod USING ls_e071-obj_name(40). WHEN OTHERS. CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL' EXPORTING iv_pgmid = ls_e071-pgmid iv_object = ls_e071-object iv_obj_name = ls_e071-obj_name EXCEPTIONS jump_not_possible = 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. ENDCASE. ENDCASE.ENDFORM. " USER_COMMAND_2*---------------------------------------------------------------------** Form SHOW_CMOD*---------------------------------------------------------------------*FORM show_cmod USING u_name TYPE sobj_name. DATA: l_modname TYPE modsap-name. l_modname = u_name. CALL FUNCTION 'MOD_KUN_MEMBERSCRN' EXPORTING message = c_x mode = 'SHOM' modname = l_modname.ENDFORM. " SHOW_CMOD* Text element*001 No requests found*100 Start date*101 End date*102 Transport Requests*103 Owner of the Request*104 Request Category*105 Type of request*106 Date DD.MM.YYYY*107 No Color*108 ALV List*109 No icon for return code*110 No return code*111 No User*BL0 Parameters*BL1 Objects*BL2 Options***************** END OF PROGRAM Z_ALV_OVERVIEW_REQUEST ***************
阅读全文
0 0
- CR LIST
- cr
- cr
- Unlock Object list:CR下清单解锁
- CR keys
- CR:CrystalReportViewer
- CR块
- 新建CR
- 合并CR:将某CR挂到另一个CR下
- CR, LF, CR/LF 回车 换行【转】
- CR, LF, CR/LF 回车 换行
- 【转】CR, LF, CR/LF 回车 换行
- CR, LF, CR/LF 回车 换行
- CR, LF, CR/LF 回车 换行
- CR, LF, CR/LF 回车 换行
- 改行Code(CR、LF、CR+LF)
- CR, LF, CR/LF 回车 换行
- CR, LF, CR/LF 回车 换行
- Shader 简单的波浪顶点动画效果
- element listener-class is not allowed here
- Android之Https请求单向验证
- 深入理解DOM事件机制系列第一篇——事件流
- C++中引用(&)的用法和应用实例
- CR LIST
- java 常用小知识
- OpenCV读取内存数据
- 苹果mac shell 终端 命令行快捷键——行首行尾
- oracle增加表空间的四种方法
- 我所不知道的TCP Socket编程(五)-交换数据、套接字读写操作
- 深入理解DOM事件机制系列第二篇——事件处理程序
- centos7关闭防火墙的方法
- 51nod 1217 Minimum Modular