SAPфорум.RU https://sapboard.ru/forum/ |
|
массовая выгрузка документации из запросов (SE10) https://sapboard.ru/forum/viewtopic.php?f=13&t=81417 |
Страница 1 из 1 |
Автор: | Дима [ Ср, мар 06 2013, 09:26 ] |
Заголовок сообщения: | массовая выгрузка документации из запросов (SE10) |
Коллеги, привет, решил поделиться небольшой программой по выгрузке документации из запроса, возможна массовая обработка. Есть две возможности вывода: 1) на экран, с возможностью по дабл клику провалиться в запрос; 2) в файл. Создано на версии 6.0 БЕЗ EHP, с 90-м уровнем пакетов. Code: *&---------------------------------------------------------------------*
*& Report ZBC_GET_SE10_TXT *& *&---------------------------------------------------------------------* *& (с) Dmitriy Skorikov 05/03/2013 *& чтение документации из запроса *&---------------------------------------------------------------------* REPORT ZBC_GET_SE10_TXT. TYPES : BEGIN OF lt_excel , str TYPE string , END OF lt_excel. DATA : req_name TYPE E070-TRKORR , req_txt TYPE TABLE OF TLINE , wa_req_txt TYPE TLINE , ln TYPE c LENGTH 100 , file_xls TYPE TABLE OF lt_excel , wa_file_xls LIKE LINE OF file_xls , i(4) TYPE n , as4date TYPE as4date , as4date_tx TYPE c LENGTH 10 . CONSTANTS : IV_TYPE TYPE c LENGTH 4 VALUE 'REQU' , IV_COMMAND LIKE SY-UCOMM VALUE 'REQUEST_SHOW' . SELECT-OPTIONS : request FOR req_name NO INTERVALS. PARAMETERS : add_date as CHECKBOX , TXT RADIOBUTTON GROUP grp , XLS RADIOBUTTON GROUP grp. DATA : wa_req LIKE LINE OF request. START-OF-SELECTION. IF NOT request IS INITIAL. LOOP AT request INTO wa_req. req_name = wa_req-low. CALL FUNCTION 'TRINT_DOCU_INTERFACE' EXPORTING iv_object = req_name iv_action = 'R' iv_modify_appending = 'X' TABLES tt_line = req_txt EXCEPTIONS 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. ELSE. LOOP AT req_txt INTO wa_req_txt. IF sy-tabix > 4 AND wa_req_txt-tdline(2) NE '**'. IF NOT wa_req_txt-tdline IS INITIAL. IF NOT add_date IS INITIAL. SELECT SINGLE as4date FROM E070 INTO as4date WHERE TRKORR = req_name. WRITE as4date TO as4date_tx DD/MM/YYYY. CONCATENATE as4date_tx wa_req_txt-tdline INTO wa_req_txt-tdline SEPARATED BY space. ENDIF. IF txt = 'X'. "SCREEN OUTPUT. CONCATENATE req_name wa_req_txt-tdline INTO ln SEPARATED BY space. WRITE : / ln. ELSE. "EXCEL OUTPUT CONCATENATE req_name wa_req_txt-tdline INTO wa_file_xls-str SEPARATED BY space. APPEND wa_file_xls TO file_xls. ENDIF. ENDIF. ENDIF. ENDLOOP. IF txt = 'X'. ULINE AT /11(47). ENDIF. ENDIF. ENDLOOP. " AT request IF XLS = 'X'. PERFORM save_to_excel. ENDIF. ELSE. " не выбрали ни одного запроса CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING titel = 'не выбран запрос' txt1 = 'необходимо указать хотя бы один запрос!' txt2 = '' . ENDIF. AT LINE-SELECTION. CALL FUNCTION 'TRINT_TDR_USER_COMMAND' EXPORTING iv_object = sy-lisel(10) iv_type = iv_type iv_command = iv_command . *&---------------------------------------------------------------------* *& Form SAVE_TO_EXCEL *&---------------------------------------------------------------------* FORM SAVE_TO_EXCEL . DATA p_fname TYPE string. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING window_title = 'ВЫБЕРИТЕ ПУТЬ ВЫГРУЗКИ ФАЙЛА:' CHANGING selected_folder = p_fname EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4. IF NOT p_fname IS INITIAL. i = STRLEN( p_fname ) - 1. IF p_fname+i(1) NE '\'. CONCATENATE p_fname '\REQUEST_DOCS-' sy-datum+6(2) sy-datum+4(2) sy-datum(4) '-' sy-timlo '.xls' INTO p_fname. ELSE. CONCATENATE p_fname 'REQUEST_DOCS-' sy-datum+6(2) sy-datum+4(2) sy-datum(4) '-' sy-timlo '.xls' INTO p_fname. ENDIF. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = p_fname TABLES data_tab = file_xls. IF sy-subrc = 0. CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING titel = 'Файл успешно выгружен' txt1 = 'полный путь выгрузки и имя файла:' txt2 = p_fname . ENDIF. ELSE. CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING titel = 'Файл НЕ выгружен' txt1 = 'путь выгрузки не указан, укажите путь!' txt2 = '' . ENDIF. ENDFORM. " SAVE_TO_EXCEL |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |