REPORT /ngz/download NO STANDARD PAGE HEADING LINE-SIZE 255.
************************************************************** Программа выгрузки отчетов в локальные файлы. *
*************************************************************INCLUDE <icon>.
* Таблица для имен
DATA: BEGIN OF itab OCCURS 10,
prog TYPE d010sinf-prog,
text TYPE trdirt-text,
END OF itab.
* Полный путь к файлу
DATA: patch_fname(200) TYPE c
,re_value TYPE i
,wa_text TYPE trdirt-text
,l_prog(100) type c
,l_text(132) type c.
*----------------------------------------------------------------------*
*SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(16) l_comnt2 FOR FIELD pa_path.
PARAMETERS: pa_path TYPE trdirt-name MEMORY ID pth OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(16) l_comnt FOR FIELD pa_prog.
PARAMETERS: pa_prog TYPE trdirt-name MEMORY ID prg OBLIGATORY.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
WRITE 'Имя программы'(t01) TO l_comnt.
WRITE 'Дирректория'(t02) TO l_comnt2.
*----------------------------------------------------------------------*
* пакетный ввод
DATA: bdc_data TYPE bdcdata OCCURS 3 WITH HEADER LINE,
bdc_options TYPE ctu_params,
bdc_ftype TYPE c,
bdc_fdecim TYPE i.
* запись экрана
DEFINE bdc_dynpro.
clear bdc_data.
bdc_data-program = &1.
bdc_data-dynpro = &2.
bdc_data-dynbegin = 'X'.
append bdc_data.
END-OF-DEFINITION.
* запись поля
DEFINE bdc_field.
clear bdc_data.
bdc_data-fnam = &1.
describe field &1 type bdc_ftype decimals bdc_fdecim.
case bdc_ftype.
when 'C'.
write &2 to bdc_data-fval.
when 'N'.
write &2 to bdc_data-fval left-justified.
when 'D'.
write &2 to bdc_data-fval dd/mm/yyyy.
when others.
write &2 to bdc_data-fval left-justified decimals bdc_fdecim.
endcase.
append bdc_data.
END-OF-DEFINITION.
DATA bdc_tab TYPE bdcdata OCCURS 10 WITH HEADER LINE.
* вызов транзакции (01)
DEFINE bdc_call_01.
call transaction &1 using bdc_data options from bdc_options.
END-OF-DEFINITION.
*---------------------------------------------------------------------*
* Инициализация параметров *
*---------------------------------------------------------------------*
FORM hotspot_init. "#EC CALLED
REFRESH bdc_data.
CLEAR bdc_options.
bdc_options-dismode = 'E'.
bdc_options-nobinpt = 'X'.
bdc_options-nobiend = 'X'.
bdc_options-racommit = 'X'.
ENDFORM.
*---------------------------------------------------------------------*
START-OF-SELECTION.
*
SELECT d010sinf~prog trdirt~text
INTO itab
FROM d010sinf
JOIN trdirt ON trdirt~name = d010sinf~prog
AND trdirt~sprsl = sy-langu.
SEARCH itab-prog FOR pa_prog.
IF sy-subrc IS INITIAL and sy-fdpos = 0.
APPEND itab.
ENDIF.
ENDSELECT.
PERFORM hotspot_init.
* Второй шаг
LOOP AT itab.
REFRESH bdc_data.
l_prog = itab-prog.
l_text = itab-text.
TRANSLATE l_prog USING '/_'.
TRANSLATE l_text USING '\ / : * ? " | > < '.
CONCATENATE pa_path l_prog '-' l_text
'.txt' INTO patch_fname.
CALL FUNCTION 'WS_QUERY'
EXPORTING
filename = patch_fname
query = 'FE'
IMPORTING
return = re_value
EXCEPTIONS
OTHERS = 0.
IF re_value = 1.
CONTINUE.
ENDIF.
*
bdc_dynpro 'SAPLWBABAP' '0100'.
bdc_field: 'BDC_CURSOR' 'RS38M-PROGRAMM'
,'BDC_OKCODE' '=SHOP'
,'RS38M-PROGRAMM' itab-prog
,'RS38M-FUNC_EDIT' 'X'.
bdc_dynpro 'SAPLS38E' '0400'.
bdc_field: 'BDC_OKCODE' '=ED_DOWNLOAD'
,'BDC_CURSOR' 'RSTXP-TDLINE(01)'.
bdc_dynpro 'SAPLGRAP' '0200'.
bdc_field: 'BDC_CURSOR' 'RLGRAP-FILENAME'
,'BDC_OKCODE' '=SEND'
,'RLGRAP-FILENAME' patch_fname
,'RLGRAP-FILETYPE' 'ASC'.
bdc_dynpro 'SAPLS38E' '0400'.
bdc_field: 'BDC_OKCODE' '/EWB_BACK'
,'BDC_CURSOR' 'RSTXP-TDLINE(01)'.
bdc_dynpro 'SAPLWBABAP' '0100'.
bdc_field: 'BDC_CURSOR' 'RS38M-PROGRAMM'
,'BDC_OKCODE' '=BACK'
,'RS38M-FUNC_EDIT' 'X'.
bdc_call_01 'SE38'.
ENDLOOP.
* необходимо немного настроить se80
* Утилиты
* Параметры настройки, спейцифичные для пользователя
* Закладка (Редактор)
* Радиобатон (Редактор внутреннего
* интерфейса)
|
|