<?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 : drill down not working. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376474#M526989</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;use this done some changes.&lt;/P&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;try like this &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 '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;READ TABLE itabINTO wa_itab INDEX r_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF r_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BUS' FIELD wa_itab-mblnr.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do something at 'Sales document type' field selection&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;ELSEIF r_selfield-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'MAT' FIELD wa_itab-matnr.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;sudha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Jun 2007 05:58:30 GMT</pubDate>
    <dc:creator>S0025444845</dc:creator>
    <dc:date>2007-06-12T05:58:30Z</dc:date>
    <item>
      <title>alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376472#M526987</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please tell me whats wrong with this code ? its not drilling down to show 'ebeln' with me22n.  Am I missing something ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hrishi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;code is :-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------" /&gt;&lt;P&gt;REPORT  Z_VENDOR_BACKORDER_REPORT_ALV .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:  EKKO, LFA1, MAKT, EKET, EKPO, AFPO, MARC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Data Declaration&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  BEGIN OF ITAB OCCURS 0 ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	&lt;/P&gt;&lt;P&gt;        ebeln       LIKE ekko-ebeln  ,  " PO number&lt;/P&gt;&lt;P&gt;        aedat       LIKE ekko-aedat  ,  " creation date&lt;/P&gt;&lt;P&gt;        ebelp       LIKE ekpo-ebelp  ,  " item no&lt;/P&gt;&lt;P&gt;        lifnr       LIKE ekko-lifnr  ,  " vendor number&lt;/P&gt;&lt;P&gt;        name1       LIKE lfa1-name1  ,  " vendor name&lt;/P&gt;&lt;P&gt;        RESWK       LIKE EKKO-RESWK  ,  " PLANT NO&lt;/P&gt;&lt;P&gt;        MEMORY      LIKE EKKO-MEMORY , " ORDER INCOMPLETE&lt;/P&gt;&lt;P&gt;        matnr       LIKE ekpo-matnr  ,  " material number&lt;/P&gt;&lt;P&gt;        werks       like ekpo-werks  ,  " plant&lt;/P&gt;&lt;P&gt;        txz01       LIKE ekpo-txz01  ,  " material description&lt;/P&gt;&lt;P&gt;        eindt       LIKE eket-eindt  ,  " Promised date&lt;/P&gt;&lt;P&gt;        menge       LIKE eket-menge  ,  " quantity&lt;/P&gt;&lt;P&gt;        wemng       LIKE eket-wemng  ,  " delivered quantity&lt;/P&gt;&lt;P&gt;        netpr       like ekpo-netpr  ,  " value in AUD&lt;/P&gt;&lt;P&gt;        peinh       like ekpo-peinh  ,  " price unit&lt;/P&gt;&lt;P&gt;        banfn       like ekpo-banfn  ,  " PR no&lt;/P&gt;&lt;P&gt;        aufnr       like ebkn-aufnr  ,  " Production order no&lt;/P&gt;&lt;P&gt;        MAABC       LIKE MARC-MAABC  ,  " MATERIAL ABC Indicator&lt;/P&gt;&lt;P&gt;        maktx       like makt-maktx  ,  " material long description&lt;/P&gt;&lt;P&gt;        open_quant  type p decimals 2,  " quantity - delivered&lt;/P&gt;&lt;P&gt;        VALUE       TYPE p decimals 2,  " $ VALUE * OPEN QUANTITY&lt;/P&gt;&lt;P&gt;        end of ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: wa like itab.&lt;/P&gt;&lt;P&gt;DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: TEMP TYPE EKKO-LIFNR.&lt;/P&gt;&lt;P&gt;data: opt like CTU_PARAMS.&lt;/P&gt;&lt;P&gt;*DATA:  WA TYPE FINAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;all ALV declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------" /&gt;&lt;P&gt;type-pools: slis.                                 "ALV Declarations&lt;/P&gt;&lt;P&gt;DATA:   fieldcatalog        TYPE slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;        G_REPID             TYPE SY-REPID,&lt;/P&gt;&lt;P&gt;        GS_PRINT            TYPE SLIS_PRINT_ALV,&lt;/P&gt;&lt;P&gt;        GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,&lt;/P&gt;&lt;P&gt;        GT_EVENTS           TYPE SLIS_T_EVENT,&lt;/P&gt;&lt;P&gt;        GT_SORT             TYPE SLIS_T_SORTINFO_ALV,&lt;/P&gt;&lt;P&gt;        GS_LAYOUT           TYPE SLIS_LAYOUT_ALV,&lt;/P&gt;&lt;P&gt;        COL_POS TYPE I.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------&lt;DEL&gt;-SELECTION SCREEN&lt;/DEL&gt;----------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  selection-screen begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;  select-options VENDORNO for ekko-lifnr.&lt;/P&gt;&lt;P&gt;  select-options MATERIAL for ekpo-matnr.&lt;/P&gt;&lt;P&gt;  SELECT-OPTIONS PLANT FOR EKKO-RESWK.&lt;/P&gt;&lt;P&gt;  select-options REQDAT for eket-eindt.&lt;/P&gt;&lt;P&gt;  selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*................... GET DATA..................&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;PERFORM GATHER_DATA.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&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 '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;CASE  rs_selfield-sel_tab_field.&lt;/P&gt;&lt;P&gt;WHEN 'ITAB-EBELN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK NOT rs_selfield-value IS INITIAL.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BUS' FIELD rs_selfield-value.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do something at 'Sales document type' field selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when 'ITAB-MATNR'.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BUS' FIELD rs_selfield-value.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form gather_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT EKKO~EBELN&lt;/P&gt;&lt;P&gt;       EKKO~AEDAT&lt;/P&gt;&lt;P&gt;       EKKO~LIFNR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EKKO~MEMORY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EKKO~RESWK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       EKPO~EBELP&lt;/P&gt;&lt;P&gt;       EKPO~MATNR&lt;/P&gt;&lt;P&gt;       ekpo~werks&lt;/P&gt;&lt;P&gt;       ekpo~netpr&lt;/P&gt;&lt;P&gt;       ekpo~peinh&lt;/P&gt;&lt;P&gt;       ekpo~banfn&lt;/P&gt;&lt;P&gt;       ekpo~txz01&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      makt~maktx&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       EKET~EINDT&lt;/P&gt;&lt;P&gt;       EKET~MENGE&lt;/P&gt;&lt;P&gt;       EKET~WEMNG&lt;/P&gt;&lt;P&gt;       LFA1~NAME1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INTO corresponding fields of ITAB&lt;/P&gt;&lt;P&gt;FROM (&lt;/P&gt;&lt;P&gt;EKKO inner JOIN EKPO&lt;/P&gt;&lt;P&gt;ON EKKO&lt;SUB&gt;EBELN = EKPO&lt;/SUB&gt;EBELN&lt;/P&gt;&lt;P&gt;inner JOIN EKET&lt;/P&gt;&lt;P&gt;ON EKPO&lt;SUB&gt;EBELN = EKET&lt;/SUB&gt;EBELN&lt;/P&gt;&lt;P&gt;AND EKPO&lt;SUB&gt;EBELP = EKET&lt;/SUB&gt;EBELP&lt;/P&gt;&lt;P&gt;inner JOIN LFA1&lt;/P&gt;&lt;P&gt;ON EKKO&lt;SUB&gt;LIFNR = LFA1&lt;/SUB&gt;LIFNR&lt;/P&gt;&lt;P&gt;*left outer join makt&lt;/P&gt;&lt;P&gt;*on ekpo&lt;SUB&gt;matnr = makt&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;WHERE EKKO~LIFNR IN VENDORNO&lt;/P&gt;&lt;P&gt;AND EKKO~RESWK IN PLANT&lt;/P&gt;&lt;P&gt;and EKPO~MATNR IN MATERIAL&lt;/P&gt;&lt;P&gt;and ekpo~elikz eq ' '&lt;/P&gt;&lt;P&gt;and ekpo~loekz ne 'L'&lt;/P&gt;&lt;P&gt;and eket~eindt in REQDAT.&lt;/P&gt;&lt;P&gt;append itab.&lt;/P&gt;&lt;P&gt;CLEAR ITAB.&lt;/P&gt;&lt;P&gt;endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab by lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ITAB-OPEN_QUANT = ITAB-MENGE - ITAB-WEMNG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if itab-matnr eq ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single aufnr from ebkn into itab-aufnr where banfn = itab-banfn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single matnr from afpo into itab-matnr where aufnr = itab-aufnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single maktx from makt into itab-maktx where matnr = itab-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single maabc from MARC INTO ITAB-MAABC WHERE MATNR = ITAB-MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ITAB-VALUE = ITAB-NETPR * ITAB-OPEN_QUANT / itab-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&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;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'vendor no'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  fieldcatalog-no_zero     = 'X'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;    clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'EBELN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'po Number'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 2.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;   fieldcatalog-emphasize = 'C401'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'AEDAT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'po date'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 3.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname   = 'EBELP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'item number'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 4.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MATNR'.&lt;/P&gt;&lt;P&gt;   fieldcatalog-no_zero     = 'X'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'material number'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 5.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MAABC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'material type'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 6.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'TXZ01'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'short text'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 7.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'long text'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 8.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;   fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt; fieldcatalog-fieldname   = 'EINDT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'date promised'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 9.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MENGE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Quantity'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 10.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'WEMNG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Delivered'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 11.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OPEN_QUANT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Open quantity'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 12.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname   = 'VALUE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = '$ value'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 13.&lt;/P&gt;&lt;P&gt;   fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;   fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&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;HR originaltext="-------------------------------------------------------------------------------------" /&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;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------------" /&gt;&lt;P&gt; call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_callback_program      = g_repid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;             I_CALLBACK_USER_COMMAND = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;            it_fieldcat             = fieldcatalog[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            is_layout               = GS_layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              IT_SORT                = gt_sort&lt;/P&gt;&lt;P&gt;              I_DEFAULT = 'X'&lt;/P&gt;&lt;P&gt;                I_SAVE = 'X'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           is_variant              = z_template&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                = ITAB&lt;/P&gt;&lt;P&gt;            exceptions&lt;/P&gt;&lt;P&gt;            program_error           = 1&lt;/P&gt;&lt;P&gt;            others                  = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 05:44:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376472#M526987</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T05:44:07Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376473#M526988</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;try like this &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 '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;READ TABLE itabINTO wa_itab INDEX   r_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF r_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BUS' FIELD  wa_itab-mblnr.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do something at 'Sales document type' field selection&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;ELSEIF r_selfield-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BUS' FIELD wa_itab-matnr.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;sudha&lt;/P&gt;&lt;P&gt;reward points if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 05:53:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376473#M526988</guid>
      <dc:creator>S0025444845</dc:creator>
      <dc:date>2007-06-12T05:53:04Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376474#M526989</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;use this done some changes.&lt;/P&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;try like this &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 '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;READ TABLE itabINTO wa_itab INDEX r_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF r_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'BUS' FIELD wa_itab-mblnr.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do something at 'Sales document type' field selection&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;ELSEIF r_selfield-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'MAT' FIELD wa_itab-matnr.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;sudha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 05:58:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376474#M526989</guid>
      <dc:creator>S0025444845</dc:creator>
      <dc:date>2007-06-12T05:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376475#M526990</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;refer to this standard program DEMO_DYNPRO_DROPDOWN_LISTBOX . this will help you out........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Ruchika&lt;/P&gt;&lt;P&gt;reward if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:01:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376475#M526990</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:01:14Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376476#M526991</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;use BES not BUS&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID &amp;lt;b&amp;gt;'BES'&amp;lt;/b&amp;gt; FIELD rs_selfield-value.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:01:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376476#M526991</guid>
      <dc:creator>former_member186741</dc:creator>
      <dc:date>2007-06-12T06:01:35Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376477#M526992</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Sudha,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did try that.. but,  didnt help.  I dont know why this is not working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Everything seems to be correct. still its not drilling down.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:04:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376477#M526992</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:04:46Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376478#M526993</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;try using parameter id 'BES' for mblnr&lt;/P&gt;&lt;P&gt;and ' MAT' for matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sudha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:10:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376478#M526993</guid>
      <dc:creator>S0025444845</dc:creator>
      <dc:date>2007-06-12T06:10:23Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376479#M526994</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Naah. Still doesnt work&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:16:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376479#M526994</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:16:01Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376480#M526995</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;please run the code below.&lt;/P&gt;&lt;P&gt;REPORT yfi7g_ing_mic_001 .&lt;/P&gt;&lt;P&gt;*PROGRAM YFI7G_ING_MIC_001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: vbak .&lt;/P&gt;&lt;P&gt;TABLES: mara .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF tp_vbak ,&lt;/P&gt;&lt;P&gt;      vbeln TYPE vbak-vbeln,&lt;/P&gt;&lt;P&gt;      erdat TYPE vbak-erdat,&lt;/P&gt;&lt;P&gt;      erzet TYPE vbak-erzet,&lt;/P&gt;&lt;P&gt;      ernam TYPE vbak-ernam,&lt;/P&gt;&lt;P&gt;      vbtyp TYPE vbak-vbtyp,&lt;/P&gt;&lt;P&gt;      trvog TYPE vbak-trvog,&lt;/P&gt;&lt;P&gt;      auart TYPE vbak-auart,&lt;/P&gt;&lt;P&gt;      lifsk TYPE vbak-lifsk,&lt;/P&gt;&lt;P&gt;      faksk TYPE vbak-faksk,&lt;/P&gt;&lt;P&gt;      waerk TYPE vbak-waerk,&lt;/P&gt;&lt;P&gt;      vkorg TYPE vbak-vkorg,&lt;/P&gt;&lt;P&gt;      kunnr TYPE vbak-kunnr,&lt;/P&gt;&lt;P&gt;      vgbel TYPE vbak-vgbel,&lt;/P&gt;&lt;P&gt;      vgtyp TYPE vbak-vgtyp,&lt;/P&gt;&lt;P&gt;END OF tp_vbak .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF tp_mara ,&lt;/P&gt;&lt;P&gt;        matnr TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;END OF tp_mara .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF tp_alv1_data.&lt;/P&gt;&lt;P&gt;INCLUDE TYPE tp_vbak .&lt;/P&gt;&lt;P&gt;TYPES: END OF tp_alv1_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF tp_alv2_data.&lt;/P&gt;&lt;P&gt;INCLUDE TYPE tp_mara .&lt;/P&gt;&lt;P&gt;TYPES: END OF tp_alv2_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_vbak TYPE STANDARD TABLE OF tp_vbak WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: gt_mara TYPE STANDARD TABLE OF tp_mara WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: gs_variant LIKE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_alv1_data TYPE STANDARD TABLE OF tp_alv1_data WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_alv2_data TYPE STANDARD TABLE OF tp_alv2_data WITH HEADER LINE.&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;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;&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;BLOCK b0                                                             *&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;SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.        "&amp;lt;field not defined?&amp;gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_matnr LIKE mara-matnr.           "&amp;lt;field not defined?&amp;gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b0.&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;BLOCK bvar                                                           *&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;SELECTION-SCREEN BEGIN OF BLOCK bvar WITH FRAME.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_vari  LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK bvar.&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;BLOCK bbox                                                           *&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;SELECTION-SCREEN BEGIN OF BLOCK bbox WITH FRAME.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_box_up  RADIOBUTTON GROUP b1,&lt;/P&gt;&lt;P&gt;            p_box_do  RADIOBUTTON GROUP b1 DEFAULT 'X',&lt;/P&gt;&lt;P&gt;            p_box_no  RADIOBUTTON GROUP b1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK bbox.&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;      AT SELECTION-SCREEN ON P_VARI                                 *&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;AT SELECTION-SCREEN ON p_vari.&lt;/P&gt;&lt;P&gt;  PERFORM alv_variant_existence USING    p_vari&lt;/P&gt;&lt;P&gt;                                CHANGING gs_variant.&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;      AT SELECTION-SCREEN ON VALUE REQUEST FOR P_VARI               *&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;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.&lt;/P&gt;&lt;P&gt;  PERFORM alv_variant_f4 CHANGING p_vari&lt;/P&gt;&lt;P&gt;                                  gs_variant.&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;INITIALIZATION                                                       *&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;INITIALIZATION.&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;START-OF-SELECTION                                                   *&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM authority_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM get_control_data.&lt;/P&gt;&lt;P&gt;  PERFORM get_transaction_data.&lt;/P&gt;&lt;P&gt;  PERFORM process_transaction_data.&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;END-OF-SELECTION                                                     *&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM output_data.&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; F   O   R   M   S                                                   *&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;&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;      FORM AUTHORITY_CHECK                                          *&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;      Perform authority checks for the report                       *&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 authority_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! Note: authorisation checks are application-dependent.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! Some common cases are listed below - please select one of them&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! or add new authorisation checks.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! If the report is creating batch input session or using LDB&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! it may be sufficient to use automatic SAP auth.checks.&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;Authorisation for displaying documents in a single company code&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;authority-check object 'F_BKPF_BUK'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       id 'BUKRS' field p_bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       id 'ACTVT' field '03'.&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;LI level="1" type="ul"&gt;&lt;P&gt;  message e001(z9) with 'No authorisation to display documents'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        'in company code' p_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endif.&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;Displaying documents from a list of company codes (select-options)&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;call function 'Y_BUKRS_AUTHORITY_CHECK'&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;        ACTVT     = '03'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        NOMESSAGE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   tables&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        s_bukrs   = s_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                              " AUTHORITY_CHECK&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;      FORM GET_CONTROL_DATA                                         *&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;      Read configuration etc.                                       *&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 get_control_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_CONTROL_DATA&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;      FORM GET_TRANSACTION_DATA                                     *&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;      Read documents etc.                                           *&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 get_transaction_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! Data selection statement below has been generated automatically.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! Please check if it is correct and complete.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! Use table joins or 'SELECT FOR ALL ENTRIES' when selecting data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! from related tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT&lt;/P&gt;&lt;P&gt;            vbeln&lt;/P&gt;&lt;P&gt;            erdat&lt;/P&gt;&lt;P&gt;            erzet&lt;/P&gt;&lt;P&gt;            ernam&lt;/P&gt;&lt;P&gt;   FROM vbak&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE gt_vbak&lt;/P&gt;&lt;P&gt;      .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT gt_vbak[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT&lt;/P&gt;&lt;P&gt;            matnr&lt;/P&gt;&lt;P&gt;   FROM mara&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE gt_mara&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN gt_vbak&lt;/P&gt;&lt;P&gt;      WHERE ernam = gt_vbak-ernam&lt;/P&gt;&lt;P&gt;      .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_TRANSACTION_DATA&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;      FORM PROCESS_TRANSACTION_DATA                                 *&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;      ........                                                      *&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 process_transaction_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_vbak .&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING gt_vbak TO gt_alv1_data .&lt;/P&gt;&lt;P&gt;    APPEND gt_alv1_data .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FREE gt_vbak .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_mara .&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING gt_mara TO gt_alv2_data .&lt;/P&gt;&lt;P&gt;    APPEND gt_alv2_data .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FREE gt_mara .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " PROCESS_TRANSACTION_DATA&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;      FORM OUTPUT_DATA                                              *&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;      ........                                                      *&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 output_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_list_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " OUTPUT_DATA&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;      FORM DISPLAY_RECORD                                           *&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;      Display object associated with the current ALV line           *&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 display_record USING is_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE gt_alv1_data INDEX is_selfield-tabindex.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! SAMPLE IMPLEMENTATION FOR DISPLAYING FI DOCUMENTS:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SET PARAMETER ID 'BUK' FIELD gt_alv1_data-vbeln.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set parameter id 'BLN' field gt_alv1_data-belnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set parameter id 'GJR' field gt_alv1_data-gjahr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " DISPLAY_RECORD&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;      FORM ALV_LIST_DISPLAY                                         *&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;      Invoke main ALV function to format and show the report        *&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 alv_list_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_layout      TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;        ls_print       TYPE slis_print_alv,&lt;/P&gt;&lt;P&gt;        ls_keyinfo     TYPE slis_keyinfo_alv,&lt;/P&gt;&lt;P&gt;        lt_fieldcat    TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;        lt_exctab      TYPE slis_t_extab,&lt;/P&gt;&lt;P&gt;        lt_sorttab     TYPE slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;        lt_events      TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_init_report_events TABLES   lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_init_report_layout TABLES   lt_fieldcat&lt;/P&gt;&lt;P&gt;                                          lt_exctab&lt;/P&gt;&lt;P&gt;                                          lt_sorttab&lt;/P&gt;&lt;P&gt;                                 CHANGING ls_layout&lt;/P&gt;&lt;P&gt;                                          ls_print&lt;/P&gt;&lt;P&gt;                                          ls_keyinfo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_interface_check        = ' '&lt;/P&gt;&lt;P&gt;      i_callback_program       = sy-cprog&lt;/P&gt;&lt;P&gt;      is_layout                = ls_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat              = lt_fieldcat&lt;/P&gt;&lt;P&gt;      it_excluding             = lt_exctab&lt;/P&gt;&lt;UL&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                  = lt_sorttab&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_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;    I_DEFAULT                = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_save                   = 'A'&lt;/P&gt;&lt;P&gt;      is_variant               = gs_variant&lt;/P&gt;&lt;P&gt;      it_events                = lt_events&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;/UL&gt;&lt;P&gt;      i_tabname_header         = 'GT_ALV1_DATA'&lt;/P&gt;&lt;P&gt;      i_tabname_item           = 'GT_ALV2_DATA'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_STRUCTURE_NAME_HEADER  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_STRUCTURE_NAME_ITEM    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_keyinfo               =  ls_keyinfo&lt;/P&gt;&lt;P&gt;      is_print                 =  ls_print&lt;/P&gt;&lt;UL&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;  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_header          = gt_alv1_data&lt;/P&gt;&lt;P&gt;      t_outtab_item            = gt_alv2_data.&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;ENDFORM.                           " ALV_LIST_DISPLAY&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;      FORM ALV_INIT_REPORT_LAYOUT                                   *&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;      Set up report layout definition for ALV_LIST_DISPLAY          *&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;lt;-- OT_FIELDCAT list of fields                                     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;-- OT_EXCTAB   excluded menu options                              *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;-- OT_SORTTAB  sorting/grouping definition                        *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;-- OS_LAYOUT   global report layout settings                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;-- OS_PRINT    global report printout settings                    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;-- OS_KEYINFO  itab key fields (required only for hier.lists)     *&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 alv_init_report_layout TABLES ot_fieldcat TYPE slis_t_fieldcat_alv&lt;/P&gt;&lt;P&gt;                                   ot_exctab   TYPE slis_t_extab&lt;/P&gt;&lt;P&gt;                                   ot_sorttab  TYPE slis_t_sortinfo_alv&lt;/P&gt;&lt;P&gt;                          CHANGING cs_layout   TYPE slis_layout_alv&lt;/P&gt;&lt;P&gt;                                   cs_print    TYPE slis_print_alv&lt;/P&gt;&lt;P&gt;                                   cs_keyinfo  TYPE slis_keyinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add menu items to be excluded to ot_exctab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REFRESH ot_exctab.&lt;/P&gt;&lt;P&gt;  REFRESH ot_fieldcat.&lt;/P&gt;&lt;P&gt;  REFRESH ot_sorttab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&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;!!! List all ALV data fields for display here:&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;DD-struct  = data dictionary structure name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DD-field   = field of data dictionary structure&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;itab       = internal table for output data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;itab-field = internal table field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;key        = set to 'X' if key field&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sum        = set to 'X' for totals&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;hid        = set to 'X' if field is initially hidden&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;row        = list row number (multi-line list if &amp;gt;1)&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;DD-struct    DD-field     itab         itab-field  key sum hid row&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;------------------------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:&lt;/P&gt;&lt;P&gt; 'VBAK'       'VBELN'      'GT_ALV1_DATA' 'VBELN'     ' ' ' ' ' ' 1 ,&lt;/P&gt;&lt;P&gt; 'VBAK'       'ERDAT'      'GT_ALV1_DATA' 'ERDAT'     ' ' ' ' ' ' 1 ,&lt;/P&gt;&lt;P&gt; 'VBAK'       'ERZET'      'GT_ALV1_DATA' 'ERZET'     ' ' ' ' ' ' 1 ,&lt;/P&gt;&lt;P&gt; 'VBAK'       'ERNAM'      'GT_ALV1_DATA' 'ERNAM'     ' ' ' ' ' ' 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:&lt;/P&gt;&lt;P&gt; 'MARA'       'MATNR'      'GT_ALV2_DATA' 'MATNR'     ' ' ' ' ' ' 1 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&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;!!! List all ALV data fields for sorting/grouping here&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;itab       = internal table for output data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;itab-field = internal table field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;up         = sort ascending&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;down       = sort descending&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;grp        = group by&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;comp       = group initially compressed&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pos        = field position in sort sequence&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;itab                   field              up down grp comp        pos&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;---------------------------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_build_sorttab TABLES ot_sorttab USING:&lt;/P&gt;&lt;P&gt; 'GT_ALV1_DATA'         'VBELN'             'X' ' ' ' ' ' '           1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM alv_build_sorttab TABLES ot_sorttab USING:&lt;/P&gt;&lt;P&gt; 'GT_ALV2_DATA'         'MATNR'             'X' ' ' ' ' ' '           1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! key definition - required only for hierarchical display (2 itabs)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  cs_keyinfo-header01 = 'VBELN' .&lt;/P&gt;&lt;P&gt;  cs_keyinfo-item01   = 'MATNR' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! See the declaration of type SLIS_LAYOUT_ALV and set the fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;!!! of OS_LAYOUT record to change list-level attributes&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;os_layout-no_colhead     = 'X'.         " no headings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  cs_layout-zebra          = 'X'.         " stripped pattern&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-no_vline       = 'X'.         " columns separated by space&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-totals_only    = 'X'.         " show only totals&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-totals_text    = 'Total'.     " totals line label&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-subtotals_text = 'Subtotal'.  " subtotals line label&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-subtotals_text = 'Subtotal'.  " subtotals line label&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-key_hotspot    = 'X'.         " keys as hotspot&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout-expand_all     = 'X'.         " Expand all positions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_layout...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  cs_print-no_print_selinfos = 'X'.       " Skip selection statistics&lt;/P&gt;&lt;P&gt;  cs_print-no_print_listinfos = 'X'.      " Skip list statistics&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;os_print-...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " INIT_REPORT_LAYOUT&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;      FORM ALV_BUILD_FIELDCAT                                       *&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;      Format a single line for ALV_INIT_REPORT_LAYOUT               *&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 alv_build_fieldcat TABLES ot_fieldcat&lt;/P&gt;&lt;P&gt;                        USING  iv_ref_tabname   "ref to a table/field&lt;/P&gt;&lt;P&gt;                               iv_ref_fieldname&lt;/P&gt;&lt;P&gt;                               iv_tabname     "actual table/field name&lt;/P&gt;&lt;P&gt;                               iv_fieldname&lt;/P&gt;&lt;P&gt;                               iv_key&lt;/P&gt;&lt;P&gt;                               iv_do_sum&lt;/P&gt;&lt;P&gt;                               iv_no_out&lt;/P&gt;&lt;P&gt;                               iv_row_pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;status variables for auto-numbering of field column position&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(column number reset when a new table or row begins)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  STATICS: sv_last_tabname TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;           sv_last_row_pos TYPE i,&lt;/P&gt;&lt;P&gt;           sv_current_col  TYPE i.&lt;/P&gt;&lt;P&gt;  IF sv_last_tabname &amp;lt;&amp;gt; iv_tabname OR sv_last_row_pos &amp;lt;&amp;gt; iv_row_pos.&lt;/P&gt;&lt;P&gt;    sv_current_col = 1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    ADD 1 TO sv_current_col.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  sv_last_tabname = iv_tabname.&lt;/P&gt;&lt;P&gt;  sv_last_row_pos = iv_row_pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_fieldcat    TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;  DATA: lv_fieldname   TYPE slis_fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_fieldname = iv_fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&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;!!! List all the special formatting requirements in cases below&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;case lv_fieldname.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  when 'WRBTR'.                      "&amp;lt;-- link with currency required&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-cfieldname = 'WAERS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-ctabname   = iv_tabname.&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;  when 'HKONT'.                     "&amp;lt;-- change default column header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-seltext_s  = 'GL Acc.'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-ddictxt    = 'S'.          " (S)hort (M)iddle (L)ong&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;  when 'SOME_NUMBER'                 "&amp;lt;-- change number formatting&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-nosign     = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-nozero     = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ls_fieldcat-just       = 'L'.         " (L)eft (R)ight (C)enter&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;  ls_fieldcat-ref_tabname   = iv_ref_tabname.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-ref_fieldname = iv_ref_fieldname.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-tabname       = iv_tabname.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-fieldname     = iv_fieldname.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-key           = iv_key.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-do_sum        = iv_do_sum.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-no_out        = iv_no_out.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-row_pos       = iv_row_pos.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-col_pos       = sv_current_col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND ls_fieldcat TO ot_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                          " ALV_BUILD_FIELDCAT&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;      FORM ALV_BUILD_SORTTAB                                        *&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;      Set up sorting information for ALV_INIT_REPORT_LAYOUT         *&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 alv_build_sorttab TABLES ot_sorttab TYPE slis_t_sortinfo_alv&lt;/P&gt;&lt;P&gt;                       USING  iv_tabname   TYPE slis_fieldname&lt;/P&gt;&lt;P&gt;                              iv_fieldname TYPE slis_fieldname&lt;/P&gt;&lt;P&gt;                              iv_up        TYPE c&lt;/P&gt;&lt;P&gt;                              iv_down      TYPE c&lt;/P&gt;&lt;P&gt;                              iv_subtot    TYPE c&lt;/P&gt;&lt;P&gt;                              iv_comp      TYPE c&lt;/P&gt;&lt;P&gt;                              iv_spos      TYPE n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_sorttab-spos      = iv_spos.&lt;/P&gt;&lt;P&gt;  ot_sorttab-fieldname = iv_fieldname.&lt;/P&gt;&lt;P&gt;  ot_sorttab-tabname   = iv_tabname.&lt;/P&gt;&lt;P&gt;  ot_sorttab-up        = iv_up.&lt;/P&gt;&lt;P&gt;  ot_sorttab-down      = iv_down.&lt;/P&gt;&lt;P&gt;  ot_sorttab-subtot    = iv_subtot.&lt;/P&gt;&lt;P&gt;  ot_sorttab-comp      = iv_comp.&lt;/P&gt;&lt;P&gt;  APPEND ot_sorttab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                            " ALV_BUILD_SORTTAB&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;      FORM ALV_INIT_REPORT_EVENTS                                   *&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;      Set up program events for ALV_LIST_DISPLAY                    *&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;lt;-- OT_EVENTS   list of events and associated report subroutines   *&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 alv_init_report_events TABLES ot_events TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR   ot_events.&lt;/P&gt;&lt;P&gt;  REFRESH ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_user_command.&lt;/P&gt;&lt;P&gt;  ot_events-form = 'USER_COMMAND'.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_pf_status_set.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.                         "'PF_STATUS_SET'.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_top_of_list.&lt;/P&gt;&lt;P&gt;  ot_events-form = 'TOP_OF_LIST'.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_end_of_list.&lt;/P&gt;&lt;P&gt;  ot_events-form = 'END_OF_LIST'.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_top_of_page.&lt;/P&gt;&lt;P&gt;  ot_events-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_end_of_page.&lt;/P&gt;&lt;P&gt;  ot_events-form = 'END_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_foreign_top_of_page.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_foreign_end_of_page.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_top_of_coverpage.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_end_of_coverpage.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_before_line_output.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_after_line_output.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_caller_exit_at_start.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_list_modify.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ot_events-name = slis_ev_subtotal_text.&lt;/P&gt;&lt;P&gt;  ot_events-form = ''.&lt;/P&gt;&lt;P&gt;  APPEND ot_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                            " ALV_INIT_REPORT_EVENTS&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;      FORM USER_COMMAND                                             *&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;      Subroutine attached as callback form to ABAP List Viewer      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  --&amp;gt; UCOMM    - user command code passed from ALV                  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  --&amp;gt; SELFIELD - information record describing current line/field   *&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 user_command USING value(iv_ucomm) LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                        is_selfield     TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE iv_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.                                  "ALV record selection&lt;/P&gt;&lt;P&gt;      PERFORM display_record USING is_selfield.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  when ...&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " USER_COMMAND&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;      FORM PF_STATUS_SET                                            *&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;      Subroutine attached as callback form to ABAP List Viewer,     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      allows setting alternative menu.  If necessary:               *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      1. Copy 'STANDARD' menu from SAPLKKBL and modify as required, *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      2. Activate callback                                          *&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 pf_status_set USING it_exctab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set pf-status 'STANDARD' excluding it_exctab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " PF_STATUS_SET&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;      FORM TOP_OF_LIST                                              *&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;      Subroutine attached as callback form to ABAP List Viewer,     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      executed once at the start of list output.                    *&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 top_of_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lv_report LIKE sy-repid.&lt;/P&gt;&lt;P&gt;  lv_report = sy-repid.             "do not pass sy-repid to function!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_box_up = 'X'. "display select options at report start&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        curr_report     = lv_report&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        selection_table = lt_seltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;before display, if necessary&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'RS_LIST_SELECTION_TABLE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            report        = lv_report&lt;/P&gt;&lt;P&gt;            seltext       = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        dyn_range     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            newpage       = ' '&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        screennr      = 1000&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            sel_tab       = lt_seltab&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            sel_tab_empty = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF. "p_box_up = 'X'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " TOP_OF_LIST&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;      FORM END_OF_LIST                                              *&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;      Subroutine attached as callback form to ABAP List Viewer      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      executed once at the end of list output.                      *&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 end_of_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lv_report LIKE sy-repid.&lt;/P&gt;&lt;P&gt;  lv_report = sy-repid.             "do not pass sy-repid to function!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_box_do = 'X'. "display select options at report end&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        curr_report     = lv_report&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        selection_table = lt_seltab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;before display, if necessary&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'RS_LIST_SELECTION_TABLE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            report        = lv_report&lt;/P&gt;&lt;P&gt;            seltext       = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        dyn_range     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            newpage       = ' '&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        screennr      = 1000&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            sel_tab       = lt_seltab&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            sel_tab_empty = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF. "p_box_do = 'X'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " END_OF_LIST&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;      FORM TOP_OF_PAGE                                              *&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;      Subroutine attached as callback form to ABAP List Viewer      *&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 top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;standard Ingram Micro report page heading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: lv_coco_pos TYPE i,          "CurPos of 'Company confidential'&lt;/P&gt;&lt;P&gt;        lv_title_pos TYPE i,           "CurPos of report title&lt;/P&gt;&lt;P&gt;        lv_title(70) TYPE c,           "Truncated report title&lt;/P&gt;&lt;P&gt;        lv_page_pos TYPE i,            "CurPos of page number&lt;/P&gt;&lt;P&gt;        lv_date_pos TYPE i,            "CurPos of date and time&lt;/P&gt;&lt;P&gt;        lv_page_no(10) TYPE c,&lt;/P&gt;&lt;P&gt;        lv_date(25) TYPE c,&lt;/P&gt;&lt;P&gt;        lv_time(20) TYPE c,&lt;/P&gt;&lt;P&gt;        lv_page(10) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We may need to truncate title if the line size is &amp;lt; 81.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-linsz &amp;lt; 81.&lt;/P&gt;&lt;P&gt;    lv_title = sy-title+0(50).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    lv_title = sy-title.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Decide on positioning of text depending on width of page&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_title_pos = ( sy-linsz / 2 ) - ( STRLEN( lv_title ) / 2 ).&lt;/P&gt;&lt;P&gt;  lv_coco_pos = sy-linsz - 20.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  WRITE: / 'Ingram Micro',&lt;/P&gt;&lt;P&gt;           AT lv_title_pos lv_title,&lt;/P&gt;&lt;P&gt;           AT lv_coco_pos 'Company Confidential'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Setup data correctly in the correct format for the display fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_page = sy-pagno.&lt;/P&gt;&lt;P&gt;  SHIFT lv_page LEFT DELETING LEADING ' '.&lt;/P&gt;&lt;P&gt;  CONCATENATE sy-datum&lt;EM&gt;6(2) sy-datum&lt;/EM&gt;4(2) sy-datum+0(4)&lt;/P&gt;&lt;P&gt;               INTO lv_date SEPARATED BY '.'.&lt;/P&gt;&lt;P&gt;  CONCATENATE sy-uzeit&lt;EM&gt;0(2) ':' sy-uzeit&lt;/EM&gt;2(2) INTO lv_time.&lt;/P&gt;&lt;P&gt;  CONCATENATE lv_date lv_time INTO lv_date SEPARATED BY ' '.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'Page' lv_page INTO lv_page_no SEPARATED BY ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Decide on positioning of text depending on width of page.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lv_page_pos = sy-linsz - ( STRLEN( lv_page_no ) ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / lv_date,&lt;/P&gt;&lt;P&gt;           AT lv_page_pos lv_page_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " TOP_OF_PAGE&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;      FORM END_OF_PAGE                                              *&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;      Subroutine attached as callback form to ABAP List Viewer      *&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 end_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " END_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;      Form  ALV_VARIANT_EXISTENCE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;      Reads ALV variant definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_variant_existence  USING    iv_variant LIKE disvariant-variant&lt;/P&gt;&lt;P&gt;                            CHANGING os_variant LIKE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT iv_variant IS INITIAL.&lt;/P&gt;&lt;P&gt;  os_variant-report  = sy-repid.&lt;/P&gt;&lt;P&gt;  os_variant-variant = iv_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF iv_variant CP '/*'.    "user-specific variants begin with slash&lt;/P&gt;&lt;P&gt;    os_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_save        = 'A'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      cs_variant    = os_variant&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      wrong_input   = 1&lt;/P&gt;&lt;P&gt;      not_found     = 2&lt;/P&gt;&lt;P&gt;      program_error = 3&lt;/P&gt;&lt;P&gt;      OTHERS        = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e001(z9) WITH 'Please select a valid display variant.'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " ALV_VARIANT_EXISTENCE&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;      FORM ALV_VARIANT_F4                                           *&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;      Display list of layout variants on report 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;FORM alv_variant_f4  CHANGING cv_varname  LIKE disvariant-variant&lt;/P&gt;&lt;P&gt;                              cs_variant  LIKE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_exit(1) TYPE c.&lt;/P&gt;&lt;P&gt;  cs_variant-report = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            is_variant          = cs_variant&lt;/P&gt;&lt;P&gt;            i_save              = 'A'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          it_default_fieldcat =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            e_exit              = lv_exit&lt;/P&gt;&lt;P&gt;            es_variant          = cs_variant&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF lv_exit = space.&lt;/P&gt;&lt;P&gt;      cv_varname = cs_variant-variant.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see form  user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Ruchika&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:21:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376480#M526995</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:21:04Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376481#M526996</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I did the  modification to your program ... just cut and paste  it will work ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[code]REPORT Z_VENDOR_BACKORDER_REPORT_ALV .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: EKKO, LFA1, MAKT, EKET, EKPO, AFPO, MARC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Data Declaration&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB OCCURS 0 ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ebeln LIKE ekko-ebeln , " PO number&lt;/P&gt;&lt;P&gt;aedat LIKE ekko-aedat , " creation date&lt;/P&gt;&lt;P&gt;ebelp LIKE ekpo-ebelp , " item no&lt;/P&gt;&lt;P&gt;lifnr LIKE ekko-lifnr , " vendor number&lt;/P&gt;&lt;P&gt;name1 LIKE lfa1-name1 , " vendor name&lt;/P&gt;&lt;P&gt;RESWK LIKE EKKO-RESWK , " PLANT NO&lt;/P&gt;&lt;P&gt;MEMORY LIKE EKKO-MEMORY , " ORDER INCOMPLETE&lt;/P&gt;&lt;P&gt;matnr LIKE ekpo-matnr , " material number&lt;/P&gt;&lt;P&gt;werks like ekpo-werks , " plant&lt;/P&gt;&lt;P&gt;txz01 LIKE ekpo-txz01 , " material description&lt;/P&gt;&lt;P&gt;eindt LIKE eket-eindt , " Promised date&lt;/P&gt;&lt;P&gt;menge LIKE eket-menge , " quantity&lt;/P&gt;&lt;P&gt;wemng LIKE eket-wemng , " delivered quantity&lt;/P&gt;&lt;P&gt;netpr like ekpo-netpr , " value in AUD&lt;/P&gt;&lt;P&gt;peinh like ekpo-peinh , " price unit&lt;/P&gt;&lt;P&gt;banfn like ekpo-banfn , " PR no&lt;/P&gt;&lt;P&gt;aufnr like ebkn-aufnr , " Production order no&lt;/P&gt;&lt;P&gt;MAABC LIKE MARC-MAABC , " MATERIAL ABC Indicator&lt;/P&gt;&lt;P&gt;maktx like makt-maktx , " material long description&lt;/P&gt;&lt;P&gt;open_quant type p decimals 2, " quantity - delivered&lt;/P&gt;&lt;P&gt;VALUE TYPE p decimals 2, " $ VALUE * OPEN QUANTITY&lt;/P&gt;&lt;P&gt;end of ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: wa_ekko LIKE  itab.&lt;/P&gt;&lt;P&gt;DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: TEMP TYPE EKKO-LIFNR.&lt;/P&gt;&lt;P&gt;data: opt like CTU_PARAMS.&lt;/P&gt;&lt;P&gt;*DATA: WA TYPE FINAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;all ALV declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------" /&gt;&lt;P&gt;type-pools: slis. "ALV Declarations&lt;/P&gt;&lt;P&gt;DATA: fieldcatalog TYPE slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;G_REPID TYPE SY-REPID,&lt;/P&gt;&lt;P&gt;GS_PRINT TYPE SLIS_PRINT_ALV,&lt;/P&gt;&lt;P&gt;GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,&lt;/P&gt;&lt;P&gt;GT_EVENTS TYPE SLIS_T_EVENT,&lt;/P&gt;&lt;P&gt;GT_SORT TYPE SLIS_T_SORTINFO_ALV,&lt;/P&gt;&lt;P&gt;GS_LAYOUT TYPE SLIS_LAYOUT_ALV,&lt;/P&gt;&lt;P&gt;COL_POS TYPE I.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------&lt;DEL&gt;-SELECTION SCREEN&lt;/DEL&gt;----------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;selection-screen begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options VENDORNO for ekko-lifnr.&lt;/P&gt;&lt;P&gt;select-options MATERIAL for ekpo-matnr.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS PLANT FOR EKKO-RESWK.&lt;/P&gt;&lt;P&gt;select-options REQDAT for eket-eindt.&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*................... GET DATA..................&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;PERFORM GATHER_DATA.&lt;/P&gt;&lt;P&gt;perform display_alv_report.&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;form gather_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT EKKO~EBELN&lt;/P&gt;&lt;P&gt;EKKO~AEDAT&lt;/P&gt;&lt;P&gt;EKKO~LIFNR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EKKO~MEMORY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EKKO~RESWK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;EKPO~EBELP&lt;/P&gt;&lt;P&gt;EKPO~MATNR&lt;/P&gt;&lt;P&gt;ekpo~werks&lt;/P&gt;&lt;P&gt;ekpo~netpr&lt;/P&gt;&lt;P&gt;ekpo~peinh&lt;/P&gt;&lt;P&gt;ekpo~banfn&lt;/P&gt;&lt;P&gt;ekpo~txz01&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;makt~maktx&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;EKET~EINDT&lt;/P&gt;&lt;P&gt;EKET~MENGE&lt;/P&gt;&lt;P&gt;EKET~WEMNG&lt;/P&gt;&lt;P&gt;LFA1~NAME1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INTO corresponding fields of ITAB&lt;/P&gt;&lt;P&gt;FROM (&lt;/P&gt;&lt;P&gt;EKKO inner JOIN EKPO&lt;/P&gt;&lt;P&gt;ON EKKO&lt;SUB&gt;EBELN = EKPO&lt;/SUB&gt;EBELN&lt;/P&gt;&lt;P&gt;inner JOIN EKET&lt;/P&gt;&lt;P&gt;ON EKPO&lt;SUB&gt;EBELN = EKET&lt;/SUB&gt;EBELN&lt;/P&gt;&lt;P&gt;AND EKPO&lt;SUB&gt;EBELP = EKET&lt;/SUB&gt;EBELP&lt;/P&gt;&lt;P&gt;inner JOIN LFA1&lt;/P&gt;&lt;P&gt;ON EKKO&lt;SUB&gt;LIFNR = LFA1&lt;/SUB&gt;LIFNR&lt;/P&gt;&lt;P&gt;*left outer join makt&lt;/P&gt;&lt;P&gt;*on ekpo&lt;SUB&gt;matnr = makt&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;WHERE EKKO~LIFNR IN VENDORNO&lt;/P&gt;&lt;P&gt;AND EKKO~RESWK IN PLANT&lt;/P&gt;&lt;P&gt;and EKPO~MATNR IN MATERIAL&lt;/P&gt;&lt;P&gt;and ekpo~elikz eq ' '&lt;/P&gt;&lt;P&gt;and ekpo~loekz ne 'L'&lt;/P&gt;&lt;P&gt;and eket~eindt in REQDAT.&lt;/P&gt;&lt;P&gt;append itab.&lt;/P&gt;&lt;P&gt;CLEAR ITAB.&lt;/P&gt;&lt;P&gt;endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab by lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ITAB-OPEN_QUANT = ITAB-MENGE - ITAB-WEMNG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if itab-matnr eq ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single aufnr from ebkn into itab-aufnr where banfn = itab-banfn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single matnr from afpo into itab-matnr where aufnr = itab-aufnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single maktx from makt into itab-maktx where matnr = itab-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single maabc from MARC INTO ITAB-MAABC WHERE MATNR = ITAB-MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ITAB-VALUE = ITAB-NETPR * ITAB-OPEN_QUANT / itab-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&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;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'vendor no'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 1.&lt;/P&gt;&lt;P&gt;fieldcatalog-outputlen = 15.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-emphasize = 'X'.&lt;/P&gt;&lt;P&gt;fieldcatalog-key = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fieldcatalog-do_sum = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;fieldcatalog-no_zero = 'X'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'po Number'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 2.&lt;/P&gt;&lt;P&gt;fieldcatalog-outputlen   = 10  .&lt;/P&gt;&lt;P&gt;*fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;fieldcatalog-emphasize = 'X'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'AEDAT'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'po date'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 3.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'item number'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 4.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;fieldcatalog-no_zero = 'X'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'material number'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 5.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'MAABC'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'material type'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 6.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'TXZ01'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'short text'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 7.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'long text'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 8.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;fieldcatalog-outputlen = 15.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'EINDT'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'date promised'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 9.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'Quantity'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 10.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;fieldcatalog-outputlen = 15.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'WEMNG'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'Delivered'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 11.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'OPEN_QUANT'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = 'Open quantity'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 12.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fieldcatalog-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;fieldcatalog-fieldname = 'VALUE'.&lt;/P&gt;&lt;P&gt;fieldcatalog-seltext_m = '$ value'.&lt;/P&gt;&lt;P&gt;fieldcatalog-col_pos = 13.&lt;/P&gt;&lt;P&gt;fieldcatalog-inttype = 'C'.&lt;/P&gt;&lt;P&gt;fieldcatalog-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;clear fieldcatalog.&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;HR originaltext="-------------------------------------------------------------------------------------" /&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;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form display_alv_report.&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_callback_program      = g_repid&lt;/P&gt;&lt;P&gt;            i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM&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_grid_title           = outtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            is_layout               = gs_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat             = fieldcatalog[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           it_special_groups       = gd_tabgroup&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            it_events               = gt_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           is_print                = gd_prntparams&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            i_save                  = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           is_variant              = z_template&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                = itAB&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            program_error           = 1&lt;/P&gt;&lt;P&gt;            others                  = 2.&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;endform.                    " DISPLAY_ALV_REPORT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check function code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check field clicked on within ALVgrid report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF rs_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Read data table, using index of row user clicked on&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      READ TABLE ITAB INTO wa_ekko INDEX rs_selfield-tabindex.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Set parameter ID for transaction screen field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Sxecute transaction ME23N, and skip initial data entry screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.[/code]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points if it is usefull ..&lt;/P&gt;&lt;P&gt;Girish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:28:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376481#M526996</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:28:04Z</dc:date>
    </item>
    <item>
      <title>Re: alv : drill down not working.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376482#M526997</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are the man Girish !  Thanks a lot ! You get 10 on 10 !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hrishi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:35:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-drill-down-not-working/m-p/2376482#M526997</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:35:53Z</dc:date>
    </item>
  </channel>
</rss>

