Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Methods.

Former Member
0 Kudos
209

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.

1 ACCEPTED SOLUTION

Former Member
0 Kudos
160

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

5 REPLIES 5

Former Member
0 Kudos
160

hi,

Check this out

Regards,

Santosh

Former Member
0 Kudos
160

How to call the methods.

Former Member
0 Kudos
161

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

Former Member
0 Kudos
160

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

0 Kudos
160

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