YABAP_TOOLS_READ_TABLE_01

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > ABAP Source Code >

YABAP_TOOLS_READ_TABLE_01

*&---------------------------------------------------------------------*

*& Report  YABAP_TOOLS_READ_TABLE_01                                   *

*&                                                                     *

*&---------------------------------------------------------------------*

*& Created By : Mawan Sugiyanto                                        *

*& Date       : 01.07.2008                                             *

*&                                                                     *

*& Edited By  : Albertus Reinandang                                    *

*& Date       : 17.07.2008                                             *

*&---------------------------------------------------------------------*

 

REPORT  yabap_tools_read_table_01 .

 

TABLES : dd02l, dd03l,soid.

DATA :  gv_tablename TYPE c LENGTH 100,

        gv_tablelist TYPE STANDARD TABLE OF dd02l WITH HEADER LINE,

        gv_tabfield TYPE STANDARD TABLE OF dd03l WITH HEADER LINE.

 

DATA : BEGIN OF i_temp OCCURS 0,

         linedata TYPE c LENGTH 4096,

       END OF i_temp.

 

SELECTION-SCREEN BEGIN OF BLOCK zblk01 WITH FRAME TITLE text_101.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(19) text_102 FOR FIELD pa_tabnm.

PARAMETERS pa_tabnm TYPE dd02l-tabname DEFAULT 'YOUR TABLE NAME' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(19) text_103 FOR FIELD pa_spara.

PARAMETERS pa_spara TYPE c LENGTH 3 DEFAULT ',' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN END OF BLOCK zblk01.

 

SELECTION-SCREEN BEGIN OF BLOCK zblk02 WITH FRAME TITLE text_201.

 

SELECTION-SCREEN BEGIN OF LINE.

SELECT-OPTIONS so_row FOR soid-accnt NO-EXTENSION

                                     DEFAULT 1 TO 1000.

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN END OF BLOCK zblk02.

 

INITIALIZATION.

  text_101 = 'Transport to txt File'.

  text_102 = 'Table Name '.

  text_103 = 'Sparator'.

  text_201 = 'Row Selection'.

 

START-OF-SELECTION.

 

  PERFORM get_tableinformation.

  PERFORM get_and_download.

 

END-OF-SELECTION.

*&---------------------------------------------------------------------*

*&      Form  GET_TABLEINFORMATION

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM get_tableinformation .

  SELECT * INTO CORRESPONDING FIELDS OF TABLE gv_tablelist

    FROM dd02l

    WHERE tabname = pa_tabnm.

  IF sy-subrc = 0 AND LINES( gv_tablelist ) = 1.

    SELECT * INTO CORRESPONDING FIELDS OF TABLE gv_tabfield FROM dd03l

      WHERE tabname = pa_tabnm ORDER BY position ASCENDING.

    IF sy-subrc = 0.

    ELSE.

      MESSAGE 'No field(s) name found.' TYPE 'I'.

    ENDIF.

  ELSE.

    MESSAGE 'Table does not exist, please enter right table name' TYPE 'I'.

  ENDIF.

ENDFORM.                    " GET_TABLEINFORMATION

 

*&---------------------------------------------------------------------*

*&      Form  get_and_download

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM get_and_download .

  FIELD-SYMBOLS : <table> TYPE table,

                  <wa> TYPE data,

                  <comp> TYPE ANY.

 

  DATA : fieldcat TYPE lvc_t_fcat , wadata TYPE lvc_s_fcat.

  DATA : dyn_itab TYPE REF TO data,wa TYPE REF TO data, gv_tampung TYPE c LENGTH 100.

  DATA : i_text(4096) TYPE c OCCURS 0,

         lv_row_count TYPE i,

         lv_row_max TYPE i,

         lv_filename        LIKE        rlgrap-filename.

 

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

    EXPORTING

      i_structure_name = pa_tabnm

    CHANGING

      ct_fieldcat      = fieldcat[].

 

  CALL METHOD cl_alv_table_create=>create_dynamic_table

    EXPORTING

      it_fieldcatalog = fieldcat[]

    IMPORTING

      ep_table        = dyn_itab.

 

  ASSIGN dyn_itab->* TO <table>.

  CREATE DATA wa LIKE LINE OF <table>.

  ASSIGN wa->* TO <wa> .

 

  IF so_row-high > 0.

    lv_row_max = so_row-low + so_row-high - 1.

  ENDIF.

 

  SELECT * FROM (pa_tabnm) INTO <wa>.

    lv_row_count = lv_row_count + 1.

    IF lv_row_count GE so_row-low.

      WRITE :/.

      LOOP AT gv_tabfield.

        ASSIGN COMPONENT gv_tabfield-fieldname  OF STRUCTURE <wa> TO <comp>.

        WRITE <comp> TO gv_tampung NO-GROUPING.

        CONDENSE gv_tampung.

        IF gv_tampung IS INITIAL.

          gv_tampung = space.

        ENDIF.

        CONCATENATE i_temp-linedata gv_tampung INTO i_temp-linedata SEPARATED BY pa_spara.

      ENDLOOP.

      WRITE :/ i_temp-linedata.

      APPEND i_temp.

 

      IF lv_row_max > 0 AND lv_row_count GE lv_row_max.

        EXIT.

      ENDIF.

 

      CLEAR i_temp.

    ENDIF.

  ENDSELECT.

 

  CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'

    EXPORTING

      i_field_seperator    = ''

    TABLES

      i_tab_sap_data       = i_temp

    CHANGING

      i_tab_converted_data = i_text

    EXCEPTIONS

      conversion_failed    = 1

      OTHERS               = 2.

 

  concatenate 'C:\' pa_tabnm '.txt' into lv_filename.

 

  CALL FUNCTION 'DOWNLOAD'

  EXPORTING

*  BIN_FILESIZE                  = ' '

*  CODEPAGE                      = ' '

    filename                      = lv_filename

*  FILETYPE                      = ' '

*  ITEM                          = ' '

*  MODE                          = ' '

*  WK1_N_FORMAT                  = ' '

*  WK1_N_SIZE                    = ' '

*  WK1_T_FORMAT                  = ' '

*  WK1_T_SIZE                    = ' '

*  FILEMASK_MASK                = ' '

*  FILEMASK_TEXT                = ' '

*  FILETYPE_NO_CHANGE            = ' '

*  FILEMASK_ALL                  = ' '

*  FILETYPE_NO_SHOW              = ' '

*  SILENT                        = 'S'

*  COL_SELECT                    = ' '

*  COL_SELECTMASK                = ' '

*  NO_AUTH_CHECK                = ' '

* IMPORTING

*  ACT_FILENAME                  =

*  ACT_FILETYPE                  =

*  FILESIZE                      =

*  CANCEL                        =

    TABLES

      data_tab                      = i_text

*  FIELDNAMES                    =

* EXCEPTIONS

*  INVALID_FILESIZE              = 1

*  INVALID_TABLE_WIDTH          = 2

*  INVALID_TYPE                  = 3

*  NO_BATCH                      = 4

*  UNKNOWN_ERROR                = 5

*  GUI_REFUSE_FILETRANSFER      = 6

*  OTHERS                        = 7

            .

  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.                    "get_and_download