12-14-2007 1:08 PM
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
12-14-2007 1:22 PM
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