2006 Sep 25 11:00 AM
Dear SDN Members,
I need to pass my final internal table to this method
' CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD '
please tell me the basic steps to use this method.
Thanx in Advance.
Regards,
Johnn.
2006 Sep 25 12:11 PM
hi John,
to call the method.
CONTROL+ f6->ABAP object patterns-> fill the class name CL_GUI_FRONTEND_SERVICES and method name GUI_DOWNLOAD and press enter.
You will get the pattern as
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
* BIN_FILESIZE =
FILENAME = 'C:abc.txt'
* FILETYPE = 'ASC'
* APPEND = SPACE
* WRITE_FIELD_SEPARATOR = SPACE
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = SPACE
* WRITE_LF = 'X'
* COL_SELECT = SPACE
* COL_SELECT_MASK = SPACE
* DAT_MODE = SPACE
* CONFIRM_OVERWRITE = SPACE
* NO_AUTH_CHECK = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = SPACE
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = SPACE
* WK1_N_SIZE = SPACE
* WK1_T_FORMAT = SPACE
* WK1_T_SIZE = SPACE
* IMPORTING
* FILELENGTH =
CHANGING
DATA_TAB = it_table
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
NOT_SUPPORTED_BY_GUI = 22
ERROR_NO_GUI = 23
others = 24 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Fill in your table name and fiel name to download.
Also, Check out the sample program BCALV_EDIT_01.
The main steps are.
Step 1. Create a custom container that holds the grid.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
Step 2. Create teh grid object.
CREATE OBJECT G_GRID
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
Step 3. Select your data.
SELECT * FROM SFLIGHT INTO TABLE GT_OUTTAB UP TO G_MAX ROWS.
Step 4. Pass the internal table to the method set_tble_for_first_display.
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = GS_LAYOUT
CHANGING IT_OUTTAB = GT_OUTTAB.
Regards,
Richa
Message was edited by: Richa Singh
2006 Sep 25 11:03 AM
2006 Sep 25 11:09 AM
2006 Sep 25 12:11 PM
hi John,
to call the method.
CONTROL+ f6->ABAP object patterns-> fill the class name CL_GUI_FRONTEND_SERVICES and method name GUI_DOWNLOAD and press enter.
You will get the pattern as
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
* BIN_FILESIZE =
FILENAME = 'C:abc.txt'
* FILETYPE = 'ASC'
* APPEND = SPACE
* WRITE_FIELD_SEPARATOR = SPACE
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = SPACE
* WRITE_LF = 'X'
* COL_SELECT = SPACE
* COL_SELECT_MASK = SPACE
* DAT_MODE = SPACE
* CONFIRM_OVERWRITE = SPACE
* NO_AUTH_CHECK = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = SPACE
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = SPACE
* WK1_N_SIZE = SPACE
* WK1_T_FORMAT = SPACE
* WK1_T_SIZE = SPACE
* IMPORTING
* FILELENGTH =
CHANGING
DATA_TAB = it_table
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
NOT_SUPPORTED_BY_GUI = 22
ERROR_NO_GUI = 23
others = 24 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Fill in your table name and fiel name to download.
Also, Check out the sample program BCALV_EDIT_01.
The main steps are.
Step 1. Create a custom container that holds the grid.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
Step 2. Create teh grid object.
CREATE OBJECT G_GRID
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
Step 3. Select your data.
SELECT * FROM SFLIGHT INTO TABLE GT_OUTTAB UP TO G_MAX ROWS.
Step 4. Pass the internal table to the method set_tble_for_first_display.
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = GS_LAYOUT
CHANGING IT_OUTTAB = GT_OUTTAB.
Regards,
Richa
Message was edited by: Richa Singh
2006 Sep 25 12:15 PM
Hi Johnn,
DATA: L_PAGES TYPE T_PAGE_LIST,
L_REF_PAGE TYPE REF TO CL_O2_API_PAGES,
L_TABLE TYPE O2PAGELINE_TABLE,
L_FOLDER TYPE STRING,
L_LOWER TYPE STRING,
L_FILENAME TYPE STRING.
FIELD-SYMBOLS: <F_PAGE> TYPE O2PAGKEY.
get local directory path
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
EXPORTING
WINDOW_TITLE =
INITIAL_FOLDER =
CHANGING
SELECTED_FOLDER = L_FOLDER
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY
NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
RETURN.
ENDIF.
IF L_FOLDER IS INITIAL.
RETURN.
ENDIF.
get all pages of the application
SELECT APPLNAME
PAGEKEY
FROM O2PAGDIR
INTO TABLE P_PAGES
WHERE APPLNAME = G_APPL AND
PAGETYPE <> SO2_CONTROLLER.
LOOP AT L_PAGES ASSIGNING <F_PAGE>.
load the data of one page
CLEAR P_DATA.
CALL METHOD CL_O2_API_PAGES=>LOAD_WITH_ACCESS_PERMISSION
EXPORTING
P_MODE = 'SHOW'
P_PAGEKEY = P_KEY
P_VERSION = 'A' "'I' for inactive version
IMPORTING
P_PAGE = P_DATA
EXCEPTIONS
OTHERS = 1.
IF L_REF_PAGE IS BOUND.
collect the content of a page into an internal table
DATA: L_ATTRS TYPE O2PAGATTR,
L_PARAMS TYPE O2PAGPAR_TABLETYPE,
L_SOURCE TYPE RSWSOURCET,
L_LAYOUT TYPE O2PAGELINE_TABLE,
L_EV_HANDLERS TYPE SO2_EV_HANDLER_LIST,
L_TYPTYP(11) TYPE C,
L_LINE TYPE STRING.
FIELD-SYMBOLS: <F_PARAM> TYPE O2PAGPARS,
<F_EVH_NAME> TYPE SO2_EV_HANDLER_NAME.
REFRESH P_TABLE.
get page properties
CALL METHOD P_DATA->GET_ATTRS
IMPORTING
P_ATTRS = L_ATTRS
EXCEPTIONS OTHERS = 1.
CHECK L_ATTRS-PAGETYPE <> SO2_CONTROLLER.
APPEND C_SEPARATOR_LINE TO P_TABLE.
CONCATENATE '*' L_ATTRS-APPLNAME '/' L_ATTRS-PAGEKEY INTO L_LINE.
APPEND L_LINE TO P_TABLE.
APPEND C_SEPARATOR_LINE TO P_TABLE.
APPEND SPACE TO P_TABLE.
local types
IF L_ATTRS-PAGETYPE = SO2_FULL_PAGE.
CALL METHOD P_DATA->GET_TYPE_SOURCE
IMPORTING
P_SOURCE = L_SOURCE
EXCEPTIONS
OTHERS = 1.
IF NOT L_SOURCE IS INITIAL.
APPEND C_SEPARATOR_LINE TO P_TABLE.
APPEND '* local types' TO P_TABLE.
APPEND C_SEPARATOR_LINE TO P_TABLE.
APPEND LINES OF L_SOURCE TO P_TABLE.
DO 3 TIMES.
APPEND SPACE TO P_TABLE.
ENDDO.
ENDIF.
ENDIF.
page attributes
IF L_ATTRS-PAGETYPE = SO2_FULL_PAGE OR L_ATTRS-PAGETYPE = SO2_VIEW_PAGE.
CALL METHOD P_DATA->GET_PARAMETERS
IMPORTING
P_PARAMETERS = L_PARAMS
EXCEPTIONS
OTHERS = 1.
IF NOT L_PARAMS IS INITIAL.
APPEND C_SEPARATOR_LINE TO P_TABLE.
APPEND '* page attributes' TO P_TABLE.
APPEND C_SEPARATOR_LINE TO P_TABLE.
LOOP AT L_PARAMS ASSIGNING <F_PARAM>.
IF <F_PARAM>-TYPTYPE = SO2_PARAMTYP_TYPE.
L_TYPTYP = 'TYPE'.
ELSE.
L_TYPTYP = 'TYPE REF TO'.
ENDIF.
CONCATENATE <F_PARAM>-ALIASNAME L_TYPTYP <F_PARAM>-TYPE INTO L_LINE
SEPARATED BY SPACE.
APPEND L_LINE TO P_TABLE.
ENDLOOP.
DO 3 TIMES.
APPEND SPACE TO P_TABLE.
ENDDO.
ENDIF.
ENDIF.
layout append c_separator_line to p_table.
APPEND '* layout' TO P_TABLE.
APPEND C_SEPARATOR_LINE TO P_TABLE.
CALL METHOD P_DATA->GET_PAGE
IMPORTING
P_CONTENT = L_LAYOUT
EXCEPTIONS
OTHERS = 1.
APPEND LINES OF L_LAYOUT TO P_TABLE.
DO 3 TIMES.
APPEND SPACE TO P_TABLE.
ENDDO.
event handler
IF L_ATTRS-PAGETYPE = SO2_FULL_PAGE.
CALL METHOD P_DATA->GET_EVENT_HANDLER_LIST
EXPORTING
P_WITH_ALL_PREDEFINED = ' '
IMPORTING
P_EV_HANDLER_L = L_EV_HANDLERS
EXCEPTIONS
OTHERS = 1.
LOOP AT L_EV_HANDLERS ASSIGNING <F_EVH_NAME>.
APPEND C_SEPARATOR_LINE TO P_TABLE.
CONCATENATE '* eventhandler' <F_EVH_NAME>-NAME INTO L_LINE SEPARATED
BY SPACE.
APPEND L_LINE TO P_TABLE.
APPEND C_SEPARATOR_LINE TO P_TABLE.
CLEAR L_SOURCE.
CALL METHOD P_DATA->GET_EVENT_HANDLER
EXPORTING
P_NAME = <F_EVH_NAME>-KEY
IMPORTING
P_SOURCE = L_SOURCE
P_ATTRS =
EXCEPTIONS
OTHERS = 1.
APPEND LINES OF L_SOURCE TO P_TABLE.
DO 3 TIMES.
APPEND SPACE TO P_TABLE.
ENDDO.
ENDLOOP.
ENDIF.
IF NOT L_TABLE IS INITIAL.
L_LOWER = <F_PAGE>-PAGEKEY.
TRANSLATE L_LOWER TO LOWER CASE.
determine file path for the page
CONCATENATE L_FOLDER '\' L_LOWER INTO L_FILENAME.
call the method passing your internal table..
download the content of an internal table to a local file
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
FILENAME = P_FILENAME
CHANGING
DATA_TAB = P_TABLE
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
NOT_SUPPORTED_BY_GUI = 22
ERROR_NO_GUI = 23
OTHERS = 24.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY
NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
Regards,
Vidya.
Message was edited by: Vidya Chowdhary
2006 Sep 25 12:20 PM
hi John,
here is the sample code of that ...
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_xml_size
filename = 'c:tempflights.xml'
filetype = 'BIN'
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Regards,
Santosh