<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ALV in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546462#M579327</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this may helps u&lt;/P&gt;&lt;P&gt;u need to copy stadard screen elemetn to MARATAB1(at PF -STATUS)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should copy the 'STANDARD' GUI status from program SAPLSLVC_FULLSCREEN&lt;/P&gt;&lt;P&gt;type this one in SE41 program name is:SAPLSLVC_FULLSCREEN&lt;/P&gt;&lt;P&gt;status : STANDARD_FULLSCREEN&lt;/P&gt;&lt;P&gt;and copy it ...&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type-pool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools slis.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: mara,sscrfields.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select-options: s_matnr for mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_email TYPE somlreci1-receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_charmara,&lt;/P&gt;&lt;P&gt;matnr(18) TYPE c, " Material Number&lt;/P&gt;&lt;P&gt;ernam(12) TYPE c, " Person Credited&lt;/P&gt;&lt;P&gt;aenam(12) TYPE c, " Person Changed Object&lt;/P&gt;&lt;P&gt;pstat(15) TYPE c, " Maintenance Status&lt;/P&gt;&lt;P&gt;END OF t_charmara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: rt_extab type slis_t_extab, " Table of inactive function&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;wa_charmara TYPE t_charmara, " work area of mara Table&lt;/P&gt;&lt;P&gt;fs_fieldcat type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;" Field catalog with field&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;descriptions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;t_fieldcat like line of fs_fieldcat,&lt;/P&gt;&lt;P&gt;" Table of Field catalog&lt;/P&gt;&lt;P&gt;r_ucomm like sy-ucomm, " User Command&lt;/P&gt;&lt;P&gt;rs_selfield TYPE slis_selfield. " cursor position ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: filedlayout type slis_layout_alv,&lt;/P&gt;&lt;P&gt;heading type slis_t_listheader with header line,&lt;/P&gt;&lt;P&gt;t_event type slis_t_event.&lt;/P&gt;&lt;P&gt;data: fs_event like line of t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: fs_sort type slis_sortinfo_alv,&lt;/P&gt;&lt;P&gt;t_sort type slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;data: w_char(200) type c,&lt;/P&gt;&lt;P&gt;w_matnr type mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fs_sort-fieldname = 'MATNR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fs_sort-up = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fs_sort-group = '*'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append fs_sort to t_sort.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;clear fS_sort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;w_sent_all(1) TYPE c,&lt;/P&gt;&lt;P&gt;w_doc_data LIKE sodocchgi1,&lt;/P&gt;&lt;P&gt;gd_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;gd_reciever TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_mara occurs 0,&lt;/P&gt;&lt;P&gt;matnr like mara-matnr, " Material Number&lt;/P&gt;&lt;P&gt;ernam like mara-ernam, " Person Credited&lt;/P&gt;&lt;P&gt;aenam like mara-aenam, " Person Changed Object&lt;/P&gt;&lt;P&gt;pstat like mara-pstat, " Maintenance Status&lt;/P&gt;&lt;P&gt;end of it_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*at selection-screen on field event&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN on s_matnr.&lt;/P&gt;&lt;P&gt;PERFORM f0100_VALIDATE_MATERIAL_NUMBER.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;retrive Data from the data base table Mara&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform retrive_data_from_mara.&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;*Field catalog with field descriptions&lt;/P&gt;&lt;P&gt;perform fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*perform top_of_page.&lt;/P&gt;&lt;P&gt;PERFORM EVENT_LIST.&lt;/P&gt;&lt;P&gt;*ALV Grid Display&lt;/P&gt;&lt;P&gt;perform alv_display.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Creating one Push button ENTER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform maratab1 USING RT_EXTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form f0100_VALIDATE_MATERIAL_NUMBER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F0100_VALIDATE_MATERIAL_NUMBER .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select matnr " Material Number&lt;/P&gt;&lt;P&gt;from mara&lt;/P&gt;&lt;P&gt;up to 1 rows&lt;/P&gt;&lt;P&gt;into mara-matnr&lt;/P&gt;&lt;P&gt;where matnr in s_matnr.&lt;/P&gt;&lt;P&gt;endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;clear sscrfields-ucomm.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Enter valid Material number'(003).&lt;/P&gt;&lt;P&gt;ENDIF. " IF sy-subrc NE 0&lt;/P&gt;&lt;P&gt;ENDFORM. " f0100_VALIDATE_MATERIAL_NUMBER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form retrive_data_from_mara&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM retrive_data_from_mara .&lt;/P&gt;&lt;P&gt;select matnr " Material Number&lt;/P&gt;&lt;P&gt;ernam " Person Credited&lt;/P&gt;&lt;P&gt;aenam " Person Changed Object&lt;/P&gt;&lt;P&gt;pstat " Maintenance Status&lt;/P&gt;&lt;P&gt;from mara&lt;/P&gt;&lt;P&gt;into table It_mara&lt;/P&gt;&lt;P&gt;where matnr in s_matnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE i001 WITH 'Records are not found'.&lt;/P&gt;&lt;P&gt;exit.&lt;/P&gt;&lt;P&gt;stop.&lt;/P&gt;&lt;P&gt;ENDIF. " IF sy-subrc NE 0&lt;/P&gt;&lt;P&gt;ENDFORM. " retrive_data_from_mara&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*field catalog for MATNR&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 1.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;*field catalog for ERNAM&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'ERNAM'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 2.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;*field catalog for AENAM&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'AENAM'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 3.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;*field catalog for PSTAT&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'PSTAT'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 4.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " fieldcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form EVENT_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EVENT_LIST .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fs_event-name ='TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;fs_event-form = 'TOP_PAGE'.&lt;/P&gt;&lt;P&gt;append fs_event TO t_EVENT.&lt;/P&gt;&lt;P&gt;CLEAR FS_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fs_event-name ='END_OF_PAGE'.&lt;/P&gt;&lt;P&gt;fs_event-form = 'END_PAGE'.&lt;/P&gt;&lt;P&gt;append fs_event TO t_EVENT.&lt;/P&gt;&lt;P&gt;CLEAR FS_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fs_event-name ='END_OF_LIST'.&lt;/P&gt;&lt;P&gt;fs_event-form = 'LIST_END'.&lt;/P&gt;&lt;P&gt;append fs_event TO t_EVENT.&lt;/P&gt;&lt;P&gt;CLEAR FS_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " EVENT_LIST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form alv_display&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_CALLBACK_PROGRAM = SY-REPID&lt;/P&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET = 'MARATAB1'&lt;/P&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_STRUCTURE_NAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_LAYOUT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IT_FIELDCAT = FS_FIELDCAT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EXCLUDING =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_SPECIAL_GROUPS =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IT_SORT = T_SORT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_FILTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SAVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_VARIANT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IT_EVENTS = T_EVENT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_PRINT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_REPREP_ID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IR_SALV_LIST_ADAPTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EXCEPT_QINFO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SUPPRESS_EMPTY_DATA = ABAP_FALSE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;T_OUTTAB = IT_MARA[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM_ERROR = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " alv_display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form TOP_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:tbl_listheader type slis_t_listheader,&lt;/P&gt;&lt;P&gt;wa_listheader type slis_listheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;wa_listheader-info = 'Created by : Vijay Pawar'.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;concatenate ' Date ' sy-datum into&lt;/P&gt;&lt;P&gt;wa_listheader-info separated by space.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;concatenate ' From ' s_matnr-low ' To ' s_matnr-high into&lt;/P&gt;&lt;P&gt;wa_listheader-info separated by space.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IT_LIST_COMMENTARY = tbl_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_LOGO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_ALV_FORM =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;endform. " form TOP_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form END_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STATICS W_PAGE TYPE I .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:tbl_listheader type slis_t_listheader,&lt;/P&gt;&lt;P&gt;wa_listheader type slis_listheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;wa_listheader-info = W_PAGE.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IT_LIST_COMMENTARY = tbl_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_LOGO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_ALV_FORM =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;add 1 to w_page.&lt;/P&gt;&lt;P&gt;endform. " form END_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form list_end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:tbl_listheader type slis_t_listheader,&lt;/P&gt;&lt;P&gt;wa_listheader type slis_listheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;wa_listheader-info = '......................................Last Page'&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IT_LIST_COMMENTARY = tbl_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_LOGO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_ALV_FORM =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. " form list_end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form maratab1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_RT_EXTAB text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM maratab1 USING P_RT_EXTAB.&lt;/P&gt;&lt;P&gt;SET PF-STATUS 'MARATAB1' EXCLUDING rt_extab.&lt;/P&gt;&lt;P&gt;ENDFORM. " maratab1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;case r_ucomm.&lt;/P&gt;&lt;P&gt;when 'ENTER'.&lt;/P&gt;&lt;P&gt;perform bulid_xls_data_table.&lt;/P&gt;&lt;P&gt;PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;tables it_message&lt;/P&gt;&lt;P&gt;it_attach&lt;/P&gt;&lt;P&gt;using p_email "'vijay.pawar@yash.com'&lt;/P&gt;&lt;P&gt;'Example .xls documnet attachment'&lt;/P&gt;&lt;P&gt;'XLS'&lt;/P&gt;&lt;P&gt;'filename'&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;changing gd_error&lt;/P&gt;&lt;P&gt;gd_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform populate_email_message_body.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;endcase. " case r_ucomm.&lt;/P&gt;&lt;P&gt;endform. " FORM user_command&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform populate_email_message_body.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM initiate_mail_execute_program.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'RH_START_EXCEL_WITH_DATA'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_FILENAME = 'MARA.XLS'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_PATH_FLAG = 'W'&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;DATA_ENVIRONMENT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_TABLE = ITAB[]&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MACRO_FILENAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MACRO_PATH_FLAG = 'E'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MACRO_ENVIRONMENT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;DELETE_FILE = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_BATCH = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEL_NOT_INSTALLED = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL_ERROR = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CANCELLED = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DOWNLOAD_ERROR = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_AUTHORITY = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILE_NOT_DELETED = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;leave to list-processing.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form bulid_xls_data_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bulid_xls_data_table .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;con_tab TYPE x VALUE '09'. "OK for non Unicode&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If you have Unicode check active in program attributes thnen you will&lt;/P&gt;&lt;P&gt;*need to declare constants as follows&lt;/P&gt;&lt;P&gt;*class cl_abap_char_utilities definition load.&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;con_tab type c value cl_abap_char_utilities=&amp;gt;HORIZONTAL_TAB,&lt;/P&gt;&lt;P&gt;con_cret type c value cl_abap_char_utilities=&amp;gt;CR_LF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONCATENATE 'matnr' 'ernam' 'aenam' 'pstat'&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT It_mara INTO wa_charmara.&lt;/P&gt;&lt;P&gt;CONCATENATE wa_charmara-matnr wa_charmara-ernam&lt;/P&gt;&lt;P&gt;wa_charmara-aenam wa_charmara-pstat&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;ENDLOOP. " LOOP AT it_mara INTO...&lt;/P&gt;&lt;P&gt;ENDFORM. " bulid_xls_data_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_IT_MESSAGE text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_IT_ATTACH text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_P_EMAIL text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0387 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0388 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0389 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0390 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0391 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0392 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;--P_GD_ERROR text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;--P_GD_RECIEVER text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment tables pit_message&lt;/P&gt;&lt;P&gt;pit_attach&lt;/P&gt;&lt;P&gt;using p_email&lt;/P&gt;&lt;P&gt;p_mtitle&lt;/P&gt;&lt;P&gt;p_format&lt;/P&gt;&lt;P&gt;p_filename&lt;/P&gt;&lt;P&gt;p_attdescription&lt;/P&gt;&lt;P&gt;p_sender_address&lt;/P&gt;&lt;P&gt;p_sender_addres_type&lt;/P&gt;&lt;P&gt;changing p_error&lt;/P&gt;&lt;P&gt;p_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: ld_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_reciever TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_mtitle LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;ld_email LIKE somlreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_format TYPE so_obj_tp ,&lt;/P&gt;&lt;P&gt;ld_attdescription TYPE so_obj_nam ,&lt;/P&gt;&lt;P&gt;ld_attfilename TYPE so_obj_des ,&lt;/P&gt;&lt;P&gt;ld_sender_address LIKE soextreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_sender_address_type LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;ld_receiver LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ld_email = p_email.&lt;/P&gt;&lt;P&gt;ld_mtitle = p_mtitle.&lt;/P&gt;&lt;P&gt;ld_format = p_format.&lt;/P&gt;&lt;P&gt;ld_attdescription = p_attdescription.&lt;/P&gt;&lt;P&gt;ld_attfilename = p_filename.&lt;/P&gt;&lt;P&gt;ld_sender_address = p_sender_address.&lt;/P&gt;&lt;P&gt;ld_sender_address_type = p_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle .&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR w_doc_data.&lt;/P&gt;&lt;P&gt;READ TABLE it_attach INDEX w_cnt.&lt;/P&gt;&lt;P&gt;w_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;( w_cnt - 1 ) * 255 + STRLEN( it_attach ).&lt;/P&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle.&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;CLEAR t_attachment.&lt;/P&gt;&lt;P&gt;REFRESH t_attachment.&lt;/P&gt;&lt;P&gt;t_attachment[] = pit_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_packing_list.&lt;/P&gt;&lt;P&gt;REFRESH t_packing_list.&lt;/P&gt;&lt;P&gt;t_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 0.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE it_message LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;t_packing_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = ld_format.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_descr = ld_attdescription.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_name = ld_attfilename.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_size = t_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_receivers.&lt;/P&gt;&lt;P&gt;REFRESH t_receivers.&lt;/P&gt;&lt;P&gt;t_receivers-receiver = ld_email.&lt;/P&gt;&lt;P&gt;t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;t_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;APPEND t_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;document_data = w_doc_data&lt;/P&gt;&lt;P&gt;put_in_outbox = 'X'&lt;/P&gt;&lt;P&gt;sender_address = ld_sender_address&lt;/P&gt;&lt;P&gt;sender_address_type = ld_sender_address_type&lt;/P&gt;&lt;P&gt;commit_work = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;sent_to_all = w_sent_all&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;packing_list = t_packing_list&lt;/P&gt;&lt;P&gt;contents_bin = t_attachment&lt;/P&gt;&lt;P&gt;contents_txt = it_message&lt;/P&gt;&lt;P&gt;receivers = t_receivers&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;too_many_receivers = 1&lt;/P&gt;&lt;P&gt;document_not_sent = 2&lt;/P&gt;&lt;P&gt;document_type_not_exist = 3&lt;/P&gt;&lt;P&gt;operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;parameter_error = 5&lt;/P&gt;&lt;P&gt;x_error = 6&lt;/P&gt;&lt;P&gt;enqueue_error = 7&lt;/P&gt;&lt;P&gt;OTHERS = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ld_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT t_receivers.&lt;/P&gt;&lt;P&gt;ld_receiver = t_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instructs mail send program for SAPCONNECT to send email.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;WAIT UP TO 2 SECONDS.&lt;/P&gt;&lt;P&gt;SUBMIT rsconn01 WITH mode = 'INT'&lt;/P&gt;&lt;P&gt;WITH output = 'X'&lt;/P&gt;&lt;P&gt;AND RETURN.&lt;/P&gt;&lt;P&gt;ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form POPULATE_EMAIL_MESSAGE_BODY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate message body text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form populate_email_message_body.&lt;/P&gt;&lt;P&gt;REFRESH it_message.&lt;/P&gt;&lt;P&gt;it_message = 'Please find attached a list test mara records'.&lt;/P&gt;&lt;P&gt;APPEND it_message.&lt;/P&gt;&lt;P&gt;endform. "form populate_email_message_bod&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;Reward points if useful&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regads &lt;/P&gt;&lt;P&gt;Ashu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 Jul 2007 09:51:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-18T09:51:10Z</dc:date>
    <item>
      <title>ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546460#M579325</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have make a report with Plant as select option.Depending upon the plant i have a display data from VBAK and VBAP table in form of grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now the problem is i need 2 Radio buttons and Plant on the result page . And i have to call events when either of two buttons are clicked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please guide me that can i use ALV for this. In my Alv display i need one Field as editable and if user changes that field . Other field value must change ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help me on this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards&lt;/P&gt;&lt;P&gt;Neha Kapoor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2007 09:43:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546460#M579325</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-18T09:43:31Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546461#M579326</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           Here is a sample program that simulates radio buttons by using icons with hotspots.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;PROGRAM ZUS_SDN_BCALV_GRID_DEMO_2.
 
* Based on: BCALV_GRID_DEMO.
 
TYPE-POOLS: icon.
 
 
TYPES: BEGIN OF ty_s_sflight.
INCLUDE TYPE sflight.
TYPES: button1    TYPE lvc_emphsz.
TYPES: button2    TYPE lvc_emphsz.
TYPES: button3    TYPE lvc_emphsz.
TYPES: button4    TYPE lvc_emphsz.
TYPES: END OF ty_s_sflight.
 
 
DATA:
  gt_sflight    TYPE STANDARD TABLE OF ty_s_sflight,
  gt_fcat       TYPE lvc_t_fcat.
 
 
DATA: ok_code LIKE sy-ucomm,
*      gt_sflight TYPE TABLE OF sflight,
      g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
      grid1  TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container.
 
 
 
 
*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.
 
  PUBLIC SECTION.
 
    CLASS-DATA:
      md_cnt    TYPE i.
 
    CLASS-METHODS:
      handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
          e_row_id
          e_column_id
          es_row_no
          sender.
 
ENDCLASS.                    "lcl_eventhandler DEFINITION
 
 
*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.
 
  METHOD handle_hotspot_click.
* define local data
    FIELD-SYMBOLS:
      &amp;lt;ls_entry&amp;gt;    TYPE ty_s_sflight,
      &amp;lt;ld_fld&amp;gt;      TYPE ANY.
 
    READ TABLE gt_sflight ASSIGNING &amp;lt;ls_entry&amp;gt; INDEX es_row_no-row_id.
    CHECK ( &amp;lt;ls_entry&amp;gt; IS ASSIGNED ).
 
*   Set all radio buttons "unselected"
    &amp;lt;ls_entry&amp;gt;-button1 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button2 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button3 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button4 =  icon_wd_radio_button_empty.
 
    ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE &amp;lt;ls_entry&amp;gt;
                                              TO &amp;lt;ld_fld&amp;gt;.
    IF ( &amp;lt;ld_fld&amp;gt; IS ASSIGNED ).
*     Set selected radio button "selected".
      &amp;lt;ld_fld&amp;gt; = icon_wd_radio_button.
    ENDIF.
 
*   Force PAI followed by refresh of table display in PBO
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code
      EXPORTING
        new_code = 'DUMMY'
*      IMPORTING
*        RC       =
        .
 
 
 
  ENDMETHOD.                    "handle_hotspot_click
 
ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
 
 
START-OF-SELECTION.
 
*---------------------------------------------------------------------*
*       MAIN                                                          *
*---------------------------------------------------------------------*
 
  PERFORM select_data.
 
 
  CALL SCREEN 100.
 
 
*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'MAIN100'.
  IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
           EXPORTING container_name = g_container.
    CREATE OBJECT grid1
           EXPORTING i_parent = g_custom_container.
 
    PERFORM build_fieldcatalog.
 
    CALL METHOD grid1-&amp;gt;set_table_for_first_display
*      EXPORTING
*        i_structure_name = 'SFLIGHT'
      CHANGING
        it_fieldcatalog  = gt_fcat
        it_outtab        = gt_sflight.
 
*   Set event handler for event TOOLBAR
    SET HANDLER:
      lcl_eventhandler=&amp;gt;handle_hotspot_click FOR grid1.
 
  else.
    CALL METHOD grid1-&amp;gt;refresh_table_display
*      EXPORTING
*        IS_STABLE      =
*        I_SOFT_REFRESH =
      EXCEPTIONS
        FINISHED       = 1
        others         = 2.
    IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
 
  ENDIF.
 
 
 
ENDMODULE.                    "PBO OUTPUT
*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.
*   to react on oi_custom_events:
  CALL METHOD cl_gui_cfw=&amp;gt;dispatch.
  CASE ok_code.
    WHEN 'EXIT'.
      PERFORM exit_program.
    WHEN OTHERS.
*     do nothing
  ENDCASE.
  CLEAR ok_code.
ENDMODULE.                    "PAI INPUT
*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM exit_program.
*  CALL METHOD G_CUSTOM_CONTAINER-&amp;gt;FREE.
*  CALL METHOD CL_GUI_CFW=&amp;gt;FLUSH.
  LEAVE PROGRAM.
ENDFORM.                    "EXIT_PROGRAM
 
 
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat,
    ls_hype        TYPE lvc_s_hype.
 
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'LVC_S_FCAT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  DELETE gt_fcat WHERE ( fieldname &amp;lt;&amp;gt; 'EMPHASIZE' ).
 
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'SFLIGHT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
 
 
  READ TABLE gt_fcat INTO ls_fcat
       WITH KEY fieldname = 'EMPHASIZE'.
  IF ( syst-subrc = 0 ).
    DELETE gt_fcat INDEX syst-tabix.
  ENDIF.
 
  ls_fcat-fieldname = 'BUTTON4'.
  ls_fcat-icon    = 'X'.
  ls_fcat-hotspot = 'X'.
  INSERT ls_fcat INTO gt_fcat INDEX 4.
*
  ls_fcat-fieldname = 'BUTTON3'.
  INSERT ls_fcat INTO gt_fcat INDEX 4.
*
  ls_fcat-fieldname = 'BUTTON2'.
  INSERT ls_fcat INTO gt_fcat INDEX 4.
*
  ls_fcat-fieldname = 'BUTTON1'.
  INSERT ls_fcat INTO gt_fcat INDEX 4.
 
 
  LOOP AT gt_fcat INTO ls_fcat.
    ls_fcat-col_pos = syst-tabix.
    MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
  ENDLOOP.
 
 
 
 
 
 
ENDFORM.                    " BUILD_FIELDCATALOG
 
 
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SELECT_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM select_data .
* define local data
  DATA:
    ls_sflight    TYPE ty_s_sflight.
 
 
  SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
 
  ls_sflight-button1 = icon_wd_radio_button.
  ls_sflight-button2 = icon_wd_radio_button_empty.
  ls_sflight-button3 = icon_wd_radio_button_empty.
  ls_sflight-button4 = icon_wd_radio_button_empty.
*
  MODIFY gt_sflight FROM ls_sflight
      TRANSPORTING button1 button2 button3 button4
    WHERE ( carrid IS NOT INITIAL ).
 
ENDFORM.                    " SELECT_DATA&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Deepu.K&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this link :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="1954762"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2007 09:48:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546461#M579326</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-18T09:48:56Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546462#M579327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this may helps u&lt;/P&gt;&lt;P&gt;u need to copy stadard screen elemetn to MARATAB1(at PF -STATUS)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should copy the 'STANDARD' GUI status from program SAPLSLVC_FULLSCREEN&lt;/P&gt;&lt;P&gt;type this one in SE41 program name is:SAPLSLVC_FULLSCREEN&lt;/P&gt;&lt;P&gt;status : STANDARD_FULLSCREEN&lt;/P&gt;&lt;P&gt;and copy it ...&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type-pool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools slis.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: mara,sscrfields.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select-options: s_matnr for mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_email TYPE somlreci1-receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_charmara,&lt;/P&gt;&lt;P&gt;matnr(18) TYPE c, " Material Number&lt;/P&gt;&lt;P&gt;ernam(12) TYPE c, " Person Credited&lt;/P&gt;&lt;P&gt;aenam(12) TYPE c, " Person Changed Object&lt;/P&gt;&lt;P&gt;pstat(15) TYPE c, " Maintenance Status&lt;/P&gt;&lt;P&gt;END OF t_charmara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: rt_extab type slis_t_extab, " Table of inactive function&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;wa_charmara TYPE t_charmara, " work area of mara Table&lt;/P&gt;&lt;P&gt;fs_fieldcat type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;" Field catalog with field&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;descriptions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;t_fieldcat like line of fs_fieldcat,&lt;/P&gt;&lt;P&gt;" Table of Field catalog&lt;/P&gt;&lt;P&gt;r_ucomm like sy-ucomm, " User Command&lt;/P&gt;&lt;P&gt;rs_selfield TYPE slis_selfield. " cursor position ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: filedlayout type slis_layout_alv,&lt;/P&gt;&lt;P&gt;heading type slis_t_listheader with header line,&lt;/P&gt;&lt;P&gt;t_event type slis_t_event.&lt;/P&gt;&lt;P&gt;data: fs_event like line of t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: fs_sort type slis_sortinfo_alv,&lt;/P&gt;&lt;P&gt;t_sort type slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;data: w_char(200) type c,&lt;/P&gt;&lt;P&gt;w_matnr type mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fs_sort-fieldname = 'MATNR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fs_sort-up = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fs_sort-group = '*'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append fs_sort to t_sort.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;clear fS_sort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;w_sent_all(1) TYPE c,&lt;/P&gt;&lt;P&gt;w_doc_data LIKE sodocchgi1,&lt;/P&gt;&lt;P&gt;gd_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;gd_reciever TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_mara occurs 0,&lt;/P&gt;&lt;P&gt;matnr like mara-matnr, " Material Number&lt;/P&gt;&lt;P&gt;ernam like mara-ernam, " Person Credited&lt;/P&gt;&lt;P&gt;aenam like mara-aenam, " Person Changed Object&lt;/P&gt;&lt;P&gt;pstat like mara-pstat, " Maintenance Status&lt;/P&gt;&lt;P&gt;end of it_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*at selection-screen on field event&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN on s_matnr.&lt;/P&gt;&lt;P&gt;PERFORM f0100_VALIDATE_MATERIAL_NUMBER.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;retrive Data from the data base table Mara&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform retrive_data_from_mara.&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;*Field catalog with field descriptions&lt;/P&gt;&lt;P&gt;perform fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*perform top_of_page.&lt;/P&gt;&lt;P&gt;PERFORM EVENT_LIST.&lt;/P&gt;&lt;P&gt;*ALV Grid Display&lt;/P&gt;&lt;P&gt;perform alv_display.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Creating one Push button ENTER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform maratab1 USING RT_EXTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form f0100_VALIDATE_MATERIAL_NUMBER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F0100_VALIDATE_MATERIAL_NUMBER .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select matnr " Material Number&lt;/P&gt;&lt;P&gt;from mara&lt;/P&gt;&lt;P&gt;up to 1 rows&lt;/P&gt;&lt;P&gt;into mara-matnr&lt;/P&gt;&lt;P&gt;where matnr in s_matnr.&lt;/P&gt;&lt;P&gt;endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;clear sscrfields-ucomm.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Enter valid Material number'(003).&lt;/P&gt;&lt;P&gt;ENDIF. " IF sy-subrc NE 0&lt;/P&gt;&lt;P&gt;ENDFORM. " f0100_VALIDATE_MATERIAL_NUMBER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form retrive_data_from_mara&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM retrive_data_from_mara .&lt;/P&gt;&lt;P&gt;select matnr " Material Number&lt;/P&gt;&lt;P&gt;ernam " Person Credited&lt;/P&gt;&lt;P&gt;aenam " Person Changed Object&lt;/P&gt;&lt;P&gt;pstat " Maintenance Status&lt;/P&gt;&lt;P&gt;from mara&lt;/P&gt;&lt;P&gt;into table It_mara&lt;/P&gt;&lt;P&gt;where matnr in s_matnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE i001 WITH 'Records are not found'.&lt;/P&gt;&lt;P&gt;exit.&lt;/P&gt;&lt;P&gt;stop.&lt;/P&gt;&lt;P&gt;ENDIF. " IF sy-subrc NE 0&lt;/P&gt;&lt;P&gt;ENDFORM. " retrive_data_from_mara&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*field catalog for MATNR&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 1.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;*field catalog for ERNAM&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'ERNAM'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 2.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;*field catalog for AENAM&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'AENAM'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 3.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;*field catalog for PSTAT&lt;/P&gt;&lt;P&gt;t_FIELDCAT-REF_TABNAME = 'MARA'.&lt;/P&gt;&lt;P&gt;t_fieldcat-fieldname = 'PSTAT'.&lt;/P&gt;&lt;P&gt;t_fieldcat-col_pos = 4.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;t_fieldcat-edit = 'x'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;append t_fieldcat to fs_fieldcat.&lt;/P&gt;&lt;P&gt;clear t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " fieldcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form EVENT_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM EVENT_LIST .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fs_event-name ='TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;fs_event-form = 'TOP_PAGE'.&lt;/P&gt;&lt;P&gt;append fs_event TO t_EVENT.&lt;/P&gt;&lt;P&gt;CLEAR FS_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fs_event-name ='END_OF_PAGE'.&lt;/P&gt;&lt;P&gt;fs_event-form = 'END_PAGE'.&lt;/P&gt;&lt;P&gt;append fs_event TO t_EVENT.&lt;/P&gt;&lt;P&gt;CLEAR FS_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fs_event-name ='END_OF_LIST'.&lt;/P&gt;&lt;P&gt;fs_event-form = 'LIST_END'.&lt;/P&gt;&lt;P&gt;append fs_event TO t_EVENT.&lt;/P&gt;&lt;P&gt;CLEAR FS_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " EVENT_LIST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form alv_display&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_CALLBACK_PROGRAM = SY-REPID&lt;/P&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET = 'MARATAB1'&lt;/P&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_STRUCTURE_NAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_LAYOUT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IT_FIELDCAT = FS_FIELDCAT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EXCLUDING =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_SPECIAL_GROUPS =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IT_SORT = T_SORT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_FILTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SAVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_VARIANT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IT_EVENTS = T_EVENT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_PRINT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_REPREP_ID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IR_SALV_LIST_ADAPTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EXCEPT_QINFO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SUPPRESS_EMPTY_DATA = ABAP_FALSE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;T_OUTTAB = IT_MARA[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM_ERROR = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " alv_display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form TOP_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:tbl_listheader type slis_t_listheader,&lt;/P&gt;&lt;P&gt;wa_listheader type slis_listheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;wa_listheader-info = 'Created by : Vijay Pawar'.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;concatenate ' Date ' sy-datum into&lt;/P&gt;&lt;P&gt;wa_listheader-info separated by space.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;concatenate ' From ' s_matnr-low ' To ' s_matnr-high into&lt;/P&gt;&lt;P&gt;wa_listheader-info separated by space.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IT_LIST_COMMENTARY = tbl_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_LOGO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_ALV_FORM =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;endform. " form TOP_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form END_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STATICS W_PAGE TYPE I .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:tbl_listheader type slis_t_listheader,&lt;/P&gt;&lt;P&gt;wa_listheader type slis_listheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;wa_listheader-info = W_PAGE.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IT_LIST_COMMENTARY = tbl_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_LOGO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_ALV_FORM =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;add 1 to w_page.&lt;/P&gt;&lt;P&gt;endform. " form END_PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form list_end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:tbl_listheader type slis_t_listheader,&lt;/P&gt;&lt;P&gt;wa_listheader type slis_listheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;wa_listheader-info = '......................................Last Page'&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;append wa_listheader to tbl_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IT_LIST_COMMENTARY = tbl_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_LOGO =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_ALV_FORM =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. " form list_end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form maratab1&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_RT_EXTAB text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM maratab1 USING P_RT_EXTAB.&lt;/P&gt;&lt;P&gt;SET PF-STATUS 'MARATAB1' EXCLUDING rt_extab.&lt;/P&gt;&lt;P&gt;ENDFORM. " maratab1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;case r_ucomm.&lt;/P&gt;&lt;P&gt;when 'ENTER'.&lt;/P&gt;&lt;P&gt;perform bulid_xls_data_table.&lt;/P&gt;&lt;P&gt;PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;tables it_message&lt;/P&gt;&lt;P&gt;it_attach&lt;/P&gt;&lt;P&gt;using p_email "'vijay.pawar@yash.com'&lt;/P&gt;&lt;P&gt;'Example .xls documnet attachment'&lt;/P&gt;&lt;P&gt;'XLS'&lt;/P&gt;&lt;P&gt;'filename'&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;changing gd_error&lt;/P&gt;&lt;P&gt;gd_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform populate_email_message_body.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;endcase. " case r_ucomm.&lt;/P&gt;&lt;P&gt;endform. " FORM user_command&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform populate_email_message_body.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM initiate_mail_execute_program.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'RH_START_EXCEL_WITH_DATA'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_FILENAME = 'MARA.XLS'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_PATH_FLAG = 'W'&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;DATA_ENVIRONMENT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_TABLE = ITAB[]&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MACRO_FILENAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MACRO_PATH_FLAG = 'E'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MACRO_ENVIRONMENT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WAIT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;DELETE_FILE = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_BATCH = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEL_NOT_INSTALLED = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL_ERROR = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CANCELLED = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DOWNLOAD_ERROR = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_AUTHORITY = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILE_NOT_DELETED = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;leave to list-processing.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form bulid_xls_data_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*There are no interface parameters to be passed to this subroutine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bulid_xls_data_table .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;con_tab TYPE x VALUE '09'. "OK for non Unicode&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If you have Unicode check active in program attributes thnen you will&lt;/P&gt;&lt;P&gt;*need to declare constants as follows&lt;/P&gt;&lt;P&gt;*class cl_abap_char_utilities definition load.&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;con_tab type c value cl_abap_char_utilities=&amp;gt;HORIZONTAL_TAB,&lt;/P&gt;&lt;P&gt;con_cret type c value cl_abap_char_utilities=&amp;gt;CR_LF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONCATENATE 'matnr' 'ernam' 'aenam' 'pstat'&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT It_mara INTO wa_charmara.&lt;/P&gt;&lt;P&gt;CONCATENATE wa_charmara-matnr wa_charmara-ernam&lt;/P&gt;&lt;P&gt;wa_charmara-aenam wa_charmara-pstat&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;ENDLOOP. " LOOP AT it_mara INTO...&lt;/P&gt;&lt;P&gt;ENDFORM. " bulid_xls_data_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_IT_MESSAGE text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_IT_ATTACH text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_P_EMAIL text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0387 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0388 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0389 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0390 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0391 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0392 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;--P_GD_ERROR text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;--P_GD_RECIEVER text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment tables pit_message&lt;/P&gt;&lt;P&gt;pit_attach&lt;/P&gt;&lt;P&gt;using p_email&lt;/P&gt;&lt;P&gt;p_mtitle&lt;/P&gt;&lt;P&gt;p_format&lt;/P&gt;&lt;P&gt;p_filename&lt;/P&gt;&lt;P&gt;p_attdescription&lt;/P&gt;&lt;P&gt;p_sender_address&lt;/P&gt;&lt;P&gt;p_sender_addres_type&lt;/P&gt;&lt;P&gt;changing p_error&lt;/P&gt;&lt;P&gt;p_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: ld_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_reciever TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_mtitle LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;ld_email LIKE somlreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_format TYPE so_obj_tp ,&lt;/P&gt;&lt;P&gt;ld_attdescription TYPE so_obj_nam ,&lt;/P&gt;&lt;P&gt;ld_attfilename TYPE so_obj_des ,&lt;/P&gt;&lt;P&gt;ld_sender_address LIKE soextreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_sender_address_type LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;ld_receiver LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ld_email = p_email.&lt;/P&gt;&lt;P&gt;ld_mtitle = p_mtitle.&lt;/P&gt;&lt;P&gt;ld_format = p_format.&lt;/P&gt;&lt;P&gt;ld_attdescription = p_attdescription.&lt;/P&gt;&lt;P&gt;ld_attfilename = p_filename.&lt;/P&gt;&lt;P&gt;ld_sender_address = p_sender_address.&lt;/P&gt;&lt;P&gt;ld_sender_address_type = p_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle .&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR w_doc_data.&lt;/P&gt;&lt;P&gt;READ TABLE it_attach INDEX w_cnt.&lt;/P&gt;&lt;P&gt;w_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;( w_cnt - 1 ) * 255 + STRLEN( it_attach ).&lt;/P&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle.&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;CLEAR t_attachment.&lt;/P&gt;&lt;P&gt;REFRESH t_attachment.&lt;/P&gt;&lt;P&gt;t_attachment[] = pit_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_packing_list.&lt;/P&gt;&lt;P&gt;REFRESH t_packing_list.&lt;/P&gt;&lt;P&gt;t_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 0.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE it_message LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;t_packing_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = ld_format.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_descr = ld_attdescription.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_name = ld_attfilename.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_size = t_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_receivers.&lt;/P&gt;&lt;P&gt;REFRESH t_receivers.&lt;/P&gt;&lt;P&gt;t_receivers-receiver = ld_email.&lt;/P&gt;&lt;P&gt;t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;t_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;APPEND t_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;document_data = w_doc_data&lt;/P&gt;&lt;P&gt;put_in_outbox = 'X'&lt;/P&gt;&lt;P&gt;sender_address = ld_sender_address&lt;/P&gt;&lt;P&gt;sender_address_type = ld_sender_address_type&lt;/P&gt;&lt;P&gt;commit_work = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;sent_to_all = w_sent_all&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;packing_list = t_packing_list&lt;/P&gt;&lt;P&gt;contents_bin = t_attachment&lt;/P&gt;&lt;P&gt;contents_txt = it_message&lt;/P&gt;&lt;P&gt;receivers = t_receivers&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;too_many_receivers = 1&lt;/P&gt;&lt;P&gt;document_not_sent = 2&lt;/P&gt;&lt;P&gt;document_type_not_exist = 3&lt;/P&gt;&lt;P&gt;operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;parameter_error = 5&lt;/P&gt;&lt;P&gt;x_error = 6&lt;/P&gt;&lt;P&gt;enqueue_error = 7&lt;/P&gt;&lt;P&gt;OTHERS = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ld_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT t_receivers.&lt;/P&gt;&lt;P&gt;ld_receiver = t_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instructs mail send program for SAPCONNECT to send email.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;WAIT UP TO 2 SECONDS.&lt;/P&gt;&lt;P&gt;SUBMIT rsconn01 WITH mode = 'INT'&lt;/P&gt;&lt;P&gt;WITH output = 'X'&lt;/P&gt;&lt;P&gt;AND RETURN.&lt;/P&gt;&lt;P&gt;ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form POPULATE_EMAIL_MESSAGE_BODY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate message body text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form populate_email_message_body.&lt;/P&gt;&lt;P&gt;REFRESH it_message.&lt;/P&gt;&lt;P&gt;it_message = 'Please find attached a list test mara records'.&lt;/P&gt;&lt;P&gt;APPEND it_message.&lt;/P&gt;&lt;P&gt;endform. "form populate_email_message_bod&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;Reward points if useful&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regads &lt;/P&gt;&lt;P&gt;Ashu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2007 09:51:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2546462#M579327</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-18T09:51:10Z</dc:date>
    </item>
  </channel>
</rss>

