Uploading files from PC(Presentation Server)



Uploading files from PC(Presentation Server) |  | |

|There are also a number of other function modules which could be used for uploading/downloding files between SAP and | |

|the presentation server. | |

| |

|* Retrieve data file from presentation server(Upload from PC) |

|DATA: i_file like rlgrap-filename value '/usr/sap/tmp/file.txt'. |

|DATA: begin of it_datatab occurs 0, |

|row(500) type c, |

|end of it_datatab. |

| |

|CALL FUNCTION 'GUI_UPLOAD' |

|EXPORTING |

|filename = i_file |

|filetype = 'ASC' |

|TABLES |

|data_tab = it_datatab "ITBL_IN_RECORD[] |

|EXCEPTIONS |

|file_open_error = 1 |

|OTHERS = 2. |

|Downloading files to PC(Presentation Server) |  |

|There are also a number of other function modules which could be used for uploading/downloding files between SAP and | |

|the presentation server. | |

|* Download internal table to presentation server file(PC) |

| |

|DATA: ld_filename TYPE string, |

|* Pre version 4.7 declaration e_file like rlgrap-filename. |

| |

|DATA: begin of it_datatab occurs 0, |

|row(500) type c, |

|end of it_datatab. |

| |

|call function 'GUI_DOWNLOAD' |

|exporting |

|filename = ld_filename |

|filetype = 'ASC' |

|tables |

|data_tab = it_datatab[] |

|exceptions |

|file_open_error = 1 |

|file_write_error = 2 |

|others = 3. |

|* Download internal table to presentation server file(PC) |

|* Separating fields/columns by a tab |

| |

|DATA: ld_filename TYPE string, |

|* Pre version 4.7 declaration e_file like rlgrap-filename. |

| |

|DATA: begin of it_datatab occurs 0, |

|col1(50) type c, |

|col2(50) type c, |

|col3(50) type c, |

|* etc.... |

|end of it_datatab. |

| |

|CALL FUNCTION 'GUI_DOWNLOAD' |

|EXPORTING |

|filename = ld_filename |

|filetype = 'ASC' |

|* APPEND = 'X' |

|write_field_separator = 'X' |

|* CONFIRM_OVERWRITE = 'X' |

|TABLES |

|data_tab = it_datatab[] |

|EXCEPTIONS |

|file_open_error = 1 |

|file_write_error = 2 |

|OTHERS = 3. |

|Uploading files from SAP(Application Server)) |  |

| | |

| |

|* Retrieve Data file from Application server(Upload from Unix) |

|DATA: i_file like rlgrap-filename value '/usr/sap/tmp/file.txt'. |

| |

|OPEN DATASET i_file FOR INPUT IN TEXT MODE. |

|IF sy-subrc NE 0. |

|MESSAGE e999(za) WITH 'Error opening file' i_file. |

|ENDIF. |

|DO. |

|* Reads each line of file individually |

|READ DATASET i_file INTO wa_datatab. |

|* Perform processing here |

|* ..... |

|ENDDO. |

|Downloading files to SAP(Application Server) |  |

| | |

| |

|* Download internal table to Application server file(Unix) |

|DATA: e_file like rlgrap-filename value '/usr/sap/tmp/file.txt'. |

| |

|open dataset e_file for output in text mode. |

|lOOP AT it_datatab...... |

|transfer it_datatab to e_file. |

|ENDLOOP. |

| |

|close dataset e_file. |

|Check if file exists before downloading |  |

| | |

|ABAP code for downloading data to a file on the presentatuion server(PC). It also checks if file exists and allows user| |

|to replace existing file, change name or cancel during download process. | |

|* This method of file download with check uses the latest techniques |

|* and achieves a very neat solution |

|DATA: ld_filename TYPE string, |

|ld_path TYPE string, |

|ld_fullpath TYPE string, |

|ld_result TYPE i. |

| |

|* Display save dialog window |

|CALL METHOD cl_gui_frontend_services=>file_save_dialog |

|EXPORTING |

|* window_title = ' ' |

|DEFAULT_EXTENSION = 'XLS' |

|default_file_name = 'accountsdata' |

|INITIAL_DIRECTORY = 'c:\temp\' |

|CHANGING |

|filename = ld_filename |

|path = ld_path |

|fullpath = ld_fullpath |

|user_action = ld_result. |

| |

|* Check user did not cancel request |

|CHECK ld_result EQ '0'. |

| |

|CALL FUNCTION 'GUI_DOWNLOAD' |

|EXPORTING |

|filename = ld_fullpath |

|filetype = 'ASC' |

|* APPEND = 'X' |

|write_field_separator = 'X' |

|* CONFIRM_OVERWRITE = 'X' |

|TABLES |

|data_tab = it_datatab[] "need to declare and populate |

|EXCEPTIONS |

|file_open_error = 1 |

|file_write_error = 2 |

|OTHERS = 3. |

| |

| |

|* File download, uses older techniques but achieves a perfectly |

|* acceptable solution which also allows the user to append data to |

|* an existing file. |

|PARAMETERS: p_file like rlgrap-filename. |

| |

|* Internal table to store export data |

|DATA: begin of it_excelfile occurs 0, |

|row(500) type c, |

|end of it_excelfile. |

| |

|DATA: rc TYPE sy-ucomm, |

|ld_answer TYPE c. |

| |

|CALL FUNCTION 'WS_QUERY' |

|EXPORTING |

|query = 'FE' "File Exist? |

|filename = p_file |

|IMPORTING |

|return = rc. |

| |

|IF rc NE 0. "If File alread exists |

|CALL FUNCTION 'POPUP_TO_CONFIRM' |

|EXPORTING |

|* TITLEBAR = ' ' |

|* DIAGNOSE_OBJECT = ' ' |

|text_question = 'File Already exists!!' |

|text_button_1 = 'Replace' |

|* ICON_BUTTON_1 = ' ' |

|text_button_2 = 'New name' |

|* ICON_BUTTON_2 = ' ' |

|* DEFAULT_BUTTON = '1' |

|* DISPLAY_CANCEL_BUTTON = 'X' |

|* USERDEFINED_F1_HELP = ' ' |

|* START_COLUMN = 25 |

|* START_ROW = 6 |

|* POPUP_TYPE = |

|IMPORTING |

|answer = ld_answer |

|* TABLES |

|* PARAMETER = |

|EXCEPTIONS |

|text_not_found = 1 |

|OTHERS = 2. |

| |

|* Option 1: Overwrite |

|********************* |

|IF ld_answer EQ '1'. |

|CALL FUNCTION 'GUI_DOWNLOAD' |

|EXPORTING |

|* BIN_FILESIZE = |

|filename = p_file "File Name |

|filetype = 'ASC' |

|* IMPORTING |

|* FILELENGTH = |

|TABLES |

|data_tab = it_excelfile "Data table |

|EXCEPTIONS |

|file_write_error = 1 |

|no_batch = 2 |

|gui_refuse_filetransfer = 3 |

|invalid_type = 4 |

|OTHERS = 5. |

|IF sy-subrc 0. |

|MESSAGE i003(zp) WITH |

|'There was an error during Excel file creation'(200). |

|exit. "Causes short dump if removed and excel document was open |

|ENDIF. |

|* Option 2: New name. |

|********************* |

|ELSEIF ld_answer EQ '2'. |

|CALL FUNCTION 'DOWNLOAD' |

|EXPORTING |

|filename = p_file "File name |

|filetype = 'ASC' "File type |

|* col_select = 'X' "COL_SELECT |

|* col_selectmask = 'XXXXXXXXXXXXXXXXXXXXXXXXXX' |

|* "COL_SELECTMASK |

|filetype_no_show = 'X' "Show file type selection? |

|* IMPORTING |

|* act_filename = filename_dat |

|TABLES |

|data_tab = it_excelfile "Data table |

|* fieldnames = |

|EXCEPTIONS |

|file_open_error = 01 |

|file_write_error = 02 |

|invalid_filesize = 03 |

|invalid_table_width = 04 |

|invalid_type = 05 |

|no_batch = 06 |

|unknown_error = 07. |

|ENDIF. |

|ELSE. "File does not alread exist. |

|CALL FUNCTION 'GUI_DOWNLOAD' |

|EXPORTING |

|* BIN_FILESIZE = |

|filename = p_file "File name |

|filetype = 'ASC' "File type |

|* IMPORTING |

|* FILELENGTH = |

|TABLES |

|data_tab = it_excelfile "Data table |

|EXCEPTIONS |

|file_write_error = 1 |

|no_batch = 2 |

|gui_refuse_filetransfer = 3 |

|invalid_type = 4 |

|OTHERS = 5. |

|IF sy-subrc 0. |

|MESSAGE i003(zp) WITH |

|'There was an error during Excel file creation'(200). |

|exit. "Causes short dump if removed and excel document was open |

|ENDIF. |

|ENDIF. |

|Upload Excel document into internal table |  |

| | |

|ABAP code for uploading an Excel document into an internal table. See code below for structures. The code is based on | |

|uploading a simple Excel spreadsheet or for an actual Excel file click here. There are also a couple of alternatives | |

|which use fucntion modules 'KCD_EXCEL_OLE_TO_INT_CONVERT' and 'ALSM_EXCEL_TO_INTERNAL_TABLE' but the method below is | |

|by far the simplest method to used. | |

|A big thanks to Jayanta for bringing this method to my attention. | |

| |

|*.............................................................. |

|*: Description : |

|*: ----------- : |

|*: This is a simple example program to get data from an excel : |

|*: file and store it in an internal table. : |

|*: : |

|*: Author : sapdev.co.uk, based on code from Jayanta : |

|*: : |

|*: SAP Version : 4.7 : |

|*:............................................................: |

|REPORT zupload_excel_to_itab. |

| |

|TYPE-POOLS: truxs. |

| |

|PARAMETERS: p_file TYPE rlgrap-filename. |

| |

|TYPES: BEGIN OF t_datatab, |

|col1(30) TYPE c, |

|col2(30) TYPE c, |

|col3(30) TYPE c, |

|END OF t_datatab. |

|DATA: it_datatab type standard table of t_datatab, |

|wa_datatab type t_datatab. |

| |

|DATA: it_raw TYPE truxs_t_text_data. |

| |

|* At selection screen |

|AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. |

|CALL FUNCTION 'F4_FILENAME' |

|EXPORTING |

|field_name = 'P_FILE' |

|IMPORTING |

|file_name = p_file. |

| |

| |

|*********************************************************************** |

|*START-OF-SELECTION. |

|START-OF-SELECTION. |

| |

|CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' |

|EXPORTING |

|* I_FIELD_SEPERATOR = |

|i_line_header = 'X' |

|i_tab_raw_data = it_raw " WORK TABLE |

|i_filename = p_file |

|TABLES |

|i_tab_converted_data = it_datatab[] "ACTUAL DATA |

|EXCEPTIONS |

|conversion_failed = 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. |

| |

| |

|*********************************************************************** |

|* END-OF-SELECTION. |

|END-OF-SELECTION. |

|LOOP AT it_datatab INTO wa_datatab. |

|WRITE:/ wa_datatab-col1, |

|wa_datatab-col2, |

|wa_datatab-col3. |

|ENDLOOP. |

|Upload Tab delimited file from application server into internal table |  |

| | |

|ABAP code for uploading a TAB delimited file into an internal table. See code below for structures. The code is base on| |

|uploading a simple txt file. | |

| |

|*&---------------------------------------------------------------------* |

|*& Report ZUPLOADTAB * |

|*& * |

|*&---------------------------------------------------------------------* |

|*& Example of Uploading tab delimited file * |

|*& * |

|*&---------------------------------------------------------------------* |

|REPORT zuploadtab . |

| |

|PARAMETERS: p_infile LIKE rlgrap-filename |

|OBLIGATORY DEFAULT '/usr/sap/'.. |

| |

|DATA: ld_file LIKE rlgrap-filename. |

| |

|*Internal tabe to store upload data |

|TYPES: BEGIN OF t_record, |

|name1 like pa0002-VORNA, |

|name2 like pa0002-name2, |

|age type i, |

|END OF t_record. |

|DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0, |

|wa_record TYPE t_record. |

| |

|*Text version of data table |

|TYPES: begin of t_uploadtxt, |

|name1(10) type c, |

|name2(15) type c, |

|age(5) type c, |

|end of t_uploadtxt. |

|DATA: wa_uploadtxt TYPE t_uploadtxt. |

| |

|*String value to data in initially. |

|DATA: wa_string(255) type c. |

| |

|constants: con_tab TYPE x VALUE '09'. |

| |

|*If you have Unicode check active in program attributes then you will |

|*need to declare constants as follows: |

| |

|*class cl_abap_char_utilities definition load. |

|*constants: |

|* con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB. |

| |

| |

| |

|************************************************************************ |

|*START-OF-SELECTION |

|START-OF-SELECTION. |

|ld_file = p_infile. |

|OPEN DATASET ld_file FOR INPUT IN TEXT MODE ENCODING DEFAULT. |

|IF sy-subrc NE 0. |

|ELSE. |

|DO. |

|CLEAR: wa_string, wa_uploadtxt. |

|READ DATASET ld_file INTO wa_string. |

|IF sy-subrc NE 0. |

|EXIT. |

|ELSE. |

|SPLIT wa_string AT con_tab INTO wa_uploadtxt-name1 |

|wa_uploadtxt-name2 |

|wa_uploadtxt-age. |

|MOVE-CORRESPONDING wa_uploadtxt TO wa_upload. |

|APPEND wa_upload TO it_record. |

|ENDIF. |

|ENDDO. |

|CLOSE DATASET ld_file. |

|ENDIF. |

| |

| |

|************************************************************************ |

|*END-OF-SELECTION |

|END-OF-SELECTION. |

|*!! Text data is now contained within the internal table IT_RECORD |

| |

|* Display report data for illustration purposes |

|loop at it_record into wa_record. |

|write:/ sy-vline, |

|(10) wa_record-name1, sy-vline, |

|(10) wa_record-name2, sy-vline, |

|(10) wa_record-age, sy-vline. |

|endloop. |

|Upload Tab delimited file from PC into internal table |  |

| | |

|ABAP code for uploading a TAB delimited file into an internal table. See code below for structures. The code is base on| |

|uploading a simple txt file. | |

| |

|*&---------------------------------------------------------------------* |

|*& Report ZUPLOADTAB * |

|*& * |

|*&---------------------------------------------------------------------* |

|*& Example of Uploading tab delimited file * |

|*& * |

|*&---------------------------------------------------------------------* |

|REPORT zuploadtab . |

| |

|PARAMETERS: p_infile LIKE rlgrap-filename |

|OBLIGATORY DEFAULT '/usr/sap/'.. |

| |

|*DATA: ld_file LIKE rlgrap-filename. |

|DATA: gd_file type string. |

| |

|*Internal tabe to store upload data |

|TYPES: BEGIN OF t_record, |

|name1 LIKE pa0002-vorna, |

|name2 LIKE pa0002-name2, |

|age TYPE i, |

|END OF t_record. |

|DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0, |

|wa_record TYPE t_record. |

| |

|*Internal table to upload data into |

|DATA: BEGIN OF it_datatab OCCURS 0, |

|row(500) TYPE c, |

|END OF it_datatab. |

| |

|*Text version of data table |

|TYPES: BEGIN OF t_uploadtxt, |

|name1(10) TYPE c, |

|name2(15) TYPE c, |

|age(5) TYPE c, |

|END OF t_uploadtxt. |

|DATA: wa_uploadtxt TYPE t_uploadtxt. |

| |

| |

|*String value to data in initially. |

|DATA: wa_string(255) TYPE c. |

| |

|CONSTANTS: con_tab TYPE x VALUE '09'. |

| |

|*If you have Unicode check active in program attributes then you will |

|*need to declare constants as follows: |

| |

|*class cl_abap_char_utilities definition load. |

|*constants: |

|* con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB. |

| |

| |

| |

| |

|************************************************************************ |

|*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INFILE. |

|AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_infile. |

|CALL FUNCTION 'WS_FILENAME_GET' |

|EXPORTING |

|def_filename = p_infile |

|mask = ',*.txt.' |

|mode = 'O' |

|title = 'Upload File'(078) |

|IMPORTING |

|filename = p_infile |

|EXCEPTIONS |

|inv_winsys = 1 |

|no_batch = 2 |

|selection_cancel = 3 |

|selection_error = 4 |

|OTHERS = 5. |

| |

| |

|************************************************************************ |

|*START-OF-SELECTION |

|START-OF-SELECTION. |

|gd_file = p_infile. |

| |

|CALL FUNCTION 'GUI_UPLOAD' |

|EXPORTING |

|filename = gd_file |

|has_field_separator = 'X' "file is TAB delimited |

|TABLES |

|data_tab = it_record |

|EXCEPTIONS |

|file_open_error = 1 |

|file_read_error = 2 |

|no_batch = 3 |

|gui_refuse_filetransfer = 4 |

|invalid_type = 5 |

|no_authority = 6 |

|unknown_error = 7 |

|bad_data_format = 8 |

|header_not_allowed = 9 |

|separator_not_allowed = 10 |

|header_too_long = 11 |

|unknown_dp_error = 12 |

|access_denied = 13 |

|dp_out_of_memory = 14 |

|disk_full = 15 |

|dp_timeout = 16 |

|OTHERS = 17. |

|IF sy-subrc NE 0. |

|write: 'Error ', sy-subrc, 'returned from GUI_UPLOAD FM'. |

|skip. |

|endif. |

| |

|* Alternative method, where by you split fields at each TAB after you |

|* have returned the data. No point unless you dont have access to |

|* GUI_UPLOAD but just included for information |

|* |

|* CALL FUNCTION 'GUI_UPLOAD' |

|* EXPORTING |

|* filename = gd_file |

|* filetype = 'ASC' |

|* TABLES |

|* data_tab = it_datatab "ITBL_IN_RECORD[] |

|* EXCEPTIONS |

|* file_open_error = 1 |

|* OTHERS = 2. |

|* IF sy-subrc NE 0. |

|* ELSE. |

|* LOOP AT it_datatab. |

|* CLEAR: wa_string, wa_uploadtxt. |

|* wa_string = it_datatab. |

|* SPLIT wa_string AT con_tab INTO wa_uploadtxt-name1 |

|* wa_uploadtxt-name2 |

|* wa_uploadtxt-age. |

|* MOVE-CORRESPONDING wa_uploadtxt TO wa_record. |

|* APPEND wa_record TO it_record. |

|* ENDLOOP. |

|* ENDIF. |

| |

| |

|************************************************************************ |

|*END-OF-SELECTION |

|END-OF-SELECTION. |

|*!! Text data is now contained within the internal table IT_RECORD |

| |

|* Display report data for illustration purposes |

|LOOP AT it_record INTO wa_record. |

|WRITE:/ sy-vline, |

|(10) wa_record-name1, sy-vline, |

|(10) wa_record-name2, sy-vline, |

|(10) wa_record-age, sy-vline. |

|ENDLOOP. |

|Selecting a directory using object methods |  |

|  | |

| |

|*Selecting a Directory |

|data: gd_path(500) type c. |

| |

|parameters: p_path like rlgrap-filename. |

| |

|at selection-screen on value-request for p_path. |

| |

|CALL METHOD cl_gui_frontend_services=>directory_browse |

|EXPORTING window_title = 'File Directory' |

|initial_folder = 'C:' |

|CHANGING selected_folder = gd_path. |

| |

|CALL METHOD cl_gui_cfw=>flush. |

| |

|concatenate gd_path '' into p_path. |

|Selecting a File using object methods |  |

|  | |

| |

|*Selecting a File, plus inserting default file extension |

|tables rlgrap. |

| |

|data: it_tab type filetable, |

|gd_subrc type i. |

| |

|selection-screen begin of block m with frame. |

|select-options so_fpath for rlgrap-filename. |

|selection-screen end of block m. |

| |

|at selection-screen on value-request for so_fpath-low. |

| |

|REFRESH: it_tab. |

|CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG |

|EXPORTING |

|WINDOW_TITLE = 'Select File' |

|DEFAULT_FILENAME = '*.txt' |

|MULTISELECTION = 'X' |

|CHANGING |

|FILE_TABLE = it_tab |

|RC = gd_subrc. |

| |

|loop at it_tab into so_fpath-low. |

|so_fpath-sign = 'I'. |

|so_fpath-option = 'EQ'. |

|append so_fpath. |

|endloop. |

|Selecting a File using object methods |  |

|  | |

| |

|*Selecting a file to save too, plus inserting default file extension .xls |

|tables rlgrap. |

| |

|DATA: ld_filename TYPE string, |

|ld_path TYPE string, |

|ld_fullpath TYPE string, |

|ld_result TYPE i, |

|gd_file TYPE c. |

| |

|selection-screen begin of block m with frame. |

|PARAMETERS: p_file TYPE rlgrap-filename. |

|selection-screen end of block m. |

| |

|* At selection screen |

|AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. |

| |

|* Display save dialog window |

|CALL METHOD cl_gui_frontend_services=>file_save_dialog |

|EXPORTING |

|* window_title = ' ' |

|default_extension = 'XLS' |

|default_file_name = 'accountsdata' |

|initial_directory = 'c:\temp\' |

|CHANGING |

|filename = ld_filename |

|path = ld_path |

|fullpath = ld_fullpath |

|user_action = ld_result. |

|p_file = ld_fullpath. |

|Browse files on Application Server(UNIX) |  |

|When looking at/for files on the application server(UNIX) using AL11 you are restricted to only certian directories. | |

|The following ABAP program displays all files/directories on the application server(UNIX). | |

| | |

|Simple copy and paste the following code into a new ABAP report program. Note will also need to created the following | |

|report which displays the actual file ZBROWSEFILE. | |

| |

|*---------------------------------------------------------------------* |

|* Topic: File Manager for UNIX environment * |

|* * |

|* Description: With internal system command you can get access to * |

|* the UNIX. The program list files in the Unix * |

|* environment and by using at line selecttion you are* |

|* able to browse datasets. * |

|* * |

|* Authorization: None, be careful you have unlimited access to Unix.* |

|* Check that you are able to use the internal system * |

|* command. * |

|* * |

|* Parameters: Filename and path. * |

|* * |

|* Change of Check that you are able to use the internal system * |

|* release command. * |

|* * |

|* Release: 4.6b * |

|* * |

|*********************************************************************** |

| |

|REPORT ZUNIXFILES MESSAGE-ID Z1 |

|NO STANDARD PAGE HEADING |

|LINE-COUNT 65 |

|LINE-SIZE 132. |

|*---------------------------------------------------------------------* |

|* Global Variables. * |

|*---------------------------------------------------------------------* |

|DATA: BEGIN OF TABL OCCURS 0, |

|LINE(2000), |

|END OF TABL. |

| |

|DATA: PARCOM_LOC LIKE RS37A-LINE. |

| |

|DATA: SIZE(10) TYPE C, |

|LINE LIKE TABL-LINE, |

|SUM(16) TYPE C. |

| |

|DATA: FILE LIKE RS37A-LINE. |

|DATA: PATH(255) TYPE C. |

| |

|*-------------------------------------------------------------------* |

|* Parameters. * |

|*-------------------------------------------------------------------* |

|SELECTION-SCREEN SKIP 2. |

|PARAMETERS: PARCOM LIKE RS37A-LINE. |

| |

| |

|********************************************************************* |

|*AT SELECTION-SCREEN. |

|AT SELECTION-SCREEN. |

|CONDENSE: PARCOM NO-GAPS. |

| |

| |

|********************************************************************* |

|*TOP-OF-PAGE. |

|TOP-OF-PAGE. |

|PERFORM WRITE_PAGE_HEADING. |

| |

| |

|********************************************************************* |

|*INITIALIZATION. |

|INITIALIZATION. |

|PARCOM = '/usr/sap/*'. "Only default value |

| |

| |

|********************************************************************* |

|*START-OF-SELECTION. |

|START-OF-SELECTION. |

|PERFORM MAKE_LOC. |

|PERFORM COLLECT_DATA. |

|PERFORM FILE_LIST. |

| |

| |

|********************************************************************* |

|*AT LINE-SELECTION. |

|AT LINE-SELECTION. |

|CLEAR FILE. |

|FILE = SY-LISEL+55. |

|REPLACE '|' WITH SPACE INTO FILE. |

| |

|IF SY-LISEL+1(1) = 'd'. |

|PATH = FILE. |

|PATH+200 = '/*'. |

|CONDENSE PATH NO-GAPS. |

|SUBMIT ZUNIXFILES |

|WITH PARCOM = PATH |

|AND RETURN. |

|ENDIF. |

| |

|SUBMIT ZBROWSEFILE "Call the browse program |

|WITH PARCOM = FILE |

|AND RETURN. |

| |

| |

|*---------------------------------------------------------------------* |

|* FORM MAKE_LOC. * |

|*---------------------------------------------------------------------* |

|FORM MAKE_LOC. |

|CLEAR: PARCOM_LOC. |

|PARCOM_LOC(7) = 'ls -ld '. |

|PARCOM_LOC+7(45) = PARCOM. |

|ENDFORM. |

| |

|*---------------------------------------------------------------------* |

|* FORM COLLECT_DATA. * |

|*---------------------------------------------------------------------* |

|FORM COLLECT_DATA. |

|REFRESH TABL. |

|CALL 'SYSTEM' ID 'COMMAND' FIELD PARCOM_LOC |

|ID 'TAB' FIELD TABL-*SYS*. |

|ENDFORM. |

| |

|*-------------------------------------------------------------------* |

|* FORM FILE_LIST. * |

|*-------------------------------------------------------------------* |

|FORM FILE_LIST. |

|FORMAT RESET. |

|CLEAR SUM. |

|LOOP AT TABL. |

|CLEAR LINE. |

|LINE = TABL-LINE. |

|WRITE /2 LINE. |

|PERFORM VERTICAL_LINES. |

|SUM = SUM + SIZE. |

|ENDLOOP. |

|WRITE:/1(132) SY-ULINE. |

|ENDFORM. |

| |

|*-------------------------------------------------------------------* |

|* FORM WRITE_PAGE_HEADING. * |

|*-------------------------------------------------------------------* |

|FORM WRITE_PAGE_HEADING. |

|WRITE:/1(132) SY-ULINE. |

|PERFORM VERTICAL_LINES. |

|FORMAT INTENSIFIED. |

|WRITE: /2(131) SPACE COLOR 1. |

|WRITE: 2 SY-DATUM COLOR 1. |

|WRITE: 35 'File Manager' COLOR 1. |

|PERFORM VERTICAL_LINES. |

|WRITE:/1(132) SY-ULINE. |

|PERFORM VERTICAL_LINES. |

|FORMAT INTENSIFIED. |

|WRITE: /2(131) SPACE COLOR 3. |

|PERFORM VERTICAL_LINES. |

|FORMAT RESET. |

|WRITE:/1(132) SY-ULINE. |

|ENDFORM. |

| |

|*-------------------------------------------------------------------* |

|* FORM VERTICAL_LINES. * |

|*-------------------------------------------------------------------* |

|FORM VERTICAL_LINES. |

|PERFORM WRITE_VLINE USING ' ' 1. |

|PERFORM WRITE_VLINE USING ' ' 132. |

|ENDFORM. |

| |

|*-------------------------------------------------------------------* |

|* WRITE_VLINE. * |

|*-------------------------------------------------------------------* |

|FORM WRITE_VLINE USING MODE POS. |

|IF MODE NE 'T'. |

|FORMAT INTENSIFIED. |

|ENDIF. |

|POSITION POS. |

|WRITE: SY-VLINE. |

|IF MODE NE 'T'. |

|FORMAT RESET. |

|ENDIF. |

|ENDFORM. |

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download