<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A Guide For Learning ABAP</title>
	<atom:link href="http://learningabap.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://learningabap.wordpress.com</link>
	<description>Mehmet Avsar's Abap Corner</description>
	<lastBuildDate>Tue, 08 Jul 2008 17:58:00 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='learningabap.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ddd6b17724c89c29f10f466cdebabea6?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>A Guide For Learning ABAP</title>
		<link>http://learningabap.wordpress.com</link>
	</image>
			<item>
		<title>Display Graphics</title>
		<link>http://learningabap.wordpress.com/2008/07/08/display-graphics/</link>
		<comments>http://learningabap.wordpress.com/2008/07/08/display-graphics/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 17:58:00 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=58</guid>
		<description><![CDATA[Sometime we need display graphic objects on our selecction screen, ALV etc. Below code can help us displaying system and user graphics on container.
You can use your SE78 graphics in this program  
P.S. Please refer when you are using my codes in your personal pages. Thanks

 *[*********************************************************************]
*[ Author      : Mehmet Avşar
*[ Location    : @Turkey
*[ Date / Time : 07.07.2008
*[ Add a container on screen named LOGO. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=58&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sometime we need display graphic objects on our selecction screen, ALV etc. Below code can help us displaying system and user graphics on container.</p>
<p>You can use your SE78 graphics in this program <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>P.S. Please refer when you are using my codes in your personal pages. Thanks</p>
<p><span id="more-58"></span></p>
<p><!-- SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FBFBFB; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } --> <span><span class="L1S31">*[*********************************************************************]</span><br />
<span class="L1S31">*[ Author      : Mehmet Avşar</span><br />
<span class="L1S31">*[ Location    : @Turkey</span><br />
<span class="L1S31">*[ Date / Time : 07.07.2008</span></span></p>
<p><span><span class="L1S31">*[ Add a container on screen named LOGO. And set PBO picture PBO at screen flow logic.</span></span><br />
<span> <span class="L1S31">*[ Subject     : Display Graphics on Container</span><br />
<span class="L1S31">*[*********************************************************************]</span></p>
<p><span class="L1S52">report</span> zgraphics<br />
<span class="L1S52">line</span>-<span class="L1S52">size</span> <span class="L1S32">255</span><br />
<span class="L1S52">no</span> <span class="L1S52">standard</span> <span class="L1S52">page</span> heading<br />
<span class="L1S52">line</span>-<span class="L1S52">count</span> <span class="L1S32">065</span>(<span class="L1S32">001</span>)<br />
<span class="L1S52">message</span>-<span class="L1S52">id</span> zmsg.</p>
<p><span class="L1S52">CONSTANTS</span>: cntl_true <span class="L1S52">TYPE</span> <span class="L1S52">i</span> <span class="L1S52">VALUE</span> <span class="L1S32">1</span>,<br />
cntl_false <span class="L1S52">TYPE</span> <span class="L1S52">i</span> <span class="L1S52">VALUE</span> <span class="L1S32">0</span>.<br />
<span class="L1S52">DATA</span>:h_picture <span class="L1S52">TYPE</span> <span class="L1S52">REF</span> <span class="L1S52">TO</span> cl_gui_picture,<br />
h_pic_container <span class="L1S52">TYPE</span> <span class="L1S52">REF</span> <span class="L1S52">TO</span> cl_gui_custom_container.</p>
<p><span class="L1S52">DATA</span>: graphic_url(<span class="L1S32">255</span>),<br />
graphic_refresh(<span class="L1S32">1</span>),<br />
g_result <span class="L1S52">LIKE</span> cntl_true.</p>
<p><span class="L1S52">DATA</span>: <span class="L1S52">BEGIN</span> <span class="L1S52">OF</span> graphic_table <span class="L1S52">OCCURS</span> <span class="L1S32">0</span>,<br />
<span class="L1S52">line</span>(<span class="L1S32">255</span>) <span class="L1S52">TYPE</span> <span class="L1S52">x</span>,<br />
<span class="L1S52">END</span> <span class="L1S52">OF</span> graphic_table.</p>
<p><span class="L1S52">DATA</span>: graphic_size <span class="L1S52">TYPE</span> <span class="L1S52">i</span>.</p>
<p><span class="L1S52">CALL</span> <span class="L1S52">SCREEN</span> <span class="L1S32">100</span>.</p>
<p><span class="L1S52">MODULE</span> picture <span class="L1S52">OUTPUT</span>.</p>
<p><span class="L1S52">DATA</span>: l_graphic_xstr <span class="L1S52">TYPE</span> xstring,<br />
l_graphic_conv <span class="L1S52">TYPE</span> <span class="L1S52">i</span>,<br />
l_graphic_offs <span class="L1S52">TYPE</span> <span class="L1S52">i</span>.</p>
<p><span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> cl_ssf_xsf_utilities=&gt;get_bds_graphic_as_bmp<br />
<span class="L1S52">EXPORTING</span><br />
p_object = <span class="L1S33">&#8216;GRAPHICS&#8217;</span><br />
p_name = <span class="L1S33">&#8216;ZLOGO&#8217;</span><span class="L1S31">&#8220;IMAGE NAME - Image name from SE78</span><br />
p_id = <span class="L1S33">&#8216;BMAP&#8217;</span><br />
p_btype = <span class="L1S33">&#8216;BCOL&#8217;</span><br />
RECEIVING<br />
p_bmp = l_graphic_xstr<br />
<span class="L1S52">EXCEPTIONS</span><br />
not_found = <span class="L1S32">1</span><br />
<span class="L1S52">OTHERS</span> = <span class="L1S32">2</span>.</p>
<p>graphic_size = <span class="L1S52">XSTRLEN</span>( l_graphic_xstr ).<br />
<span class="L1S52">CHECK</span> graphic_size &gt; <span class="L1S32">0</span>.</p>
<p>l_graphic_conv = graphic_size.<br />
l_graphic_offs = <span class="L1S32">0</span>.</p>
<p><span class="L1S52">WHILE</span> l_graphic_conv &gt; <span class="L1S32">255</span>.<br />
graphic_table-<span class="L1S52">line</span> = l_graphic_xstr+l_graphic_offs(<span class="L1S32">255</span>).<br />
<span class="L1S52">APPEND</span> graphic_table.<br />
l_graphic_offs = l_graphic_offs + <span class="L1S32">255</span>.<br />
l_graphic_conv = l_graphic_conv - <span class="L1S32">255</span>.<br />
<span class="L1S52">ENDWHILE</span>.</p>
<p>graphic_table-<span class="L1S52">line</span> = l_graphic_xstr+l_graphic_offs(l_graphic_conv).<br />
<span class="L1S52">APPEND</span> graphic_table.</p>
<p><span class="L1S52">CALL</span> <span class="L1S52">FUNCTION</span> <span class="L1S33">&#8216;DP_CREATE_URL&#8217;</span><br />
<span class="L1S52">EXPORTING</span><br />
<span class="L1S52">type</span> = <span class="L1S33">&#8216;image&#8217;</span><br />
subtype = cndp_sap_tab_unknown <span class="L1S31">&#8220; &#8217;X-UNKNOWN&#8217;</span><br />
<span class="L1S52">size</span> = graphic_size<br />
lifetime = cndp_lifetime_transaction <span class="L1S31">&#8220;&#8216;T&#8217;</span><br />
<span class="L1S52">TABLES</span><br />
<span class="L1S52">data</span> = graphic_table<br />
<span class="L1S52">CHANGING</span><br />
url = graphic_url<br />
<span class="L1S52">EXCEPTIONS</span></p>
<p><span class="L1S31">* dp_invalid_parameter = 1</span><br />
<span class="L1S31">* dp_error_put_table = 2</span><br />
<span class="L1S31">* dp_error_general = 3</span></p>
<p><span class="L1S52">OTHERS</span> = <span class="L1S32">4</span> .<br />
<span class="L1S52">IF</span> sy-subrc &lt;&gt; <span class="L1S32">0</span>.<br />
<span class="L1S52">MESSAGE</span> <span class="L1S52">ID</span> sy-msgid <span class="L1S52">TYPE</span> sy-msgty <span class="L1S52">NUMBER</span> sy-msgno<br />
<span class="L1S52">WITH</span> sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.<br />
<span class="L1S52">EXIT</span>.<br />
<span class="L1S52">ENDIF</span>.</p>
<p><span class="L1S52">CREATE</span> OBJECT h_pic_container<br />
<span class="L1S52">EXPORTING</span> container_name = <span class="L1S33">&#8216;LOGO&#8217;</span>.</p>
<p><span class="L1S52">CREATE</span> OBJECT h_picture <span class="L1S52">EXPORTING</span> parent = h_pic_container.</p>
<p><span class="L1S52">CALL</span> <span class="L1S52">METHOD</span> h_picture-&gt;load_picture_from_url<br />
<span class="L1S52">EXPORTING</span><br />
url = graphic_url<br />
<span class="L1S52">IMPORTING</span><br />
RESULT = g_result.</p>
<p><span class="L1S52">ENDMODULE</span>.</span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=58&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/07/08/display-graphics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Bold line in ALV</title>
		<link>http://learningabap.wordpress.com/2008/07/08/bold-line-in-alv/</link>
		<comments>http://learningabap.wordpress.com/2008/07/08/bold-line-in-alv/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 16:57:24 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=57</guid>
		<description><![CDATA[TYPE-POOLS: abap.

TYPES : BEGIN OF ty_outtab,
        celltab TYPE lvc_t_styl.
        INCLUDE STRUCTURE qals.
TYPES   END   OF ty_outtab.

DATA  : gt_outtab  TYPE TABLE OF ty_outtab WITH HEADER LINE,
        gs_layout  TYPE lvc_s_layo,
 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=57&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><pre><code>TYPE-POOLS: abap.

TYPES : BEGIN OF ty_outtab,
        celltab TYPE lvc_t_styl.
        INCLUDE STRUCTURE qals.
TYPES   END   OF ty_outtab.

DATA  : gt_outtab  TYPE TABLE OF ty_outtab WITH HEADER LINE,
        gs_layout  TYPE lvc_s_layo,
        ls_celltab TYPE lvc_s_styl,
        lt_celltab TYPE lvc_t_styl.

SELECT * FROM qals INTO CORRESPONDING FIELDS OF TABLE gt_outtab UP TO 20 ROWS.

ls_celltab-style = <span style="color:navy;">'00000121'</span>.

INSERT ls_celltab INTO lt_celltab INDEX 1.

READ TABLE gt_outtab INDEX 1.

gt_outtab-celltab = lt_celltab.

INSERT gt_outtab INDEX 1.

gs_layout-stylefname = <span style="color:navy;">'CELLTAB'</span>.

CALL FUNCTION <span style="color:navy;">'REUSE_ALV_GRID_DISPLAY_LVC'</span>
  EXPORTING
    i_structure_name = <span style="color:navy;">'QALS'</span>
    is_layout_lvc    = gs_layout
  TABLES
    t_outtab         = gt_outtab
  EXCEPTIONS
    program_error    = 1
    OTHERS           = 2.
</code></pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=57&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/07/08/bold-line-in-alv/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Single Click to Sort</title>
		<link>http://learningabap.wordpress.com/2008/07/08/single-click-to-sort/</link>
		<comments>http://learningabap.wordpress.com/2008/07/08/single-click-to-sort/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 15:49:33 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[click]]></category>
		<category><![CDATA[protected]]></category>
		<category><![CDATA[single]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=56</guid>
		<description><![CDATA[This sample show how we use cl_gui_alv_grid protected events... When you execute this example
you can sort your data when you single click on column header...

P.S. Please refer this site when you are using my examples. Thanks


*&#38;---------------------------------------------------------------------*
*&#38; Report  ZUS_SDN_ALV_SINGLE_COL_HEADER
*&#38;
*&#38;---------------------------------------------------------------------*
*&#38; Thread: cl_gui_alv_grid protected events
*&#38; https://forums.sdn.sap.com/thread.jspa?threadID=914943&#38;tstart=0
*&#38;---------------------------------------------------------------------*

REPORT  ZUS_SDN_ALV_SINGLE_COL_HEADER.

TYPE-POOLS: abap, cntb, icon.

TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE vbak AS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=56&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><pre><code>This sample show </code><code>how we use cl_gui_alv_grid <span style="color:navy;"><strong>protected</strong></span> events</code>... When you execute this example
you can sort your data when you single click on column header...

P.S. Please refer this site when you are using my examples. Thanks
<code>
</code><span id="more-56"></span>
<code>*&amp;---------------------------------------------------------------------*
*&amp; Report  ZUS_SDN_ALV_SINGLE_COL_HEADER
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; Thread: cl_gui_alv_grid <span style="color:navy;"><strong>protected</strong></span> events
*&amp; https:<span style="color:darkgreen;">//forums.sdn.sap.com/thread.jspa?threadID=914943&amp;tstart=0</span>
*&amp;---------------------------------------------------------------------*

REPORT  ZUS_SDN_ALV_SINGLE_COL_HEADER.

TYPE-POOLS: abap, cntb, icon.

TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE vbak AS vbak.
TYPES: celltab    TYPE lvc_t_styl.
TYPES: END OF ty_s_outtab.
TYPES: ty_t_outtab    TYPE STANDARD TABLE OF ty_s_outtab
                      WITH DEFAULT KEY.

DATA: gt_outtab   TYPE ty_t_outtab.

DATA:
  gd_okcode       TYPE ui_func,
  gd_repid        TYPE syrepid,
  gt_fcat         TYPE lvc_t_fcat,
  gs_layout       TYPE lvc_s_layo,
  gs_variant      TYPE disvariant,
*
  go_docking      TYPE REF TO cl_gui_docking_container,
  go_grid         TYPE REF TO cl_gui_alv_grid.

*----------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  <span style="color:navy;"><strong>public</strong></span> section.
    class-methods:
      handle_user_command
        <span style="color:navy;"><strong>for</strong></span> EVENT user_command of cl_gui_alv_grid
        importing
          e_ucomm
          sender.

ENDCLASS.                    <span style="color:red;">"lcl_eventhandler DEFINITION</span>

*----------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  method handle_user_command.

    break-point.
    endmethod.

ENDCLASS.                    <span style="color:red;">"lcl_eventhandler IMPLEMENTATION</span>

PARAMETER:
  p_active  as CHECKBOX.

START-OF-SELECTION.

  PERFORM init_controls.

  PERFORM build_fieldcatalog.
  PERFORM set_layout_and_variant.

  PERFORM build_outtab.
  PERFORM display_outtab.

**  set handler:
**    lcl_eventhandler=&gt;handle_user_command <span style="color:navy;"><strong>for</strong></span> go_grid.

  gd_repid = syst-repid.
  CALL METHOD go_docking-&gt;link
    EXPORTING
      repid                       = gd_repid
      dynnr                       = <span style="color:navy;">'0100'</span>
*      CONTAINER                   =
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      lifetime_dynpro_dynpro_link = 3
      OTHERS                      = 4.
  IF sy-subrc  0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL SCREEN <span style="color:navy;">'0100'</span>.

END-OF-SELECTION.

*&amp;---------------------------------------------------------------------*
*&amp;      Module  STATUS_0100  OUTPUT
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS <span style="color:navy;">'MAIN_0100'</span>.
*  SET TITLEBAR <span style="color:navy;">'xxx'</span>.

  CALL METHOD go_grid-&gt;refresh_table_display
*    EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
    EXCEPTIONS
      finished       = 1
      OTHERS         = 2.
  IF sy-subrc  0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDMODULE.                 <span style="color:red;">" STATUS_0100  OUTPUT</span>
*&amp;---------------------------------------------------------------------*
*&amp;      Module  USER_COMMAND_0100  INPUT
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  TRANSLATE gd_okcode TO UPPER CASE.
  CASE gd_okcode.
    WHEN <span style="color:navy;">'BACK'</span> OR
         <span style="color:navy;">'EXIT'</span> OR
         <span style="color:navy;">'CANC'</span>.
      SET SCREEN 0. LEAVE SCREEN.

    WHEN <span style="color:navy;">'APPEND'</span>.
      PERFORM append_row.

    WHEN <span style="color:navy;">'EDIT'</span>.
      PERFORM edit_row.

    WHEN OTHERS.
  ENDCASE.
ENDMODULE.                 <span style="color:red;">" USER_COMMAND_0100  INPUT</span>

*&amp;---------------------------------------------------------------------*
*&amp;      Form  INIT_CONTROLS
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&gt;screen0
*      REPID                       =
*      DYNNR                       =
*      SIDE                        = DOCK_AT_LEFT
*      EXTENSION                   = 50
*      STYLE                       =
*      LIFETIME                    = lifetime_default
*      CAPTION                     =
*      METRIC                      = 0
      ratio                       = 90
*      NO_AUTODEF_PROGID_DYNNR     =
*      NAME                        =
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.
  IF sy-subrc  0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL METHOD go_docking-&gt;set_extension
    EXPORTING
      extension  = 99999
    EXCEPTIONS
      cntl_error = 1
      OTHERS     = 2.
  IF sy-subrc  0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CREATE OBJECT go_grid
    EXPORTING
*      I_SHELLSTYLE      = 0
*      I_LIFETIME        =
      i_parent          = go_docking
*      I_APPL_EVENTS     = space
*      I_PARENTDBG       =
*      I_APPLOGPARENT    =
*      I_GRAPHICSPARENT  =
*      I_NAME            =
*      I_FCAT_COMPLETE   = SPACE
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc  0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    <span style="color:red;">" INIT_CONTROLS</span>
*&amp;---------------------------------------------------------------------*
*&amp;      Form  build_fieldcatalog
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .

  REFRESH: gt_fcat.
  CALL FUNCTION <span style="color:navy;">'LVC_FIELDCATALOG_MERGE'</span>
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = <span style="color:navy;">'VBAK'</span>
*     I_CLIENT_NEVER_DISPLAY       = <span style="color:navy;">'X'</span>
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
   EXCEPTIONS
     inconsistent_interface       = 1
     program_error                = 2
     OTHERS                       = 3.
  IF sy-subrc  0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    <span style="color:red;">" build_fieldcatalog</span>
*&amp;---------------------------------------------------------------------*
*&amp;      Form  set_layout_and_variant
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout_and_variant .

  CLEAR: gs_layout,
         gs_variant.

  gs_layout-zebra      = abap_true.
  gs_layout-cwidth_opt = abap_true.
  gs_layout-edit       = abap_true. <span style="color:red;">" Grid editable</span>
  gs_layout-stylefname = <span style="color:navy;">'CELLTAB'</span>. <span style="color:red;">" set editable/non-editable</span>

  gs_layout-sgl_clk_hd = p_active. <span style="color:red;">" Single click in (col) header</span>

ENDFORM.                    <span style="color:red;">" set_layout_and_variant</span>
*&amp;---------------------------------------------------------------------*
*&amp;      Form  BUILD_OUTTAB
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_outtab .
* define local data
  DATA: ls_outtab   TYPE ty_s_outtab,
        ls_fcat     TYPE lvc_s_fcat,
        ls_celltab  TYPE lvc_s_styl.

  SELECT * FROM  vbak INTO CORRESPONDING FIELDS OF TABLE gt_outtab
         UP TO 100 ROWS.

  <span style="color:red;">" Editability of the initially displayed rows is inactivated</span>
  CLEAR: ls_outtab.
  LOOP AT gt_fcat INTO ls_fcat.
    ls_celltab-fieldname = ls_fcat-fieldname.
    ls_celltab-style     = cl_gui_alv_grid=&gt;mc_style_disabled.

    INSERT ls_celltab INTO TABLE ls_outtab-celltab. <span style="color:red;">" sorted itab !!!</span>
  ENDLOOP.

  MODIFY gt_outtab FROM ls_outtab
    TRANSPORTING celltab
    WHERE ( table_line IS NOT INITIAL ).

ENDFORM.                    <span style="color:red;">" BUILD_OUTTAB</span>
*&amp;---------------------------------------------------------------------*
*&amp;      Form  APPEND_ROW
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM append_row .
* define local data
  DATA: ls_outtab   TYPE ty_s_outtab,
        ls_fcat     TYPE lvc_s_fcat,
        ls_celltab  TYPE lvc_s_styl.

  <span style="color:red;">" Editability of the initially displayed rows is inactivated</span>
  CLEAR: ls_outtab.
  LOOP AT gt_fcat INTO ls_fcat.
    ls_celltab-fieldname = ls_fcat-fieldname.
    ls_celltab-style     = cl_gui_alv_grid=&gt;mc_style_disabled.

    INSERT ls_celltab INTO TABLE ls_outtab-celltab. <span style="color:red;">" sorted itab !!!</span>
  ENDLOOP.

  APPEND ls_outtab TO gt_outtab.

ENDFORM.                    <span style="color:red;">" APPEND_ROW</span>
*&amp;---------------------------------------------------------------------*
*&amp;      Form  EDIT_ROW
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM edit_row .
* define local data
  DATA: ls_outtab   TYPE ty_s_outtab,
        ls_row      TYPE lvc_s_row,
        lt_rows     TYPE lvc_t_row.

  CALL METHOD go_grid-&gt;get_selected_rows
    IMPORTING
      et_index_rows = lt_rows
*      ET_ROW_NO     =
      .

  IF ( lt_rows IS INITIAL ).
    MESSAGE <span style="color:navy;">'Select at least a single row'</span> TYPE <span style="color:navy;">'S'</span>.
    RETURN.
  ENDIF.

  REFRESH: ls_outtab-celltab.
  LOOP AT lt_rows INTO ls_row.
    MODIFY gt_outtab FROM ls_outtab INDEX ls_row-index
      TRANSPORTING celltab.
  ENDLOOP.

ENDFORM.                    <span style="color:red;">" EDIT_ROW</span>

*&amp;---------------------------------------------------------------------*
*&amp;      Form  DISPLAY_OUTTAB
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&gt;  p1        text
*  &lt;--  p2        text
*----------------------------------------------------------------------*
FORM display_outtab .

  CALL METHOD go_grid-&gt;set_table_for_first_display
    EXPORTING
*      I_BUFFER_ACTIVE               =
*      I_BYPASSING_BUFFER            =
*      I_CONSISTENCY_CHECK           =
*      I_STRUCTURE_NAME              =
      is_variant                    = gs_variant
      i_save                        = <span style="color:navy;">'A'</span>
*      I_DEFAULT                     = <span style="color:navy;">'X'</span>
      is_layout                     = gs_layout
*      IS_PRINT                      =
*      IT_SPECIAL_GROUPS             =
*      IT_TOOLBAR_EXCLUDING          =
*      IT_HYPERLINK                  =
*      IT_ALV_GRAPHICS               =
*      IT_EXCEPT_QINFO               =
*      IR_SALV_ADAPTER               =
    CHANGING
      it_outtab                     = gt_outtab
      it_fieldcatalog               = gt_fcat
*      IT_SORT                       =
*      IT_FILTER                     =
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.
  IF sy-subrc  0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    <span style="color:red;">" DISPLAY_OUTTAB</span></code></pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=56&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/07/08/single-click-to-sort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Use of hashed tables</title>
		<link>http://learningabap.wordpress.com/2008/06/24/use-of-hashed-tables/</link>
		<comments>http://learningabap.wordpress.com/2008/06/24/use-of-hashed-tables/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 19:10:46 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=55</guid>
		<description><![CDATA[report zuseofhashedtables.
************************************************************************
** Program: ZUseOfHashedTables                                        **
************************************************************************
** Author: Horacio Zapettini         [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=55&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><pre>report zuseofhashedtables.
************************************************************************
** Program: ZUseOfHashedTables                                        **
************************************************************************
** Author: Horacio Zapettini                                          **
**                                                                    **
** Versions: 4.6b - 4.6c                                              **
************************************************************************
** Notes:                                                             **
**     this program shows how we can use hashed tables to improve     **
**     the responce time.                                             **
**     It shows,                                                      **
**        1. how to declare hashed tables                             **
**        2. a cache-like technique to improve access to master data  **
**        3. how to collect data using hashed tables                  **
**        4. how to avoid deletions of unwanted data                  **
************************************************************************
** Results: the test we run read about 31000 rows from mkpf, 150000   **
**          rows from mseg, 500 rows from makt and 400 from lfa1.     **
**          it filled ht_lst with 24500 rows and displayed them in    **
**          alv grid format.                                          **
**                                                                    **
**          It took about 65 secodns to perform this task (first time **
**          we run it when all the db buffers are empty.              **
**                                                                    **
**          The same program with standard tables needed 140 seconds  **
**          to run with the same recordset and with buffers filled in **
**                                                                    **
**          A simmilar test over more than a million rows
************************************************************************
** Objetive: show a list that consists of  all the material movements **
**          '101' - '901' for a certain range of dates in mkpf-budat. **
** the columns to be displayed are:                                   **
**          mkpf-budat,                                               **
**          mkpf-mblnr,                                               **
**          mseg-lifnr,                                               **
**          lfa1-name1,                                               **
**          mkpf-xblnr,                                               **
**          mseg-zeile                                                **
**          mseg-charg,                                               **
**          mseg-matnr,                                               **
**          makt-maktx,                                               **
**          mseg-erfmg,                                               **
**          mseg-erfme.                                               **
** or show a sumary list by matnr - menge                             **
**                                                                    **
** You'll have to create a pf-status called vista -                   **
** See form set_pf_status for details                                 **
************************************************************************

** tables used -
tables: mkpf,
        mseg,
        lfa1,
        makt.

** global hashed tables used
*
data: begin of wa_mkpf, "header
      mblnr like mkpf-mblnr,
      mjahr like mkpf-mjahr,
      budat like mkpf-budat,
      xblnr like mkpf-xblnr,
      end of wa_mkpf.
data: ht_mkpf like hashed table of wa_mkpf
      with unique key mblnr mjahr
      with header line.
data: st_mkpf like standard table of wa_mkpf
      with header line.

*
data: begin of wa_mseg, " line items
      mblnr like mseg-mblnr,
      mjahr like mseg-mjahr,
      zeile like mseg-zeile,
      bwart like mseg-bwart,
      charg like mseg-charg,
      matnr like mseg-matnr,
      lifnr like mseg-lifnr,
      erfmg like mseg-erfmg,
      erfme like mseg-erfme,
      end of wa_mseg.
data ht_mseg like hashed table of wa_mseg
      with unique key mblnr mjahr zeile
      with header line.
data st_mseg like standard table of wa_mseg
      with header line.

** cache structure for lfa1 records
data: begin of wa_lfa1,
      lifnr like lfa1-lifnr,
      name1 like lfa1-name1,
      end of wa_lfa1.
data ht_lfa1 like hashed table of wa_lfa1
      with unique key lifnr
      with header line.

** cache structure for material related data
data: begin of wa_material,
      matnr like makt-matnr,
      maktx like makt-maktx,
      end of wa_material.
data: ht_material like hashed table of wa_material
        with unique key matnr
        with header line.

** result table
data: begin of wa_lst, "
      budat like mkpf-budat,
      mblnr like mseg-mblnr,
      lifnr like mseg-lifnr,
      name1 like lfa1-name1,
      xblnr like mkpf-xblnr,
      zeile like mseg-zeile,
      charg like mseg-charg,
      matnr like mseg-matnr,
      maktx like makt-maktx,
      erfmg like mseg-erfmg,
      erfme like mseg-erfme,
      mjahr like mseg-mjahr,
      end of wa_lst.

data: ht_lst like hashed table of wa_lst
        with unique key mblnr mjahr zeile
        with header line.

data: begin of wa_lst1, " sumary by material
      matnr like mseg-matnr,
      maktx like makt-maktx,
      erfmg like mseg-erfmg,
      erfme like mseg-erfme,
      color_line(4) TYPE c,           " Line color
      color_cell    TYPE lvc_t_scol,  " Cell color
      celltab type LVC_T_STYL,
      end of wa_lst1.

data: ht_lst1 like hashed table of wa_lst1
        with unique key matnr
        with header line.

** structures for alv grid display.
** itabs
type-pools: slis.

data: it_lst            like standard table of wa_lst with header line,
      it_fieldcat_lst   type slis_t_fieldcat_alv with header line,
      it_sort_lst       type slis_t_sortinfo_alv,
      it_lst1           like standard table of wa_lst1 with header line,
      it_fieldcat_lst1  type slis_t_fieldcat_alv with header line,
      it_sort_lst1      type slis_t_sortinfo_alv.
** structures
data: wa_sort         type slis_sortinfo_alv,
      ls_layout       type slis_layout_alv.
** color management.
DATA  : wa_color    TYPE lvc_s_scol.
* Internal table for color management.
DATA : it_color    TYPE TABLE          OF lvc_s_scol.

* itab for input enabling.
DATA: lt_celltab TYPE lvc_t_styl. "

** global varialbes

data: g_lines type i.

data: g_repid like sy-repid,
      ok_code       like sy-ucomm.

** selection-screen

"text: Dates:
select-options: so_budat for mkpf-budat default sy-datum.
"text: Material numbers.
select-options: so_matnr for mseg-matnr.
selection-screen uline.
selection-screen skip 1.
"Text: show summary by material.
parameters: gp_bymat as checkbox default ''.
parameters: gp_hier  as checkbox default 'X'.
start-of-selection.
  perform get_data.
  perform show_data.

end-of-selection.

*---------------------------------------------------------------------*
*       FORM get_data                                                 *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
form get_data.
  	select mblnr mjahr budat xblnr
            into table ht_mkpf
           from mkpf
          where budat in so_budat. " make use of std index.
** have we retrieved data from mkpf?
  describe table ht_mkpf lines g_lines.
  if g_lines &gt; 0.
** if true then retrieve all related records from mseg.
** Doing this way we make sure that the access is by primary key
** of mseg.
** The reason is that is faster to filter them in memory
** than to allow the db server to do it.
    select mblnr mjahr zeile bwart charg
             matnr lifnr erfmg erfme
      into table ht_mseg
      from mseg
        for all entries in ht_mkpf
     where mblnr = ht_mkpf-mblnr
       and mjahr = ht_mkpf-mjahr.
  endif.

** fill t_lst or t_lst1 according to user's choice.
  if gp_bymat = ' '.
    perform fill_ht_lst.
  else.
    perform fill_ht_lst1.
  endif.
endform.

form fill_ht_lst.
  refresh ht_lst.
** Example: how to discard unwanted data in an efficient way.
  loop at ht_mseg.
*   filter unwanted data
    check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.
    check ht_mseg-matnr in so_matnr.
*   read header line.
    read table ht_mkpf with table key mblnr = ht_mseg-mblnr
    mjahr = ht_mseg-mjahr.
    clear ht_lst.
*  * note : this may be faster if you specify field by field.
    move-corresponding ht_mkpf to ht_lst.
    move-corresponding ht_mseg to ht_lst.

    perform read_lfa1 using ht_mseg-lifnr changing ht_lst-name1.
    perform read_material using ht_mseg-matnr changing ht_lst-maktx.
    insert table ht_lst.
  endloop.
endform.

form fill_ht_lst1.
data: colorear.
  refresh ht_lst1.
** Example: how to discard unwanted data in an efficient way.
**          hot to simulate a collect in a faster way
  loop at ht_mseg.
*   filter unwanted data
    check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.
    check ht_mseg-matnr in so_matnr.
*  * note : this may be faster if you specify field by field.

    read table ht_lst1 with table key matnr = ht_mseg-matnr
    transporting erfmg.
    if sy-subrc &lt;&gt; 0. " if matnr doesn't exist in sumary table
    " insert a new record
      clear ht_lst1.
      ht_lst1-matnr = ht_mseg-matnr.
      perform read_material using ht_mseg-matnr changing ht_lst1-maktx.
      ht_lst1-erfmg = ht_mseg-erfmg.
      ht_lst1-erfme = ht_mseg-erfme.
      if colorear = ''.
        colorear = 'X'.
        refresh it_color.
        ht_lst1-color_cell[] = it_color[].
        MOVE 'C410' TO ht_lst1-color_line.
      else.
        colorear = ' '.
        refresh it_color. clear it_color.
        MOVE 'MATNR' TO wa_color-fname.
        MOVE '6'         TO wa_color-color-col.
        MOVE '1'         TO wa_color-color-int.
        MOVE '1'         TO wa_color-color-inv.
        APPEND wa_color TO it_color.
        MOVE 'MAKTX' TO wa_color-fname.
        MOVE '3'         TO wa_color-color-col.
        MOVE '1'         TO wa_color-color-int.
        MOVE '1'         TO wa_color-color-inv.
        APPEND wa_color TO it_color.

        MOVE 'ERFMG' TO wa_color-fname.
        MOVE '5'         TO wa_color-color-col.
        MOVE '1'         TO wa_color-color-int.
        MOVE '1'         TO wa_color-color-inv.

        APPEND wa_color TO it_color.
        ht_lst1-color_cell[] = it_color[].

        clear ht_lst1-color_line.

      endif.

      insert table ht_lst1.
    else." a record was found.
    " collect erfmg.  To do so, fill in the unique key and add
    " the numeric fields.
      ht_lst1-matnr = ht_mseg-matnr.
      add ht_mseg-erfmg to ht_lst1-erfmg.
      modify table ht_lst1 transporting erfmg.
    endif.
  endloop.
endform.

** implementation of cache for lfa1.
form read_lfa1 using p_lifnr changing p_name1.
  	read table ht_lfa1 with table key lifnr = p_lifnr
        transporting name1.
  if sy-subrc &lt;&gt; 0.
    clear ht_lfa1.
    ht_lfa1-lifnr = p_lifnr.
    select single name1
       into ht_lfa1-name1
      from lfa1
    where lifnr = p_lifnr.
    if sy-subrc &lt;&gt; 0. ht_lfa1-name1 = 'n/a in lfa1'. endif.
    insert table ht_lfa1.
  endif.
  p_name1 = ht_lfa1-name1.
endform.

** implementation of cache for material data
form read_material using p_matnr changing p_maktx.
  read table ht_material with table key matnr = p_matnr
  transporting maktx.
  if sy-subrc &lt;&gt; 0.
    ht_material-matnr = p_matnr.
    select single maktx into  ht_material-maktx
      from makt
     where spras = sy-langu
       and matnr = p_matnr.
    if sy-subrc &lt;&gt; 0. ht_material-maktx = 'n/a in makt'. endif.
    insert table ht_material.
  endif.
  p_maktx = ht_material-maktx.
endform.
form show_data.
  if gp_hier = 'X'. "no anda.
*    perform show_hierarchicalALV.
  else.
    if gp_bymat = ' '.
      perform show_ht_lst.
    else.
      perform show_ht_lst1.
    endif.
  endif.
endform.
form show_hierarchicalALV.
st_mkpf[] = ht_mkpf[].
st_mseg[] = ht_mseg[].
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
*  exporting
*   I_INTERFACE_CHECK              = ' '
*   I_CALLBACK_PROGRAM             =
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IS_LAYOUT                      =
*   IT_FIELDCAT                    =
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
*   IT_SORT                        =
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_SCREEN_START_COLUMN          = 0
*   I_SCREEN_START_LINE            = 0
*   I_SCREEN_END_COLUMN            = 0
*   I_SCREEN_END_LINE              = 0
*   I_DEFAULT                      = 'X'
*   I_SAVE                         = ' '
*   IS_VARIANT                     =
*   IT_EVENTS                      =
*   IT_EVENT_EXIT                  =
*    i_tabname_header               =
*    i_tabname_item                 =
*   I_STRUCTURE_NAME_HEADER        =
*   I_STRUCTURE_NAME_ITEM          =
*    is_keyinfo                     =
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_BUFFER_ACTIVE                =
*   I_BYPASSING_BUFFER             =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
  tables
    t_outtab_header                = st_mkpf
    t_outtab_item                  = st_mseg
* EXCEPTIONS
*   PROGRAM_ERROR                  = 1
*   OTHERS                         = 2
          .
if sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

endform.
form show_ht_lst.
  "needed because the FM can't use a hashed table.
  it_lst[] = ht_lst[].

  perform fill_layout using 'full display'
                       changing ls_layout.

  perform fill_columns_lst.
*  perform sort_lst.
  g_repid = sy-repid.
  call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
            i_callback_program       = g_repid
            i_callback_pf_status_set = 'SET_PF_STATUS'
            is_layout                = ls_layout
            it_fieldcat              = it_fieldcat_lst[]
*            it_sort                  = it_sort_lst
       tables
            t_outtab                 = it_lst
       exceptions
            program_error            = 1
            others                   = 2.

endform.
form show_ht_lst1.
  "needed because the FM can't use a hashed table.
  it_lst1[] = ht_lst1[].

  perform fill_layout using 'Sumary by matnr'
                       changing ls_layout.

  perform fill_columns_lst1.
*  perform sort_lst.
  g_repid = sy-repid.
  call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
            i_callback_program       = g_repid
            i_callback_pf_status_set = 'SET_PF_STATUS'
            is_layout                = ls_layout
            it_fieldcat              = it_fieldcat_lst1[]
*            it_sort                  = it_sort_lst
       tables
            t_outtab                 = it_lst1
       exceptions
            program_error            = 1
            others                   = 2.

endform.

form fill_layout using p_window_titlebar
               changing cs_layo type slis_layout_alv.
  clear cs_layo.
  cs_layo-window_titlebar        = p_window_titlebar.
  cs_layo-edit                   = 'X'.
  cs_layo-edit_mode              = space.
  MOVE 'COLOR_LINE' TO cs_layo-info_fieldname.

* Field that identify cell color in inetrnal table
  MOVE 'COLOR_CELL' TO cs_layo-coltab_fieldname.
*  move 'CELLTAB' TO cs_layo-stylefname.

endform.                    " armar_layout_stock

form set_pf_status using rt_extab type slis_t_extab.
** create a new status
** and then select extras -&gt; adjust template -&gt; listviewer
  set pf-status 'VISTA'.
endform.        "set_pf_status
define add_lst.
  clear it_fieldcat_lst.
  it_fieldcat_lst-fieldname     = &amp;1.
  it_fieldcat_lst-outputlen     = &amp;2.
  it_fieldcat_lst-ddictxt       = 'L'.
  it_fieldcat_lst-seltext_l       = &amp;1.
  it_fieldcat_lst-seltext_m       = &amp;1.
  it_fieldcat_lst-seltext_m       = &amp;1.
  if &amp;1 = 'MATNR'.
    it_fieldcat_lst-emphasize = 'C111'.
  endif.
  append it_fieldcat_lst.
end-of-definition.
define add_lst1.
  clear it_fieldcat_lst.
  it_fieldcat_lst1-fieldname     = &amp;1.
  it_fieldcat_lst1-outputlen     = &amp;2.
  it_fieldcat_lst1-ddictxt       = 'L'.
  it_fieldcat_lst1-seltext_l       = &amp;1.
  it_fieldcat_lst1-seltext_m       = &amp;1.
  it_fieldcat_lst1-seltext_m       = &amp;1.
  append it_fieldcat_lst1.
end-of-definition.

form fill_columns_lst.
* set columns for output.

  refresh it_fieldcat_lst.
*
  add_lst 'BUDAT' 10.
  add_lst   'MBLNR' 10.
  add_lst  'LIFNR' 10.
  add_lst  'NAME1' 35.
  add_lst  'XBLNR' 15.
  add_lst    'ZEILE' 5.
  add_lst    'CHARG' 10.
  add_lst   'MATNR' 18.
  add_lst   'MAKTX' 30.
  add_lst   'ERFMG' 17.
  add_lst   'ERFME' 5.
  add_lst   'MJAHR' 4.
endform.
form fill_columns_lst1.
* set columns for output.

  refresh it_fieldcat_lst1.

  add_lst1 'MATNR' 18.
  add_lst1 'MAKTX' 30.
  add_lst1 'ERFMG' 17.
  add_lst1 'ERFME' 5..
endform.</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/55/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/55/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=55&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/06/24/use-of-hashed-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Building dynamic columns report (ALV)</title>
		<link>http://learningabap.wordpress.com/2008/06/24/building-dynamic-columns-report-alv/</link>
		<comments>http://learningabap.wordpress.com/2008/06/24/building-dynamic-columns-report-alv/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 19:09:46 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=54</guid>
		<description><![CDATA[

TYPE-POOLS: abap,
col.

*&#38;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*
*&#38; Dynamic Table
*&#38;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*
FIELD-SYMBOLS: &#60;dyn_table&#62; TYPE STANDARD TABLE,
&#60;dyn_wa&#62;,
&#60;fs&#62;.

DATA: gt_dyn          TYPE REF TO data,
gw_dyn          TYPE REF TO data,
r_table         TYPE REF TO cl_salv_table,
r_header        TYPE REF TO cl_salv_form_element,
r_footer        TYPE REF TO cl_salv_form_element,
r_columns_table TYPE REF TO cl_salv_columns_table,
r_column_table  TYPE REF TO cl_salv_column_table,
r_datadescr     TYPE REF TO cl_abap_datadescr,
r_structdescr   TYPE REF TO cl_abap_structdescr,
gw_component    TYPE abap_componentdescr,
gt_component    TYPE abap_component_tab.

START-OF-SELECTION.
PERFORM build_dynamic_table.
PERFORM get_data.
END-OF-SELECTION.
PERFORM display_report.

*&#38;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*
*&#38;      Form  build_dynamic_table
*&#38;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*
FORM build_dynamic_table [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=54&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span></p>
<div id="msgcns!D2BFFB84EDFE4189!534" class="bvMsg">
<div>TYPE-POOLS: abap,<br />
col.</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp; Dynamic Table<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FIELD-SYMBOLS: &lt;dyn_table&gt; TYPE STANDARD TABLE,<br />
&lt;dyn_wa&gt;,<br />
&lt;fs&gt;.</div>
<div></div>
<div>DATA: gt_dyn          TYPE REF TO data,<br />
gw_dyn          TYPE REF TO data,<br />
r_table         TYPE REF TO cl_salv_table,<br />
r_header        TYPE REF TO cl_salv_form_element,<br />
r_footer        TYPE REF TO cl_salv_form_element,<br />
r_columns_table TYPE REF TO cl_salv_columns_table,<br />
r_column_table  TYPE REF TO cl_salv_column_table,<br />
r_datadescr     TYPE REF TO cl_abap_datadescr,<br />
r_structdescr   TYPE REF TO cl_abap_structdescr,<br />
gw_component    TYPE abap_componentdescr,<br />
gt_component    TYPE abap_component_tab.</div>
<div></div>
<div>START-OF-SELECTION.<br />
PERFORM build_dynamic_table.<br />
PERFORM get_data.</div>
<div>END-OF-SELECTION.<br />
PERFORM display_report.</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  build_dynamic_table<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM build_dynamic_table .<br />
DATA: l_idx    TYPE c,<br />
l_desc   TYPE char50,<br />
l_hslxx  TYPE p LENGTH 5 DECIMALS 2,<br />
lt_color TYPE lvc_t_scol.</div>
<div>* Column 1<br />
r_datadescr ?= cl_abap_datadescr=&gt;describe_by_data( l_desc ).<br />
gw_component-name = &#8216;COLUMN&#8217;.<br />
gw_component-type = r_datadescr.<br />
APPEND gw_component TO gt_component.</div>
<div>* Column 2 &#8211; Types of color for each line<br />
* Do not display this column<br />
r_datadescr ?= cl_abap_datadescr=&gt;describe_by_data( lt_color ).<br />
gw_component-name = &#8216;COLOR&#8217;.<br />
gw_component-type = r_datadescr.<br />
APPEND gw_component TO gt_component.</div>
<div>DO 5 TIMES.<br />
l_idx = sy-index.<br />
r_datadescr ?= cl_abap_datadescr=&gt;describe_by_data( l_hslxx ).<br />
CONCATENATE &#8216;COL&#8217; l_idx INTO gw_component-name.<br />
gw_component-type = r_datadescr.<br />
APPEND gw_component TO gt_component.<br />
ENDDO.</div>
<div>TRY.<br />
r_structdescr = cl_abap_structdescr=&gt;create( p_components = gt_component ).<br />
CATCH cx_sy_struct_creation .<br />
WRITE: / &#8216;CX_SY_STRUCT_CREATION ERROR&#8217;.<br />
ENDTRY.</div>
<div>* Fill the table with data from GT_DATA<br />
CREATE DATA gw_dyn TYPE HANDLE r_structdescr.<br />
ASSIGN gw_dyn-&gt;* TO &lt;dyn_wa&gt;.</div>
<div>CREATE DATA gt_dyn LIKE STANDARD TABLE OF &lt;dyn_wa&gt;.<br />
ASSIGN gt_dyn-&gt;* TO &lt;dyn_table&gt;.<br />
ENDFORM.                    &#8221; build_dynamic_table</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  get_data<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM get_data .<br />
* select statement<br />
ENDFORM.                    &#8221; get_data</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  display_report<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM display_report .<br />
PERFORM display_header.   &#8221; Display ALV Header<br />
PERFORM display_footer.   &#8221; DIsplay ALV Footer<br />
PERFORM fill_data.        &#8221; Fill data<br />
PERFORM set_color.        &#8221; Set color<br />
PERFORM display_list.     &#8221; Display the ALV<br />
ENDFORM.                    &#8221; display_report</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  display_header<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM display_header .<br />
DATA: lr_grid   TYPE REF TO cl_salv_form_layout_grid.</div>
<div>CREATE OBJECT lr_grid.</div>
<div>lr_grid-&gt;create_text(<br />
row    = 1<br />
column = 1<br />
text   = &#8216;Header Line 1&#8242; ).</div>
<div>lr_grid-&gt;create_text(<br />
row    = 2<br />
column = 1<br />
text   = &#8216;Header Line 2&#8242; ).</div>
<div>r_header = lr_grid.<br />
ENDFORM.                    &#8221; display_header</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  display_footer<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM display_footer .<br />
DATA: lr_grid   TYPE REF TO cl_salv_form_layout_grid.</div>
<div>CREATE OBJECT lr_grid.</div>
<div>lr_grid-&gt;create_text(<br />
row    = 1<br />
column = 1<br />
text   = text-266 ).</div>
<div>lr_grid-&gt;create_text(<br />
row    = 2<br />
column = 1<br />
text   = text-267 ).</div>
<div>r_footer = lr_grid.<br />
ENDFORM.                    &#8221; display_footer</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  set_color<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</div>
<div>FORM set_color.<br />
DATA: lt_color TYPE lvc_t_scol,<br />
ls_color LIKE LINE OF lt_color,<br />
l_idx    TYPE sy-tabix.</div>
<div>FIELD-SYMBOLS: &lt;fs_color&gt;.</div>
<div>LOOP AT &lt;dyn_table&gt; INTO &lt;dyn_wa&gt;.<br />
l_idx = sy-tabix.<br />
ASSIGN COMPONENT &#8216;COLOR&#8217; OF STRUCTURE &lt;dyn_wa&gt; TO &lt;fs_color&gt;.</div>
<div>ls_color-color-col = col_total.<br />
*    ls_color-color-col = col_normal.<br />
*    ls_color-color-col = col_group.</div>
<div>APPEND ls_color TO lt_color.<br />
&lt;fs_color&gt; = lt_color.<br />
MODIFY &lt;dyn_table&gt; FROM &lt;dyn_wa&gt; INDEX l_idx.<br />
UNASSIGN: &lt;fs_color&gt;.<br />
ENDLOOP.<br />
ENDFORM.                    &#8221; set_color</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  display_list<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM display_list.<br />
DATA: r_display TYPE REF TO cl_salv_display_settings.</div>
<div>* Prepare the internal table for display<br />
cl_salv_table=&gt;factory(<br />
EXPORTING<br />
list_display   = &#8216;X&#8217;<br />
IMPORTING<br />
r_salv_table   = r_table<br />
CHANGING<br />
t_table        = &lt;dyn_table&gt; ).</div>
<div>* Set report page title<br />
r_table-&gt;set_top_of_list( r_header ).</div>
<div>* Set report footer<br />
r_table-&gt;set_end_of_list( r_footer ).</div>
<div>r_display = r_table-&gt;get_display_settings( ).<br />
*  r_display-&gt;set_vertical_lines( &#8216; &#8216; ).</div>
<div>* Assign all the column names<br />
PERFORM set_column_attr.</div>
<div>* Display the report<br />
r_table-&gt;display( ).<br />
ENDFORM.                    &#8221; display_list</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  set_column_attr<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM set_column_attr.<br />
DATA: l_idx     TYPE c,<br />
l_text(4) TYPE c,<br />
colname   TYPE lvc_fname,<br />
outps     TYPE scrtext_s,<br />
outpm     TYPE scrtext_m,<br />
outpl     TYPE scrtext_l.</div>
<div>r_columns_table = r_table-&gt;get_columns( ).<br />
*  r_columns_table-&gt;set_headers_visible( abap_false ).</div>
<div>* column 2<br />
* set color column<br />
r_columns_table-&gt;set_color_column( &#8216;COLOR&#8217; ).</div>
<div>DO 5 TIMES.<br />
l_idx = sy-index.<br />
CONCATENATE &#8216;COL&#8217; l_idx INTO colname.<br />
outps = colname.<br />
outpm = colname.<br />
outpl = colname.</div>
<div>r_column_table ?= r_columns_table-&gt;get_column( colname ).<br />
r_column_table-&gt;set_optimized( value  = abap_true ).<br />
r_column_table-&gt;set_alignment( value  = 1 ).<br />
r_column_table-&gt;set_zero( value  = space ).<br />
r_column_table-&gt;set_short_text( outps ).<br />
r_column_table-&gt;set_medium_text( outpm ).<br />
r_column_table-&gt;set_long_text( outpl ).<br />
ENDDO.<br />
ENDFORM.                    &#8220;set_column_attr</div>
<div></div>
<div>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  fill_data<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM fill_data .<br />
DATA:  l_idx TYPE c,<br />
l_col  TYPE string.</div>
<div>DO 5 TIMES.<br />
l_idx = sy-index.<br />
CONCATENATE &#8216;COL&#8217; l_idx INTO l_col.<br />
ASSIGN COMPONENT l_col OF STRUCTURE &lt;dyn_wa&gt; TO &lt;fs&gt;.<br />
&lt;fs&gt; = 0.<br />
UNASSIGN &lt;fs&gt;.<br />
ENDDO.</div>
<div>DO 5 TIMES.<br />
l_idx = sy-index.<br />
ASSIGN COMPONENT &#8216;COLUMN&#8217; OF STRUCTURE &lt;dyn_wa&gt; TO &lt;fs&gt;.<br />
CONCATENATE &#8216;Row&#8217; l_idx INTO &lt;fs&gt; SEPARATED BY space.<br />
UNASSIGN &lt;fs&gt;.<br />
APPEND &lt;dyn_wa&gt; TO &lt;dyn_table&gt;.<br />
ENDDO.<br />
ENDFORM.                    &#8221; fill_data</div>
</div>
<p></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/54/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/54/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=54&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/06/24/building-dynamic-columns-report-alv/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Find where the data is stored in SAP and SAP Tables</title>
		<link>http://learningabap.wordpress.com/2008/05/30/find-where-the-data-is-stored-in-sap-and-sap-tables/</link>
		<comments>http://learningabap.wordpress.com/2008/05/30/find-where-the-data-is-stored-in-sap-and-sap-tables/#comments</comments>
		<pubDate>Fri, 30 May 2008 17:29:08 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=52</guid>
		<description><![CDATA[This HOWTO will give the steps you need to find where the data is stored in SAP when you want to create an ABAP query or ABAP report using fields that you can find on transaction screens.

1. The first step is always to find out the table and field name of the screen field. With [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=52&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This HOWTO will give the steps you need to find where the data is stored in SAP when you want to create an ABAP query or ABAP report using fields that you can find on transaction screens.<br />
<span id="more-52"></span><br />
1. The first step is always to find out the table and field name of the screen field. With the cursor in the field you want, press F1 or click on the &#8220;?&#8221;.<br />
2. The initial help screen will give you descriptions and information about the field.<br />
3. From there press F9 or click on [Technical info].<br />
4. Here you can get names of the table, field and the data element.<br />
5. If you are lucky the system gives you a transparent table name. If you&#8217;re not lucky you&#8217;ll get a structure name.<br />
6. Doubleclick on the data element and search via the where used of the dictionary.<br />
7. Failing above you can set up the TCODE or a portion of it just before screen where the field exists and then switch on SQL Trace, run the screen, turn off SQL trace and then list the Trace Log following which tables/views were hit. Obviously it is best to turn on and off the trace in the smallest time-window possible to lessen the number of Trace Log entries you have to look through.<br />
8. Another thing to try is : run program RSSDOCTB. This gives you a list with info about the table such as fields, check tables &#8230;.<br />
9. Or try Transaction SE84 (Repository Info System)- Select in the tree ABAP Dictionary -&gt; Fields -&gt; Table Fields &#8211; Insert in the Select-Option &#8220;Field name&#8221; the name of the files (E.g. CARRID and CONNID) and execute it &#8211; now you will get a list of all tables which have one or both of this fields &#8211; it&#8217;s easy to identify the tables which contain both fields in the list.<br />
10. Or start an sql trace and look at the tables that are read<br />
11. Last resort, find the program name (click on the triangle icon at botton right t oexpand information and click on the icon right of client number) and look the ABAP code with TCODE SE38</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/52/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/52/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=52&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/05/30/find-where-the-data-is-stored-in-sap-and-sap-tables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Complex Selection Screen Sample</title>
		<link>http://learningabap.wordpress.com/2008/05/30/complex-selection-screen-sample/</link>
		<comments>http://learningabap.wordpress.com/2008/05/30/complex-selection-screen-sample/#comments</comments>
		<pubDate>Fri, 30 May 2008 17:28:32 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=51</guid>
		<description><![CDATA[In this example I will show you below selection screen properties
* Adding button on selection screen
* Define radiobuttons
* Define checkboxes
* Add more than one object in per line of selection screen
* Disable an object
* Hide/Show an object
* Display blue colored parameters

REPORT  ZMAVSARTEST.
Tables : Pgmi, Sscrfields.
Data : Begin Of IPgmi Occurs 0,
         Werks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=51&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In this example I will show you below selection screen properties</p>
<p>* Adding button on selection screen<br />
* Define radiobuttons<br />
* Define checkboxes<br />
* Add more than one object in per line of selection screen<br />
* Disable an object<br />
* Hide/Show an object<br />
* Display blue colored parameters</p>
<p><span id="more-51"></span></p>
<p>REPORT  ZMAVSARTEST.</p>
<p>Tables : Pgmi, Sscrfields.</p>
<p>Data : Begin Of IPgmi Occurs 0,<br />
         Werks Type Pgmi-Werks,<br />
         Prgrp Type Pgmi-Prgrp,<br />
         Nrmit Type Pgmi-Nrmit,<br />
       End Of IPgmi.<br />
Data : WPgmi Like Line Of IPgmi.</p>
<p>Selection-Screen Begin of Block b1 With Frame Title TEXT-T01.<br />
  Select-Options : Prgrp  For Pgmi-Prgrp Default &#8216;183X366_BTE&#8217; Modif Id OB.<br />
  Parameters     : Werks Like Marc-Werks Default &#8216;2000&#8242;,<br />
                   S1 RadioButton Group G1,<br />
                   S2 RadioButton Group G1,<br />
                   S3 RadioButton Group G1,<br />
                   PSay(3).<br />
Selection-Screen End of Block b1.</p>
<p>Selection-Screen Begin of Block b2 With Frame Title TEXT-T02.<br />
  Parameters     : S4 RadioButton Group G2,<br />
                   S5 RadioButton Group G2.<br />
Selection-Screen End of Block b2.</p>
<p>Selection-Screen Begin of Block b3 With Frame Title TEXT-T03.<br />
  Parameters     : S6 RadioButton Group G3 User-Command Radyo,<br />
                   S7 RadioButton Group G3.<br />
  Selection-Screen begin of line.<br />
    Parameters p_ch1 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 3(20) text-001 Modif ID SL.<br />
    Parameters p_ch2 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 27(20) text-002 Modif ID SL.<br />
    Parameters p_ch3 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 51(20) text-003 Modif ID SL.<br />
  Selection-Screen end of line.<br />
  Selection-Screen begin of line.<br />
    Parameters p_ch4 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 3(20) text-004 Modif ID SL.<br />
    Parameters p_ch5 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 27(20) text-005 Modif ID SL.<br />
    Parameters p_ch6 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 51(20) text-006 Modif ID SL.<br />
  Selection-Screen end of line.<br />
  Selection-Screen begin of line.<br />
    Parameters p_ch7 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 3(20) text-007 Modif ID SL.<br />
    Parameters p_ch8 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 27(20) text-008 Modif ID SL.<br />
    Parameters p_ch9 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 51(20) text-009 Modif ID SL.<br />
  Selection-Screen end of line.<br />
  Selection-Screen begin of line.<br />
    Parameters p_ch10 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 3(20) text-010 Modif ID SL.<br />
    Parameters p_ch11 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 27(20) text-011 Modif ID SL.<br />
    Parameters p_ch12 AS checkbox Modif ID SL.<br />
      Selection-Screen comment 51(20) text-012 Modif ID SL.<br />
  Selection-Screen end of line.<br />
Selection-Screen End of Block b3.</p>
<p>TYPE-POOLS icon.<br />
Data : Functxt TYPE Smp_Dyntxt.</p>
<p>Selection-Screen: Function Key 1,<br />
                  Function Key 2.<br />
Initialization.<br />
  S7 = &#8216;X&#8217;.<br />
  Functxt-icon_id   = ICON_ALARM.<br />
  Functxt-quickinfo = &#8216;Uç&#8217;.<br />
  Functxt-icon_text = &#8216;Uç&#8217;.<br />
  Sscrfields-functxt_01 = functxt.<br />
  Sscrfields-Functxt_02 = &#8216;Button2&#8242;.</p>
<p>At Selection-Screen.<br />
  Case Sscrfields-Ucomm.<br />
    When &#8216;FC01&#8242;.<br />
      Message &#8216;Uçakla mı uçacaksın?&#8217; Type &#8216;I&#8217;.<br />
    When &#8216;FC02&#8242;.<br />
      Message &#8216;Button2&#8242; Type &#8216;I&#8217;.<br />
    When Others.<br />
  Endcase.</p>
<p>At Selection-Screen Output.<br />
  Perform CheckRadio.</p>
<p>FORM CheckRadio.<br />
  Loop At Screen.<br />
    If S6 = &#8216;X&#8217;.<br />
      If Screen-Group1 = &#8216;SL&#8217;.<br />
        Screen-Active = 0.<br />
      Endif.<br />
    Elseif S7 = &#8216;X&#8217;.<br />
      If Screen-Group1 = &#8216;SL&#8217;.<br />
        Screen-Active = 1.<br />
      Endif.<br />
    Endif.<br />
    If Screen-Group1 = &#8216;OB&#8217;.<br />
      Screen-Intensified = &#8216;1&#8242;.<br />
    Endif.<br />
    If Screen-Name = &#8216;S5&#8242;.<br />
      Screen-Input = 0.<br />
    Endif.<br />
    Modify Screen.<br />
  Endloop.<br />
ENDFORM.&#8221; CheckRadio</p>
<p>Start-Of-Selection.<br />
  Perform GetData.<br />
End-Of-Selection.</p>
<p>Form GetData.<br />
* Get your data in this subroutine<br />
EndForm.                    &#8221; GetData</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=51&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/05/30/complex-selection-screen-sample/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Selection Screen Without Execute Button</title>
		<link>http://learningabap.wordpress.com/2008/05/30/selection-screen-without-execute-button/</link>
		<comments>http://learningabap.wordpress.com/2008/05/30/selection-screen-without-execute-button/#comments</comments>
		<pubDate>Fri, 30 May 2008 17:27:33 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=50</guid>
		<description><![CDATA[Selection Screen Without Execute Button 

REPORT  ZMAVSARTEST.
tables: sscrfields.
data:it_exc type table of rsexfcode,
wa_exc type rsexfcode.
parameters: p_carrid type s_carr_id,
p_cityfr type s_from_cit.
selection-screen: function key 1,
function key 2.
initialization.
sscrfields-functxt_01 = &#8216;ONE&#8217;.
sscrfields-functxt_02 = &#8216;TWO&#8217;.
wa_exc-fcode = &#8216;ONLI&#8217;.
append wa_exc to it_exc.
at selection-screen.
case sscrfields-ucomm.
when&#8217;FC01&#8242;.
p_carrid = &#8216;ONE&#8217;.
p_cityfr = &#8216;HYD&#8217;.
when &#8216;FC02&#8242;.
p_carrid = &#8216;TWO&#8217;.
p_cityfr = &#8216;KKD&#8217;.
endcase.
at selection-screen output.
* SET PF-STATUS &#8216; &#8216; OF PROGRAM &#8216;RSSYSTDB&#8217; EXCLUDING WA_EXC-FCODE.
call function [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=50&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Selection Screen Without Execute Button </p>
<p><span id="more-50"></span></p>
<p>REPORT  ZMAVSARTEST.</p>
<p>tables: sscrfields.</p>
<p>data:it_exc type table of rsexfcode,<br />
wa_exc type rsexfcode.</p>
<p>parameters: p_carrid type s_carr_id,<br />
p_cityfr type s_from_cit.</p>
<p>selection-screen: function key 1,<br />
function key 2.</p>
<p>initialization.<br />
sscrfields-functxt_01 = &#8216;ONE&#8217;.<br />
sscrfields-functxt_02 = &#8216;TWO&#8217;.<br />
wa_exc-fcode = &#8216;ONLI&#8217;.<br />
append wa_exc to it_exc.</p>
<p>at selection-screen.</p>
<p>case sscrfields-ucomm.<br />
when&#8217;FC01&#8242;.<br />
p_carrid = &#8216;ONE&#8217;.<br />
p_cityfr = &#8216;HYD&#8217;.<br />
when &#8216;FC02&#8242;.<br />
p_carrid = &#8216;TWO&#8217;.<br />
p_cityfr = &#8216;KKD&#8217;.<br />
endcase.</p>
<p>at selection-screen output.</p>
<p>* SET PF-STATUS &#8216; &#8216; OF PROGRAM &#8216;RSSYSTDB&#8217; EXCLUDING WA_EXC-FCODE.</p>
<p>call function &#8216;RS_SET_SELSCREEN_STATUS&#8217;<br />
exporting<br />
p_status = &#8216;%_00&#8242;<br />
p_program = &#8216;RSSYSTDB&#8217;<br />
tables<br />
p_exclude = it_exc.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=50&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/05/30/selection-screen-without-execute-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Again hello</title>
		<link>http://learningabap.wordpress.com/2008/05/30/again-hello/</link>
		<comments>http://learningabap.wordpress.com/2008/05/30/again-hello/#comments</comments>
		<pubDate>Fri, 30 May 2008 17:25:30 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/?p=48</guid>
		<description><![CDATA[Dear friends,
Currently I am working an international SAP project. I don&#8217;t have enough time for adding new codes. And unfortunately our government blocked worpress.com  . I am writing this message another country.
I will write new codes to my blog when I still out of Turkey.
Please feel free to e-mail me (mavsar @!@ gmail @.@ com [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=48&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Dear friends,</p>
<p>Currently I am working an international SAP project. I don&#8217;t have enough time for adding new codes. And unfortunately our government blocked worpress.com <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> . I am writing this message another country.</p>
<p>I will write new codes to my blog when I still out of Turkey.</p>
<p>Please feel free to e-mail me (mavsar @!@ gmail @.@ com )</p>
<p> </p>
<p>Mehmet</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=48&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2008/05/30/again-hello/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
		<item>
		<title>Auto Increment Function With Alpha Numeric Support</title>
		<link>http://learningabap.wordpress.com/2007/10/29/auto-increment-function-with-alpha-numeric-support/</link>
		<comments>http://learningabap.wordpress.com/2007/10/29/auto-increment-function-with-alpha-numeric-support/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 15:22:21 +0000</pubDate>
		<dc:creator>mavsar</dc:creator>
				<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://learningabap.wordpress.com/2007/10/29/auto-increment-function-with-alpha-numeric-support/</guid>
		<description><![CDATA[*———————————————————————*
* Report Name : YGECICI
*———————————————————————*
* Author : Mehmet Avşar
* Location : @Altunizade - Uskudar / Istanbul
* Date / Time : 29 Oct 2007
* Subject : Alpha Numeric Number Range Auto Increment
*———————————————————————*
REPORT YGECICI MESSAGE-ID 00
   No Standard Page Heading
   Line-Size 200
   Line-Count 65.
DATA: l_seq(36) type c Value '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
   [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=47&subd=learningabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><code>*———————————————————————*<br />
* Report Name : YGECICI<br />
*———————————————————————*<br />
* Author : Mehmet Avşar<br />
* Location : @Altunizade - Uskudar / Istanbul<br />
* Date / Time : 29 Oct 2007<br />
* Subject : Alpha Numeric Number Range Auto Increment<br />
*———————————————————————*</p>
<p>REPORT YGECICI MESSAGE-ID 00<br />
   No Standard Page Heading<br />
   Line-Size 200<br />
   Line-Count 65.</p>
<p>DATA: l_seq(36) type c Value '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',<br />
      l_pointer type i,<br />
      g_counter(4) type c.</p>
<p>g_counter = '9ZZZ'.</p>
<p>if g_counter+3(1) = 'Z'.<br />
 	g_counter+3(1) = '0'.<br />
 	if g_counter+2(1) = 'Z'.<br />
      g_counter+2(1) = '0'.<br />
      if g_counter+1(1) = 'Z'.<br />
          g_counter+1(1) = '0'.<br />
          if g_counter+0(1) = 'Z'.<br />
             g_counter+0(1) = '0'.<br />
        else.<br />
            perform counter_change changing g_counter+0(1).<br />
          endif.<br />
        else.<br />
          perform counter_change changing g_counter+1(1).<br />
      endif.<br />
 	else.<br />
        perform counter_change changing g_counter+2(1).<br />
 	endif.<br />
 else.<br />
     	perform counter_change changing g_counter+3(1).<br />
endif.</p>
<p>write / g_counter.</p>
<p>FORM counter_change CHANGING p_counter.<br />
      search l_seq for p_counter.<br />
      l_pointer = sy-fdpos + 1.<br />
      P_counter = l_seq+l_pointer(1).<br />
ENDFORM.</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/learningabap.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/learningabap.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/learningabap.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/learningabap.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/learningabap.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/learningabap.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/learningabap.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/learningabap.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/learningabap.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/learningabap.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/learningabap.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/learningabap.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=learningabap.wordpress.com&blog=707424&post=47&subd=learningabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://learningabap.wordpress.com/2007/10/29/auto-increment-function-with-alpha-numeric-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mavsar</media:title>
		</media:content>
	</item>
	</channel>
</rss>