<?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: Regarding alv in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462604#M552673</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 this code.&lt;/P&gt;&lt;P&gt;Here you have a good example of coloring rows, columns and specific cells in alvs. It comes in an example of how to use hashed tables.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For coloured rows and cols check gp_bymat&lt;/P&gt;&lt;P&gt;for coloured specific rows uncheck gp_bymat. &lt;/P&gt;&lt;P&gt;HTH.&lt;/P&gt;&lt;P&gt;Horacio&lt;/P&gt;&lt;P&gt;ps: code:&lt;/P&gt;&lt;P&gt;report zuseofhashedtables.&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Program: ZUseOfHashedTables                                        **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Author: Horacio Zapettini                                          **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Versions: 4.6b - 4.6c                                              **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Notes:                                                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    this program shows how we can use hashed tables to improve     **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    the responce time.                                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    It shows,                                                      **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       1. how to declare hashed tables                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       2. a cache-like technique to improve access to master data  **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       3. how to collect data using hashed tables                  **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       4. how to avoid deletions of unwanted data                  **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Results: the test we run read about 31000 rows from mkpf, 150000   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         rows from mseg, 500 rows from makt and 400 from lfa1.     **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         it filled ht_lst with 24500 rows and displayed them in    **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         alv grid format.                                          **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         It took about 65 secodns to perform this task (first time **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         we run it when all the db buffers are empty.              **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         The same program with standard tables needed 140 seconds  **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         to run with the same recordset and with buffers filled in **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         A simmilar test over more than a million rows&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Objetive: show a list that consists of  all the material movements **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         '101' - '901' for a certain range of dates in mkpf-budat. **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;the columns to be displayed are:                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mkpf-budat,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mkpf-mblnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-lifnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         lfa1-name1,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mkpf-xblnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-zeile                                                **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-charg,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-matnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         makt-maktx,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-erfmg,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-erfme.                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;or show a sumary list by matnr - menge                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;You'll have to create a pf-status called vista -                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;See form set_pf_status for details                                 **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;tables used -&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;tables: mkpf,&lt;/P&gt;&lt;P&gt;        mseg,&lt;/P&gt;&lt;P&gt;        lfa1,&lt;/P&gt;&lt;P&gt;        makt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;global hashed tables used&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data: begin of wa_mkpf, "header&lt;/P&gt;&lt;P&gt;      mblnr like mkpf-mblnr,&lt;/P&gt;&lt;P&gt;      mjahr like mkpf-mjahr,&lt;/P&gt;&lt;P&gt;      budat like mkpf-budat,&lt;/P&gt;&lt;P&gt;      xblnr like mkpf-xblnr,&lt;/P&gt;&lt;P&gt;      end of wa_mkpf.&lt;/P&gt;&lt;P&gt;data: ht_mkpf like hashed table of wa_mkpf&lt;/P&gt;&lt;P&gt;      with unique key mblnr mjahr&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;data: st_mkpf like standard table of wa_mkpf&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data: begin of wa_mseg, " line items&lt;/P&gt;&lt;P&gt;      mblnr like mseg-mblnr,&lt;/P&gt;&lt;P&gt;      mjahr like mseg-mjahr,&lt;/P&gt;&lt;P&gt;      zeile like mseg-zeile,&lt;/P&gt;&lt;P&gt;      bwart like mseg-bwart,&lt;/P&gt;&lt;P&gt;      charg like mseg-charg,&lt;/P&gt;&lt;P&gt;      matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;      lifnr like mseg-lifnr,&lt;/P&gt;&lt;P&gt;      erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;      erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;      end of wa_mseg.&lt;/P&gt;&lt;P&gt;data ht_mseg like hashed table of wa_mseg&lt;/P&gt;&lt;P&gt;      with unique key mblnr mjahr zeile&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;data st_mseg like standard table of wa_mseg&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;cache structure for lfa1 records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_lfa1,&lt;/P&gt;&lt;P&gt;      lifnr like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;      name1 like lfa1-name1,&lt;/P&gt;&lt;P&gt;      end of wa_lfa1.&lt;/P&gt;&lt;P&gt;data ht_lfa1 like hashed table of wa_lfa1&lt;/P&gt;&lt;P&gt;      with unique key lifnr&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;cache structure for material related data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_material,&lt;/P&gt;&lt;P&gt;      matnr like makt-matnr,&lt;/P&gt;&lt;P&gt;      maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;      end of wa_material.&lt;/P&gt;&lt;P&gt;data: ht_material like hashed table of wa_material&lt;/P&gt;&lt;P&gt;        with unique key matnr&lt;/P&gt;&lt;P&gt;        with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;result table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_lst, "&lt;/P&gt;&lt;P&gt;      budat like mkpf-budat,&lt;/P&gt;&lt;P&gt;      mblnr like mseg-mblnr,&lt;/P&gt;&lt;P&gt;      lifnr like mseg-lifnr,&lt;/P&gt;&lt;P&gt;      name1 like lfa1-name1,    &lt;/P&gt;&lt;P&gt;      xblnr like mkpf-xblnr,&lt;/P&gt;&lt;P&gt;      zeile like mseg-zeile,&lt;/P&gt;&lt;P&gt;      charg like mseg-charg,&lt;/P&gt;&lt;P&gt;      matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;      maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;      erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;      erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;      mjahr like mseg-mjahr,&lt;/P&gt;&lt;P&gt;      end of wa_lst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ht_lst like hashed table of wa_lst&lt;/P&gt;&lt;P&gt;        with unique key mblnr mjahr zeile&lt;/P&gt;&lt;P&gt;        with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of wa_lst1, " sumary by material&lt;/P&gt;&lt;P&gt;      matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;      maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;      erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;      erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;      color_line(4) TYPE c,           " Line color&lt;/P&gt;&lt;P&gt;      color_cell    TYPE lvc_t_scol,  " Cell color&lt;/P&gt;&lt;P&gt;      celltab type LVC_T_STYL,&lt;/P&gt;&lt;P&gt;      end of wa_lst1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ht_lst1 like hashed table of wa_lst1&lt;/P&gt;&lt;P&gt;        with unique key matnr&lt;/P&gt;&lt;P&gt;        with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;structures for alv grid display.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;itabs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_lst            like standard table of wa_lst with header line,&lt;/P&gt;&lt;P&gt;      it_fieldcat_lst   type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;      it_sort_lst       type slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      it_lst1           like standard table of wa_lst1 with header line,&lt;/P&gt;&lt;P&gt;      it_fieldcat_lst1  type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;      it_sort_lst1      type slis_t_sortinfo_alv.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: wa_sort         type slis_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      ls_layout       type slis_layout_alv.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;color management.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;DATA  : wa_color    TYPE lvc_s_scol.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for color management.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : it_color    TYPE TABLE          OF lvc_s_scol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;itab for input enabling.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: lt_celltab TYPE lvc_t_styl. "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;global varialbes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_lines type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_repid like sy-repid,&lt;/P&gt;&lt;P&gt;      ok_code       like sy-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;selection-screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"text: Dates:&lt;/P&gt;&lt;P&gt;select-options: so_budat for mkpf-budat default sy-datum.&lt;/P&gt;&lt;P&gt;"text: Material numbers.&lt;/P&gt;&lt;P&gt;select-options: so_matnr for mseg-matnr.&lt;/P&gt;&lt;P&gt;selection-screen uline.&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt;"Text: show summary by material.&lt;/P&gt;&lt;P&gt;parameters: gp_bymat as checkbox default ''.&lt;/P&gt;&lt;P&gt;parameters: gp_hier  as checkbox default 'X'.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get_data.&lt;/P&gt;&lt;P&gt;  perform show_data.&lt;/P&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;&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 get_data                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form get_data.&lt;/P&gt;&lt;P&gt;        select mblnr mjahr budat xblnr&lt;/P&gt;&lt;P&gt;            into table ht_mkpf&lt;/P&gt;&lt;P&gt;           from mkpf&lt;/P&gt;&lt;P&gt;          where budat in so_budat. " make use of std index.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;have we retrieved data from mkpf?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  describe table ht_mkpf lines g_lines.&lt;/P&gt;&lt;P&gt;  if g_lines &amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if true then retrieve all related records from mseg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Doing this way we make sure that the access is by primary key&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;of mseg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;The reason is that is faster to filter them in memory&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;than to allow the db server to do it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    select mblnr mjahr zeile bwart charg&lt;/P&gt;&lt;P&gt;             matnr lifnr erfmg erfme&lt;/P&gt;&lt;P&gt;      into table ht_mseg&lt;/P&gt;&lt;P&gt;      from mseg&lt;/P&gt;&lt;P&gt;        for all entries in ht_mkpf&lt;/P&gt;&lt;P&gt;     where mblnr = ht_mkpf-mblnr&lt;/P&gt;&lt;P&gt;       and mjahr = ht_mkpf-mjahr.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;fill t_lst or t_lst1 according to user's choice.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  if gp_bymat = ' '.&lt;/P&gt;&lt;P&gt;    perform fill_ht_lst.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    perform fill_ht_lst1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_ht_lst.&lt;/P&gt;&lt;P&gt;  refresh ht_lst.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Example: how to discard unwanted data in an efficient way.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  loop at ht_mseg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  filter unwanted data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.&lt;/P&gt;&lt;P&gt;    check ht_mseg-matnr in so_matnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  read header line.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    read table ht_mkpf with table key mblnr = ht_mseg-mblnr&lt;/P&gt;&lt;P&gt;    mjahr = ht_mseg-mjahr.&lt;/P&gt;&lt;P&gt;    clear ht_lst.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; * note : this may be faster if you specify field by field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    move-corresponding ht_mkpf to ht_lst.&lt;/P&gt;&lt;P&gt;    move-corresponding ht_mseg to ht_lst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform read_lfa1 using ht_mseg-lifnr changing ht_lst-name1.&lt;/P&gt;&lt;P&gt;    perform read_material using ht_mseg-matnr changing ht_lst-maktx.&lt;/P&gt;&lt;P&gt;    insert table ht_lst.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_ht_lst1.&lt;/P&gt;&lt;P&gt;data: colorear.&lt;/P&gt;&lt;P&gt;  refresh ht_lst1.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Example: how to discard unwanted data in an efficient way.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         hot to simulate a collect in a faster way&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  loop at ht_mseg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  filter unwanted data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.&lt;/P&gt;&lt;P&gt;    check ht_mseg-matnr in so_matnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; * note : this may be faster if you specify field by field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table ht_lst1 with table key matnr = ht_mseg-matnr&lt;/P&gt;&lt;P&gt;    transporting erfmg.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0. " if matnr doesn't exist in sumary table&lt;/P&gt;&lt;P&gt;    " insert a new record&lt;/P&gt;&lt;P&gt;      clear ht_lst1.&lt;/P&gt;&lt;P&gt;      ht_lst1-matnr = ht_mseg-matnr.&lt;/P&gt;&lt;P&gt;      perform read_material using ht_mseg-matnr changing ht_lst1-maktx.&lt;/P&gt;&lt;P&gt;      ht_lst1-erfmg = ht_mseg-erfmg.&lt;/P&gt;&lt;P&gt;      ht_lst1-erfme = ht_mseg-erfme.&lt;/P&gt;&lt;P&gt;      if colorear = ''.&lt;/P&gt;&lt;P&gt;        colorear = 'X'.&lt;/P&gt;&lt;P&gt;        refresh it_color.&lt;/P&gt;&lt;P&gt;        ht_lst1-color_cell[] = it_color[].&lt;/P&gt;&lt;P&gt;        MOVE 'C410' TO ht_lst1-color_line.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        colorear = ' '.&lt;/P&gt;&lt;P&gt;        refresh it_color. clear it_color.&lt;/P&gt;&lt;P&gt;        MOVE 'MATNR' TO wa_color-fname.&lt;/P&gt;&lt;P&gt;        MOVE '6'         TO wa_color-color-col.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-int.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-inv.&lt;/P&gt;&lt;P&gt;        APPEND wa_color TO it_color.&lt;/P&gt;&lt;P&gt;        MOVE 'MAKTX' TO wa_color-fname.&lt;/P&gt;&lt;P&gt;        MOVE '3'         TO wa_color-color-col.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-int.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-inv.&lt;/P&gt;&lt;P&gt;        APPEND wa_color TO it_color.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE 'ERFMG' TO wa_color-fname.&lt;/P&gt;&lt;P&gt;        MOVE '5'         TO wa_color-color-col.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-int.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-inv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_color TO it_color.&lt;/P&gt;&lt;P&gt;        ht_lst1-color_cell[] = it_color[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        clear ht_lst1-color_line.&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;      insert table ht_lst1.&lt;/P&gt;&lt;P&gt;    else." a record was found.&lt;/P&gt;&lt;P&gt;    " collect erfmg.  To do so, fill in the unique key and add&lt;/P&gt;&lt;P&gt;    " the numeric fields.&lt;/P&gt;&lt;P&gt;      ht_lst1-matnr = ht_mseg-matnr.&lt;/P&gt;&lt;P&gt;      add ht_mseg-erfmg to ht_lst1-erfmg.&lt;/P&gt;&lt;P&gt;      modify table ht_lst1 transporting erfmg.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;implementation of cache for lfa1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;form read_lfa1 using p_lifnr changing p_name1.&lt;/P&gt;&lt;P&gt;        read table ht_lfa1 with table key lifnr = p_lifnr&lt;/P&gt;&lt;P&gt;        transporting name1.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    clear ht_lfa1.&lt;/P&gt;&lt;P&gt;    ht_lfa1-lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;    select single name1&lt;/P&gt;&lt;P&gt;       into ht_lfa1-name1&lt;/P&gt;&lt;P&gt;      from lfa1&lt;/P&gt;&lt;P&gt;    where lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0. ht_lfa1-name1 = 'n/a in lfa1'. endif.&lt;/P&gt;&lt;P&gt;    insert table ht_lfa1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  p_name1 = ht_lfa1-name1.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;implementation of cache for material data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;form read_material using p_matnr changing p_maktx.&lt;/P&gt;&lt;P&gt;  read table ht_material with table key matnr = p_matnr&lt;/P&gt;&lt;P&gt;  transporting maktx.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    ht_material-matnr = p_matnr.&lt;/P&gt;&lt;P&gt;    select single maktx into  ht_material-maktx&lt;/P&gt;&lt;P&gt;      from makt&lt;/P&gt;&lt;P&gt;     where spras = sy-langu&lt;/P&gt;&lt;P&gt;       and matnr = p_matnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0. ht_material-maktx = 'n/a in makt'. endif.&lt;/P&gt;&lt;P&gt;    insert table ht_material.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  p_maktx = ht_material-maktx.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form show_data.&lt;/P&gt;&lt;P&gt;  if gp_hier = 'X'. "no anda.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform show_hierarchicalALV.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    if gp_bymat = ' '.&lt;/P&gt;&lt;P&gt;      perform show_ht_lst.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      perform show_ht_lst1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form show_hierarchicalALV.&lt;/P&gt;&lt;P&gt;st_mkpf[] = ht_mkpf[].&lt;/P&gt;&lt;P&gt;st_mseg[] = ht_mseg[].&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'&lt;/P&gt;&lt;UL&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;  I_INTERFACE_CHECK              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_PROGRAM             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_PF_STATUS_SET       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_USER_COMMAND        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_LAYOUT                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_FIELDCAT                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCLUDING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SPECIAL_GROUPS              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SORT                        =&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;  I_SAVE                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_VARIANT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENTS                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENT_EXIT                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   i_tabname_header               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   i_tabname_item                 =&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;   is_keyinfo                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_PRINT                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_REPREP_ID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BUFFER_ACTIVE                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BYPASSING_BUFFER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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                = st_mkpf&lt;/P&gt;&lt;P&gt;    t_outtab_item                  = st_mseg&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                         = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form show_ht_lst.&lt;/P&gt;&lt;P&gt;  "needed because the FM can't use a hashed table.&lt;/P&gt;&lt;P&gt;  it_lst[] = ht_lst[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout using 'full display'&lt;/P&gt;&lt;P&gt;                       changing ls_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_columns_lst.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform sort_lst.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_pf_status_set = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;            is_layout                = ls_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat              = it_fieldcat_lst[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           it_sort                  = it_sort_lst&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                 = it_lst&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;P&gt;form show_ht_lst1.&lt;/P&gt;&lt;P&gt;  "needed because the FM can't use a hashed table.&lt;/P&gt;&lt;P&gt;  it_lst1[] = ht_lst1[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout using 'Sumary by matnr'&lt;/P&gt;&lt;P&gt;                       changing ls_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_columns_lst1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform sort_lst.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_pf_status_set = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;            is_layout                = ls_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat              = it_fieldcat_lst1[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           it_sort                  = it_sort_lst&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                 = it_lst1&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;P&gt;&lt;/P&gt;&lt;P&gt;form fill_layout using p_window_titlebar&lt;/P&gt;&lt;P&gt;               changing cs_layo type slis_layout_alv.&lt;/P&gt;&lt;P&gt;  clear cs_layo.&lt;/P&gt;&lt;P&gt;  cs_layo-window_titlebar        = p_window_titlebar.&lt;/P&gt;&lt;P&gt;  cs_layo-edit                   = 'X'.&lt;/P&gt;&lt;P&gt;  cs_layo-edit_mode              = space.&lt;/P&gt;&lt;P&gt;  MOVE 'COLOR_LINE' TO cs_layo-info_fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field that identify cell color in inetrnal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE 'COLOR_CELL' TO cs_layo-coltab_fieldname.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; move 'CELLTAB' TO cs_layo-stylefname.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " armar_layout_stock&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form set_pf_status using rt_extab type slis_t_extab.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;create a new status&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;and then select extras -&amp;gt; adjust template -&amp;gt; listviewer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  set pf-status 'VISTA'.&lt;/P&gt;&lt;P&gt;endform.        "set_pf_status&lt;/P&gt;&lt;P&gt;define add_lst.&lt;/P&gt;&lt;P&gt;  clear it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-fieldname     = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-outputlen     = &amp;amp;2.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-ddictxt       = 'L'.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-seltext_l       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  if &amp;amp;1 = 'MATNR'.&lt;/P&gt;&lt;P&gt;    it_fieldcat_lst-emphasize = 'C111'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  append it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;define add_lst1.&lt;/P&gt;&lt;P&gt;  clear it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-fieldname     = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-outputlen     = &amp;amp;2.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-ddictxt       = 'L'.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-seltext_l       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  append it_fieldcat_lst1.&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_columns_lst.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set columns for output.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  add_lst 'BUDAT' 10.&lt;/P&gt;&lt;P&gt;  add_lst   'MBLNR' 10.&lt;/P&gt;&lt;P&gt;  add_lst  'LIFNR' 10.&lt;/P&gt;&lt;P&gt;  add_lst  'NAME1' 35.&lt;/P&gt;&lt;P&gt;  add_lst  'XBLNR' 15.&lt;/P&gt;&lt;P&gt;  add_lst    'ZEILE' 5.&lt;/P&gt;&lt;P&gt;  add_lst    'CHARG' 10.&lt;/P&gt;&lt;P&gt;  add_lst   'MATNR' 18.&lt;/P&gt;&lt;P&gt;  add_lst   'MAKTX' 30.&lt;/P&gt;&lt;P&gt;  add_lst   'ERFMG' 17.&lt;/P&gt;&lt;P&gt;  add_lst   'ERFME' 5.&lt;/P&gt;&lt;P&gt;  add_lst   'MJAHR' 4.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form fill_columns_lst1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set columns for output.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh it_fieldcat_lst1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  add_lst1 'MATNR' 18.&lt;/P&gt;&lt;P&gt;  add_lst1 'MAKTX' 30.&lt;/P&gt;&lt;P&gt;  add_lst1 'ERFMG' 17.&lt;/P&gt;&lt;P&gt;  add_lst1 'ERFME' 5..&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Horacio Zapettini&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;Program to Calculate FI Opening Balance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to find the Opening balance for a given period in FI Module for a Particular GL A/c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was calculated opening balance, code is below maybe it will be helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*find period.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_date         = s_budat-low&lt;/P&gt;&lt;P&gt;      i_periv        = i_tab-periv                          "'K4'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_buper        = v_donem&lt;/P&gt;&lt;P&gt;      e_gjahr        = v_gjahr&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      input_false    = 1&lt;/P&gt;&lt;P&gt;      t009_notfound  = 2&lt;/P&gt;&lt;P&gt;      t009b_notfound = 3&lt;/P&gt;&lt;P&gt;      OTHERS         = 4.&lt;/P&gt;&lt;P&gt;*calc opening balance hesabý&lt;/P&gt;&lt;P&gt;  SELECT * FROM knc1 WHERE kunnr = i_tab-kunnr&lt;/P&gt;&lt;P&gt;                     AND bukrs = i_tab-bukrs " s_bukrs&lt;/P&gt;&lt;P&gt;                     AND gjahr EQ v_gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    v_dnm = v_donem.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;opening balance first calc &amp;gt; old year ,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHILE v_dnm &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      v_dnm = v_dnm - 1.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'knc1-um' v_dnm 's' INTO v_field_name_borc.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'knc1-um' v_dnm 'h' INTO v_field_name_alacak.&lt;/P&gt;&lt;P&gt;      ASSIGN (v_field_name_borc) TO  old&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add days which is from selected date-low month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF v_donem &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      v_dnm = v_donem - 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      v_dnm = v_donem.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM t009b WHERE periv = i_tab-periv    "'K4'&lt;/P&gt;&lt;P&gt;                                 AND bdatj = s_budat-low+0(4)&lt;/P&gt;&lt;P&gt;                                 AND poper = v_dnm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t009b-butag = t009b-butag + 1.&lt;/P&gt;&lt;P&gt;    IF s_budat-low+6(2) NE t009b-butag.&lt;/P&gt;&lt;P&gt;      v_date_high = s_budat-low - 1.&lt;/P&gt;&lt;P&gt;      IF v_donem = 1.&lt;/P&gt;&lt;P&gt;        v_date_low = s_budat-low.&lt;/P&gt;&lt;P&gt;        v_date_low+4(4)  = '0101'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE t009b-bdatj t009b-bumon t009b-butag INTO&lt;/P&gt;&lt;P&gt;        v_date_low.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      SELECT *  FROM bsad WHERE bukrs EQ i_tab-bukrs "IN s_bukrs&lt;/P&gt;&lt;P&gt;                            AND kunnr = i_tab-kunnr&lt;/P&gt;&lt;P&gt;                            AND budat BETWEEN v_date_low AND&lt;/P&gt;&lt;P&gt;                            v_date_high&lt;/P&gt;&lt;P&gt;                            AND umskz = space&lt;/P&gt;&lt;P&gt;                            AND blart IN s_blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF bsad-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsad-dmbtr ).&lt;/P&gt;&lt;P&gt;        ELSEIF bsad-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsad-dmbtr   ).&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;      SELECT *  FROM bsid WHERE bukrs EQ i_tab-bukrs "IN s_bukrs&lt;/P&gt;&lt;P&gt;                           AND kunnr = i_tab-kunnr&lt;/P&gt;&lt;P&gt;                           AND budat BETWEEN v_date_low AND&lt;/P&gt;&lt;P&gt;                           v_date_high&lt;/P&gt;&lt;P&gt;                           AND umskz = space&lt;/P&gt;&lt;P&gt;                           AND blart IN s_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             AND gsber IN gsber.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF bsid-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsid-dmbtr   ).&lt;/P&gt;&lt;P&gt;        ELSEIF bsid-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsid-dmbtr   ).&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    "opening balance ( þirket bazlý )z1 degeri&lt;/P&gt;&lt;P&gt;   i_tab-z1 = i_tab-z1 + ( knc1-umsav + i_tab-dmbtr_s - i_tab-dmbtr_h ).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for israel&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    i_tab-dmbtril_s = i_tab-dmbtr_s .&lt;/P&gt;&lt;P&gt;    i_tab-dmbtril_h = i_tab-dmbtr_h .&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward all helpfull answers.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;Jay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 02 Jul 2007 05:07:34 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-02T05:07:34Z</dc:date>
    <item>
      <title>Regarding alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462600#M552669</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All Thanks for Reply&lt;/P&gt;&lt;P&gt;I have Doubt that is I am displaying all the output fields in ALV grid.&lt;/P&gt;&lt;P&gt;And I am calculating Totals for all Costing fields.&lt;/P&gt;&lt;P&gt;My doubt is I want to display Totals Text 'TOTAL' in that totals line.&lt;/P&gt;&lt;P&gt;Please help me out regarding this..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And one more thing is how to add different colors to ALV GRID output fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help me&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regard&lt;/P&gt;&lt;P&gt;Samit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 04:24:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462600#M552669</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T04:24:24Z</dc:date>
    </item>
    <item>
      <title>Re: Regarding alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462601#M552670</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;  Search in the forum before you post.As per the posts in the forum&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. general info on ALV.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=58286" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=58286&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=76490" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=76490&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=20591" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=20591&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=66305" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=66305&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. How do I program double click in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=11601" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=11601&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=23010" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=23010&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. How do I add subtotals (I have problem to add them)...&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=20386" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=20386&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=85191" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=85191&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=88401" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=88401&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=17335" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=17335&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. How to add list heading like top-of-page in ABAP lists?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=58775" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=58775&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=60550" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=60550&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=16629" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=16629&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. How to print page number / total number of pages X/XX in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=29597" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=29597&lt;/A&gt; (no direct solution)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=64320" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=64320&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=44477" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=44477&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;7. How can I set the cell color in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=52107" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=52107&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;8. How do I print a logo/graphics in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=81149" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=81149&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=35498" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=35498&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=5013" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=5013&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;9. How do I create and use input-enabled fields in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=84933" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=84933&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=69878" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=69878&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;10. How can I use ALV for reports that are going to be run in background?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=83243" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=83243&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=19224" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=19224&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;11. How can I display an icon in ALV? (Common requirement is traffic light icon).&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=79424" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=79424&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=24512" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=24512&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;12. How can I display a checkbox in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=88376" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=88376&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=40968" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=40968&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=6919" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=6919&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Bala&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 04:27:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462601#M552670</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T04:27:46Z</dc:date>
    </item>
    <item>
      <title>Re: Regarding alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462602#M552671</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;Did you tried using totals_text in layout?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;totals_text&lt;/P&gt;&lt;P&gt;Value set: SPACE, string(max.60)&lt;/P&gt;&lt;P&gt;     ' ' = the first column in the total record contains an appropriate  number of '&lt;STRONG&gt;'s to indicate the total by default. If the first column is wide enough, the string 'Total' is output after the asterisks. 'string' =  the string passed is output after the total indicated by '&lt;/STRONG&gt;', if the column is wide enough.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_LAYOUT-TOTALS_TEXT = 'Total: '.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 04:39:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462602#M552671</guid>
      <dc:creator>jayanthi_jayaraman</dc:creator>
      <dc:date>2007-07-02T04:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: Regarding alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462603#M552672</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Simple ALV report&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/controls/alvgrid.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/controls/alvgrid.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox" target="test_blank"&gt;http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Please give me general info on ALV.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=58286" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=58286&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=76490" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=76490&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=20591" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=20591&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=66305" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=66305&lt;/A&gt; - this one discusses which way should you use - ABAP Objects calls or simple function modules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. How do I program double click in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=11601" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=11601&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=23010" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=23010&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. How do I add subtotals (I have problem to add them)...&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=20386" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=20386&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=85191" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=85191&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=88401" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=88401&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=17335" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=17335&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. How to add list heading like top-of-page in ABAP lists?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=58775" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=58775&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=60550" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=60550&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=16629" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=16629&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. How to print page number / total number of pages X/XX in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=29597" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=29597&lt;/A&gt; (no direct solution)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=64320" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=64320&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=44477" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=44477&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;7. How can I set the cell color in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=52107" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=52107&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;8. How do I print a logo/graphics in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=81149" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=81149&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=35498" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=35498&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=5013" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=5013&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;9. How do I create and use input-enabled fields in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=84933" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=84933&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=69878" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=69878&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;10. How can I use ALV for reports that are going to be run in background?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=83243" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=83243&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=19224" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=19224&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;11. How can I display an icon in ALV? (Common requirement is traffic light icon).&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=79424" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=79424&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=24512" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=24512&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;12. How can I display a checkbox in ALV?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=88376" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=88376&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=40968" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=40968&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=6919" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=6919&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;13. Top-of-page in ALV&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="147020"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;14. ALV Group Heading&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/fu037.htm" target="test_blank"&gt;http://www.sap-img.com/fu037.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;How to add list heading like top-of-page in ABAP lists?&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=58775" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=58775&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=60550" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=60550&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfans.com/forums/viewtopic.php?t=16629" target="test_blank"&gt;http://www.sapfans.com/forums/viewtopic.php?t=16629&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Go thru these programs they may help u to try on some hands on&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ALV Demo program&lt;/P&gt;&lt;P&gt;BCALV_DEMO_HTML&lt;/P&gt;&lt;P&gt;BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode&lt;/P&gt;&lt;P&gt;BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode&lt;/P&gt;&lt;P&gt;BCALV_GRID_DEMO Simple ALV Control Call Demo Program&lt;/P&gt;&lt;P&gt;BCALV_TREE_DEMO Demo for ALV tree control&lt;/P&gt;&lt;P&gt;BCALV_TREE_SIMPLE_DEMO&lt;/P&gt;&lt;P&gt;BC_ALV_DEMO_HTML_D0100&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if this helps u..&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;Dinesh...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 04:59:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462603#M552672</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T04:59:20Z</dc:date>
    </item>
    <item>
      <title>Re: Regarding alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462604#M552673</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 this code.&lt;/P&gt;&lt;P&gt;Here you have a good example of coloring rows, columns and specific cells in alvs. It comes in an example of how to use hashed tables.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For coloured rows and cols check gp_bymat&lt;/P&gt;&lt;P&gt;for coloured specific rows uncheck gp_bymat. &lt;/P&gt;&lt;P&gt;HTH.&lt;/P&gt;&lt;P&gt;Horacio&lt;/P&gt;&lt;P&gt;ps: code:&lt;/P&gt;&lt;P&gt;report zuseofhashedtables.&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Program: ZUseOfHashedTables                                        **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Author: Horacio Zapettini                                          **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Versions: 4.6b - 4.6c                                              **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Notes:                                                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    this program shows how we can use hashed tables to improve     **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    the responce time.                                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    It shows,                                                      **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       1. how to declare hashed tables                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       2. a cache-like technique to improve access to master data  **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       3. how to collect data using hashed tables                  **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       4. how to avoid deletions of unwanted data                  **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Results: the test we run read about 31000 rows from mkpf, 150000   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         rows from mseg, 500 rows from makt and 400 from lfa1.     **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         it filled ht_lst with 24500 rows and displayed them in    **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         alv grid format.                                          **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         It took about 65 secodns to perform this task (first time **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         we run it when all the db buffers are empty.              **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         The same program with standard tables needed 140 seconds  **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         to run with the same recordset and with buffers filled in **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         A simmilar test over more than a million rows&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Objetive: show a list that consists of  all the material movements **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         '101' - '901' for a certain range of dates in mkpf-budat. **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;the columns to be displayed are:                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mkpf-budat,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mkpf-mblnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-lifnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         lfa1-name1,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mkpf-xblnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-zeile                                                **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-charg,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-matnr,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         makt-maktx,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-erfmg,                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         mseg-erfme.                                               **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;or show a sumary list by matnr - menge                             **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                                                                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;You'll have to create a pf-status called vista -                   **&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;See form set_pf_status for details                                 **&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;tables used -&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;tables: mkpf,&lt;/P&gt;&lt;P&gt;        mseg,&lt;/P&gt;&lt;P&gt;        lfa1,&lt;/P&gt;&lt;P&gt;        makt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;global hashed tables used&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data: begin of wa_mkpf, "header&lt;/P&gt;&lt;P&gt;      mblnr like mkpf-mblnr,&lt;/P&gt;&lt;P&gt;      mjahr like mkpf-mjahr,&lt;/P&gt;&lt;P&gt;      budat like mkpf-budat,&lt;/P&gt;&lt;P&gt;      xblnr like mkpf-xblnr,&lt;/P&gt;&lt;P&gt;      end of wa_mkpf.&lt;/P&gt;&lt;P&gt;data: ht_mkpf like hashed table of wa_mkpf&lt;/P&gt;&lt;P&gt;      with unique key mblnr mjahr&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;data: st_mkpf like standard table of wa_mkpf&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data: begin of wa_mseg, " line items&lt;/P&gt;&lt;P&gt;      mblnr like mseg-mblnr,&lt;/P&gt;&lt;P&gt;      mjahr like mseg-mjahr,&lt;/P&gt;&lt;P&gt;      zeile like mseg-zeile,&lt;/P&gt;&lt;P&gt;      bwart like mseg-bwart,&lt;/P&gt;&lt;P&gt;      charg like mseg-charg,&lt;/P&gt;&lt;P&gt;      matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;      lifnr like mseg-lifnr,&lt;/P&gt;&lt;P&gt;      erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;      erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;      end of wa_mseg.&lt;/P&gt;&lt;P&gt;data ht_mseg like hashed table of wa_mseg&lt;/P&gt;&lt;P&gt;      with unique key mblnr mjahr zeile&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;data st_mseg like standard table of wa_mseg&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;cache structure for lfa1 records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_lfa1,&lt;/P&gt;&lt;P&gt;      lifnr like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;      name1 like lfa1-name1,&lt;/P&gt;&lt;P&gt;      end of wa_lfa1.&lt;/P&gt;&lt;P&gt;data ht_lfa1 like hashed table of wa_lfa1&lt;/P&gt;&lt;P&gt;      with unique key lifnr&lt;/P&gt;&lt;P&gt;      with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;cache structure for material related data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_material,&lt;/P&gt;&lt;P&gt;      matnr like makt-matnr,&lt;/P&gt;&lt;P&gt;      maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;      end of wa_material.&lt;/P&gt;&lt;P&gt;data: ht_material like hashed table of wa_material&lt;/P&gt;&lt;P&gt;        with unique key matnr&lt;/P&gt;&lt;P&gt;        with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;result table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_lst, "&lt;/P&gt;&lt;P&gt;      budat like mkpf-budat,&lt;/P&gt;&lt;P&gt;      mblnr like mseg-mblnr,&lt;/P&gt;&lt;P&gt;      lifnr like mseg-lifnr,&lt;/P&gt;&lt;P&gt;      name1 like lfa1-name1,    &lt;/P&gt;&lt;P&gt;      xblnr like mkpf-xblnr,&lt;/P&gt;&lt;P&gt;      zeile like mseg-zeile,&lt;/P&gt;&lt;P&gt;      charg like mseg-charg,&lt;/P&gt;&lt;P&gt;      matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;      maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;      erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;      erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;      mjahr like mseg-mjahr,&lt;/P&gt;&lt;P&gt;      end of wa_lst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ht_lst like hashed table of wa_lst&lt;/P&gt;&lt;P&gt;        with unique key mblnr mjahr zeile&lt;/P&gt;&lt;P&gt;        with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of wa_lst1, " sumary by material&lt;/P&gt;&lt;P&gt;      matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;      maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;      erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;      erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;      color_line(4) TYPE c,           " Line color&lt;/P&gt;&lt;P&gt;      color_cell    TYPE lvc_t_scol,  " Cell color&lt;/P&gt;&lt;P&gt;      celltab type LVC_T_STYL,&lt;/P&gt;&lt;P&gt;      end of wa_lst1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ht_lst1 like hashed table of wa_lst1&lt;/P&gt;&lt;P&gt;        with unique key matnr&lt;/P&gt;&lt;P&gt;        with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;structures for alv grid display.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;itabs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_lst            like standard table of wa_lst with header line,&lt;/P&gt;&lt;P&gt;      it_fieldcat_lst   type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;      it_sort_lst       type slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      it_lst1           like standard table of wa_lst1 with header line,&lt;/P&gt;&lt;P&gt;      it_fieldcat_lst1  type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;      it_sort_lst1      type slis_t_sortinfo_alv.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;data: wa_sort         type slis_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      ls_layout       type slis_layout_alv.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;color management.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;DATA  : wa_color    TYPE lvc_s_scol.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for color management.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : it_color    TYPE TABLE          OF lvc_s_scol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;itab for input enabling.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: lt_celltab TYPE lvc_t_styl. "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;global varialbes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_lines type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_repid like sy-repid,&lt;/P&gt;&lt;P&gt;      ok_code       like sy-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;selection-screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"text: Dates:&lt;/P&gt;&lt;P&gt;select-options: so_budat for mkpf-budat default sy-datum.&lt;/P&gt;&lt;P&gt;"text: Material numbers.&lt;/P&gt;&lt;P&gt;select-options: so_matnr for mseg-matnr.&lt;/P&gt;&lt;P&gt;selection-screen uline.&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt;"Text: show summary by material.&lt;/P&gt;&lt;P&gt;parameters: gp_bymat as checkbox default ''.&lt;/P&gt;&lt;P&gt;parameters: gp_hier  as checkbox default 'X'.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get_data.&lt;/P&gt;&lt;P&gt;  perform show_data.&lt;/P&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;&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 get_data                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form get_data.&lt;/P&gt;&lt;P&gt;        select mblnr mjahr budat xblnr&lt;/P&gt;&lt;P&gt;            into table ht_mkpf&lt;/P&gt;&lt;P&gt;           from mkpf&lt;/P&gt;&lt;P&gt;          where budat in so_budat. " make use of std index.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;have we retrieved data from mkpf?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  describe table ht_mkpf lines g_lines.&lt;/P&gt;&lt;P&gt;  if g_lines &amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if true then retrieve all related records from mseg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Doing this way we make sure that the access is by primary key&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;of mseg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;The reason is that is faster to filter them in memory&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;than to allow the db server to do it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    select mblnr mjahr zeile bwart charg&lt;/P&gt;&lt;P&gt;             matnr lifnr erfmg erfme&lt;/P&gt;&lt;P&gt;      into table ht_mseg&lt;/P&gt;&lt;P&gt;      from mseg&lt;/P&gt;&lt;P&gt;        for all entries in ht_mkpf&lt;/P&gt;&lt;P&gt;     where mblnr = ht_mkpf-mblnr&lt;/P&gt;&lt;P&gt;       and mjahr = ht_mkpf-mjahr.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;fill t_lst or t_lst1 according to user's choice.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  if gp_bymat = ' '.&lt;/P&gt;&lt;P&gt;    perform fill_ht_lst.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    perform fill_ht_lst1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_ht_lst.&lt;/P&gt;&lt;P&gt;  refresh ht_lst.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Example: how to discard unwanted data in an efficient way.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  loop at ht_mseg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  filter unwanted data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.&lt;/P&gt;&lt;P&gt;    check ht_mseg-matnr in so_matnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  read header line.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    read table ht_mkpf with table key mblnr = ht_mseg-mblnr&lt;/P&gt;&lt;P&gt;    mjahr = ht_mseg-mjahr.&lt;/P&gt;&lt;P&gt;    clear ht_lst.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; * note : this may be faster if you specify field by field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    move-corresponding ht_mkpf to ht_lst.&lt;/P&gt;&lt;P&gt;    move-corresponding ht_mseg to ht_lst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform read_lfa1 using ht_mseg-lifnr changing ht_lst-name1.&lt;/P&gt;&lt;P&gt;    perform read_material using ht_mseg-matnr changing ht_lst-maktx.&lt;/P&gt;&lt;P&gt;    insert table ht_lst.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_ht_lst1.&lt;/P&gt;&lt;P&gt;data: colorear.&lt;/P&gt;&lt;P&gt;  refresh ht_lst1.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Example: how to discard unwanted data in an efficient way.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;         hot to simulate a collect in a faster way&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  loop at ht_mseg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  filter unwanted data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.&lt;/P&gt;&lt;P&gt;    check ht_mseg-matnr in so_matnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; * note : this may be faster if you specify field by field.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table ht_lst1 with table key matnr = ht_mseg-matnr&lt;/P&gt;&lt;P&gt;    transporting erfmg.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0. " if matnr doesn't exist in sumary table&lt;/P&gt;&lt;P&gt;    " insert a new record&lt;/P&gt;&lt;P&gt;      clear ht_lst1.&lt;/P&gt;&lt;P&gt;      ht_lst1-matnr = ht_mseg-matnr.&lt;/P&gt;&lt;P&gt;      perform read_material using ht_mseg-matnr changing ht_lst1-maktx.&lt;/P&gt;&lt;P&gt;      ht_lst1-erfmg = ht_mseg-erfmg.&lt;/P&gt;&lt;P&gt;      ht_lst1-erfme = ht_mseg-erfme.&lt;/P&gt;&lt;P&gt;      if colorear = ''.&lt;/P&gt;&lt;P&gt;        colorear = 'X'.&lt;/P&gt;&lt;P&gt;        refresh it_color.&lt;/P&gt;&lt;P&gt;        ht_lst1-color_cell[] = it_color[].&lt;/P&gt;&lt;P&gt;        MOVE 'C410' TO ht_lst1-color_line.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        colorear = ' '.&lt;/P&gt;&lt;P&gt;        refresh it_color. clear it_color.&lt;/P&gt;&lt;P&gt;        MOVE 'MATNR' TO wa_color-fname.&lt;/P&gt;&lt;P&gt;        MOVE '6'         TO wa_color-color-col.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-int.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-inv.&lt;/P&gt;&lt;P&gt;        APPEND wa_color TO it_color.&lt;/P&gt;&lt;P&gt;        MOVE 'MAKTX' TO wa_color-fname.&lt;/P&gt;&lt;P&gt;        MOVE '3'         TO wa_color-color-col.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-int.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-inv.&lt;/P&gt;&lt;P&gt;        APPEND wa_color TO it_color.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE 'ERFMG' TO wa_color-fname.&lt;/P&gt;&lt;P&gt;        MOVE '5'         TO wa_color-color-col.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-int.&lt;/P&gt;&lt;P&gt;        MOVE '1'         TO wa_color-color-inv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_color TO it_color.&lt;/P&gt;&lt;P&gt;        ht_lst1-color_cell[] = it_color[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        clear ht_lst1-color_line.&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;      insert table ht_lst1.&lt;/P&gt;&lt;P&gt;    else." a record was found.&lt;/P&gt;&lt;P&gt;    " collect erfmg.  To do so, fill in the unique key and add&lt;/P&gt;&lt;P&gt;    " the numeric fields.&lt;/P&gt;&lt;P&gt;      ht_lst1-matnr = ht_mseg-matnr.&lt;/P&gt;&lt;P&gt;      add ht_mseg-erfmg to ht_lst1-erfmg.&lt;/P&gt;&lt;P&gt;      modify table ht_lst1 transporting erfmg.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;implementation of cache for lfa1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;form read_lfa1 using p_lifnr changing p_name1.&lt;/P&gt;&lt;P&gt;        read table ht_lfa1 with table key lifnr = p_lifnr&lt;/P&gt;&lt;P&gt;        transporting name1.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    clear ht_lfa1.&lt;/P&gt;&lt;P&gt;    ht_lfa1-lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;    select single name1&lt;/P&gt;&lt;P&gt;       into ht_lfa1-name1&lt;/P&gt;&lt;P&gt;      from lfa1&lt;/P&gt;&lt;P&gt;    where lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0. ht_lfa1-name1 = 'n/a in lfa1'. endif.&lt;/P&gt;&lt;P&gt;    insert table ht_lfa1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  p_name1 = ht_lfa1-name1.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;implementation of cache for material data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;form read_material using p_matnr changing p_maktx.&lt;/P&gt;&lt;P&gt;  read table ht_material with table key matnr = p_matnr&lt;/P&gt;&lt;P&gt;  transporting maktx.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    ht_material-matnr = p_matnr.&lt;/P&gt;&lt;P&gt;    select single maktx into  ht_material-maktx&lt;/P&gt;&lt;P&gt;      from makt&lt;/P&gt;&lt;P&gt;     where spras = sy-langu&lt;/P&gt;&lt;P&gt;       and matnr = p_matnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0. ht_material-maktx = 'n/a in makt'. endif.&lt;/P&gt;&lt;P&gt;    insert table ht_material.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  p_maktx = ht_material-maktx.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form show_data.&lt;/P&gt;&lt;P&gt;  if gp_hier = 'X'. "no anda.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform show_hierarchicalALV.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    if gp_bymat = ' '.&lt;/P&gt;&lt;P&gt;      perform show_ht_lst.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      perform show_ht_lst1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form show_hierarchicalALV.&lt;/P&gt;&lt;P&gt;st_mkpf[] = ht_mkpf[].&lt;/P&gt;&lt;P&gt;st_mseg[] = ht_mseg[].&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'&lt;/P&gt;&lt;UL&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;  I_INTERFACE_CHECK              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_PROGRAM             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_PF_STATUS_SET       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_USER_COMMAND        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_LAYOUT                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_FIELDCAT                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCLUDING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SPECIAL_GROUPS              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SORT                        =&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;  I_SAVE                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_VARIANT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENTS                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENT_EXIT                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   i_tabname_header               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   i_tabname_item                 =&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;   is_keyinfo                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_PRINT                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_REPREP_ID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BUFFER_ACTIVE                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BYPASSING_BUFFER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;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                = st_mkpf&lt;/P&gt;&lt;P&gt;    t_outtab_item                  = st_mseg&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                         = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form show_ht_lst.&lt;/P&gt;&lt;P&gt;  "needed because the FM can't use a hashed table.&lt;/P&gt;&lt;P&gt;  it_lst[] = ht_lst[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout using 'full display'&lt;/P&gt;&lt;P&gt;                       changing ls_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_columns_lst.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform sort_lst.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_pf_status_set = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;            is_layout                = ls_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat              = it_fieldcat_lst[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           it_sort                  = it_sort_lst&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                 = it_lst&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;P&gt;form show_ht_lst1.&lt;/P&gt;&lt;P&gt;  "needed because the FM can't use a hashed table.&lt;/P&gt;&lt;P&gt;  it_lst1[] = ht_lst1[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout using 'Sumary by matnr'&lt;/P&gt;&lt;P&gt;                       changing ls_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_columns_lst1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform sort_lst.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_pf_status_set = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;            is_layout                = ls_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat              = it_fieldcat_lst1[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           it_sort                  = it_sort_lst&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                 = it_lst1&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;P&gt;&lt;/P&gt;&lt;P&gt;form fill_layout using p_window_titlebar&lt;/P&gt;&lt;P&gt;               changing cs_layo type slis_layout_alv.&lt;/P&gt;&lt;P&gt;  clear cs_layo.&lt;/P&gt;&lt;P&gt;  cs_layo-window_titlebar        = p_window_titlebar.&lt;/P&gt;&lt;P&gt;  cs_layo-edit                   = 'X'.&lt;/P&gt;&lt;P&gt;  cs_layo-edit_mode              = space.&lt;/P&gt;&lt;P&gt;  MOVE 'COLOR_LINE' TO cs_layo-info_fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field that identify cell color in inetrnal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE 'COLOR_CELL' TO cs_layo-coltab_fieldname.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; move 'CELLTAB' TO cs_layo-stylefname.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " armar_layout_stock&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form set_pf_status using rt_extab type slis_t_extab.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;create a new status&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;and then select extras -&amp;gt; adjust template -&amp;gt; listviewer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  set pf-status 'VISTA'.&lt;/P&gt;&lt;P&gt;endform.        "set_pf_status&lt;/P&gt;&lt;P&gt;define add_lst.&lt;/P&gt;&lt;P&gt;  clear it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-fieldname     = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-outputlen     = &amp;amp;2.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-ddictxt       = 'L'.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-seltext_l       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  if &amp;amp;1 = 'MATNR'.&lt;/P&gt;&lt;P&gt;    it_fieldcat_lst-emphasize = 'C111'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  append it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;define add_lst1.&lt;/P&gt;&lt;P&gt;  clear it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-fieldname     = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-outputlen     = &amp;amp;2.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-ddictxt       = 'L'.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-seltext_l       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  it_fieldcat_lst1-seltext_m       = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  append it_fieldcat_lst1.&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_columns_lst.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set columns for output.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh it_fieldcat_lst.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  add_lst 'BUDAT' 10.&lt;/P&gt;&lt;P&gt;  add_lst   'MBLNR' 10.&lt;/P&gt;&lt;P&gt;  add_lst  'LIFNR' 10.&lt;/P&gt;&lt;P&gt;  add_lst  'NAME1' 35.&lt;/P&gt;&lt;P&gt;  add_lst  'XBLNR' 15.&lt;/P&gt;&lt;P&gt;  add_lst    'ZEILE' 5.&lt;/P&gt;&lt;P&gt;  add_lst    'CHARG' 10.&lt;/P&gt;&lt;P&gt;  add_lst   'MATNR' 18.&lt;/P&gt;&lt;P&gt;  add_lst   'MAKTX' 30.&lt;/P&gt;&lt;P&gt;  add_lst   'ERFMG' 17.&lt;/P&gt;&lt;P&gt;  add_lst   'ERFME' 5.&lt;/P&gt;&lt;P&gt;  add_lst   'MJAHR' 4.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;form fill_columns_lst1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set columns for output.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh it_fieldcat_lst1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  add_lst1 'MATNR' 18.&lt;/P&gt;&lt;P&gt;  add_lst1 'MAKTX' 30.&lt;/P&gt;&lt;P&gt;  add_lst1 'ERFMG' 17.&lt;/P&gt;&lt;P&gt;  add_lst1 'ERFME' 5..&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Horacio Zapettini&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;Program to Calculate FI Opening Balance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to find the Opening balance for a given period in FI Module for a Particular GL A/c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was calculated opening balance, code is below maybe it will be helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*find period.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_date         = s_budat-low&lt;/P&gt;&lt;P&gt;      i_periv        = i_tab-periv                          "'K4'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_buper        = v_donem&lt;/P&gt;&lt;P&gt;      e_gjahr        = v_gjahr&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      input_false    = 1&lt;/P&gt;&lt;P&gt;      t009_notfound  = 2&lt;/P&gt;&lt;P&gt;      t009b_notfound = 3&lt;/P&gt;&lt;P&gt;      OTHERS         = 4.&lt;/P&gt;&lt;P&gt;*calc opening balance hesabý&lt;/P&gt;&lt;P&gt;  SELECT * FROM knc1 WHERE kunnr = i_tab-kunnr&lt;/P&gt;&lt;P&gt;                     AND bukrs = i_tab-bukrs " s_bukrs&lt;/P&gt;&lt;P&gt;                     AND gjahr EQ v_gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    v_dnm = v_donem.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;opening balance first calc &amp;gt; old year ,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHILE v_dnm &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      v_dnm = v_dnm - 1.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'knc1-um' v_dnm 's' INTO v_field_name_borc.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'knc1-um' v_dnm 'h' INTO v_field_name_alacak.&lt;/P&gt;&lt;P&gt;      ASSIGN (v_field_name_borc) TO  old&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add days which is from selected date-low month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF v_donem &amp;gt; 1.&lt;/P&gt;&lt;P&gt;      v_dnm = v_donem - 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      v_dnm = v_donem.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM t009b WHERE periv = i_tab-periv    "'K4'&lt;/P&gt;&lt;P&gt;                                 AND bdatj = s_budat-low+0(4)&lt;/P&gt;&lt;P&gt;                                 AND poper = v_dnm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t009b-butag = t009b-butag + 1.&lt;/P&gt;&lt;P&gt;    IF s_budat-low+6(2) NE t009b-butag.&lt;/P&gt;&lt;P&gt;      v_date_high = s_budat-low - 1.&lt;/P&gt;&lt;P&gt;      IF v_donem = 1.&lt;/P&gt;&lt;P&gt;        v_date_low = s_budat-low.&lt;/P&gt;&lt;P&gt;        v_date_low+4(4)  = '0101'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE t009b-bdatj t009b-bumon t009b-butag INTO&lt;/P&gt;&lt;P&gt;        v_date_low.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      SELECT *  FROM bsad WHERE bukrs EQ i_tab-bukrs "IN s_bukrs&lt;/P&gt;&lt;P&gt;                            AND kunnr = i_tab-kunnr&lt;/P&gt;&lt;P&gt;                            AND budat BETWEEN v_date_low AND&lt;/P&gt;&lt;P&gt;                            v_date_high&lt;/P&gt;&lt;P&gt;                            AND umskz = space&lt;/P&gt;&lt;P&gt;                            AND blart IN s_blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF bsad-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsad-dmbtr ).&lt;/P&gt;&lt;P&gt;        ELSEIF bsad-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsad-dmbtr   ).&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;      SELECT *  FROM bsid WHERE bukrs EQ i_tab-bukrs "IN s_bukrs&lt;/P&gt;&lt;P&gt;                           AND kunnr = i_tab-kunnr&lt;/P&gt;&lt;P&gt;                           AND budat BETWEEN v_date_low AND&lt;/P&gt;&lt;P&gt;                           v_date_high&lt;/P&gt;&lt;P&gt;                           AND umskz = space&lt;/P&gt;&lt;P&gt;                           AND blart IN s_blart.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             AND gsber IN gsber.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF bsid-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsid-dmbtr   ).&lt;/P&gt;&lt;P&gt;        ELSEIF bsid-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;          i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsid-dmbtr   ).&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDSELECT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    "opening balance ( þirket bazlý )z1 degeri&lt;/P&gt;&lt;P&gt;   i_tab-z1 = i_tab-z1 + ( knc1-umsav + i_tab-dmbtr_s - i_tab-dmbtr_h ).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for israel&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    i_tab-dmbtril_s = i_tab-dmbtr_s .&lt;/P&gt;&lt;P&gt;    i_tab-dmbtril_h = i_tab-dmbtr_h .&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward all helpfull answers.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;Jay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 05:07:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-alv/m-p/2462604#M552673</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T05:07:34Z</dc:date>
    </item>
  </channel>
</rss>

