04-24-2006 12:40 AM
Hi,
Can anyone tell me how can I get a F4 help for selecting a file or directory from the PC...i.e I should get a pop-up Open File dialog to select the File on PC.
Thanks!
Sunitha.
04-24-2006 12:49 AM
Hi Sunitha.,
You can write the following code in the At selection screeb value request event.
Using ABAP Objects:
PARAMETER : p_file LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR path.
DATA: directory TYPE string,
filetable TYPE filetable,
line TYPE LINE OF filetable,
rc TYPE i.
CALL METHOD cl_gui_frontend_services=>get_temp_directory
CHANGING
temp_dir = directory.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'SELECT THE FILE'
initial_directory = directory
file_filter = '*.XLS'
multiselection = ' '
CHANGING
file_table = filetable
rc = rc.
IF rc = 1.
READ TABLE filetable INDEX 1 INTO line.
P_FILE = line-filename.
ENDIF.
Using Normal ABAP:
DATA: P_FILE LIKE RLGRAP-FILENAME,
DPATH LIKE RLGRAP-FILENAME,
UPATH LIKE RLGRAP-FILENAME,
MODE TYPE C,
FLG_UD TYPE C.
CALL FUNCTION 'WS_ULDL_PATH'
IMPORTING
DOWNLOAD_PATH = DPATH
UPLOAD_PATH = UPATH.
IF FLG_UD <> 'D'.
DPATH = UPATH.
MODE = 'O'.
ELSE.
MODE = 'S'.
ENDIF.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = '*.XLS'
DEF_PATH = DPATH
MASK = ',*.XLS,*.*,*.*.'
MODE = MODE
IMPORTING
FILENAME = P_FILE
EXCEPTIONS
SELECTION_CANCEL = 3.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
Just copy paste the code this should work fine.
Cheers
VJ
04-24-2006 12:49 AM
Hi Sunitha.,
You can write the following code in the At selection screeb value request event.
Using ABAP Objects:
PARAMETER : p_file LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR path.
DATA: directory TYPE string,
filetable TYPE filetable,
line TYPE LINE OF filetable,
rc TYPE i.
CALL METHOD cl_gui_frontend_services=>get_temp_directory
CHANGING
temp_dir = directory.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'SELECT THE FILE'
initial_directory = directory
file_filter = '*.XLS'
multiselection = ' '
CHANGING
file_table = filetable
rc = rc.
IF rc = 1.
READ TABLE filetable INDEX 1 INTO line.
P_FILE = line-filename.
ENDIF.
Using Normal ABAP:
DATA: P_FILE LIKE RLGRAP-FILENAME,
DPATH LIKE RLGRAP-FILENAME,
UPATH LIKE RLGRAP-FILENAME,
MODE TYPE C,
FLG_UD TYPE C.
CALL FUNCTION 'WS_ULDL_PATH'
IMPORTING
DOWNLOAD_PATH = DPATH
UPLOAD_PATH = UPATH.
IF FLG_UD <> 'D'.
DPATH = UPATH.
MODE = 'O'.
ELSE.
MODE = 'S'.
ENDIF.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = '*.XLS'
DEF_PATH = DPATH
MASK = ',*.XLS,*.*,*.*.'
MODE = MODE
IMPORTING
FILENAME = P_FILE
EXCEPTIONS
SELECTION_CANCEL = 3.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
Just copy paste the code this should work fine.
Cheers
VJ
04-24-2006 2:00 AM
04-24-2006 2:02 AM
Hi Sunitha,
just use the following..
PARAMETERS: dataset(132) LOWER CASE OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR dataset.
PERFORM call_filedialog CHANGING dataset.
FORM call_filedialog CHANGING fname.
DATA: li_filetable TYPE STANDARD TABLE OF file_table,
lv_return TYPE i,
lw_filetable TYPE file_table.
CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG'
TABLES
file_table = li_filetable
EXCEPTIONS
cntl_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.
ENDIF.
READ TABLE li_filetable INDEX 1 INTO lw_filetable.
fname = lw_filetable-filename.
ENDFORM.
regards
satesh
04-24-2006 3:39 AM