<?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>my ABAP</title>
	<atom:link href="http://myabap.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://myabap.wordpress.com</link>
	<description>learn ABAP together with poyay</description>
	<lastBuildDate>Wed, 09 Jul 2008 02:03:17 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='myabap.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/77d3e78b98177f04ce577412f8ad64e8?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>my ABAP</title>
		<link>http://myabap.wordpress.com</link>
	</image>
			<item>
		<title>Gantt Chart</title>
		<link>http://myabap.wordpress.com/2008/07/08/gantt-chart/</link>
		<comments>http://myabap.wordpress.com/2008/07/08/gantt-chart/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 08:00:48 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[function module]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=19</guid>
		<description><![CDATA[
courtesy of Mr. Arya Nugraha
We can display Gantt chart by using function module GRAPH_GANTT, but first of all we need to know the parameters we will use in this function module. (for  more example, please go to transaction code GRAL)

ITEM (include structure GGAIT)
itext filled with description text for each
ucolor filled with the color of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=19&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://myabap.files.wordpress.com/2008/07/untitled.jpg"><img class="alignnone size-full wp-image-20" src="http://myabap.files.wordpress.com/2008/07/untitled.jpg?w=497&#038;h=202" alt="" width="497" height="202" /></a></p>
<p><em>courtesy of Mr. Arya Nugraha</em></p>
<p>We can display Gantt chart by using function module <strong>GRAPH_GANTT</strong>, but first of all we need to know the parameters we will use in this function module. (for  more example, please go to transaction code GRAL)</p>
<p><span id="more-19"></span></p>
<p>ITEM (include structure GGAIT)</p>
<blockquote><p><em>itext</em> filled with description text for each<br />
<em>ucolor</em> filled with the color of the description text<br />
<em>it_id</em> filled with sequence number of each row</p></blockquote>
<p>ELEM (include structure GGAEL)</p>
<blockquote><p><em>itemno</em> filled with sequence number of each row<br />
<em>el_id</em> filled with sequence number of each row<br />
<em>txt</em> filled with text as the remark for each bar in chart<br />
<em>beg </em>filled with starting point (start date)<br />
<em>dur</em> filled with duration that will be interpreted as the length of each bar<br />
<em>heigh</em> filled with font size<br />
<em>bakgr</em> filled with color of bar<br />
<em>bordr </em> filled with color of bar&#8217;s border<br />
<em>brdon</em> filled with &#8216;1&#8242; if border wants to be shown<br />
<em>filld</em> filled with &#8216;1&#8242; if bar wants to be colored</p></blockquote>
<p>MIST (include structure GGAMI)</p>
<blockquote><p><em>this internal table will only be filled if you want to display some milestones in chart</em></p></blockquote>
<p>LGEL (include structure GGAEL)</p>
<blockquote><p><em>this internal table will only be filled if you want to display legend in chart</em></p></blockquote>
<p>LGMS (include structure GGAMI)</p>
<blockquote><p><em>this internal table will only be filled if you want to display milestones&#8217; legend in chart</em></p></blockquote>
<p>MSGT (include structure GGABA)</p>
<blockquote><p><em>all of the changes made within the chart will be stored in here</em></p></blockquote>
<p>these codes below is the example on how to use the function.</p>
<blockquote><p><span><span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;GRAPH_GANTT&#8217;</span><br />
<span class="L1S52">exporting</span><br />
wheader   = <span class="L1S33">&#8216;Maintenance Day / Window Maintenace Report&#8217;</span><br />
ttitle    = ld_new_title<br />
ttext     = <span class="L1S33">&#8216;Description&#8217;</span><br />
tunit     = <span class="L1S33">&#8216;W&#8217;</span><br />
tlength   = <span class="L1S33">&#8216;70&#8242;</span><br />
glength   = <span class="L1S33">&#8216;200&#8242;</span><br />
modif     = fu_elem      &#8220;fill with &#8216;X&#8217; if you wish to change the chart after it&#8217;s displayed<br />
tmbeg     = d_tmbeg<br />
tmend     = d_tmend<br />
vgrid     = <span class="L1S33">&#8216;X&#8217;</span><br />
set_focus = <span class="L1S33">&#8216;X&#8217;</span><br />
legend    = <span class="L1S33">&#8216;PIC&#8217;</span><br />
<span class="L1S52">tables</span><br />
item      = item<br />
elem      = elem<br />
mist      = mist<br />
lgel      = lgel<br />
lgms      = lgms<br />
msgt      = msgt.</span></p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=19&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/07/08/gantt-chart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>

		<media:content url="http://myabap.files.wordpress.com/2008/07/untitled.jpg" medium="image" />
	</item>
		<item>
		<title>send mail via ABAP using SO_NEW_DOCUMENT_SEND_API1</title>
		<link>http://myabap.wordpress.com/2008/07/08/send-mail-via-abap-using-so_new_document_send_api1/</link>
		<comments>http://myabap.wordpress.com/2008/07/08/send-mail-via-abap-using-so_new_document_send_api1/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 03:32:19 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[function module]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=16</guid>
		<description><![CDATA[how to send mail to user SAP office (transaction code SBWP) via ABAP?
we can use function module SO_NEW_DOCUMENT_SEND_API1, but first of all we need to know the basic need of this function module

 lt_reclist type table of somlreci1
  receiver filled with SAP user id as the recipient
 rec_type filled with &#8216;B&#8217; because we only [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=16&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>how to send mail to user SAP office (transaction code<strong> SBWP</strong>) via ABAP?</p>
<p>we can use function module <strong>SO_NEW_DOCUMENT_SEND_API1</strong>, but<!-- font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; }  --> first of all we need to know the basic need of this function module</p>
<p><span id="more-16"></span></p>
<p><!-- SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S52 { color: #0000FF; } --> <span>lt_reclist <span class="L0S52">type</span> <span class="L0S52">table</span> <span class="L0S52">of</span> somlreci1</span></p>
<blockquote><p><!-- SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } --> <em><span> receiver</span></em> filled with SAP user id as the recipient<br />
<span><em> rec_type</em></span> filled with &#8216;B&#8217; because we only send the mail to SAP user (please see domain SO_ESCAPE)<span><br />
<em> express</em></span> filled with &#8216;X&#8217; if you want to give the expit blank</p></blockquote>
<p><span>lw_doc_data <span class="L0S52">type</span> <span class="L0S52">table</span> <span class="L0S52">of</span> sodocchgi1</span></p>
<blockquote><p><em><span> obj_name</span></em> filled with string as the name of document<br />
<span><em> sensitivity</em></span> filled with &#8216;P&#8217; to keep the mail as a confidential mail (please see domain SO_OBJ_SNS)<br />
<em><span> obj_descr</span></em> filled with mail subject<br />
<span><em>proc_type</em> </span> filled with &#8216;T&#8217; if you want to allow user to execute the mail in order to go to a transaction code<span><br />
<em> proc_name</em></span> filled with the transaction code you want to refer when user execute the mail<br />
<span><em>skip_screen</em></span> filled with &#8216;X&#8217; if you skip the first screen of transaction described above</p></blockquote>
<p><span>lt_objpara <span class="L0S52">type</span> <span class="L0S52">table</span> <span class="L0S52">of</span> soparai1</span></p>
<blockquote><p><span><em> name</em></span> filled with parameter name belongs to transaction code described above<br />
<span><em>low</em></span> filled with the content of the parameter name</p></blockquote>
<p><span>lt_objcont <span class="L0S52">type</span> <span class="L0S52">table</span> <span class="L0S52">of</span> solisti1</span></p>
<blockquote><p><span><em> line</em></span> filled with mail content</p></blockquote>
<p>these codes below is the example of mail that was sent to a recipient. When the mail is executed, it will refer the recipient to transaction code IW32</p>
<blockquote><p><span><span class="L1S52">clear</span>: lw_reclist.<br />
lw_reclist-receiver  = &#8216;ME&#8217;.<br />
lw_reclist-rec_type = <span class="L1S33">&#8216;B&#8217;</span>.<br />
lw_reclist-express = <span class="L1S33">&#8216;X&#8217;</span>.<br />
<span class="L1S52">append</span> lw_reclist <span class="L1S52">to</span> lt_reclist.<br />
</span></p>
<p>lw_doc_data-obj_name = <span class="L1S33">&#8216;IMPORTANT&#8217;</span>.<br />
lw_doc_data-obj_descr = &#8216;test subject mail&#8217;.<br />
lw_doc_data-sensitivty = <span class="L1S33">&#8216;P&#8217;</span>.<br />
lw_doc_data-proc_type = <span class="L1S33">&#8216;T&#8217;</span>.<br />
lw_doc_data-proc_name = <span class="L1S33">&#8216;IW32&#8242;</span>.<br />
lw_doc_data-skip_scren = <span class="L1S33">&#8216;X&#8217;</span>.</p>
<p><span class="L1S31">&#8221; Document Object Para.</span><br />
<span class="L1S52">clear</span>: lt_objpara, lw_objpara.<br />
lw_objpara-name = <span class="L1S33">&#8216;ANR&#8217;</span>.<br />
lw_objpara-low = &#8216;230000000001&#8242;<br />
<span class="L1S52">append</span> lw_objpara <span class="L1S52">to</span> lt_objpara.</p>
<p><span class="L1S31">&#8220;Document content</span><br />
<span class="L1S52">clear</span>: lt_objcont, lw_objcont.</p>
<p>concatenate &#8216;Please see order number&#8217; lw_objpara-low into lw_objcont-line separated by space.<br />
<span class="L1S52">append</span> lw_objcont <span class="L1S52">to</span> lt_objcont.</p>
<p><span class="L1S31">&#8220;send email to Planner GRP</span><br />
<span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;SO_NEW_DOCUMENT_SEND_API1&#8242;</span><br />
<span class="L1S52">exporting</span><br />
document_type              = <span class="L1S33">&#8216;RAW&#8217;</span><br />
document_data              = lw_doc_data<br />
put_in_outbox              = <span class="L1S33">&#8216;X&#8217;</span><br />
<span class="L1S52">tables</span><br />
object_para                = lt_objpara<br />
receivers                  = lt_reclist<br />
object_content             = lt_objcont<br />
<span class="L1S52">exceptions</span><br />
too_many_receivers         = <span class="L1S32">1</span><br />
document_not_send          = <span class="L1S32">2</span><br />
operation_no_authorization = <span class="L1S32">4</span><br />
<span class="L1S52">others</span> = <span class="L1S32">99</span>.</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=16&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/07/08/send-mail-via-abap-using-so_new_document_send_api1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>
	</item>
		<item>
		<title>Checking equipment number before PO saved</title>
		<link>http://myabap.wordpress.com/2008/07/08/checking-equipment-number-before-po-saved/</link>
		<comments>http://myabap.wordpress.com/2008/07/08/checking-equipment-number-before-po-saved/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 02:45:21 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[BADI]]></category>
		<category><![CDATA[PO]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=7</guid>
		<description><![CDATA[when user determine quantity in a Purchase Order (PO), must be followed by maintaining equipment number in Item texts.
In short term, the amount of equipment number must be the same with PO quantity, if it&#8217;s not, the PO creation must be prevented.
i do the combination between 2 method in BADI implementation because the prevention to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=7&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>when user determine quantity in a Purchase Order (PO), must be followed by maintaining equipment number in Item texts.<br />
In short term, the amount of equipment number must be the same with PO quantity, if it&#8217;s not, the PO creation must be prevented.</p>
<p>i do the combination between 2 method in BADI implementation because the prevention to create a PO will be done when CHECK method is executed while the item text (long text) reading process will be done when PROCESS_ITEM method is executed.</p>
<p>why i use this BADI, because through this BADI, we can get the real time data which has been inputted by user.<br />
What i do exactly is to force CHECK method to call PROCESS_ITEM method.<br />
<a href="http://myabap.files.wordpress.com/2008/04/untitled.jpg"><img class="alignnone size-full wp-image-6" src="http://myabap.files.wordpress.com/2008/04/untitled.jpg" alt="" /></a></p>
<p>These are the steps..</p>
<p><span id="more-7"></span></p>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">Go to transaction code SE15</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">Choose <em>Enhancements</em> &gt; <em>Business Add-ins</em> &gt;  <em>Definitions</em></span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">Type </span><span style="font-size:10pt;font-family:Tahoma;"><strong>ME_PROCESS_PO_CUST</strong> in <span style="text-decoration:underline;">BAdI Name</span> and then <em>Execute</em><br />
</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">Choose to <em>display</em> the BAdI</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">And then go to the Menu Bar and select <em>Implementation</em> &gt; <em>Create</em></span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">Do as the naming convention document told you to give the name for Implementation Name<br />
</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">After that, insert these codes below in method <em>PROCESS_ITEM</em> and <em>CHECK</em></span></li>
</ol>
<p>PROCESS_ITEM</p>
<blockquote><p>*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
*&gt;&gt;&gt;&gt;&gt; BEGIN FSEPM001<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
* FSEPM001 : Checking equipment number before PO saved<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</p>
<p>data: re_data type mepoitem,<br />
r_item type range of mepoitem-ebelp.<br />
data: lt_data type table of mepoitem.</p>
<p>data: ld_mtart type mtart,<br />
ld_sernp type serail,<br />
ld_ebelp type string,<br />
ld_menge type i,<br />
ld_line type i,<br />
ld_message type string value &#8216;Please maintain equipment number in item number&#8217;,<br />
ld_check type c.<br />
data: t_line type table of mmpur_textlines,<br />
ld_formatted type mmpur_bool.</p>
<p>if im_item is not initial.<br />
&#8220;get the item data<br />
call method im_item-&gt;get_data<br />
receiving<br />
re_data = re_data.</p>
<p>import ld_check to ld_check from memory id re_data-ebeln.</p>
<p>check ld_check = &#8216;X&#8217;.</p>
<p>select single mtart<br />
into ld_mtart<br />
from mara<br />
where matnr = re_data-matnr and mtart = &#8216;ERSA&#8217;.<br />
select single sernp<br />
into ld_sernp<br />
from marc<br />
where matnr = re_data-matnr and sernp = &#8216;ZPM1&#8242; and werks = re_data-werks.</p>
<p>if ld_mtart is initial.<br />
message e001(zmcpm0001) with &#8216;Material Type is not &#8221;ERSA&#8221;&#8217;.<br />
endif.</p>
<p>if ld_sernp is initial.<br />
message e001(zmcpm0001) with &#8216;Serial Number profile is not &#8221;ZPM1&#8221;&#8217;.<br />
else.</p>
<p>&#8220;-Get item text<br />
call method im_item-&gt;if_longtexts_mm~get_text<br />
exporting<br />
im_tdid           = &#8216;F01&#8242;<br />
importing<br />
ex_textlines      = t_line<br />
ex_text_formatted = ld_formatted.</p>
<p>describe table t_line lines ld_line.<br />
ld_menge = re_data-menge.<br />
if ld_line &lt;&gt; ld_menge.<br />
call function &#8216;CONVERSION_EXIT_ALPHA_OUTPUT&#8217;<br />
exporting<br />
input  = re_data-ebelp<br />
importing<br />
output = re_data-ebelp.<br />
ld_ebelp =  re_data-ebelp.<br />
endif.</p>
<p>free: ld_mtart, ld_sernp.<br />
clear: t_line.<br />
endif.</p>
<p>delete from memory id re_data-ebeln.</p>
<p>if ld_ebelp is not initial.<br />
concatenate ld_message ld_ebelp into ld_message separated by space.<br />
message e001(zmcpm0001) with ld_message.<br />
endif.<br />
endif.<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
* &gt;&gt;&gt;&gt;&gt;END FSEPM001<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</p></blockquote>
<p>CHECK</p>
<blockquote><p>*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
*&gt;&gt;&gt;&gt;&gt; BEGIN FSEPM001<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
* FSEPM001 : Checking equipment number before PO saved<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
DATA: gf_me_process_po_cust TYPE REF TO if_ex_me_process_po_cust,<br />
gf_me_process_po_cust_active(1).</p>
<p>DATA: l_instance_cust LIKE gf_me_process_po_cust.<br />
DATA: re_header TYPE mepoheader,<br />
re_items TYPE purchase_order_items,<br />
ld_mepoitem TYPE mepoitem,<br />
re_items2 TYPE purchase_order_item.<br />
CONSTANTS ld_check TYPE c VALUE &#8216;X&#8217;.</p>
<p>CALL METHOD im_header-&gt;get_data<br />
RECEIVING<br />
re_data = re_header.</p>
<p>CALL METHOD im_header-&gt;get_items<br />
RECEIVING<br />
re_items = re_items.</p>
<p>LOOP AT re_items INTO re_items2 .<br />
po_item = po_item_obj-item-&gt;get_data( ).<br />
IF gf_me_process_po_cust_active IS INITIAL.<br />
gf_me_process_po_cust ?= cl_badi_mm=&gt;get_instance(&#8216;ME_PROCESS_PO_CUST&#8217; ).<br />
IF NOT gf_me_process_po_cust IS INITIAL.<br />
gf_me_process_po_cust_active = &#8216;Y&#8217;.<br />
ELSE.<br />
gf_me_process_po_cust_active = &#8216;N&#8217;.<br />
ENDIF.<br />
ENDIF.<br />
IF gf_me_process_po_cust_active EQ &#8216;Y&#8217;.<br />
l_instance_cust = gf_me_process_po_cust.<br />
ENDIF.</p>
<p>EXPORT ld_check FROM ld_check TO MEMORY ID re_header-ebeln.</p>
<p>CALL METHOD l_instance_cust-&gt;process_item<br />
EXPORTING<br />
im_item = re_items2-item.<br />
ENDLOOP.</p>
<p>*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
* &gt;&gt;&gt;&gt;&gt;END FSEPM001<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=7&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/07/08/checking-equipment-number-before-po-saved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>

		<media:content url="http://myabap.files.wordpress.com/2008/04/untitled.jpg" medium="image" />
	</item>
		<item>
		<title>ALV Hierarchy</title>
		<link>http://myabap.wordpress.com/2008/05/09/alv-hierarchy/</link>
		<comments>http://myabap.wordpress.com/2008/05/09/alv-hierarchy/#comments</comments>
		<pubDate>Fri, 09 May 2008 06:25:13 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[ALV]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=11</guid>
		<description><![CDATA[
Here&#8217;s the example about how to create report using ALV hierarchy (courtesy of Sigit Rachmanto)

report ytes_hierarchy no standard page heading line-size 255.
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;standard common includes&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*
* common report header and other functions
include yin_list_header.
* ALV common functions
include yin_alv_common.
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;standard common includes&#8212;ends&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*
* Tables                  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=11&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://myabap.files.wordpress.com/2008/05/scsc.jpg"><img class="alignnone size-medium wp-image-10" src="http://myabap.files.wordpress.com/2008/05/scsc.jpg?w=300&#038;h=183" alt="" width="300" height="183" /></a></p>
<p>Here&#8217;s the example about how to create report using ALV hierarchy (<em>courtesy of Sigit Rachmanto</em>)</p>
<p><span id="more-11"></span></p>
<blockquote><p><span><span class="L1S52">report</span> ytes_hierarchy <span class="L1S52">no</span> <span class="L1S52">standard</span> <span class="L1S52">page</span> heading <span class="L1S52">line</span>-<span class="L1S52">size</span> <span class="L1S32">255</span>.</span></p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;standard common includes&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">* common report header and other functions</span><br />
<span class="L1S52">include</span> yin_list_header.</p>
<p><span class="L1S31">* ALV common functions</span><br />
<span class="L1S52">include</span> yin_alv_common.</p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;standard common includes&#8212;ends&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">* Tables                                                               *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">tables</span>: aufk, afvc.<br />
<span class="L1S52">type</span>-pools: kkblo, slis, abap.</p>
<p><span class="L1S52">types</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> header_type.<br />
<span class="L1S52">include</span> <span class="L1S52">structure</span> caufv.<br />
<span class="L1S52">types</span>:  chbox(<span class="L1S32">1</span>),<br />
<span class="L1S52">exp</span>(<span class="L1S32">1</span>).<br />
<span class="L1S52">types</span>: <span class="L1S52">end</span> <span class="L1S52">of</span> header_type.</p>
<p><span class="L1S52">types</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> detail_type,<br />
aufpl <span class="L1S52">like</span> afvc-aufpl,<br />
vornr <span class="L1S52">like</span> afvc-vornr,<br />
werks <span class="L1S52">like</span> afvc-werks,<br />
steus <span class="L1S52">like</span> afvc-steus,<br />
ltxa1 <span class="L1S52">like</span> afvc-ltxa1,<br />
<span class="L1S52">end</span> <span class="L1S52">of</span> detail_type.</p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">* Global Internal Table</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">data</span>:gi_header <span class="L1S52">type</span> <span class="L1S52">standard</span> <span class="L1S52">table</span> <span class="L1S52">of</span> header_type <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>,<br />
gi_detail <span class="L1S52">type</span> <span class="L1S52">standard</span> <span class="L1S52">table</span> <span class="L1S52">of</span> detail_type <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>.</p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">* Global Variable                                          *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">data</span>: repid <span class="L1S52">like</span> sy-repid <span class="L1S52">value</span> <span class="L1S33">&#8216;YTES_HIERARCHY&#8217;</span>.<br />
<span class="L1S52">data</span>: ok_code <span class="L1S52">like</span> sy-ucomm.</p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</span><br />
<span class="L1S31">*&amp; selection-screen -&gt; Selection</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</span></p>
<p>selection-<span class="L1S52">screen</span> <span class="L1S52">begin</span> <span class="L1S52">of</span> <span class="L1S52">block</span> zyhb1 <span class="L1S52">with</span> <span class="L1S52">frame</span> <span class="L1S52">title</span> <span class="L1S52">text</span>-<span class="L1S32">101</span>.<br />
<span class="L1S52">select</span>-options:<br />
so_aufnr   <span class="L1S52">for</span> aufk-aufnr <span class="L1S52">no</span> intervals.<br />
selection-<span class="L1S52">screen</span> <span class="L1S52">end</span> <span class="L1S52">of</span> <span class="L1S52">block</span> zyhb1 .</p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">* START-OF-SELECTION.</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
start-<span class="L1S52">of</span>-selection.<br />
<span class="L1S52">perform</span> f_collect_data.<br />
<span class="L1S52">perform</span> f_print_data.<br />
<span class="L1S52">perform</span> f_refresh_itab.</p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">* END-OF-SELECTION.</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">end</span>-<span class="L1S52">of</span>-selection.</p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_collect_data</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_collect_data.<br />
<span class="L1S52">select</span> * <span class="L1S52">into</span> corresponding <span class="L1S52">fields</span> <span class="L1S52">of</span> <span class="L1S52">table</span> gi_header<br />
<span class="L1S52">from</span> caufv <span class="L1S52">where</span> aufnr <span class="L1S52">in</span> so_aufnr.<br />
<span class="L1S52">select</span> * <span class="L1S52">into</span> corresponding <span class="L1S52">fields</span> <span class="L1S52">of</span> <span class="L1S52">table</span> gi_detail<br />
<span class="L1S52">from</span> afvc <span class="L1S52">for</span> <span class="L1S52">all</span> entries <span class="L1S52">in</span> gi_header <span class="L1S52">where</span> aufpl = gi_header-aufpl.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_collect_data</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_print_data</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_print_data.<br />
<span class="L1S52">perform</span> f_alv <span class="L1S52">tables</span> gi_header.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_print_data</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_refresh_intab</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_refresh_itab.<br />
<span class="L1S52">refresh</span>: gi_header, gi_detail.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_refresh_intab</span></p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       FORM f_alv                                                    *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       &#8230;&#8230;..                                                      *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*  &#8211;&gt;  FT_DATA                                                       *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_alv <span class="L1S52">tables</span> ft_report.</p>
<p><span class="L1S52">perform</span> f_gui_message <span class="L1S52">using</span> <span class="L1S33">&#8216;Write Data in Progress &#8230;&#8217;</span> <span class="L1S33">&#8221;</span>.<br />
<span class="L1S52">perform</span> f_clear_alv_data.<br />
<span class="L1S52">perform</span> f_build_fieldcat.<br />
<span class="L1S52">perform</span> f_build_keyinfo     <span class="L1S52">using</span> d_alv_keyinfo.<br />
<span class="L1S52">perform</span> f_build_layout      <span class="L1S52">using</span> d_layout.<br />
<span class="L1S52">perform</span> f_build_event       <span class="L1S52">tables</span> t_alv_event.</p>
<p>d_repid = sy-repid.<br />
<span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;REUSE_ALV_HIERSEQ_LIST_DISPLAY&#8217;</span><br />
<span class="L1S52">exporting</span><br />
i_callback_program       = d_repid<br />
i_callback_pf_status_set = <span class="L1S33">&#8216;F_SET_PF_STATUS&#8217;</span><br />
i_callback_user_command  = <span class="L1S33">&#8216;F_USER_COMMAND&#8217;</span><br />
is_layout                = d_layout<br />
it_fieldcat              = t_alv_fieldcat[]<br />
it_events                = t_alv_event[]<br />
i_tabname_header         = <span class="L1S33">&#8216;GI_HEADER&#8217;</span><br />
i_tabname_item           = <span class="L1S33">&#8216;GI_DETAIL&#8217;</span><br />
is_keyinfo               = d_alv_keyinfo<br />
<span class="L1S52">tables</span><br />
t_outtab_header          = gi_header<br />
t_outtab_item            = gi_detail<br />
<span class="L1S52">exceptions</span><br />
program_error            = <span class="L1S32">1</span><br />
<span class="L1S52">others</span> = <span class="L1S32">2</span>.<br />
<span class="L1S52">endform</span>.                     <span class="L1S31">&#8221; f_alv</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_gui_message</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;fu_text1   text</span><br />
<span class="L1S31">*      &#8211;&gt;fu_text2   text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_gui_message <span class="L1S52">using</span> fu_text1 fu_text2.<br />
<span class="L1S52">data</span>: ld_text1(<span class="L1S32">100</span>)    <span class="L1S52">type</span> <span class="L1S52">c</span>.</p>
<p><span class="L1S52">concatenate</span> fu_text1 fu_text2 <span class="L1S52">into</span> ld_text1<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;SAPGUI_PROGRESS_INDICATOR&#8217;</span><br />
<span class="L1S52">exporting</span><br />
percentage = <span class="L1S32">0</span><br />
<span class="L1S52">text</span> = ld_text1.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_gui_message</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_clear_alv_data</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_clear_alv_data.<br />
<span class="L1S52">clear</span>:t_alv_fieldcat,<br />
t_alv_event,<br />
t_events,<br />
t_alv_isort,<br />
t_alv_filter,<br />
t_event_exit,<br />
d_alv_isort,<br />
d_alv_variant,<br />
d_alv_list_scroll,<br />
d_alv_sort_postn,<br />
d_alv_keyinfo,<br />
d_alv_fieldcat,<br />
d_alv_formname,<br />
d_alv_ucomm,<br />
d_alv_print,<br />
d_alv_repid,<br />
d_alv_tabix,<br />
d_alv_subrc,<br />
d_alv_screen_start_column,<br />
d_alv_screen_start_line,<br />
d_alv_screen_end_column,<br />
d_alv_screen_end_line,<br />
d_alv_layout,<br />
d_layout,<br />
d_repid,<br />
d_print.</p>
<p><span class="L1S52">refresh</span>: t_alv_fieldcat,<br />
t_alv_event,<br />
t_events,<br />
t_alv_isort,<br />
t_alv_filter,<br />
t_event_exit.</p>
<p>d_repid = sy-repid.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_clear_alv_data</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_build_fieldcat</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_FT_REPORT  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_build_fieldcat .</p>
<p><span class="L1S52">refresh</span>: t_alv_fieldcat.</p>
<p><span class="L1S52">perform</span> f_fieldcatg <span class="L1S52">using</span> <span class="L1S33">&#8216;GI_HEADER&#8217;</span>:<br />
<span class="L1S33">&#8216;AUFNR&#8217;</span> <span class="L1S33">&#8216;CAUFV&#8217;</span> <span class="L1S33">&#8216;AUFNR&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>,<br />
<span class="L1S33">&#8216;AUART&#8217;</span> <span class="L1S33">&#8216;CAUFV&#8217;</span> <span class="L1S33">&#8216;AUART&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>,<br />
<span class="L1S33">&#8216;AUTYP&#8217;</span> <span class="L1S33">&#8216;CAUFV&#8217;</span> <span class="L1S33">&#8216;AUTYP&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>,<br />
<span class="L1S33">&#8216;AUFPL&#8217;</span> <span class="L1S33">&#8216;CAUFV&#8217;</span> <span class="L1S33">&#8216;AUFPL&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>.</p>
<p><span class="L1S52">perform</span> f_fieldcatg <span class="L1S52">using</span> <span class="L1S33">&#8216;GI_DETAIL&#8217;</span>:<br />
<span class="L1S33">&#8216;VORNR&#8217;</span> <span class="L1S33">&#8216;AFVC&#8217;</span> <span class="L1S33">&#8216;VORNR&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>,<br />
<span class="L1S33">&#8216;WERKS&#8217;</span> <span class="L1S33">&#8216;AFVC&#8217;</span> <span class="L1S33">&#8216;WERKS&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>,<br />
<span class="L1S33">&#8216;STEUS&#8217;</span> <span class="L1S33">&#8216;AFVC&#8217;</span> <span class="L1S33">&#8216;STEUS&#8217;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>,<br />
<span class="L1S33">&#8216;LTXA1&#8242;</span> <span class="L1S33">&#8216;AFVC&#8217;</span> <span class="L1S33">&#8216;LTXA1&#8242;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>.</p>
<p><span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;REUSE_ALV_FIELDCATALOG_MERGE&#8217;</span><br />
<span class="L1S52">exporting</span><br />
i_internal_tabname     = <span class="L1S33">&#8216;GI_HEADER&#8217;</span><br />
<span class="L1S52">changing</span><br />
ct_fieldcat            = t_alv_fieldcat[]<br />
<span class="L1S52">exceptions</span><br />
inconsistent_interface = <span class="L1S32">1</span><br />
program_error          = <span class="L1S32">2</span><br />
<span class="L1S52">others</span> = <span class="L1S32">3</span>.</p>
<p><span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;REUSE_ALV_FIELDCATALOG_MERGE&#8217;</span><br />
<span class="L1S52">exporting</span><br />
i_internal_tabname     = <span class="L1S33">&#8216;GI_DETAIL&#8217;</span><br />
<span class="L1S52">changing</span><br />
ct_fieldcat            = t_alv_fieldcat[]<br />
<span class="L1S52">exceptions</span><br />
inconsistent_interface = <span class="L1S32">1</span><br />
program_error          = <span class="L1S32">2</span><br />
<span class="L1S52">others</span> = <span class="L1S32">3</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_build_fieldcat</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_build_layout</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;FU_LAYOUT  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_build_layout <span class="L1S52">using</span> fu_layout <span class="L1S52">type</span> slis_layout_alv.<br />
fu_layout-f2code             = <span class="L1S33">&#8216;&amp;IC1&#8242;</span>.<br />
fu_layout-zebra              = <span class="L1S33">&#8216;X&#8217;</span>.<br />
fu_layout-colwidth_optimize  = space.<br />
fu_layout-no_colhead         = space.<br />
fu_layout-no_uline_hs        = <span class="L1S33">&#8216;X&#8217;</span>.</p>
<p>fu_layout-box_fieldname      = <span class="L1S33">&#8216;CHBOX&#8217;</span>.<br />
fu_layout-box_tabname        = <span class="L1S33">&#8216;GI_HEADER&#8217;</span>.<br />
fu_layout-expand_fieldname   = <span class="L1S33">&#8216;EXP&#8217;</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_build_layout</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_build_sortfield</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;FU_SORT  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_build_sortfield <span class="L1S52">using</span> fu_sort <span class="L1S52">type</span> slis_t_sortinfo_alv.<br />
<span class="L1S52">data</span>: ld_sort <span class="L1S52">type</span> slis_sortinfo_alv.</p>
<p><span class="L1S52">clear</span> ld_sort.<br />
ld_sort-tabname   = <span class="L1S33">&#8216;GI_HEADER&#8217;</span>.<br />
ld_sort-fieldname = <span class="L1S33">&#8216;AUFNR&#8217;</span>.<br />
ld_sort-<span class="L1S52">up</span> = <span class="L1S33">&#8216;X&#8217;</span>.<br />
ld_sort-subtot    = <span class="L1S33">&#8216;X&#8217;</span>.<br />
<span class="L1S52">append</span> ld_sort <span class="L1S52">to</span> fu_sort.</p>
<p><span class="L1S52">clear</span> ld_sort.<br />
ld_sort-tabname   = <span class="L1S33">&#8216;GI_DETAIL&#8217;</span>.<br />
ld_sort-fieldname = <span class="L1S33">&#8216;VORNR&#8217;</span>.<br />
ld_sort-<span class="L1S52">up</span> = <span class="L1S33">&#8216;X&#8217;</span>.<br />
ld_sort-subtot    = <span class="L1S33">&#8216;X&#8217;</span>.<br />
<span class="L1S52">append</span> ld_sort <span class="L1S52">to</span> fu_sort.</p>
<p><span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_build_sortfield</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_build_event</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt; FT_EVENTS</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_build_event <span class="L1S52">tables</span> ft_events <span class="L1S52">like</span> t_events.<br />
<span class="L1S52">refresh</span>: ft_events.<br />
<span class="L1S52">clear</span> ft_events.<br />
ft_events-name = slis_ev_top_of_page.<br />
ft_events-<span class="L1S52">form</span> = <span class="L1S33">&#8216;F_TOP_OF_PAGE&#8217;</span>.<br />
<span class="L1S52">append</span> ft_events.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_build_event</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_build_event_exit</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_build_event_exit.<br />
<span class="L1S52">clear</span> t_event_exit.<br />
t_event_exit-ucomm = <span class="L1S33">&#8216;&amp;OUP&#8217;</span>.<br />
t_event_exit-after = <span class="L1S33">&#8216;X&#8217;</span>.<br />
<span class="L1S52">append</span> t_event_exit.</p>
<p><span class="L1S52">clear</span> t_event_exit.<br />
t_event_exit-ucomm = <span class="L1S33">&#8216;&amp;ODN&#8217;</span>.<br />
t_event_exit-after = <span class="L1S33">&#8216;X&#8217;</span>.<br />
<span class="L1S52">append</span> t_event_exit.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_build_event_exit</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_fieldcatg</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_fieldcatg <span class="L1S52">using</span><br />
<span class="L1S52">value</span>(fu_types)  <span class="L1S52">value</span>(fu_fname)<br />
<span class="L1S52">value</span>(fu_reftb)<br />
<span class="L1S52">value</span>(fu_refld)<br />
<span class="L1S52">value</span>(fu_noout)<br />
<span class="L1S52">value</span>(fu_outln)<br />
<span class="L1S52">value</span>(fu_fltxt)<br />
<span class="L1S52">value</span>(fu_dosum)<br />
<span class="L1S52">value</span>(fu_hotsp)<br />
<span class="L1S52">value</span>(fu_dec)<br />
<span class="L1S52">value</span>(fu_waers)<br />
<span class="L1S52">value</span>(fu_meins)<br />
<span class="L1S52">value</span>(fu_waers_f)<br />
<span class="L1S52">value</span>(fu_meins_f)<br />
<span class="L1S52">value</span>(fu_checkbox)<br />
<span class="L1S31">*                         value(fu_fixcolumn)</span><br />
<span class="L1S52">value</span>(fu_key)<br />
<span class="L1S52">value</span>(fu_icon)<br />
<span class="L1S52">value</span>(fu_input).</p>
<p><span class="L1S52">data</span>: ld_fieldcat  <span class="L1S52">type</span> slis_fieldcat_alv.<br />
<span class="L1S52">clear</span>: ld_fieldcat.<br />
ld_fieldcat-tabname       = fu_types.<br />
ld_fieldcat-fieldname     = fu_fname.<br />
ld_fieldcat-ref_tabname   = fu_reftb.<br />
ld_fieldcat-ref_fieldname = fu_refld.<br />
ld_fieldcat-no_out        = fu_noout.<br />
ld_fieldcat-outputlen     = fu_outln.<br />
ld_fieldcat-seltext_l     = fu_fltxt.<br />
ld_fieldcat-seltext_m     = fu_fltxt.<br />
ld_fieldcat-seltext_s     = fu_fltxt.<br />
ld_fieldcat-reptext_ddic  = fu_fltxt.<br />
ld_fieldcat-no_out        = fu_noout.<br />
ld_fieldcat-do_sum        = fu_dosum.<br />
ld_fieldcat-<span class="L1S52">hotspot</span> = fu_hotsp.<br />
ld_fieldcat-decimals_out  = fu_dec.<br />
ld_fieldcat-<span class="L1S52">currency</span> = fu_waers.<br />
ld_fieldcat-quantity      = fu_meins.<br />
ld_fieldcat-qfieldname    = fu_meins_f.<br />
ld_fieldcat-cfieldname    = fu_waers_f.<br />
ld_fieldcat-<span class="L1S52">checkbox</span> = fu_checkbox.<br />
<span class="L1S31">* ld_fieldcat-fix_column    = fu_fixcolumn.</span><br />
ld_fieldcat-<span class="L1S52">key</span> = fu_key.<br />
ld_fieldcat-<span class="L1S52">icon</span> = fu_icon.<br />
ld_fieldcat-<span class="L1S52">input</span> = fu_input.<br />
<span class="L1S52">append</span> ld_fieldcat <span class="L1S52">to</span> t_alv_fieldcat.<br />
<span class="L1S52">clear</span> ld_fieldcat.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_fieldcatg</span></p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       FORM f_top_of_page                                            *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       &#8230;&#8230;..                                                      *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_top_of_page.<br />
<span class="L1S52">uline</span>.<br />
<span class="L1S52">perform</span> fm_hdr_title <span class="L1S52">using</span> sy-<span class="L1S52">title</span>.<br />
<span class="L1S52">perform</span> fm_skip.<br />
<span class="L1S52">uline</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8220;f_top_of_page</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</span><br />
<span class="L1S31">*&amp;      Form  f_build_keyinfo</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*      &#8211;&gt;FU_KEYINFO text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_build_keyinfo  <span class="L1S52">using</span> fu_keyinfo <span class="L1S52">type</span> slis_keyinfo_alv .<br />
fu_keyinfo-header01 = <span class="L1S33">&#8216;AUFPL&#8217;</span>.<br />
fu_keyinfo-item01 = <span class="L1S33">&#8216;AUFPL&#8217;</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_build_keyinfo</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</span><br />
<span class="L1S31">*&amp;      Form  f_set_pf_status</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_set_pf_status <span class="L1S52">using</span> rt_extab <span class="L1S52">type</span> slis_t_extab.</p>
<p><span class="L1S52">types</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> tab_type,<br />
fcode <span class="L1S52">like</span> rsmpe-func,<br />
<span class="L1S52">end</span> <span class="L1S52">of</span> tab_type.</p>
<p><span class="L1S52">data</span>: tab <span class="L1S52">type</span> <span class="L1S52">standard</span> <span class="L1S52">table</span> <span class="L1S52">of</span> tab_type <span class="L1S52">with</span><br />
non-<span class="L1S52">unique</span> <span class="L1S52">default</span> <span class="L1S52">key</span> <span class="L1S52">initial</span> <span class="L1S52">size</span> <span class="L1S32">10</span>,<br />
wa_tab <span class="L1S52">type</span> tab_type.</p>
<p><span class="L1S52">clear</span> tab.<br />
sy-lsind = <span class="L1S32">0</span>.<br />
<span class="L1S52">set</span> pf-status <span class="L1S33">&#8216;ZSTANDARD&#8217;</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_SET_PF_STATUS</span></p>
<p><span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       FORM f_user_command                                          *</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_user_command <span class="L1S52">using</span> fu_ucomm    <span class="L1S52">like</span> sy-ucomm<br />
fu_selfield <span class="L1S52">type</span> slis_selfield.</p>
<p><span class="L1S52">data</span>: lt_dynpread <span class="L1S52">like</span> dynpread <span class="L1S52">occurs</span> <span class="L1S32">0</span> <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>.</p>
<p><span class="L1S52">move</span> fu_ucomm <span class="L1S52">to</span> ok_code.<br />
<span class="L1S52">case</span> ok_code.<br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;&amp;IC1&#8242;</span>.<br />
<span class="L1S52">perform</span> f_double_clicked_view.<br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;&amp;ETA&#8217;</span>.<br />
<span class="L1S52">perform</span> f_double_clicked_view.<br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;&amp;F03&#8242;</span> <span class="L1S52">or</span> <span class="L1S33">&#8216;&amp;F15&#8242;</span> <span class="L1S52">or</span> <span class="L1S33">&#8216;&amp;F12&#8242;</span>.<br />
<span class="L1S52">endcase</span>.</p>
<p><span class="L1S52">move</span> <span class="L1S33">&#8216;X&#8217;</span> <span class="L1S52">to</span> fu_selfield-<span class="L1S52">refresh</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8220;f_user_command</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_double_clicked_view</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_double_clicked_view .<br />
<span class="L1S52">data</span>: rs_selfield   <span class="L1S52">type</span> slis_selfield,<br />
l_tabname     <span class="L1S52">type</span> kkblo_tabname.</p>
<p><span class="L1S52">get</span> <span class="L1S52">cursor</span> <span class="L1S52">field</span> rs_selfield-sel_tab_field <span class="L1S52">value</span> rs_selfield-<span class="L1S52">value</span>.<br />
<span class="L1S52">split</span> rs_selfield-sel_tab_field <span class="L1S52">at</span> <span class="L1S33">&#8216;-&#8217;</span> <span class="L1S52">into</span> l_tabname<br />
rs_selfield-fieldname.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; f_double_clicked_view</span></p></blockquote>
<p><strong>INCLUDE <!--StartFragment --> <span>yin_list_header</span></strong></p>
<blockquote><p><!--StartFragment --> *<span><span class="L1S31">&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*&amp;  Include           YIN_LIST_HEADER                                *</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></span></p>
<p><span class="L1S52">data</span>:<br />
d_hdr_rpt_lines <span class="L1S52">value</span> <span class="L1S33">&#8216;X&#8217;</span>,<br />
d_hdr_selection(<span class="L1S32">50</span>),<br />
d_hdr_rpos <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_hdr_lines <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_hdr_types,<br />
d_hdr_intsf,   <span class="L1S31">&#8220;Flag for intensified</span><br />
d_hdr_low(<span class="L1S32">30</span>),<br />
d_hdr_high(<span class="L1S32">30</span>),<br />
d_hdr_atext(<span class="L1S32">80</span>),<br />
d_hdr_lngth <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_hdr_title(<span class="L1S32">999</span>),           <span class="L1S31">&#8221; Report title with padding</span><br />
d_hdr_text1(<span class="L1S32">999</span>),           <span class="L1S31">&#8221; User text 1</span><br />
d_hdr_text2(<span class="L1S32">999</span>),           <span class="L1S31">&#8221; User text 2</span><br />
d_hdr_text3(<span class="L1S32">999</span>).           <span class="L1S31">&#8221; User text 3</span></p>
<p><span class="L1S52">data</span>: d_hdr_begrtime <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_hdr_endrtime <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_hdr_rtime(<span class="L1S32">15</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;HH:MM:SS,mm&#8217;</span>.</p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Macro  m_hdr_show_selection_value</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">* Display value of SELECT-OPTIONS</span><br />
<span class="L1S31">* &amp;1 =&gt; cursor position</span><br />
<span class="L1S31">* &amp;2 =&gt; decription</span><br />
<span class="L1S31">* &amp;3 =&gt; internal table from selection screen</span><br />
<span class="L1S31">* &amp;4 =&gt; L = left justified; R = right justified</span><br />
<span class="L1S52">define</span> m_hdr_show_selection_value.<br />
<span class="L1S52">clear</span> d_hdr_selection.<br />
<span class="L1S52">concatenate</span> &amp;<span class="L1S32">2</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">into</span> d_hdr_selection <span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">describe</span> <span class="L1S52">table</span> &amp;<span class="L1S32">3</span> <span class="L1S52">lines</span> d_hdr_lines.<br />
<span class="L1S52">if</span> d_hdr_lines <span class="L1S52">gt</span> <span class="L1S32">1</span>.<br />
<span class="L1S31">*&#8211; More then 1 value for each selection criteria</span><br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> <span class="L1S33">&#8216;Multiple Selection&#8217;</span> <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S52">elseif</span> &amp;<span class="L1S32">3</span> <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S31">*&#8211; Select all</span><br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> <span class="L1S33">&#8216;All&#8217;</span> <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">describe</span> <span class="L1S52">field</span> &amp;<span class="L1S32">3</span>-low <span class="L1S52">type</span> d_hdr_types.<br />
<span class="L1S52">write</span> &amp;<span class="L1S32">3</span>-low <span class="L1S52">to</span> d_hdr_low.<br />
<span class="L1S52">write</span> &amp;<span class="L1S32">3</span>-high <span class="L1S52">to</span> d_hdr_high.<br />
<span class="L1S31">*&#8211; Specific requirement</span><br />
<span class="L1S52">if</span> <span class="L1S52">not</span> ( d_hdr_types <span class="L1S52">eq</span> <span class="L1S33">&#8216;D&#8217;</span> <span class="L1S52">or</span> d_hdr_types <span class="L1S52">ne</span> <span class="L1S33">&#8216;T&#8217;</span> ).<br />
<span class="L1S31">*&#8212;- Don&#8217;t delete leading zero for type DATE and TIME.</span><br />
<span class="L1S52">shift</span> d_hdr_low <span class="L1S52">left</span> deleting <span class="L1S52">leading</span> <span class="L1S33">&#8216;0&#8242;</span>.<br />
<span class="L1S52">shift</span> d_hdr_high <span class="L1S52">left</span> deleting <span class="L1S52">leading</span> <span class="L1S33">&#8216;0&#8242;</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">clear</span> d_hdr_atext.<br />
<span class="L1S52">if</span> &amp;<span class="L1S32">3</span>-<span class="L1S52">sign</span> = <span class="L1S33">&#8216;I&#8217;</span>.<br />
<span class="L1S31">*&#8212;- Include range</span><br />
<span class="L1S52">case</span> &amp;<span class="L1S32">3</span>-option.<br />
<span class="L1S31">*&#8212;&#8212; Equal</span><br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;EQ&#8217;</span>. <span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> d_hdr_low <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S31">*&#8212;&#8212; Between</span><br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;BT&#8217;</span>. <span class="L1S52">concatenate</span> d_hdr_low <span class="L1S33">&#8216;to&#8217;</span> d_hdr_high<br />
<span class="L1S52">into</span> d_hdr_atext <span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> d_hdr_atext <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S31">*&#8212;&#8212; Others ( NE, GT, LT, GE, LE, LIKE )</span><br />
<span class="L1S52">when</span> <span class="L1S52">others</span>. <span class="L1S52">concatenate</span> &amp;<span class="L1S32">3</span>-option d_hdr_low<br />
<span class="L1S52">into</span> d_hdr_atext <span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> d_hdr_atext <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S52">endcase</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S31">*&#8212;- Exclude range</span><br />
<span class="L1S52">write</span>: <span class="L1S33">&#8216;NOT&#8217;</span>.<br />
<span class="L1S52">case</span> &amp;<span class="L1S32">3</span>-option.<br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;EQ&#8217;</span>. <span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> d_hdr_low <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S52">when</span> <span class="L1S33">&#8216;BT&#8217;</span>. <span class="L1S52">concatenate</span> <span class="L1S33">&#8216;IN ['</span> d_hdr_low <span class="L1S33">'to'</span> d_hdr_high <span class="L1S33">']&#8216;</span><br />
<span class="L1S52">into</span> d_hdr_atext <span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> d_hdr_atext <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S31">*&#8212;&#8212; Others ( NE, GT, LT, GE, LE, LIKE )</span><br />
<span class="L1S52">when</span> <span class="L1S52">others</span>. <span class="L1S52">concatenate</span> &amp;<span class="L1S32">3</span>-option d_hdr_low<br />
<span class="L1S52">into</span> d_hdr_atext <span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;%%&#8217;</span> <span class="L1S52">with</span> d_hdr_atext <span class="L1S52">into</span> d_hdr_selection.<br />
<span class="L1S52">endcase</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">endif</span>.<br />
d_hdr_lngth = <span class="L1S52">strlen</span>( d_hdr_selection ).<br />
<span class="L1S52">if</span> &amp;<span class="L1S32">4</span> <span class="L1S52">eq</span> <span class="L1S33">&#8216;L&#8217;</span> <span class="L1S52">or</span> &amp;<span class="L1S32">4</span> <span class="L1S52">eq</span> <span class="L1S33">&#8216;l&#8217;</span>.<br />
<span class="L1S52">write</span> <span class="L1S52">at</span> &amp;<span class="L1S32">1</span>(d_hdr_lngth) d_hdr_selection.<br />
<span class="L1S52">else</span>.<br />
d_hdr_rpos = &amp;<span class="L1S32">1</span> &#8211; d_hdr_lngth.<br />
<span class="L1S52">write</span> <span class="L1S52">at</span> d_hdr_rpos(d_hdr_lngth) d_hdr_selection.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">end</span>-<span class="L1S52">of</span>-<span class="L1S52">definition</span>.</p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  FM_HDR_PAD_TITLE</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       Prepare the variable with the title text spaced correctly</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> fm_hdr_pad_title <span class="L1S52">using</span> v_left_text v_middle_text v_right_text.</p>
<p><span class="L1S52">data</span>:<br />
page_width <span class="L1S52">type</span> <span class="L1S52">i</span>,       <span class="L1S31">&#8221; Width of page</span><br />
middle_length <span class="L1S52">type</span> <span class="L1S52">i</span>,    <span class="L1S31">&#8221; Length of title text</span><br />
left_length <span class="L1S52">type</span> <span class="L1S52">i</span>,      <span class="L1S31">&#8221; Length of left text</span><br />
right_length <span class="L1S52">type</span> <span class="L1S52">i</span>,     <span class="L1S31">&#8221; Length of right text</span><br />
left_start <span class="L1S52">type</span> <span class="L1S52">i</span>,       <span class="L1S31">&#8221; Position on line for start of left tex</span><br />
middle_start <span class="L1S52">type</span> <span class="L1S52">i</span>,     <span class="L1S31">&#8221; Position on line for start of middl tex</span><br />
right_start <span class="L1S52">type</span> <span class="L1S52">i</span>.      <span class="L1S31">&#8221; Position on line for start of right tex</span></p>
<p><span class="L1S31">*&#8212; Start with a blank title</span><br />
<span class="L1S52">clear</span> d_hdr_title.<br />
page_width = sy-linsz &#8211; <span class="L1S32">1</span>.</p>
<p><span class="L1S31">*&#8212; Compute space on either side of title allowing vertical border</span><br />
<span class="L1S52">compute</span> middle_length = <span class="L1S52">strlen</span>( v_middle_text ).<br />
<span class="L1S52">compute</span> left_length = <span class="L1S52">strlen</span>( v_left_text ).<br />
<span class="L1S52">compute</span> right_length = <span class="L1S52">strlen</span>( v_right_text ).</p>
<p><span class="L1S52">compute</span> middle_start = ( sy-linsz &#8211; middle_length ) / <span class="L1S32">2</span>.</p>
<p><span class="L1S31">*&#8212; Allow for vertical lines</span><br />
left_start = <span class="L1S32">0</span>.<br />
<span class="L1S52">if</span> d_hdr_rpt_lines = <span class="L1S33">&#8216;X&#8217;</span>.<br />
d_hdr_title(<span class="L1S32">1</span>) = sy-vline.<br />
d_hdr_title+page_width(<span class="L1S32">1</span>) = sy-vline.<br />
left_start = <span class="L1S32">1</span>.<br />
<span class="L1S52">endif</span>.<br />
right_start = sy-linsz &#8211; left_start &#8211; right_length &#8211; <span class="L1S32">1</span>.<br />
<span class="L1S52">write</span>:/ sy-vline.<br />
<span class="L1S31">*&#8212; Insert texts</span><br />
<span class="L1S52">if</span> left_length &lt;&gt; <span class="L1S32">0</span>.<br />
<span class="L1S31">*    d_hdr_title+left_start(left_length) = v_left_text.</span><br />
<span class="L1S52">write</span> <span class="L1S52">at</span> (left_length) v_left_text.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">if</span> middle_length &lt;&gt; <span class="L1S32">0</span>.<br />
<span class="L1S52">write</span> <span class="L1S52">at</span> middle_start(middle_length) v_middle_text.<br />
<span class="L1S31">*    d_hdr_title+middle_start(middle_length) = v_middle_text.</span><br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">if</span> right_length &lt;&gt; <span class="L1S32">0</span>.<br />
<span class="L1S52">write</span> <span class="L1S52">at</span> right_start(<span class="L1S32">26</span>) v_right_text.<br />
<span class="L1S31">*    d_hdr_title+right_start(right_length) = v_right_text.</span><br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">write</span> <span class="L1S52">at</span> sy-linsz sy-vline.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; FM_HDR_PAD_TITLE</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_END</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       Output End-Of-Report text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_hdr_end.<br />
<span class="L1S52">skip</span>.<br />
<span class="L1S52">write</span> <span class="L1S33">&#8216;         *** End of Report ***&#8217;</span>(<span class="L1S32">999</span>)    <span class="L1S31">&#8221; End of report</span><br />
<span class="L1S52">color</span> col_background.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_END</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  FM_HDR_ULINE</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       Draw underline if flag set</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> fm_hdr_uline.<br />
<span class="L1S52">if</span> d_hdr_rpt_lines = <span class="L1S33">&#8216;X&#8217;</span>.<br />
<span class="L1S52">uline</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; FM_HDR_ULINE</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  FM_HDR_TITLE</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       Header line with title</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> fm_hdr_title <span class="L1S52">using</span> fu_company.<br />
<span class="L1S52">data</span>:<br />
lv_number(<span class="L1S32">30</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Page          :  nnnn&#8217;</span>,<br />
lv_progname(<span class="L1S32">42</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Program: xx&#8217;</span>,<br />
lv_prog(<span class="L1S32">20</span>),<br />
lv_page(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; Page number</span><br />
<span class="L1S31">*  lv_page = sy-pagno.</span><br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;nnnn&#8217;</span> <span class="L1S52">with</span> lv_page <span class="L1S52">into</span> lv_number.<br />
<span class="L1S52">if</span> sy-cprog <span class="L1S52">eq</span> sy-repid.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;xx&#8217;</span> <span class="L1S52">with</span> sy-repid <span class="L1S52">into</span> lv_progname.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> sy-repid <span class="L1S33">&#8216;(&#8216;</span> sy-cprog <span class="L1S33">&#8216;)&#8217;</span> <span class="L1S52">into</span> lv_prog.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;xx&#8217;</span> <span class="L1S52">with</span> lv_prog <span class="L1S52">into</span> lv_progname.<br />
<span class="L1S52">endif</span>.</p>
<p><span class="L1S31">*&#8212; Output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> fu_company <span class="L1S33">&#8221;</span> lv_page.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; FM_HDR_TITLE</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  FM_HDR_LINE1</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       Client, User text 1, Date and time</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> fm_hdr_line1 <span class="L1S52">using</span> fu_title.<br />
<span class="L1S52">data</span>:<br />
lv_left(<span class="L1S32">30</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S31">*  replace &#8216;XXX&#8217; with sy-sysid(3) into lv_left.</span><br />
<span class="L1S31">*  replace &#8216;YYY&#8217; with sy-mandt into lv_left.</span></p>
<p><span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
<span class="L1S52">write</span> sy-datum <span class="L1S52">to</span> lv_datum.<br />
<span class="L1S52">concatenate</span> <span class="L1S33">&#8216;Printing date :&#8217;</span> lv_datum <span class="L1S52">into</span> lv_right <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left fu_title lv_right.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; FM_HDR_LINE1</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_LINE3</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       User name, text 2, time</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_hdr_line3 <span class="L1S52">using</span> fu_title.</p>
<p><span class="L1S52">data</span>:<br />
lv_uzeit(<span class="L1S32">5</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;hh:mm&#8217;</span>,<br />
lv_uname(<span class="L1S32">30</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Printed by    : xx&#8217;</span>,<br />
lv_name(<span class="L1S32">10</span>).<br />
<span class="L1S31">*&#8212; time</span><br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;hh&#8217;</span> <span class="L1S52">with</span> sy-uzeit(<span class="L1S32">2</span>) <span class="L1S52">into</span> lv_uzeit.     <span class="L1S31">&#8221; hour</span><br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;mm&#8217;</span> <span class="L1S52">with</span> sy-uzeit+<span class="L1S32">2</span>(<span class="L1S32">2</span>) <span class="L1S52">into</span> lv_uzeit.   <span class="L1S31">&#8221; minute</span></p>
<p><span class="L1S31">*&#8212; user</span><br />
<span class="L1S52">write</span> sy-uname <span class="L1S52">to</span> lv_name right-justified.<br />
<span class="L1S31">*  lv_name = sy-uname.</span><br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;xx&#8217;</span> <span class="L1S52">with</span> lv_name <span class="L1S52">into</span> lv_uname.</p>
<p><span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_uzeit fu_title lv_uname.</p>
<p><span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_LINE3</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_OPTIONS</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       Select options</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_hdr_options.<br />
<span class="L1S52">data</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> seltab <span class="L1S52">occurs</span> <span class="L1S32">5</span>.<br />
<span class="L1S52">include</span> <span class="L1S52">structure</span> rsparams.<br />
<span class="L1S52">data</span>: <span class="L1S52">end</span> <span class="L1S52">of</span> seltab.</p>
<p><span class="L1S52">data</span>: rpt <span class="L1S52">like</span> sy-repid.<br />
rpt = sy-repid.</p>
<p><span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;RS_REFRESH_FROM_SELECTOPTIONS&#8217;</span><br />
<span class="L1S52">exporting</span><br />
curr_report     = rpt<br />
<span class="L1S52">tables</span><br />
selection_table = seltab<br />
<span class="L1S52">exceptions</span><br />
not_found       = <span class="L1S32">1</span><br />
no_report       = <span class="L1S32">2</span><br />
<span class="L1S52">others</span> = <span class="L1S32">3</span>.</p>
<p><span class="L1S31">*&#8212; Delete unused selection options</span><br />
<span class="L1S52">loop</span> <span class="L1S52">at</span> seltab.<br />
<span class="L1S52">if</span> seltab-low = space.<br />
<span class="L1S52">delete</span> seltab <span class="L1S52">index</span> sy-tabix.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">endloop</span>.</p>
<p><span class="L1S52">call</span> <span class="L1S52">function</span> <span class="L1S33">&#8216;RS_LIST_SELECTION_TABLE&#8217;</span><br />
<span class="L1S52">exporting</span><br />
<span class="L1S52">report</span> = rpt<br />
seltext       = <span class="L1S33">&#8216;X&#8217;</span><br />
newpage       = <span class="L1S33">&#8216; &#8216;</span><br />
<span class="L1S52">tables</span><br />
sel_tab       = seltab<br />
<span class="L1S52">exceptions</span><br />
sel_tab_empty = <span class="L1S32">1</span><br />
<span class="L1S52">others</span> = <span class="L1S32">2</span>.</p>
<p><span class="L1S52">endform</span>.</p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_HEADER</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_hdr_header <span class="L1S52">using</span> fu_title.<br />
<span class="L1S52">data</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> lt_pool <span class="L1S52">occurs</span> <span class="L1S32">50</span>.<br />
<span class="L1S52">include</span> <span class="L1S52">structure</span> <span class="L1S52">textpool</span>.<br />
<span class="L1S52">data</span>: <span class="L1S52">end</span> <span class="L1S52">of</span> lt_pool.</p>
<p><span class="L1S52">perform</span> fm_hdr_uline.<br />
<span class="L1S52">perform</span> fm_hdr_title <span class="L1S52">using</span> fu_title.<br />
<span class="L1S52">read</span> <span class="L1S52">textpool</span> sy-repid <span class="L1S52">into</span> lt_pool <span class="L1S52">language</span> sy-langu.<br />
<span class="L1S52">read</span> <span class="L1S52">table</span> lt_pool <span class="L1S52">with</span> <span class="L1S52">key</span> <span class="L1S33">&#8216;R&#8217;</span>.<br />
<span class="L1S52">perform</span> fm_hdr_line1 <span class="L1S52">using</span> lt_pool-entry.<br />
<span class="L1S52">perform</span> f_hdr_line3 <span class="L1S52">using</span> space.<br />
<span class="L1S52">perform</span> fm_hdr_uline.         <span class="L1S31">&#8221; underline</span><br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_HEADER</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_VLINE</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_hdr_vline.<br />
<span class="L1S52">write</span> /01 sy-vline.<br />
<span class="L1S52">write</span> <span class="L1S52">at</span> sy-linsz sy-vline.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_VLINE</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_CALC_RUNTIME</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_hdr_calc_runtime.<br />
<span class="L1S52">data</span>:<br />
ld_tot_runtime <span class="L1S52">type</span> p <span class="L1S52">decimals</span> <span class="L1S32">2</span>,<br />
ld_hdr_rtime(<span class="L1S32">5</span>),<br />
ld_trunc <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
ld_hh(<span class="L1S32">2</span>) <span class="L1S52">type</span> n,<br />
ld_mm(<span class="L1S32">2</span>) <span class="L1S52">type</span> n,<br />
ld_ss(<span class="L1S32">2</span>) <span class="L1S52">type</span> n,<br />
ld_mi(<span class="L1S32">2</span>) <span class="L1S52">type</span> n.</p>
<p><span class="L1S52">skip</span>.<br />
<span class="L1S52">get</span> <span class="L1S52">run</span> <span class="L1S52">time</span> <span class="L1S52">field</span> d_hdr_endrtime.<br />
ld_tot_runtime = ( d_hdr_endrtime &#8211; d_hdr_begrtime ) / <span class="L1S32">1000000</span>.<br />
ld_trunc = <span class="L1S52">trunc</span>( ld_tot_runtime ).<br />
ld_hh = ld_trunc <span class="L1S52">div</span> <span class="L1S32">3600</span>.<br />
ld_mm = ld_trunc <span class="L1S52">div</span> <span class="L1S32">60</span>.<br />
ld_ss = ld_trunc <span class="L1S52">mod</span> <span class="L1S32">60</span>.<br />
ld_mi = <span class="L1S52">ceil</span>( ld_tot_runtime ).<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;HH&#8217;</span> <span class="L1S52">with</span> ld_hh <span class="L1S52">into</span> d_hdr_rtime.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;MM&#8217;</span> <span class="L1S52">with</span> ld_mm <span class="L1S52">into</span> d_hdr_rtime.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;SS&#8217;</span> <span class="L1S52">with</span> ld_ss <span class="L1S52">into</span> d_hdr_rtime.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;mm&#8217;</span> <span class="L1S52">with</span> ld_mi <span class="L1S52">into</span> d_hdr_rtime.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_CALC_RUNTIME</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_END_OF_REPORT</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">* Display &#8216;End of Report&#8217; and run time program</span><br />
<span class="L1S52">form</span> f_hdr_end_of_report.<br />
<span class="L1S52">if</span> d_hdr_rtime <span class="L1S52">ca</span> sy-abcde.<br />
<span class="L1S52">perform</span> f_hdr_calc_runtime.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">write</span>:/ <span class="L1S33">&#8216;*** End of Report ( Run time =&#8217;</span>, d_hdr_rtime, <span class="L1S33">&#8216;) ***&#8217;</span>.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_END_OF_REPORT</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  F_HDR_START_REPORT</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S52">form</span> f_hdr_start_report.<br />
<span class="L1S52">get</span> <span class="L1S52">run</span> <span class="L1S52">time</span> <span class="L1S52">field</span> d_hdr_begrtime.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_START_REPORT</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  f_hdr_line4</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_1608   text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">form</span> f_hdr_line4 <span class="L1S52">using</span> fu_company.<br />
<span class="L1S52">data</span>:<br />
lv_number(<span class="L1S32">30</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Page          :  nnnn&#8217;</span>,<br />
lv_progname(<span class="L1S32">42</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Program: xx&#8217;</span>,<br />
lv_prog(<span class="L1S32">20</span>),<br />
lv_page(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; Page number</span><br />
lv_page = sy-pagno.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;nnnn&#8217;</span> <span class="L1S52">with</span> lv_page <span class="L1S52">into</span> lv_number.<br />
<span class="L1S52">if</span> sy-cprog <span class="L1S52">eq</span> sy-repid.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;xx&#8217;</span> <span class="L1S52">with</span> sy-repid <span class="L1S52">into</span> lv_progname.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> sy-repid <span class="L1S33">&#8216;(&#8216;</span> sy-cprog <span class="L1S33">&#8216;)&#8217;</span> <span class="L1S52">into</span> lv_prog.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;xx&#8217;</span> <span class="L1S52">with</span> lv_prog <span class="L1S52">into</span> lv_progname.<br />
<span class="L1S52">endif</span>.</p>
<p><span class="L1S31">*&#8212; Output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_progname fu_company lv_number.<br />
<span class="L1S52">endform</span>.                    <span class="L1S31">&#8221; F_HDR_LINE4</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_skip</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*  &#8211;&gt;  p1        text</span><br />
<span class="L1S31">*  &lt;&#8211;  p2        text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_skip.<br />
<span class="L1S31">*&#8212; Output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>.<br />
<span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_skip</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_hdr_param1</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_FU_TEXT  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_hdr_param1 <span class="L1S52">USING</span> fu_text1 fu_text2 fu_val01 fu_val02.<br />
<span class="L1S52">data</span>: lv_left(<span class="L1S32">60</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S52">if</span> fu_val02 <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 <span class="L1S52">into</span> lv_left <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 fu_text2 fu_val02 <span class="L1S52">into</span> lv_left<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S31">*  replace &#8216;XXX&#8217; with sy-sysid(3) into lv_left.</span><br />
<span class="L1S31">*  replace &#8216;YYY&#8217; with sy-mandt into lv_left.</span></p>
<p><span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
<span class="L1S52">write</span> sy-datum <span class="L1S52">to</span> lv_datum.<br />
<span class="L1S52">concatenate</span> <span class="L1S33">&#8216;Printing date :&#8217;</span> lv_datum <span class="L1S52">into</span> lv_right <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left <span class="L1S33">&#8221;</span> lv_right.<br />
<span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_hdr_param1</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_hdr_param2</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_1609   text</span><br />
<span class="L1S31">*      &#8211;&gt;P_1610   text</span><br />
<span class="L1S31">*      &#8211;&gt;P_SO_CARID_LOW  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_SO_CARID_HIGH  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_hdr_param2 <span class="L1S52">USING</span> fu_text1 fu_text2 fu_val01 fu_val02.<br />
<span class="L1S52">data</span>: lv_left(<span class="L1S32">60</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Printed by    : xx&#8217;</span>,<br />
lv_name(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S52">if</span> fu_val02 <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 <span class="L1S52">into</span> lv_left <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 fu_text2 fu_val02 <span class="L1S52">into</span> lv_left<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">endif</span>.</p>
<p><span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
<span class="L1S52">write</span> sy-uname <span class="L1S52">to</span> lv_name right-justified.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;xx&#8217;</span> <span class="L1S52">with</span> lv_name <span class="L1S52">into</span> lv_right.</p>
<p><span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left <span class="L1S33">&#8221;</span> lv_right.</p>
<p><span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_hdr_param2</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_hdr_param3</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_CODE  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_TO  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_LOW  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_HIGH  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_hdr_param3 <span class="L1S52">USING</span> fu_text1 fu_text2 fu_val01 fu_val02.<br />
<span class="L1S52">data</span>: lv_left(<span class="L1S32">60</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Page          :  nnnn&#8217;</span>,<br />
lv_name(<span class="L1S32">10</span>),<br />
lv_page(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S52">if</span> fu_val02 <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 <span class="L1S52">into</span> lv_left <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 fu_text2 fu_val02 <span class="L1S52">into</span> lv_left<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
lv_page = sy-pagno.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;nnnn&#8217;</span> <span class="L1S52">with</span> lv_page <span class="L1S52">into</span> lv_right.</p>
<p><span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left <span class="L1S33">&#8221;</span> lv_right.</p>
<p><span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_hdr_param3</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_hdr_param4</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_CODE  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_TO  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_LOW  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_HIGH  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_hdr_param4 <span class="L1S52">USING</span> fu_text1 fu_text2 fu_val01 fu_val02.<br />
<span class="L1S52">data</span>: lv_left(<span class="L1S32">60</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Page          :  nnnn&#8217;</span>,<br />
lv_name(<span class="L1S32">10</span>),<br />
lv_page(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S52">if</span> fu_val02 <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 <span class="L1S52">into</span> lv_left <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 fu_text2 fu_val02 <span class="L1S52">into</span> lv_left<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
<span class="L1S31">*  lv_page = sy-pagno.</span><br />
<span class="L1S31">*  replace &#8216;nnnn&#8217; with lv_page into lv_right.</span></p>
<p><span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>.</p>
<p><span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_hdr_param3</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_hdr_param5</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_CODE  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_TO  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_LOW  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_HIGH  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_hdr_param5 <span class="L1S52">USING</span> fu_text1 fu_text2 fu_val01 fu_val02.<br />
<span class="L1S52">data</span>: lv_left(<span class="L1S32">60</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>) <span class="L1S52">value</span> <span class="L1S33">&#8216;Page          :  nnnn&#8217;</span>,<br />
lv_name(<span class="L1S32">10</span>),<br />
lv_page(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S52">if</span> fu_val02 <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 <span class="L1S52">into</span> lv_left <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 fu_text2 fu_val02 <span class="L1S52">into</span> lv_left<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
<span class="L1S31">*  lv_page = sy-pagno.</span><br />
<span class="L1S31">*  replace &#8216;nnnn&#8217; with lv_page into lv_right.</span></p>
<p><span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left <span class="L1S33">&#8221;</span> <span class="L1S33">&#8221;</span>.</p>
<p><span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_hdr_param5</span></p>
<p><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;      Form  fm_hdr_param6</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*       text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S31">*      &#8211;&gt;P_CODE  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_TO  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_LOW  text</span><br />
<span class="L1S31">*      &#8211;&gt;P_HIGH  text</span><br />
<span class="L1S31">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span><br />
<span class="L1S52">FORM</span> fm_hdr_param6 <span class="L1S52">USING</span> fu_text1 fu_text2 fu_val01 fu_val02.<br />
<span class="L1S52">data</span>: lv_left(<span class="L1S32">60</span>),<br />
lv_datum(<span class="L1S32">10</span>),<br />
lv_right(<span class="L1S32">35</span>),<span class="L1S31">&#8221; value &#8216;Page          :  nnnn&#8217;,</span><br />
lv_name(<span class="L1S32">10</span>),<br />
lv_page(<span class="L1S32">10</span>).</p>
<p><span class="L1S31">*&#8212; left</span><br />
<span class="L1S52">if</span> fu_val02 <span class="L1S52">is</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 <span class="L1S52">into</span> lv_left <span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">concatenate</span> fu_text1 fu_val01 fu_text2 fu_val02 <span class="L1S52">into</span> lv_left<br />
<span class="L1S52">separated</span> <span class="L1S52">by</span> <span class="L1S33">&#8216; &#8216;</span>.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S31">*&#8212; centre</span></p>
<p><span class="L1S31">*&#8212; right</span><br />
lv_page = sy-pagno.<br />
<span class="L1S52">replace</span> <span class="L1S33">&#8216;nnnn&#8217;</span> <span class="L1S52">with</span> lv_page <span class="L1S52">into</span> lv_right.</p>
<p><span class="L1S31">*&#8212; output line</span><br />
<span class="L1S52">perform</span> fm_hdr_pad_title <span class="L1S52">using</span> lv_left <span class="L1S33">&#8221;</span> lv_right.</p>
<p><span class="L1S52">ENDFORM</span>.                    <span class="L1S31">&#8221; fm_hdr_param6</span></p></blockquote>
<p><strong>INCLUDE <!--StartFragment --> <span>yin_alv_common</span></strong></p>
<blockquote><p><!--StartFragment --> <span><span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span><br />
<span class="L1S31">*&amp;  Include           YIN_ALV_COMMON                                   *</span><br />
<span class="L1S31">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></span></p>
<p><span class="L1S52">type</span>-pools: slis.</p>
<p><span class="L1S52">FIELD</span>-SYMBOLS: &lt;fs_table&gt; <span class="L1S52">TYPE</span> <span class="L1S52">table</span>.</p>
<p><span class="L1S52">data</span>: t_alv_fieldcat      <span class="L1S52">type</span> slis_t_fieldcat_alv <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>,<br />
t_alv_event         <span class="L1S52">type</span> slis_t_event <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>,<br />
t_events            <span class="L1S52">TYPE</span> slis_t_event,<br />
t_alv_isort         <span class="L1S52">type</span> slis_t_sortinfo_alv <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>,<br />
t_alv_filter        <span class="L1S52">type</span> slis_t_filter_alv <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>,<br />
t_event_exit        <span class="L1S52">type</span> slis_t_event_exit <span class="L1S52">with</span> <span class="L1S52">header</span> <span class="L1S52">line</span>,<br />
d_alv_isort         <span class="L1S52">type</span> slis_sortinfo_alv,<br />
d_alv_variant       <span class="L1S52">type</span> disvariant,<br />
d_alv_list_scroll   <span class="L1S52">type</span> slis_list_scroll,<br />
d_alv_sort_postn    <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_alv_keyinfo       <span class="L1S52">type</span> slis_keyinfo_alv,<br />
d_alv_fieldcat      <span class="L1S52">type</span> slis_fieldcat_alv,<br />
d_alv_formname      <span class="L1S52">type</span> slis_formname,<br />
d_alv_ucomm         <span class="L1S52">type</span> slis_formname,<br />
d_alv_print         <span class="L1S52">type</span> slis_print_alv,<br />
d_alv_repid         <span class="L1S52">like</span> sy-repid,<br />
d_alv_tabix         <span class="L1S52">like</span> sy-tabix,<br />
d_alv_subrc         <span class="L1S52">like</span> sy-subrc,<br />
d_alv_screen_start_column <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_alv_screen_start_line <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_alv_screen_end_column <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_alv_screen_end_line <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
d_alv_layout <span class="L1S52">type</span> slis_layout_alv.</p>
<p><span class="L1S52">data</span>: d_layout           <span class="L1S52">TYPE</span> slis_layout_alv,<br />
d_repid            <span class="L1S52">LIKE</span> sy-repid,<br />
d_print            <span class="L1S52">TYPE</span> slis_print_alv.</p>
<p><span class="L1S52">DATA</span>: gt_list_top_of_page <span class="L1S52">TYPE</span> slis_t_listheader.</p>
<p><span class="L1S52">DATA</span>: IT_FCAT <span class="L1S52">TYPE</span> SLIS_T_FIELDCAT_ALV,<br />
IS_FCAT <span class="L1S52">LIKE</span> <span class="L1S52">LINE</span> <span class="L1S52">OF</span> IT_FCAT.</p>
<p><span class="L1S52">DATA</span>: IT_FIELDCAT <span class="L1S52">TYPE</span> LVC_T_FCAT,<br />
IS_FIELDCAT <span class="L1S52">LIKE</span> <span class="L1S52">LINE</span> <span class="L1S52">OF</span> IT_FIELDCAT.</p>
<p><span class="L1S52">data</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> gi_FIELDCAT <span class="L1S52">occurs</span> <span class="L1S32">0</span>.<br />
<span class="L1S52">include</span> <span class="L1S52">structure</span> LVC_S_FCAT.<br />
<span class="L1S52">data</span>: <span class="L1S52">end</span> <span class="L1S52">of</span> gi_FIELDCAT.</p>
<p><span class="L1S52">DATA</span>: NEW_TABLE <span class="L1S52">TYPE</span> <span class="L1S52">REF</span> <span class="L1S52">TO</span> <span class="L1S52">DATA</span>.<br />
<span class="L1S52">DATA</span>: NEW_LINE  <span class="L1S52">TYPE</span> <span class="L1S52">REF</span> <span class="L1S52">TO</span> <span class="L1S52">DATA</span>.</p>
<p><span class="L1S52">FIELD</span>-SYMBOLS: &lt;L_TABLE&gt; <span class="L1S52">TYPE</span> <span class="L1S52">standard</span> <span class="L1S52">table</span>, <span class="L1S31">&#8220;ANY TABLE,</span><br />
&lt;L_LINE&gt;  <span class="L1S52">TYPE</span> <span class="L1S52">ANY</span>,<br />
&lt;L_FIELD&gt; <span class="L1S52">TYPE</span> <span class="L1S52">ANY</span>,<br />
&lt;L_FIELD2&gt; <span class="L1S52">TYPE</span> <span class="L1S52">ANY</span>.</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=11&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/05/09/alv-hierarchy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>

		<media:content url="http://myabap.files.wordpress.com/2008/05/scsc.jpg?w=300" medium="image" />
	</item>
		<item>
		<title>PO Release Date</title>
		<link>http://myabap.wordpress.com/2008/05/05/po-release-date/</link>
		<comments>http://myabap.wordpress.com/2008/05/05/po-release-date/#comments</comments>
		<pubDate>Mon, 05 May 2008 07:50:35 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[CDHDR]]></category>
		<category><![CDATA[PO]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=8</guid>
		<description><![CDATA[I don&#8217;t know why i find this very hard to get, the PO release date. But lucky me, after browsing through Google I get this way.
Go to table CDHDR (Change document header) and select UDATE with these parameters
OBJECTID = PO number
TCODE = &#8216;ME28&#8242; or &#8216;ME29N&#8217;

And then..tadaaaa&#8230;you will get the PO release date  
Haha, silly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=8&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0;">I don&#8217;t know why i find this very hard to get, the PO release date. But lucky me, after browsing through Google I get this way.</p>
<p class="MsoNormal" style="margin:0;">Go to table CDHDR (Change document header) and select UDATE with these parameters</p>
<p class="MsoNormal" style="margin:0;">OBJECTID = PO number</p>
<p class="MsoNormal" style="margin:0;">TCODE = &#8216;ME28&#8242; or &#8216;ME29N&#8217;</p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">And then..tadaaaa&#8230;you will get the PO release date <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p class="MsoNormal" style="margin:0;">Haha, silly me.. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=8&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/05/05/po-release-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>
	</item>
		<item>
		<title>document-&gt;execute_macro</title>
		<link>http://myabap.wordpress.com/2008/04/07/document-execute_macro/</link>
		<comments>http://myabap.wordpress.com/2008/04/07/document-execute_macro/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 10:02:16 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abap]]></category>
		<category><![CDATA[business document navigator]]></category>
		<category><![CDATA[desktop office integration]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[macro]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=5</guid>
		<description><![CDATA[Recently i was assigned to make a report in Excel template using the spreadsheet interface.
i kind of confuse when i need to merge some cells, because i can not find it in any methods of i_oi_spreadsheet.
And then, i just combine between excel macro in method execute_macro.
in excel file, create macro like these codes below
Sub merge(param1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=5&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently i was assigned to make a report in Excel template using the spreadsheet interface.<br />
i kind of confuse when i need to merge some cells, because i can not find it in any methods of i_oi_spreadsheet.</p>
<p><span id="more-5"></span>And then, i just combine between excel macro in method execute_macro.</p>
<blockquote><p>in excel file, create macro like these codes below<br />
Sub merge(param1 As Long, param2 As Long, param3 As Long, param4 As Long, param5 As Long)<br />
‘param1 = start Row<br />
‘param2 = start Column<br />
‘param3 = end Row<br />
‘param4 = end Column<br />
‘param5 = alignment</p>
<p>Dim rngArea As range</p>
<p>With ActiveSheet<br />
Set rngArea = .range(.Cells(param1, param2), .Cells(param3, param4))<br />
End With</p>
<p>rngArea.Select<br />
With Selection<br />
.HorizontalAlignment = param5<br />
.VerticalAlignment = xlCenter<br />
.WrapText = True<br />
.Orientation = 0<br />
.AddIndent = False<br />
.IndentLevel = 0<br />
.ShrinkToFit = False<br />
.ReadingOrder = xlContext<br />
.MergeCells = False<br />
End With<br />
Selection.merge<br />
End Sub</p></blockquote>
<p>and then, in ABAP program</p>
<blockquote><p>if not o_proxy is initial.<br />
call method o_proxy-&gt;execute_macro<br />
exporting<br />
macro_string = ‘module1.merge’<br />
param_count = 5<br />
param1 = param1<br />
param2 = param2<br />
param3 = param3<br />
param4 = param4<br />
param5 = param5<br />
importing<br />
error = errors.<br />
endif.</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=5&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/04/07/document-execute_macro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>
	</item>
		<item>
		<title>ascii to character</title>
		<link>http://myabap.wordpress.com/2008/04/07/ascii-to-character/</link>
		<comments>http://myabap.wordpress.com/2008/04/07/ascii-to-character/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 10:00:59 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ascii]]></category>
		<category><![CDATA[casting]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[function module]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=4</guid>
		<description><![CDATA[i was in need to know what is the column name in excel (A, B, C, D, …, AA, …, IV), based on column number (1,2,3,4,…)
by browsing through google and made some modifications, here’s the function module which can change column number to column name.

FUNCTION zfmpm_ascii_character .
*”———————————————————————-
*”*”Local Interface:
*” IMPORTING
*” REFERENCE(COL) TYPE ANY
*” EXPORTING
*” REFERENCE(CHAR) TYPE [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=4&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>i was in need to know what is the column name in excel (A, B, C, D, …, AA, …, IV), based on column number (1,2,3,4,…)<br />
by browsing through google and made some modifications, here’s the function module which can change column number to column name.</p>
<p><span id="more-4"></span></p>
<blockquote><p>FUNCTION zfmpm_ascii_character .<br />
*”———————————————————————-<br />
*”*”Local Interface:<br />
*” IMPORTING<br />
*” REFERENCE(COL) TYPE ANY<br />
*” EXPORTING<br />
*” REFERENCE(CHAR) TYPE STRING<br />
*”———————————————————————-<br />
DATA : x(8) TYPE x.<br />
DATA : c TYPE string,<br />
d TYPE i,<br />
e TYPE i,<br />
col2 TYPE int1,<br />
d_col TYPE int1.<br />
DATA: BEGIN OF t_col OCCURS 0,<br />
col TYPE int1,<br />
END OF t_col.</p>
<p>FIELD-SYMBOLS : TYPE c.<br />
IF col &gt; 26. “reach ‘Z’<br />
d_col = col / 26.<br />
d_col = d_col &#8211; 1.<br />
IF d_col 0.<br />
“get first char</p>
<p>col2 = d_col + 64.<br />
MOVE col2 TO x.<br />
ASSIGN x TO CASTING TYPE c.<br />
MOVE TO c.<br />
d = STRLEN( c ).<br />
e = d &#8211; 1.<br />
char = c+e(1).<br />
FREE: col2, x, d, e.<br />
ELSE.<br />
char = ”.<br />
ENDIF.</p>
<p>d_col = col &#8211; ( d_col * 26 ).<br />
IF d_col 0.<br />
col2 = d_col + 64.<br />
MOVE col2 TO x.<br />
ASSIGN x TO CASTING TYPE c.<br />
MOVE TO c.<br />
d = STRLEN( c ).<br />
e = d &#8211; 1.<br />
CONCATENATE char c+e(1) INTO char.<br />
FREE: col2, x, d, e.<br />
ENDIF.</p>
<p>ELSE.<br />
col2 = col + 64.<br />
MOVE col2 TO x.<br />
ASSIGN x TO CASTING TYPE c.<br />
MOVE TO c.<br />
d = STRLEN( c ).<br />
e = d &#8211; 1.<br />
char = c+e(1).<br />
ENDIF.<br />
ENDFUNCTION.</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=4&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/04/07/ascii-to-character/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>
	</item>
		<item>
		<title>split long sentence into two lines</title>
		<link>http://myabap.wordpress.com/2008/04/07/split-long-sentence-into-two-lines/</link>
		<comments>http://myabap.wordpress.com/2008/04/07/split-long-sentence-into-two-lines/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 09:59:06 +0000</pubDate>
		<dc:creator>poyay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[function module]]></category>
		<category><![CDATA[lines]]></category>
		<category><![CDATA[split]]></category>
		<category><![CDATA[string]]></category>

		<guid isPermaLink="false">http://myabap.wordpress.com/?p=3</guid>
		<description><![CDATA[how to split long sentence into two lines?this is a problem i faced in previous days, and i don’t know if SAP already have a special function to do this. That&#8217;s why i made one function module to handle this. I hope it can help you  

function zfmpm_split_string.
*&#8221;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
*&#8221;*&#8221;Local Interface:
*&#8221; IMPORTING
*&#8221; REFERENCE(STRING) TYPE ANY
*&#8221; REFERENCE(LENGTH) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=3&subd=myabap&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>how to split long sentence into two lines?this is a problem i faced in previous days, and i don’t know if SAP already have a special function to do this. That&#8217;s why i made one function module to handle this. I hope it can help you <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-3"></span></p>
<blockquote><p><span><span class="L1S52">function</span> zfmpm_split_string.<br />
<span class="L1S31">*&#8221;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span><br />
<span class="L1S31">*&#8221;*&#8221;Local Interface:</span><br />
<span class="L1S31">*&#8221; IMPORTING</span><br />
<span class="L1S31">*&#8221; REFERENCE(STRING) TYPE ANY</span><br />
<span class="L1S31">*&#8221; REFERENCE(LENGTH) TYPE INT1</span><br />
<span class="L1S31">*&#8221; TABLES</span><br />
<span class="L1S31">*&#8221; IT_SPLITTED STRUCTURE TLINE</span><br />
<span class="L1S31">*&#8221;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span></span></p>
<p><span class="L1S52">data</span>: <span class="L1S52">begin</span> <span class="L1S52">of</span> itab1 <span class="L1S52">occurs</span> <span class="L1S32">0</span>,<br />
words(<span class="L1S32">255</span>) <span class="L1S52">type</span> <span class="L1S52">c</span>,<br />
<span class="L1S52">end</span> <span class="L1S52">of</span> itab1.</p>
<p><span class="L1S52">data</span>: wa1 <span class="L1S52">like</span> <span class="L1S52">line</span> <span class="L1S52">of</span> itab1,<br />
ld_totalchar <span class="L1S52">type</span> <span class="L1S52">i</span>,<br />
ld_length <span class="L1S52">type</span> <span class="L1S52">i</span>.</p>
<p><span class="L1S52">split</span> string <span class="L1S52">at</span> space <span class="L1S52">into</span> <span class="L1S52">table</span> itab1.</p>
<p><span class="L1S52">loop</span> <span class="L1S52">at</span> itab1 <span class="L1S52">into</span> wa1.<br />
ld_totalchar = <span class="L1S52">strlen</span>( wa1-words ) + <span class="L1S52">strlen</span>( it_splitted-tdline ) + <span class="L1S32">1</span>.<br />
<span class="L1S52">if</span> ld_totalchar &lt;= length.<br />
<span class="L1S52">if</span> it_splitted <span class="L1S52">is</span> <span class="L1S52">not</span> <span class="L1S52">initial</span>.<br />
<span class="L1S52">concatenate</span> it_splitted-tdline wa1-words <span class="L1S52">into</span> it_splitted-tdline <span class="L1S52">separated</span> <span class="L1S52">by</span> space.<br />
<span class="L1S52">else</span>.<br />
it_splitted-tdline = wa1-words.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">else</span>.<br />
<span class="L1S52">append</span> it_splitted.<br />
<span class="L1S52">clear</span> it_splitted.<br />
<span class="L1S52">free</span> ld_totalchar.<br />
it_splitted-tdline = wa1-words.<br />
<span class="L1S52">endif</span>.<br />
<span class="L1S52">endloop</span>.<br />
<span class="L1S52">append</span> it_splitted.<br />
<span class="L1S52">clear</span> it_splitted.<br />
<span class="L1S52">free</span> ld_totalchar.<br />
<span><span class="L1S52">endfunction</span>.</span></p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/myabap.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/myabap.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myabap.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myabap.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/myabap.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/myabap.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/myabap.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/myabap.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/myabap.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/myabap.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/myabap.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/myabap.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myabap.wordpress.com&blog=3403449&post=3&subd=myabap&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://myabap.wordpress.com/2008/04/07/split-long-sentence-into-two-lines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2121808a1147bf613e4feb87086ee1e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">poyay</media:title>
		</media:content>
	</item>
	</channel>
</rss>