‎2007 Sep 26 8:05 AM
Hi,
i am making one function module in SE37.
During selection of file i want F4 help.
So pls tell me where i have to give the F4 help.
I am writing my code here itself.
FUNCTION Z_SALES_DOWNLOAD.
*"----
""Local interface:
*" IMPORTING
*" VALUE(V_VBELN) TYPE VBELN_VA
*" VALUE(FILENAME) TYPE RLGRAP-FILENAME
*" TABLES
*" IT_VBAK STRUCTURE VBAK
*" IT_AFKO STRUCTURE AFKO
*" IT_VBAP STRUCTURE VBAP
*"----
TYPES:BEGIN OF STRUCT_RESULT,
VBELN TYPE VBELN_VA,
POSNR TYPE POSNR_VA,
AUDAT TYPE AUDAT,
AUFNR TYPE AUFNR,
END OF STRUCT_RESULT.
DATA:IT_RESULT TYPE STANDARD TABLE OF STRUCT_RESULT,
WA_RESULT LIKE LINE OF IT_RESULT.
TYPES: BEGIN OF download_types,
s1(20) ,
s2(20) ,
s3(20) ,
s4(20) ,
END OF download_types.
DATA: itab_download TYPE STANDARD TABLE OF download_types,
wa_download LIKE LINE OF itab_download.
*CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'V_FILE'
IMPORTING
FILE_NAME = 'V_FILE'
.
*DATA:v_file LIKE rlgrap-filename ."sgarg
*v_file = 'C:\Documents and Settings\DamarDPR\Desktop\sales.xls'.
IF NOT V_VBELN IS INITIAL.
SELECT * FROM VBAK INTO TABLE IT_VBAK WHERE VBELN = V_VBELN.
IF NOT IT_VBAK[] IS INITIAL.
SELECT * FROM AFKO INTO TABLE IT_AFKO FOR ALL ENTRIES IN IT_VBAK
WHERE AUFNR = IT_VBAK-AUFNR.
SELECT * FROM VBAP INTO TABLE IT_VBAP FOR ALL ENTRIES IN IT_VBAK
WHERE VBELN = IT_VBAK-VBELN.
ENDIF.
LOOP AT IT_VBAK.
READ TABLE IT_VBAK WITH KEY IT_VBAK-VBELN.
MOVE IT_VBAK-VBELN TO WA_RESULT-VBELN.
MOVE IT_VBAK-AUDAT TO WA_RESULT-AUDAT.
MODIFY TABLE IT_RESULT FROM WA_RESULT.
CLEAR WA_RESULT.
ENDLOOP.
READ TABLE IT_VBAP WITH KEY IT_VBAK-VBELN.
MOVE IT_VBAP-POSNR TO WA_RESULT-POSNR.
*
LOOP AT IT_AFKO.
READ TABLE IT_AFKO WITH KEY IT_VBAK-VBELN.
MOVE IT_VBAK-AUFNR TO WA_RESULT-AUFNR.
MODIFY TABLE IT_RESULT FROM WA_RESULT.
CLEAR WA_RESULT.
ENDLOOP.
LOOP AT IT_VBAP.
APPEND WA_RESULT TO IT_RESULT.
MODIFY TABLE IT_RESULT FROM WA_RESULT.
CLEAR WA_RESULT.
ENDLOOP.
ENDIF.
*loop at itab_download into wa_download.
wa_download-s1 = 'SalesOrder'.
wa_download-s2 = 'Item'.
wa_download-s3 = 'DueDate'.
wa_download-s4 = 'ProductionOrder'.
insert wa_download into table itab_download.
clear wa_download.
*endloop.
loop at it_result into wa_result.
wa_download-s1 = wa_result-vbeln.
wa_download-s2 = wa_result-posnr.
wa_download-s3 = wa_result-audat.
wa_download-s4 = wa_result-aufnr.
append wa_download to itab_download.
clear wa_download.
endloop.
******sandeep****
*
*CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = v_file
DEF_PATH = ' '
MASK = ' '
MODE = 'S'
TITLE = 'Select File'
IMPORTING
FILENAME = v_file
RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5
.
*IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
******sandeep**
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = ' '
CODEPAGE = ' '
FILENAME = filename
FILETYPE = 'DAT'
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = itab_download
FIELDNAMES = itab_download
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFUNCTION.
‎2007 Sep 26 8:11 AM
Hi Sandeep,
WS_FILENAME_GET is a good FM to get F4 help for a file.
After selection-screen event u can code : the following command:-
<b>at selection-screen on value-request for p_file.
perform browse_presentation_server using p_file. </b>
within the subroutine u can call the above mentioned FM.
Reward points if helpful.
Shaily
‎2007 Sep 26 8:12 AM
Hi Shally,
We can't write events in Function Module.
Thats why i am facing problem.
Pls suggest me another method.
Thanks .
‎2007 Sep 26 8:22 AM
Hi Sandeep,
U can call the subroutine existing in another program within the same FM.
like:-
perform sub_routine(pgm_name) using p_file.
or
perform sub_routine in pgm_name using p_file if found.
Just try this once.
Shaily
‎2007 Sep 26 8:19 AM
Hi
i can't be possible
you can see any sandard SAP function modules
there is no F4 facility available
the events level is not possible in FM
rewad if usefull
‎2007 Sep 27 1:17 PM
Hi Sandeep,
Try this FM once.
<b>F4IF_INT_TABLE_VALUE_REQUEST</b>
Shaily