‎2008 Feb 04 2:22 PM
Hi ,
Could any one give me the sample code for downloading and uploading excel file from both application server and presentation server.
<REMOVED BY MODERATOR>
Thanks in advance.
Edited by: Alvaro Tejada Galindo on Feb 4, 2008 4:37 PM
‎2008 Feb 04 3:03 PM
Hi,
for uploading and downloading from application server:
to download this the procedure:
you can use the FM 'EXCEL_OLE_STANDARD_DAT ' for this purpose.
this FM 'EXCEL_OLE_STANDARD_DAT' can be used to start Excel with a new sheet and transfer data from an internal table to the sheet.
Here are some of the parameters:
file_name: Name and path of the Excel worksheet file e.g. ?C:TEMPZTEST?
data_tab: Name of the internal table that should be uploaded to Exvcel
fieldnames: Internal tabel with column headers
How to build the field names table:
data: begin of i_fieldnames occurs 20,
field(60), end of i_fieldnames.
i_fieldnames-field = ?This is column 1?. append i_fieldnames-field.
i_fieldnames-field = ?This is column 2?. append i_fieldnames-field.
to upload follow this:
OPEN DATASET dsn FOR INPUT IN BINARY MODE.
DO.
READ DATASET dsn INTO itab-field.
IF sy-subrc = 0.
APPEND itab.
ELSE.
EXIT.
ENDIF.
ENDDO.
[/code]Rob
or Try this function module.
FILE_READ_AND_CONVERT_SAP_DATA
pass 'XLS' to I_FILEFORMAT..
<REMOVED BY MODERATOR>
regards.
Edited by: Alvaro Tejada Galindo on Feb 4, 2008 4:38 PM
‎2008 Feb 04 3:03 PM
Hi,
for uploading and downloading from application server:
to download this the procedure:
you can use the FM 'EXCEL_OLE_STANDARD_DAT ' for this purpose.
this FM 'EXCEL_OLE_STANDARD_DAT' can be used to start Excel with a new sheet and transfer data from an internal table to the sheet.
Here are some of the parameters:
file_name: Name and path of the Excel worksheet file e.g. ?C:TEMPZTEST?
data_tab: Name of the internal table that should be uploaded to Exvcel
fieldnames: Internal tabel with column headers
How to build the field names table:
data: begin of i_fieldnames occurs 20,
field(60), end of i_fieldnames.
i_fieldnames-field = ?This is column 1?. append i_fieldnames-field.
i_fieldnames-field = ?This is column 2?. append i_fieldnames-field.
to upload follow this:
OPEN DATASET dsn FOR INPUT IN BINARY MODE.
DO.
READ DATASET dsn INTO itab-field.
IF sy-subrc = 0.
APPEND itab.
ELSE.
EXIT.
ENDIF.
ENDDO.
[/code]Rob
or Try this function module.
FILE_READ_AND_CONVERT_SAP_DATA
pass 'XLS' to I_FILEFORMAT..
<REMOVED BY MODERATOR>
regards.
Edited by: Alvaro Tejada Galindo on Feb 4, 2008 4:38 PM
‎2008 Feb 04 3:09 PM
hi...
check this
* DATE OF REPORT : 21.01.2008
*DESC. OF REPORT : ALV to display purchase order using ekko & ekpo
*tables.
* All Basic functionality of ALV.
*F1 and F4 help for editable field in alv GRID display.
* Download to Unix Base.
*----------------------------------------------------------------------*
* M O D I F I C A T I O N - L O G
*----------------------------------------------------------------------*
* DATE USER-NAME TRANSPORT DESCRIPTION
*
*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
TYPE-POOLS : SLIS. "collection of type group and type used for ALV
*DATA DECLARATION FOR ITAB HEADER, DETAIL & FINAL.
INCLUDE Z11GAURAV_ASSIGN2_DECLARE. "data declaration
*constant
INCLUDE Z11GAURAV_ASSIGN_CONSTANT. "CONSTANT declaration
**********************************************************
*MACRO DEFINATION TO POPULATE FIELD cATLOG
**********************************************************
**DEFINE MACRO_FIELDCAT.
**
** Add 1 to L_fieldcat-col_pos. " position of the column
** L_FIELDCAT-FIELDNAME = &1. "field name
** L_FIELDCAT-TABNAME = &2. "IT_HEAD_DETAIL
** L_FIELDCAT-KEY = &3. "column with key-color
** L_FIELDCAT-JUST = &4. "(R)ight (L)eft (C)ent.
** L_FIELDCAT-LZERO = &5. "leading zero
** L_FIELDCAT-SELTEXT_L = &6. "long key word
** L_FIELDCAT-SELTEXT_M = &7. "middle key word
** L_FIELDCAT-SELTEXT_S = &8. "short key word
** L_FIELDCAT-OUTPUTLEN = &9. "Output length
** L_FIELDCAT-REF_FIELDNAME = &10."Reference field
** L_FIELDCAT-REF_TABNAME = &11. "Reference table
** L_FIELDCAT-NO_SUM = &12. "do not sum up
** L_FIELDCAT-HOTSPOT = &13 . "hotspot
** L_FIELDCAT-DO_SUM = &14. "Sumable
** L_FIELDCAT-EDIT = &15. "Editable
** L_FIELDCAT-INPUT = &16. "Input allowed
**Append l_fieldcat to I_fieldcat.
**clear l_fieldcat.
**
**END-OF-DEFINITION.
*Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_EBELN FOR WA_HEADER-EBELN OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .
"CHECk BOX for DISPLAY and DOWNLOAD Selection
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS: P_DOWN type Z_FLAG as checkbox .
SELECTION-SCREEN END OF BLOCK B2.
"FILE PATH
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
PARAMETERS: P_PATH(128) type C modif id PTH.
SELECTION-SCREEN END OF BLOCK B3.
INITIALIZATION.
V_PROGNAME = SY-REPID.
V_PATH = P_PATH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_PATH.
AT SELECTION-SCREEN.
*val....1 PO DO not exists
SELECT SINGLE EBELN INTO WA_HEADER-EBELN FROM EKKO WHERE EBELN IN
S_EBELN.
IF SY-SUBRC <> 0.
MESSAGE E001 WITH TEXT-004.
ENDIF.
*VAL....2 FILE PATH
if P_DOWN = 'X' and P_PATH is initial.
MESSAGE E002 with TEXT-005.
endif.
START-OF-SELECTION.
perform IT_TAB_POPULATE.
END-OF-SELECTION.
perform ZF_report.
************************************************************************
**
*TABLE POPULATION
************************************************************************
**
*&---------------------------------------------------------------------*
*& Form IT_TAB_POPULATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form IT_TAB_POPULATE .
*populate header table
select ebeln
bukrs
bsart
statu
AEDAT
ernam
zterm
ekorg
waers into table it_header
from ekko
where ebeln in s_ebeln.
IF SY-SUBRC = 0.
SORT IT_HEADER BY EBELN.
ENDIF.
IF NOT IT_HEADER[] IS INITIAL. "if header table is not empty
*populating detail internal table...
select ebeln
ebelp
matnr
werks
lgort
menge
meins
netpr
netwr into table it_detail
from ekpo
for all entries in it_header
where ebeln = it_header-ebeln.
IF SY-SUBRC = 0.
SORT IT_DETAIL BY EBELN EBELP.
ENDIF.
endif.
*populating final table with header and detail info...
LOOP AT IT_DETAIL INTO WA_DETAIL.
"MOVING data from detail table to final table
WA_HEAD_DETAIL-EBELN = WA_DETAIL-EBELN.
WA_HEAD_DETAIL-EBELP = WA_DETAIL-EBELP.
WA_HEAD_DETAIL-MATNR = WA_DETAIL-MATNR.
WA_HEAD_DETAIL-WERKS = WA_DETAIL-WERKS.
WA_HEAD_DETAIL-MEINS = WA_DETAIL-MEINS.
WA_HEAD_DETAIL-LGORT = WA_DETAIL-LGORT.
WA_HEAD_DETAIL-MENGE = WA_DETAIL-MENGE.
WA_HEAD_DETAIL-NETPR = WA_DETAIL-NETPR.
WA_HEAD_DETAIL-NETWR = WA_DETAIL-NETWR.
AT NEW EBELN.
READ TABLE IT_HEADER INTO WA_HEADER WITH KEY EBELN =
WA_DETAIL-EBELN BINARY SEARCH .
IF SY-SUBRC = 0.
"POPULATING final table with header information
WA_HEAD_DETAIL-EBELN = WA_HEADER-EBELN.
WA_HEAD_DETAIL-BUKRS = WA_HEADER-BUKRS.
WA_HEAD_DETAIL-BSART = WA_HEADER-BSART.
WA_HEAD_DETAIL-STATU = WA_HEADER-STATU.
WA_HEAD_DETAIL-AEDAT = WA_HEADER-AEDAT.
WA_HEAD_DETAIL-ERNAM = WA_HEADER-ERNAM.
WA_HEAD_DETAIL-ZTERM = WA_HEADER-ZTERM.
WA_HEAD_DETAIL-EKORG = WA_HEADER-EKORG.
WA_HEAD_DETAIL-WAERS = WA_HEADER-WAERS.
ENDIF.
ENDAT.
APPEND WA_HEAD_DETAIL TO IT_HEAD_DETAIL.
ENDLOOP.
endform. " IT_TAB_POPULATE
***********************************************************************
*REPORT DISPLAY
***********************************************************************
*&---------------------------------------------------------------------*
*& Form ZF_report
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form ZF_report .
IF NOT IT_HEAD_DETAIL[] IS INITIAL.
*FIELD CATLOG
PERFORM ZF_BUILD_FIELDCAT USING IT_FIELDCAT.
*LIST HEADER HEADER INFORMATION
PERFORM ZF_BUILD_LISTHEADER USING IT_LISTHEADER.
*ASSIGN FORM NAME TO EACH EVENT GOT THROUGH 'FM'.
PERFORM ZF_EVENTCAT USING IT_EVENTCAT.
*layout
PERFORM ZF_LAYOUT.
*PREPARE DISPLAY ALV GRID.
if p_down = 'X'.
perform ZF_download.
PERFORM ZF_DISPLAY_ALV_GRID.
else.
PERFORM ZF_DISPLAY_ALV_GRID.
endif.
ENDIF.
endform. " ZF_report
*&---------------------------------------------------------------------*
*& Form ZF_BUILD_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_FIELDCAT text
*----------------------------------------------------------------------*
form ZF_BUILD_FIELDCAT using p_it_fieldcat type slis_t_fieldcat_alv.
DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_1.
" position of the column
L_FIELDCAT-FIELDNAME = 'EBELN'. "EBELN
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'. "IT_HEAD_DETAIL
L_FIELDCAT-KEY = CC_X. " column with key-color
L_FIELDCAT-JUST = 'L'.
" (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = CC_x. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-020. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-021. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-022. " short key word
L_FIELDCAT-OUTPUTLEN = 10.
L_FIELDCAT-REF_FIELDNAME = 'EBELN'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-ROLLNAME = 'EBELN'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_2. " position of the column
L_FIELDCAT-FIELDNAME = 'EBELP'. "EBELP
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'. "IT_HEAD_DETAIL
L_FIELDCAT-KEY = CC_X. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = 'X'. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-023. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-024. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-025. " short key word
L_FIELDCAT-OUTPUTLEN = 5.
L_FIELDCAT-REF_FIELDNAME = 'EBELP'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-ROLLNAME = 'EBELP'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_3. " position of the column
L_FIELDCAT-FIELDNAME = 'BUKRS'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-026. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-027. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-028. " short key word
L_FIELDCAT-OUTPUTLEN = 4.
L_FIELDCAT-REF_FIELDNAME = 'BUKRS'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_4. " position of the column
L_FIELDCAT-FIELDNAME = 'BSART'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-029. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-030. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-031. " short key word
L_FIELDCAT-OUTPUTLEN = 4.
L_FIELDCAT-REF_FIELDNAME = 'BSART'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_5. " position of the column
L_FIELDCAT-FIELDNAME = 'STATU'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-032. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-033. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-034. " short key word
L_FIELDCAT-OUTPUTLEN = 1.
L_FIELDCAT-REF_FIELDNAME = 'STATU'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_6. " position of the column
L_FIELDCAT-FIELDNAME = 'AEDAT'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-035. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-036. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-037. " short key word
L_FIELDCAT-OUTPUTLEN = 10.
L_FIELDCAT-REF_FIELDNAME = 'AEDAT'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_7. " position of the column
L_FIELDCAT-FIELDNAME = 'ERNAM'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-038. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-039. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-040. " short key word
L_FIELDCAT-OUTPUTLEN = 12.
L_FIELDCAT-REF_FIELDNAME = 'ERNAM'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-ROLLNAME = 'ERNAM'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_8. " position of the column
L_FIELDCAT-FIELDNAME = 'ZTERM'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-041. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-042. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-043. " short key word
L_FIELDCAT-OUTPUTLEN = 4.
L_FIELDCAT-REF_FIELDNAME = 'ZTERM'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_9. " position of the column
L_FIELDCAT-FIELDNAME = 'EKORG'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-044. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-045. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-046. " short key word
L_FIELDCAT-OUTPUTLEN = 4.
L_FIELDCAT-REF_FIELDNAME = 'EKORG'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_10. " position of the column
L_FIELDCAT-FIELDNAME = 'WAERS'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'R'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-047. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-048. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-049. " short key word
L_FIELDCAT-OUTPUTLEN = 5.
L_FIELDCAT-REF_FIELDNAME = 'WAERS'.
L_FIELDCAT-REF_TABNAME = 'EKKO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-ROLLNAME = 'WAERS'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_11. " position of the column
L_FIELDCAT-FIELDNAME = 'MATNR'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-050. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-051. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-052. " short key word
L_FIELDCAT-OUTPUTLEN = 18.
L_FIELDCAT-REF_FIELDNAME = 'MATNR'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-EDIT = 'X'.
L_FIELDCAT-INPUT = 'X'.
L_FIELDCAT-ROLLNAME = 'MATNR'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_12. " position of the column
L_FIELDCAT-FIELDNAME = 'WERKS'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = 'X'. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-053. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-054. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-055. " short key word
L_FIELDCAT-OUTPUTLEN = 4.
L_FIELDCAT-REF_FIELDNAME = 'WERKS'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-HOTSPOT = ' ' . " hotspot
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_13. " position of the column
L_FIELDCAT-FIELDNAME = 'LGORT'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'L'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-056. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-057. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-058. " short key word
L_FIELDCAT-OUTPUTLEN = 4.
L_FIELDCAT-REF_FIELDNAME = 'LGORT'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_14. " position of the column
L_FIELDCAT-FIELDNAME = 'MENGE'. "
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'R'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-059. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-060. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-061. " short key word
L_FIELDCAT-OUTPUTLEN = 13.
L_FIELDCAT-REF_FIELDNAME = 'MENGE'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*
L_FIELDCAT-COL_POS = CI_15. " position of the column
L_FIELDCAT-FIELDNAME = 'MEINS'. "MEINS
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'R'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-062. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-063. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-064. " short key word
L_FIELDCAT-INTLEN = 3.
L_FIELDCAT-REF_FIELDNAME = 'MEINS'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-NO_SUM = 'X'. " do not sum up
L_FIELDCAT-OUTPUTLEN = 3.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
*NETPR NET VALUE
L_FIELDCAT-COL_POS = '16'. " position of the column
L_FIELDCAT-FIELDNAME = 'NETPR'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'R'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-065. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-066. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-067. " short key word
L_FIELDCAT-OUTPUTLEN = 11.
L_FIELDCAT-REF_FIELDNAME = 'NETPR'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-DO_SUM = 'X'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
L_FIELDCAT-COL_POS = '17'. " position of the column
L_FIELDCAT-FIELDNAME = 'NETWR'.
L_FIELDCAT-TABNAME = 'IT_HEAD_DETAIL'.
L_FIELDCAT-KEY = ' '. " column with key-color
L_FIELDCAT-JUST = 'R'. " (R)ight (L)eft (C)ent.
L_FIELDCAT-LZERO = ' '. " leading zero
L_FIELDCAT-SELTEXT_L = TEXT-068. " long key word
L_FIELDCAT-SELTEXT_M = TEXT-069. " middle key word
L_FIELDCAT-SELTEXT_S = TEXT-070. " short key word
L_FIELDCAT-OUTPUTLEN = 13.
L_FIELDCAT-REF_FIELDNAME = 'NETWR'.
L_FIELDCAT-REF_TABNAME = 'EKPO'.
L_FIELDCAT-DO_SUM = 'X'.
APPEND L_FIELDCAT TO P_IT_FIELDCAT.
CLEAR L_FIELDCAT.
endform. " ZF_BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*& Form ZF_BUILD_LISTHEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_LISTHEADER text
*----------------------------------------------------------------------*
form ZF_BUILD_LISTHEADER using p_it_listheader type
SLIS_T_LISTHEADER.
DATA: L_LISTHEADER TYPE SLIS_LISTHEADER.
CLEAR L_LISTHEADER.
L_LISTHEADER-TYP = 'H'. "Header
L_LISTHEADER-INFO = TEXT-071.
APPEND L_LISTHEADER TO P_IT_LISTHEADER.
CLEAR L_LISTHEADER.
L_LISTHEADER-TYP = 'H'. "Header<BOLD HEADING>
L_LISTHEADER-INFO = TEXT-072.
APPEND L_LISTHEADER TO P_IT_LISTHEADER.
CLEAR L_LISTHEADER.
L_LISTHEADER-TYP = 'S'. "selection
L_LISTHEADER-KEY = TEXT-073.
L_LISTHEADER-INFO = SY-DATUM.
APPEND L_LISTHEADER TO P_IT_LISTHEADER.
CLEAR L_LISTHEADER.
L_LISTHEADER-TYP = 'A'. " Action<italics>
L_LISTHEADER-INFO = TEXT-074.
APPEND L_LISTHEADER TO P_IT_LISTHEADER.
endform. " ZF_BUILD_LISTHEADER
*&---------------------------------------------------------------------*
*& Form ZF_EVENTCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_EVENTCAT text
*----------------------------------------------------------------------*
form ZF_EVENTCAT using p_it_eventcat TYPE SLIS_T_EVENT.
DATA: L_EVENTCAT TYPE SLIS_ALV_EVENT.
CLEAR L_EVENTCAT.
*Get all the events using function module <reuse_alv_events_get>.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_IT_EVENTCAT
EXCEPTIONS
LIST_TYPE_WRONG = 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.
* TOP-OF-PAGE FORM NAME
CLEAR L_EVENTCAT.
READ TABLE P_IT_EVENTCAT INTO L_EVENTCAT WITH KEY
NAME = SLIS_EV_TOP_OF_PAGE.
IF SY-SUBRC = 0.
MOVE 'ZF_TOP_OF_PAGE' TO L_EVENTCAT-FORM.
MODIFY P_IT_EVENTCAT FROM L_EVENTCAT INDEX SY-TABIX
TRANSPORTING FORM.
ENDIF.
* PF_STATUS_SET FORM NAME
CLEAR L_EVENTCAT.
READ TABLE P_IT_EVENTCAT INTO L_EVENTCAT WITH KEY
NAME = SLIS_EV_PF_STATUS_SET.
IF SY-SUBRC = 0.
MOVE 'ZF_PF_STATUS_SET' TO L_EVENTCAT-FORM.
MODIFY P_IT_EVENTCAT FROM L_EVENTCAT INDEX SY-TABIX
TRANSPORTING FORM.
ENDIF.
* USER_COMMAND FORM NAME
CLEAR L_EVENTCAT.
READ TABLE P_IT_EVENTCAT INTO L_EVENTCAT WITH KEY
NAME = SLIS_EV_USER_COMMAND. "
IF SY-SUBRC = 0.
MOVE 'ZF_USER_COMMAND' TO L_EVENTCAT-FORM.
MODIFY P_IT_EVENTCAT FROM L_EVENTCAT INDEX SY-TABIX
TRANSPORTING FORM.
ENDIF.
ENDFORM. " zf_eventcat
*top of page event form
FORM ZF_TOP_OF_PAGE.
*This FM is responsible for formatting the header information
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
I_LOGO = 'ENJOYSAP_LOGO'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM. "TOP-OF-PAGE
*set pf status form
FORM ZF_PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV_MENU_GAURAV3'.
ENDFORM. "SET_PF_STATUS
*set user command form
FORM ZF_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE
SLIS_SELFIELD.
CASE R_UCOMM.
when '&IC1'.
if rs_selfield-fieldname = 'MATNR'.
set parameter id 'MAT' field rs_selfield-value.
call transaction 'MM03' and skip first screen.
endif.
WHEN '&F03'.
LEAVE PROGRAM.
WHEN '&F15'.
LEAVE PROGRAM.
WHEN '&F12'.
LEAVE PROGRAM.
ENDCASE.
endform. " ZF_EVENTCAT
*&---------------------------------------------------------------------*
*& Form ZF_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form ZF_LAYOUT .
CLEAR WA_LAYOUT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-BOX_FIELDNAME = 'V_BOX'.
WA_LAYOUT-BOX_TABNAME = 'IT_HEAD_DETAIL'.
endform. " ZF_LAYOUT
*&---------------------------------------------------------------------*
*& Form ZF_DISPLAY_ALV_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form ZF_DISPLAY_ALV_GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_PROGNAME
I_CALLBACK_PF_STATUS_SET = 'ZF_PF_STATUS_SET'
I_CALLBACK_USER_COMMAND = 'ZF_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'ZF_TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = IT_EVENTCAT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_HEAD_DETAIL
EXCEPTIONS
PROGRAM_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.
endform. " ZF_DISPLAY_ALV_GRID
*&---------------------------------------------------------------------*
*& Form ZF_download
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form ZF_download .
*data: v_file_name TYPE string VALUE '\Dir_temp\test.txt'.
V_Path = P_path.
OPEN DATASET v_path FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
if sy-subrc = 0.
LOOP AT it_head_detail INTO wa_head_detail.
wa_text-ebeln = wa_head_detail-ebeln.
wa_text-Bukrs = wa_head_detail-bukrs.
wa_text-Bsart = wa_head_detail-Bsart.
wa_text-Statu = wa_head_detail-Statu.
wa_text-AEDAT = wa_head_detail-AEDAT.
wa_text-Ernam = wa_head_detail-Ernam.
wa_text-Zterm = wa_head_detail-Zterm.
wa_text-Ekorg = wa_head_detail-Ekorg.
wa_text-Waers = wa_head_detail-Waers.
wa_text-Ebelp = wa_head_detail-Ebelp.
wa_text-Matnr = wa_head_detail-Matnr.
wa_text-Werks = wa_head_detail-Werks.
wa_text-Lgort = wa_head_detail-Lgort.
wa_text-menge = wa_head_detail-menge.
wa_text-meins = wa_head_detail-meins.
wa_text-netpr = wa_head_detail-netpr.
wa_text-netwr = wa_head_detail-netwr.
wa_text-V_box = wa_head_detail-V_box.
TRANSFER wa_text TO v_path.
ENDLOOP.
endif.
CLOSE DATASET v_path.
endform. " ZF_download
<REMOVED BY MODERATOR>
Gaurav J.
Edited by: Alvaro Tejada Galindo on Feb 4, 2008 4:39 PM
‎2008 Feb 04 3:11 PM
Hi,
THIS ONE EXACTLY MATCHES YOUR REQUIREMENT
REPORT Z11GAURAV_ASSIGN_4 NO STANDARD PAGE HEADING Message-id
Z11GAURAV5.
*Constants
Constants: CC_X value 'X'.
*DATA DECLARATION
types: field(128) type c.
*internal tables
data: it_tab1 type standard table of field.
*Work areas
data: wa_itab1 type field.
*VARIABLES
data: V_unix_PATH type string.
data: v_file_path type string.
*selection screen
"FILE PATHS
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_SAP_PC RADIOBUTTON GROUP RAD1
DEFAULT 'X' ,
P_PC_SAP RADIOBUTTON GROUP RAD1 .
PARAMETERS: P_FILE(10) type C default 'ASC'.
PARAMETERS: P_LOCAL(128) type C.
parameters: P_UNIX1(20) type C default '.\' Modif id PTH.
parameters: P_UNIX2(100) type c .
SELECTION-SCREEN END OF BLOCK B1 .
SELECTION-SCREEN BEGIN OF BLOCK B2 with frame.
PARAMETERS: P_full(128) type C.
SELECTION-SCREEN END OF BLOCK B2 .
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
loop at screen.
if screen-group1 = 'PTH'.
screen-active = 1.
screen-input = 0.
modify screen.
endif.
endloop.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LOCAL.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_LOCAL.
AT SELECTION-SCREEN.
*VAL....1 for File type
if P_file is initial.
message E001 with TEXT-002.
endif.
*VAL....2 FOR FILE path of local file
if P_LOCAL is initial .
message E002 with TEXT-003.
endif.
*VAL....03 FOR UNIX DIRECTORY LEVEL 2
if P_UNIX2 is INITIAl and P_full is initial.
MEssage E003 with TEXT-004.
endif.
*VAL....04
if not P_UNIX2 is initial and P_full is not initial.
Message E008 with TEXT-009.
endif.
START-OF-SELECTION.
if P_Unix2 is not initial.
Concatenate P_Unix1 P_Unix2 into v_unix_path.
else.
v_UNIX_PATH = P_full.
endif.
V_FILE_PATH = P_LOCAL.
if P_SAP_PC = CC_X.
Clear IT_TAB1.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE_PATH
FILETYPE = P_FILE
* HAS_FIELD_SEPARATOR = ' '
* HEADER_LENGTH = 0
READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = IT_TAB1
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
if not it_tab1 is initial.
OPEN DATASET v_unix_path FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
if sy-subrc = 0.
loop at it_tab1 into wa_itab1.
TRANSFER wa_itab1 TO v_unix_path.
endloop.
message I005 with TEXT-006.
else.
message E004 with TEXT-005.
endif.
CLOSE DATASET v_unix_path.
endif.
ELSE.
Clear IT_TAB1.
OPEN DATASET V_UNIX_PATH FOR INPUT IN TEXT MODE ENCODING DEFAULT.
if sy-subrc = 0.
do.
READ DATASET v_unix_path INTO wa_itab1.
if sy-subrc = 0.
append wa_itab1 to it_tab1.
else.
EXIT.
endif.
enddo.
endif.
CLOSE DATASET v_unix_path.
if not it_tab1 is initial.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
filename = v_file_path
FILETYPE = P_FILE
* APPEND = ' '
* WRITE_FIELD_SEPARATOR = ' '
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* IMPORTING
* FILELENGTH =
tables
data_tab = IT_TAB1
* FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
IF sy-subrc <> 0.
Message E006 with TEXT-007.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
Message I007 with TEXT-008.
ENDIF.
endif.
endif.
<REMOVED BY MODERATOR>
GAURAV J.
Edited by: Alvaro Tejada Galindo on Feb 4, 2008 4:41 PM
‎2008 Feb 04 3:14 PM
Hi...
Above code is to upload file to application server..
N to download a file to local machine...
Once you r done
close this thread and do reward....
thx.
‎2008 Feb 04 3:18 PM
For uploading excel from presentation server use FM
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file(path of the file)
i_begin_col = 1
i_begin_row = 1
i_end_col = 43
i_end_row = 10000
TABLES
intern = it_l_data
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
And for application server use the open and close data sets option.
gv_dataset1 = p_file.
OPEN DATASET gv_dataset1 FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
* MESSAGE
ELSE.
WHILE ( sy-subrc EQ 0 ).
READ DATASET gv_dataset1 INTO wa_itab.
IF NOT wa_itab IS INITIAL.
APPEND wa_itab TO itab.
ENDIF.
CLEAR wa_itab.
ENDWHILE.
ENDIF.
CLOSE DATASET gv_dataset1.
<REMOVED BY MODERATOR>
Edited by: Alvaro Tejada Galindo on Feb 4, 2008 4:42 PM