Application Development 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: 

How to download only some fields(dynamically) from alv grid layouts

Former Member
0 Kudos

I have ALV grid list.

I have layouts for selecting sets of fields dynamically.

If I select a particular layout, I want to download only those fields into an Excel sheet.

If I select another layout, I want to download only fields of that layout , into an Excel sheet.

Can u plz write examples.

Narendra

1 REPLY 1

Former Member
0 Kudos

Hello ,

Here it is.


  FIELD-SYMBOLS <FS> TYPE ANY.

  DATA: GR_ATTACHMENT TYPE Z48S3_ATTACHMENT,
        GT_ATTACHMENT TYPE Z48S3_ATTACHMENT_TAB,
        L_F_TITLE     TYPE SO_OBJ_DES,
        L_R_FIELDCAT  LIKE LINE OF GT_FIELDCAT,
        L_F_FIELD     LIKE L_R_FIELDCAT-FIELDNAME,
        L_F_EMAILID   TYPE Z48S3_RECEIVER,
        L_F_FIRST     TYPE C.

  IF SY-SYSID EQ G_C_DEV_SYSTEM OR
     SY-SYSID EQ G_C_QUA_SYSTEM.
    CONCATENATE SY-SYSID '/' SY-MANDT ':' INTO L_F_TITLE.
    CONDENSE L_F_TITLE.
    CONCATENATE L_F_TITLE SY-TITLE INTO L_F_TITLE SEPARATED BY SPACE.
  ELSE.
    L_F_TITLE = SY-TITLE.
  ENDIF.


  G_R_VARIANT-REPORT = SY-REPID.
  G_R_VARIANT-VARIANT = P_VARIAN.

  CALL FUNCTION 'REUSE_ALV_VARIANT_SELECT'
       EXPORTING
            I_DIALOG            = 'N'
            I_USER_SPECIFIC     = 'A'
            I_DEFAULT           = 'X'
            IT_DEFAULT_FIELDCAT = G_T_FIELDCAT
            I_LAYOUT            = GR_LAYOUT
       IMPORTING
            ET_FIELDCAT         = G_T_FIELDCAT
            ES_LAYOUT           = GR_LAYOUT
       CHANGING
            CS_VARIANT          = G_R_VARIANT
       EXCEPTIONS
            ERROR_MESSAGE       = 4
            OTHERS              = 4.
  SORT G_T_FIELDCAT BY COL_POS.
  PERFORM CREATE_EXCEL_ATTM_HEADING_ROW TABLES GT_ATTACHMENT
                                               G_T_FIELDCAT.

  LOOP AT G_T_ALVLIST.

    L_F_FIRST = 'X'.

    LOOP AT G_T_FIELDCAT INTO L_R_FIELDCAT WHERE NO_OUT IS INITIAL.

      CLEAR GR_ATTACHMENT-XNEWLINE.

      IF NOT L_F_FIRST IS INITIAL.
        GR_ATTACHMENT-XNEWLINE = 'X'.
        CLEAR L_F_FIRST.
      ENDIF.


      CLEAR L_F_FIELD.
      CONCATENATE 'G_T_ALVLIST-' L_R_FIELDCAT-FIELDNAME
             INTO L_F_FIELD.
      CONDENSE L_F_FIELD.


      ASSIGN (L_F_FIELD) TO <FS>.

      WRITE <FS> TO GR_ATTACHMENT-FIELDVALUE.

      UNASSIGN <FS>.

      APPEND GR_ATTACHMENT TO GT_ATTACHMENT.

    ENDLOOP.

  ENDLOOP.

Regards,

Vasanth