<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4188548145761823614</id><updated>2024-10-24T20:37:20.814-07:00</updated><title type='text'>Let us Learn ABAP</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-4906305199997117397</id><published>2011-12-22T09:57:00.001-08:00</published><updated>2011-12-22T09:57:48.549-08:00</updated><title type='text'>Delimiting Infotype PA0016</title><content type='html'>Will be updated soon</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/4906305199997117397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/delimiting-infotype-pa0016.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/4906305199997117397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/4906305199997117397'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/delimiting-infotype-pa0016.html' title='Delimiting Infotype PA0016'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-1991502394078057198</id><published>2011-12-22T09:56:00.000-08:00</published><updated>2011-12-22T09:56:31.313-08:00</updated><title type='text'>Play Music/Video from ABAP</title><content type='html'>Will be updated soon ..&lt;br /&gt;
Any Suggestions would be highly appreciated.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/1991502394078057198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/play-musicvideo-from-abap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1991502394078057198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1991502394078057198'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/play-musicvideo-from-abap.html' title='Play Music/Video from ABAP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-3250264550727921769</id><published>2011-12-22T09:53:00.001-08:00</published><updated>2011-12-22T09:53:45.222-08:00</updated><title type='text'>Send SMS thru ABAP program</title><content type='html'>Will be updated soon</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/3250264550727921769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/send-sms-thru-abap-program.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/3250264550727921769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/3250264550727921769'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/send-sms-thru-abap-program.html' title='Send SMS thru ABAP program'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-1229966446665561428</id><published>2011-12-22T09:51:00.000-08:00</published><updated>2011-12-22T09:51:19.191-08:00</updated><title type='text'>Get ZL entries using FM &#39;HR_TIME_RESULTS_GET&#39;</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Report ZTEST_ZL_ENTRIES&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
 REPORT ZTEST_ZL_ENTRIES MESSAGE-ID zz.&lt;br /&gt;
&lt;br /&gt;
TABLES : pa0001 , t549a , t549q .*--Types declaration&lt;br /&gt;
&lt;br /&gt;
 TYPES: BEGIN OF t_t569v,&lt;br /&gt;
abkrs TYPE t569v-abkrs, &quot;Payroll Area&lt;br /&gt;
&lt;br /&gt;
pabrj TYPE t569v-pabrj, &quot;Accounting year&lt;br /&gt;
&lt;br /&gt;
pabrp TYPE t569v-pabrp, &quot;Accounting period&lt;br /&gt;
&lt;br /&gt;
END OF t_t569v.*--For PA0001&lt;br /&gt;
&lt;br /&gt;
 TYPES: BEGIN OF ty_0001,&lt;br /&gt;
&lt;br /&gt;
pernr TYPE pa0001-pernr,&lt;br /&gt;
&lt;br /&gt;
begda TYPE pa0001-begda,&lt;br /&gt;
&lt;br /&gt;
werks TYPE pa0001-werks,&lt;br /&gt;
&lt;br /&gt;
END OF ty_0001.*--Final internal table&lt;br /&gt;
&lt;br /&gt;
 TYPES: BEGIN OF ty_final,&lt;br /&gt;
&lt;br /&gt;
PERNR TYPE PA0000-PERNR,&lt;br /&gt;
&lt;br /&gt;
reg_hour(8) TYPE c,&lt;br /&gt;
&lt;br /&gt;
ot_hour(8) TYPE c,&lt;br /&gt;
&lt;br /&gt;
END OF ty_final.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*--Internal table and work area declarations&lt;br /&gt;
&lt;br /&gt;
DATA : it_0001 TYPE STANDARD TABLE OF ty_0001,&lt;br /&gt;
&lt;br /&gt;
wa_0001 TYPE ty_0001,&lt;br /&gt;
&lt;br /&gt;
it_final TYPE STANDARD TABLE OF ty_final,&lt;br /&gt;
&lt;br /&gt;
wa_final TYPE ty_final,&lt;br /&gt;
&lt;br /&gt;
it_zl type standard table of pc2bf,&lt;br /&gt;
&lt;br /&gt;
wa_zl type pc2bf,&lt;br /&gt;
&lt;br /&gt;
wa_t569v TYPE t_t569v.&lt;br /&gt;
*--Global variables declarationDATA : gv_lines TYPE i,&lt;br /&gt;
&lt;br /&gt;
gv_pabrj TYPE t569v-pabrj, &quot;Accounting year&lt;br /&gt;
&lt;br /&gt;
gv_pabrp TYPE t569v-pabrp, &quot;Accounting period&lt;br /&gt;
&lt;br /&gt;
gv_iperm TYPE pc261-iperm. &quot;Period parameters&lt;br /&gt;
*--Constants declaration&lt;br /&gt;
&lt;br /&gt;
 CONSTANTS: gc_vwsaz TYPE t569v-vwsaz VALUE 01.&lt;br /&gt;
*--Payroll period selections&lt;br /&gt;
&lt;br /&gt;
 SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN COMMENT 01(20) text-002.&lt;br /&gt;
&lt;br /&gt;
SELECT-OPTIONS: s_abkrs FOR pa0001-abkrs NO INTERVALS&lt;br /&gt;
&lt;br /&gt;
NO-EXTENSION OBLIGATORY.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN POSITION 32.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN COMMENT 34(05) text-007 MODIF ID dtg.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN POSITION 40.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: p_begda TYPE sy-datum MODIF ID dtg.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN COMMENT 52(03) text-006 MODIF ID dtg.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN POSITION 57.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: p_endda TYPE sy-datum MODIF ID dtg.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN END OF LINE.&lt;br /&gt;
*-- Current period&lt;br /&gt;
&lt;br /&gt;
 SELECTION-SCREEN BEGIN OF LINE .&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: rb_timr9 TYPE qppnp-timr9 RADIOBUTTON GROUP grp1.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN COMMENT 04(20) text-003 FOR FIELD rb_timr9.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN POSITION 25.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: p_dispp TYPE qppnp-pabrp MODIF ID cpi,&lt;br /&gt;
&lt;br /&gt;
p_dispj TYPE qppnp-pabrj MODIF ID cpi.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN END OF LINE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*-- Other period&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: rb_timra TYPE qppnp-timra RADIOBUTTON GROUP grp1.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN COMMENT 04(20) text-004 FOR FIELD rb_timra.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN POSITION 25.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: p_pabrp TYPE qppnp-pabrp,&lt;br /&gt;
&lt;br /&gt;
p_pabrj TYPE qppnp-pabrj.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN END OF LINE.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN END OF BLOCK b1.&lt;br /&gt;
*--Personnel area , number , file&lt;br /&gt;
&lt;br /&gt;
 SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-005.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS: p_werks TYPE pa0001-werks.&lt;br /&gt;
&lt;br /&gt;
SELECT-OPTIONS : s_pernr FOR pa0001-pernr.&lt;br /&gt;
&lt;br /&gt;
SELECTION-SCREEN END OF BLOCK b2.*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
* A T S E L E C T I O N S C R E E N O U T P U T&lt;br /&gt;
&lt;br /&gt;
*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 AT SELECTION-SCREEN OUTPUT.&lt;br /&gt;
*-- Display valid period parameters&lt;br /&gt;
&lt;br /&gt;
 PERFORM display_periods.*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
* A T S E L E C T I O N S C R E E N&lt;br /&gt;
&lt;br /&gt;
*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 AT SELECTION-SCREEN.&lt;br /&gt;
*-- Validate control recordPERFORM validate_abkrs.&lt;br /&gt;
*-- Validate periods&lt;br /&gt;
&lt;br /&gt;
 PERFORM validate_periods.&lt;br /&gt;
*-- Get dates from periods&lt;br /&gt;
&lt;br /&gt;
 PERFORM get_dates.&lt;br /&gt;
*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
* START OF SELECTION&lt;br /&gt;
&lt;br /&gt;
*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 START-OF-SELECTION.&lt;br /&gt;
*-- Get initial data for the selection screen parameters&lt;br /&gt;
&lt;br /&gt;
 PERFORM get_data.&lt;br /&gt;
*--Populate final data&lt;br /&gt;
&lt;br /&gt;
 PERFORM fill_final.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
* END OF SELECTION&lt;br /&gt;
&lt;br /&gt;
*-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
END-OF-SELECTION.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*--Write log as to how many records are downloaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PERFORM write_log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Form display_periods&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Display valid period parameters&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
FORM display_periods.&lt;br /&gt;
&lt;br /&gt;
LOOP AT SCREEN.&lt;br /&gt;
&lt;br /&gt;
CASE screen-group1.&lt;br /&gt;
&lt;br /&gt;
WHEN &#39;CPI&#39;.&lt;br /&gt;
&lt;br /&gt;
*-- If current period, display current period information&lt;br /&gt;
&lt;br /&gt;
IF rb_timr9 = &#39;X&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-input = &#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-output =&#39;1&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-invisible = &#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
ELSE.&lt;br /&gt;
&lt;br /&gt;
screen-input = &#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-output =&#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-invisible = &#39;1&#39;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
MODIFY SCREEN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*-- If other period is selected, display other period info&lt;br /&gt;
&lt;br /&gt;
WHEN &#39;DTG&#39;.&lt;br /&gt;
&lt;br /&gt;
IF p_begda IS INITIAL.&lt;br /&gt;
&lt;br /&gt;
screen-input = &#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-output =&#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-invisible = &#39;1&#39;.&lt;br /&gt;
&lt;br /&gt;
ELSE.&lt;br /&gt;
&lt;br /&gt;
screen-input = &#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-output =&#39;1&#39;.&lt;br /&gt;
&lt;br /&gt;
screen-invisible = &#39;0&#39;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
MODIFY SCREEN.&lt;br /&gt;
&lt;br /&gt;
ENDCASE.&lt;br /&gt;
&lt;br /&gt;
ENDLOOP.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; display_periods&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Form validate_periods&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Validate periods&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
FORM validate_periods.&lt;br /&gt;
&lt;br /&gt;
*-- If current period is selected retrieve information from control&lt;br /&gt;
&lt;br /&gt;
* record&lt;br /&gt;
&lt;br /&gt;
IF rb_timr9 = &#39;X&#39;.&lt;br /&gt;
&lt;br /&gt;
IF NOT p_pabrp IS INITIAL OR&lt;br /&gt;
&lt;br /&gt;
NOT p_pabrj IS INITIAL .&lt;br /&gt;
&lt;br /&gt;
MESSAGE e000 WITH&lt;br /&gt;
&lt;br /&gt;
&#39;Other period value not allowed with Current Period&#39;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
gv_pabrp = wa_t569v-pabrp.&lt;br /&gt;
&lt;br /&gt;
p_dispp = gv_pabrp.&lt;br /&gt;
&lt;br /&gt;
gv_pabrj = wa_t569v-pabrj.&lt;br /&gt;
&lt;br /&gt;
p_dispj = gv_pabrj.&lt;br /&gt;
&lt;br /&gt;
ELSE.&lt;br /&gt;
&lt;br /&gt;
*-- If other period is selected, validate required parameters&lt;br /&gt;
&lt;br /&gt;
CLEAR: p_dispp,&lt;br /&gt;
&lt;br /&gt;
p_dispj.&lt;br /&gt;
&lt;br /&gt;
IF p_pabrp EQ 0 .&lt;br /&gt;
&lt;br /&gt;
SET CURSOR FIELD &#39;P_PABRP&#39; .&lt;br /&gt;
&lt;br /&gt;
MESSAGE e000 WITH &#39;Invalid Accounting Month&#39;.&lt;br /&gt;
&lt;br /&gt;
ELSEIF p_pabrj EQ 0 .&lt;br /&gt;
&lt;br /&gt;
SET CURSOR FIELD &#39;P_PABRJ&#39;.&lt;br /&gt;
&lt;br /&gt;
MESSAGE e000 WITH &#39;Invalid Accounting Year&#39;.&lt;br /&gt;
&lt;br /&gt;
ELSE.&lt;br /&gt;
&lt;br /&gt;
gv_pabrp = p_pabrp.&lt;br /&gt;
&lt;br /&gt;
gv_pabrj = p_pabrj.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; validate_periods&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Form validate_abkrs&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Validate control record&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FORM validate_abkrs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATA : gv_subrc type sy-subrc.&lt;br /&gt;
&lt;br /&gt;
*-- Check the control record&lt;br /&gt;
&lt;br /&gt;
LOOP AT s_abkrs.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE abkrs&lt;br /&gt;
&lt;br /&gt;
pabrj&lt;br /&gt;
&lt;br /&gt;
pabrp&lt;br /&gt;
&lt;br /&gt;
FROM t569v&lt;br /&gt;
&lt;br /&gt;
INTO wa_t569v&lt;br /&gt;
&lt;br /&gt;
WHERE abkrs = s_abkrs-low AND&lt;br /&gt;
&lt;br /&gt;
vwsaz = gc_vwsaz.&lt;br /&gt;
&lt;br /&gt;
gv_subrc = sy-subrc.&lt;br /&gt;
&lt;br /&gt;
ENDLOOP.&lt;br /&gt;
&lt;br /&gt;
IF gv_subrc &lt;&gt; 0.&lt;br /&gt;
&lt;br /&gt;
MESSAGE e000 WITH &#39;Control Record Not Found&#39;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; validate_abkrs&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Form get_dates&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Get dates from periods&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
FORM get_dates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*-- Find the period modifier&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LOOP AT s_abkrs.&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE * FROM t549a WHERE abkrs = s_abkrs-low.&lt;br /&gt;
&lt;br /&gt;
IF sy-subrc &lt;&gt; 0.&lt;br /&gt;
&lt;br /&gt;
MESSAGE e000 WITH &#39;Period modifier does not exist!&#39;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDLOOP.&lt;br /&gt;
&lt;br /&gt;
*-- Save off period modifier&lt;br /&gt;
&lt;br /&gt;
gv_iperm = t549a-permo.&lt;br /&gt;
&lt;br /&gt;
*-- Determine the dates for the requested period&lt;br /&gt;
&lt;br /&gt;
SELECT SINGLE * FROM t549q WHERE permo = gv_iperm AND&lt;br /&gt;
&lt;br /&gt;
pabrj = gv_pabrj AND&lt;br /&gt;
&lt;br /&gt;
pabrp = gv_pabrp.&lt;br /&gt;
&lt;br /&gt;
IF sy-subrc &lt;&gt; 0.&lt;br /&gt;
&lt;br /&gt;
MESSAGE e505(pg) WITH gv_pabrj gv_pabrp t549a-permo.&lt;br /&gt;
&lt;br /&gt;
ELSE.&lt;br /&gt;
&lt;br /&gt;
MOVE t549q-begda TO p_begda.&lt;br /&gt;
&lt;br /&gt;
MOVE t549q-endda TO p_endda.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; get_dates*&amp;---------------------------------------------------------------------*&lt;br /&gt;
*&amp; Form get_data&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Get data from PA0001&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
 FORM get_data .&lt;br /&gt;
*--Get data from PA0001&lt;br /&gt;
&lt;br /&gt;
 SELECT pernr begda werks&lt;br /&gt;
&lt;br /&gt;
INTO TABLE it_0001&lt;br /&gt;
&lt;br /&gt;
FROM pa0001&lt;br /&gt;
&lt;br /&gt;
WHERE pernr IN s_pernr&lt;br /&gt;
&lt;br /&gt;
AND endda GE p_begda&lt;br /&gt;
&lt;br /&gt;
AND begda LE p_endda&lt;br /&gt;
&lt;br /&gt;
AND werks EQ p_werks&lt;br /&gt;
&lt;br /&gt;
AND abkrs IN s_abkrs.&lt;br /&gt;
&lt;br /&gt;
IF sy-subrc = 0.&lt;br /&gt;
&lt;br /&gt;
SORT it_0001 BY pernr begda DESCENDING.&lt;br /&gt;
&lt;br /&gt;
DELETE ADJACENT DUPLICATES FROM it_0001 COMPARING pernr.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; get_data*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Form fill_final&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Fill final internal table&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
 FORM fill_final .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CLEAR : it_final[] , wa_final.*--Loop thru PA0001 entries&lt;br /&gt;
&lt;br /&gt;
 LOOP AT it_0001 INTO wa_0001.&lt;br /&gt;
&lt;br /&gt;
wa_final-pernr = wa_0001-pernr.&lt;br /&gt;
*--Get time results for the pernr and given payroll period and year&lt;br /&gt;
&lt;br /&gt;
 CALL FUNCTION &#39;HR_TIME_RESULTS_GET&#39;&lt;br /&gt;
&lt;br /&gt;
EXPORTING&lt;br /&gt;
&lt;br /&gt;
get_pernr = wa_0001-pernr&lt;br /&gt;
&lt;br /&gt;
get_pabrj = gv_pabrj&lt;br /&gt;
&lt;br /&gt;
get_pabrp = gv_pabrp&lt;br /&gt;
&lt;br /&gt;
get_cltyp = &#39;1&#39;&lt;br /&gt;
&lt;br /&gt;
TABLES&lt;br /&gt;
&lt;br /&gt;
get_zl = it_zl&lt;br /&gt;
&lt;br /&gt;
EXCEPTIONS&lt;br /&gt;
&lt;br /&gt;
no_period_specified = 1&lt;br /&gt;
&lt;br /&gt;
wrong_cluster_version = 2&lt;br /&gt;
&lt;br /&gt;
no_read_authority = 3&lt;br /&gt;
&lt;br /&gt;
cluster_archived = 4&lt;br /&gt;
&lt;br /&gt;
technical_error = 5.&lt;br /&gt;
*--Fill Hours for the wage types from ZL structure&lt;br /&gt;
&lt;br /&gt;
 LOOP AT it_zl INTO wa_zl.&lt;br /&gt;
*--Fill temp dept&lt;br /&gt;
&lt;br /&gt;
 CASE wa_zl-lgart.&lt;br /&gt;
*--For Regular hours&lt;br /&gt;
&lt;br /&gt;
 WHEN &#39;3REG&#39;. &quot; Regular hours&lt;br /&gt;
&lt;br /&gt;
wa_final-reg_hour = wa_final-reg_hour + wa_zl-anzhl.&lt;br /&gt;
*--For Overtime hours&lt;br /&gt;
&lt;br /&gt;
 WHEN &#39;3OVT&#39;. &quot; Overtime hours&lt;br /&gt;
&lt;br /&gt;
wa_final-ot_hour = wa_final-ot_hour + wa_zl-anzhl.&lt;br /&gt;
&lt;br /&gt;
ENDCASE.&lt;br /&gt;
&lt;br /&gt;
CLEAR : wa_zl.&lt;br /&gt;
&lt;br /&gt;
ENDLOOP.&lt;br /&gt;
*--Append final table with the number of hours for the wage types&lt;br /&gt;
&lt;br /&gt;
 APPEND wa_final TO it_final.&lt;br /&gt;
&lt;br /&gt;
endloop.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; fill_final*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
*&amp; Form write_log&lt;br /&gt;
&lt;br /&gt;
*&amp;---------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
* Write log&lt;br /&gt;
&lt;br /&gt;
*----------------------------------------------------------------------*&lt;br /&gt;
&lt;br /&gt;
 FORM write_log .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IF NOT it_final[] IS INITIAL.&lt;br /&gt;
&lt;br /&gt;
LOOP AT IT_FINAL INTO WA_FINAL.&lt;br /&gt;
&lt;br /&gt;
WRITE :/1 wa_final-pernr,&lt;br /&gt;
&lt;br /&gt;
15 wa_final-reg_hour ,&lt;br /&gt;
&lt;br /&gt;
30 wa_final-OT_hour.&lt;br /&gt;
&lt;br /&gt;
ENDLOOP.&lt;br /&gt;
&lt;br /&gt;
else.&lt;br /&gt;
&lt;br /&gt;
MESSAGE i000(zz) WITH &#39;No data found for the selection criteria&#39;.&lt;br /&gt;
&lt;br /&gt;
ENDIF.&lt;br /&gt;
&lt;br /&gt;
ENDFORM. &quot; write_log</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/1229966446665561428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/get-zl-entries-using-fm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1229966446665561428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1229966446665561428'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/get-zl-entries-using-fm.html' title='Get ZL entries using FM &#39;HR_TIME_RESULTS_GET&#39;'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-8326032782901537752</id><published>2011-12-22T09:46:00.000-08:00</published><updated>2011-12-22T09:46:45.144-08:00</updated><title type='text'>HR_INFOTYPE_OPERATION in Dynamic action</title><content type='html'>Will be updated soon</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/8326032782901537752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/hrinfotypeoperation-in-dynamic-action.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/8326032782901537752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/8326032782901537752'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/hrinfotypeoperation-in-dynamic-action.html' title='HR_INFOTYPE_OPERATION in Dynamic action'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-5112459984512142102</id><published>2011-12-22T09:43:00.000-08:00</published><updated>2012-01-05T09:14:05.555-08:00</updated><title type='text'>Get work week begin and end dates for a given date</title><content type='html'>Report zget_wweek_dates.&lt;br /&gt;
&lt;br /&gt;
*Get work week begin and end dates for a given date&lt;br /&gt;
&lt;br /&gt;
tables : pernr , t559a.&lt;br /&gt;
infotypes : 0007.&lt;br /&gt;
&lt;br /&gt;
DATA: posid(2).&lt;br /&gt;
DATA: pack TYPE p.&lt;br /&gt;
DATA: p_wweek LIKE p0007-wweek.&lt;br /&gt;
DATA: edatum TYPE d.&lt;br /&gt;
DATA: ldatum TYPE d.&lt;br /&gt;
&lt;br /&gt;
PARAMETERS :  p_date TYPE sy-datum.&lt;br /&gt;
&lt;br /&gt;
start-of-selection.&lt;br /&gt;
  rp-lowdate-highdate.&lt;br /&gt;
  rp-def-time-period.&lt;br /&gt;
  rp-def-boolean.&lt;br /&gt;
&lt;br /&gt;
GET pernr.&lt;br /&gt;
&lt;br /&gt;
*-----getting current workweek&lt;br /&gt;
  CLEAR p_wweek.&lt;br /&gt;
  LOOP AT p0007 WHERE begda &lt;= p_date
                AND   endda &gt;= p_date.&lt;br /&gt;
    p_wweek = p0007-wweek.&lt;br /&gt;
    EXIT.&lt;br /&gt;
  ENDLOOP.&lt;br /&gt;
&lt;br /&gt;
  IF p_wweek IS NOT INITIAL.&lt;br /&gt;
    SELECT SINGLE * FROM t559a WHERE wweek EQ p_wweek.&lt;br /&gt;
&lt;br /&gt;
    IF t559a-wleng IS INITIAL.&lt;br /&gt;
      posid = &#39;00&#39;.&lt;br /&gt;
    ELSE.&lt;br /&gt;
      pack = ( p_date - t559a-wdate ) MOD t559a-wleng + 1.&lt;br /&gt;
      UNPACK pack TO posid.&lt;br /&gt;
    ENDIF.&lt;br /&gt;
  ELSE.&lt;br /&gt;
    posid = &#39;00&#39;.&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&lt;br /&gt;
  IF posid = &#39;00&#39;.&lt;br /&gt;
    ldatum = edatum = high-date.&lt;br /&gt;
  ELSE.&lt;br /&gt;
    ldatum = p_date - posid + 1.           &quot; Begin date&lt;br /&gt;
    edatum = p_date - posid + t559a-wleng. &quot; End   date&lt;br /&gt;
  ENDIF.&lt;br /&gt;
&lt;br /&gt;
end-of-selection.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/5112459984512142102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/get-begin-and-end-dates-for-work-week.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/5112459984512142102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/5112459984512142102'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/12/get-begin-and-end-dates-for-work-week.html' title='Get work week begin and end dates for a given date'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-6534742532596047732</id><published>2011-10-12T23:13:00.000-07:00</published><updated>2011-10-12T23:13:48.771-07:00</updated><title type='text'>Translate first character to Upper case</title><content type='html'>FUNCTION ZSTRING_TO_INITIALCAPS.&lt;br /&gt;
*&quot;----------------------------------------------------------------------&lt;br /&gt;
*&quot;*&quot;Local interface:&lt;br /&gt;
*&quot;  IMPORTING&lt;br /&gt;
*&quot;     VALUE(INSTRING) TYPE  C&lt;br /&gt;
*&quot;  EXPORTING&lt;br /&gt;
*&quot;     VALUE(OUTSTRING) TYPE  C&lt;br /&gt;
*&quot;----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
constants: c_delimiter(21) value &#39; .()-{}[]/#1234567890&#39;.&lt;br /&gt;
&lt;br /&gt;
data: v_instring(80)   type c,&lt;br /&gt;
      v_len            type i,&lt;br /&gt;
      v_char           type c,&lt;br /&gt;
      i                type i,&lt;br /&gt;
      j                type i.&lt;br /&gt;
&lt;br /&gt;
v_instring = instring.&lt;br /&gt;
check not v_instring is initial.&lt;br /&gt;
&lt;br /&gt;
translate v_instring to lower case.&lt;br /&gt;
condense v_instring.&lt;br /&gt;
* Translate first character to upper case&lt;br /&gt;
v_char = v_instring+0(1).&lt;br /&gt;
translate v_char to upper case.&lt;br /&gt;
v_instring+0(1) = v_char.&lt;br /&gt;
&lt;br /&gt;
v_len = strlen( v_instring ).&lt;br /&gt;
v_len = v_len - 1.    &quot; Translate next char&lt;br /&gt;
i = 1.                &quot; Start from 2nd char&lt;br /&gt;
&lt;br /&gt;
while i &lt; v_len.&lt;br /&gt;
&lt;br /&gt;
  if v_instring+i(1) CA c_delimiter.&lt;br /&gt;
    j = i + 1.        &quot; Translate next char&lt;br /&gt;
    v_char = v_instring+j(1).&lt;br /&gt;
    translate v_char to upper case.&lt;br /&gt;
    v_instring+j(1) = v_char.&lt;br /&gt;
  endif.&lt;br /&gt;
&lt;br /&gt;
  i = i + 1.&lt;br /&gt;
&lt;br /&gt;
endwhile.&lt;br /&gt;
&lt;br /&gt;
outstring = v_instring.&lt;br /&gt;
&lt;br /&gt;
ENDFUNCTION.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/6534742532596047732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/10/translate-first-character-to-upper-case.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/6534742532596047732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/6534742532596047732'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/10/translate-first-character-to-upper-case.html' title='Translate first character to Upper case'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-3933159363212716224</id><published>2011-03-21T01:56:00.000-07:00</published><updated>2011-03-21T01:59:38.594-07:00</updated><title type='text'>Send Greetings mail on Birthday</title><content type='html'>REPORT  zbirthday MESSAGE-ID zhr.&lt;br /&gt;&lt;br /&gt;DATA : BEGIN OF it_pa0002 OCCURS 0,&lt;br /&gt;         pernr LIKE pa0002-pernr,&lt;br /&gt;         nachn LIKE pa0002-nachn,&lt;br /&gt;         vorna LIKE pa0002-vorna,&lt;br /&gt;         gbdat like pa0002-gbdat,&lt;br /&gt;       END OF it_pa0002.&lt;br /&gt;&lt;br /&gt;DATA : BEGIN OF it_pa0000 OCCURS 0,&lt;br /&gt;         pernr LIKE pa0000-pernr,&lt;br /&gt;       END OF it_pa0000.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;  SELECT pernr nachn vorna gbdat&lt;br /&gt;         FROM pa0002&lt;br /&gt;         INTO TABLE it_pa0002&lt;br /&gt;         WHERE endda &gt;= sy-datum&lt;br /&gt;         AND   begda &lt;= sy-datum .&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT it_pa0002 BY pernr.&lt;br /&gt;    DELETE ADJACENT DUPLICATES FROM it_pa0002 COMPARING pernr.&lt;br /&gt;  ELSE.&lt;br /&gt;    MESSAGE i000 WITH &#39;No records exist&#39;.&lt;br /&gt;    STOP.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SELECT pernr FROM pa0000&lt;br /&gt;         INTO TABLE it_pa0000&lt;br /&gt;         FOR ALL ENTRIES IN it_pa0002&lt;br /&gt;         WHERE pernr = it_pa0002-pernr&lt;br /&gt;         AND   endda &gt;= sy-datum&lt;br /&gt;         AND   begda &lt;= sy-datum&lt;br /&gt;         AND   stat2 = &#39;3&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT it_pa0000 BY pernr.&lt;br /&gt;    DELETE ADJACENT DUPLICATES FROM it_pa0000 COMPARING pernr.&lt;br /&gt;  ELSE.&lt;br /&gt;    MESSAGE i000 WITH &#39;No records exist&#39;.&lt;br /&gt;    STOP.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*--Send Mail&lt;br /&gt;  LOOP AT it_pa0000.&lt;br /&gt;&lt;br /&gt;    PERFORM send_mail.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  SEND_MAIL&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Send Mail&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM send_mail.&lt;br /&gt;&lt;br /&gt;  DATA : lit_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;br /&gt;         lit_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;br /&gt;         lit_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;br /&gt;         lit_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;  DATA : dl_objhead TYPE soli_tab,&lt;br /&gt;         dl_doc_chng TYPE sodocchgi1,&lt;br /&gt;         dl_lines_bin TYPE i,&lt;br /&gt;         dl_lines_txt TYPE i.&lt;br /&gt;&lt;br /&gt;  clear : it_pa0002.&lt;br /&gt;&lt;br /&gt;  READ TABLE it_pa0002 WITH KEY pernr = it_pa0000-pernr.&lt;br /&gt;  IF it_pa0002-gbdat+4(4) = sy-datum+4(4).&lt;br /&gt;&lt;br /&gt;*--Body of the Mail&lt;br /&gt;    CONCATENATE &#39;Dear&#39; it_pa0002-vorna it_pa0002-nachn &#39;,&#39; INTO lit_objtxt&lt;br /&gt;                 SEPARATED BY space.&lt;br /&gt;    APPEND lit_objtxt.&lt;br /&gt;&lt;br /&gt;    lit_objtxt = &#39;&#39;.&lt;br /&gt;    APPEND lit_objtxt.&lt;br /&gt;&lt;br /&gt;    CONCATENATE &#39;Wish you a Very Happy Birthday!&#39; &#39;&#39; INTO&lt;br /&gt;                lit_objtxt SEPARATED BY space.&lt;br /&gt;    APPEND lit_objtxt.&lt;br /&gt;&lt;br /&gt;    lit_objtxt = &#39;&#39;.&lt;br /&gt;    APPEND lit_objtxt.&lt;br /&gt;&lt;br /&gt;    lit_objtxt = &#39;Regards,&#39;.&lt;br /&gt;    APPEND lit_objtxt.&lt;br /&gt;&lt;br /&gt;    lit_objtxt = &#39;HR Team.&#39;.&lt;br /&gt;    APPEND lit_objtxt.&lt;br /&gt;&lt;br /&gt;    DESCRIBE TABLE lit_objtxt LINES dl_lines_txt.&lt;br /&gt;&lt;br /&gt;***---Document information.&lt;br /&gt;    CONCATENATE &#39;Birthday&#39; &#39;&#39; INTO dl_doc_chng-obj_name&lt;br /&gt;                SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;    CONCATENATE &#39;Birthday&#39; &#39; Greetings&#39; INTO dl_doc_chng-obj_descr&lt;br /&gt;                SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;    dl_doc_chng-sensitivty = &#39;F&#39;. &quot;Functional object&lt;br /&gt;    dl_doc_chng-obj_langu = sy-langu.&lt;br /&gt;&lt;br /&gt;    lit_objpack-transf_bin = space.&lt;br /&gt;    lit_objpack-head_start = 1.&lt;br /&gt;    lit_objpack-head_num = 0.&lt;br /&gt;    lit_objpack-body_start = 1.&lt;br /&gt;    lit_objpack-body_num = dl_lines_txt.&lt;br /&gt;    lit_objpack-doc_type = &#39;RAW&#39;.&lt;br /&gt;    APPEND lit_objpack.&lt;br /&gt;&lt;br /&gt;*-- E-mail receivers&lt;br /&gt;    SELECT SINGLE&lt;br /&gt;           usrid_long&lt;br /&gt;           FROM pa0105&lt;br /&gt;           INTO lit_reclist-receiver&lt;br /&gt;           WHERE pernr = it_pa0000-pernr&lt;br /&gt;           AND   subty = &#39;0010&#39;.&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;      lit_reclist-rec_type = &#39;U&#39;.&lt;br /&gt;      APPEND lit_reclist.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;*-- Fill in HR or Managers Email ID&lt;br /&gt;*    lit_reclist-receiver = &#39;&#39;.&lt;br /&gt;*    lit_reclist-copy = &#39;X&#39;.&lt;br /&gt;*    lit_reclist-rec_type = &#39;U&#39;.&lt;br /&gt;*    APPEND lit_reclist.&lt;br /&gt;&lt;br /&gt;*--Sending mail.&lt;br /&gt;    IF lit_reclist[] IS NOT INITIAL.&lt;br /&gt;      CALL FUNCTION &#39;SO_DOCUMENT_SEND_API1&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          document_data              = dl_doc_chng&lt;br /&gt;          put_in_outbox              = &#39;X&#39;&lt;br /&gt;          commit_work                = &#39;X&#39;&lt;br /&gt;        TABLES&lt;br /&gt;          packing_list               = lit_objpack&lt;br /&gt;          contents_txt               = lit_objtxt&lt;br /&gt;          receivers                  = lit_reclist&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;          too_many_receivers         = 1&lt;br /&gt;          document_not_sent          = 2&lt;br /&gt;          document_type_not_exist    = 3&lt;br /&gt;          operation_no_authorization = 4&lt;br /&gt;          parameter_error            = 5&lt;br /&gt;          x_error                    = 6&lt;br /&gt;          enqueue_error              = 7&lt;br /&gt;          OTHERS                     = 8.&lt;br /&gt;      IF sy-subrc &lt;&gt; 0.&lt;br /&gt;        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;br /&gt;                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; SEND_MAIL</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/3933159363212716224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/03/send-greetings-mail-on-birthday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/3933159363212716224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/3933159363212716224'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/03/send-greetings-mail-on-birthday.html' title='Send Greetings mail on Birthday'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-7018893427565390231</id><published>2011-03-21T01:32:00.000-07:00</published><updated>2011-03-21T01:54:16.415-07:00</updated><title type='text'>Annual Perk Calculation</title><content type='html'>Write your coding in user Exit : HRINHRA0 , FM - EXIT_HINCALC0_005 in the&lt;br /&gt;Include ZXPPYINU04.&lt;br /&gt;&lt;br /&gt;When Company leased accomodation is given the Annual Perk Calculation was &lt;br /&gt;not calculated according to the clients requirement.&lt;br /&gt;Also the negative diff rent was not shown in deductions.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;  Include           ZXPPYINU04&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;DATA : v_amount LIKE pa0581-rtamt,&lt;br /&gt;       v_basis  TYPE maxbt,&lt;br /&gt;       v_diff   TYPE maxbt,&lt;br /&gt;       v_elig_amount  LIKE pa0581-rtamt.&lt;br /&gt;&lt;br /&gt;IF NOT _hra[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;  READ TABLE _hra INDEX 1.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0 AND _hra-accom = &#39;5&#39;.&lt;br /&gt;&lt;br /&gt;    v_amount = _hra-rtamt.&lt;br /&gt;    _wgtyp_tab-abart = &#39;*&#39;.&lt;br /&gt;    _wgtyp_tab-lgart = &#39;/3RI&#39;.     &quot; Rent wage type&lt;br /&gt;    _wgtyp_tab-betrg = v_amount.   &quot; Rent amount&lt;br /&gt;&lt;br /&gt;    APPEND _wgtyp_tab.&lt;br /&gt;    CLEAR  _wgtyp_tab.&lt;br /&gt;&lt;br /&gt;*--Get basis amount&lt;br /&gt;    LOOP AT _it WHERE lgart = &#39;/115&#39;.&lt;br /&gt;      v_basis = v_basis + _it-betrg.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;*--Get eligible amount&lt;br /&gt;    LOOP AT _it WHERE lgart = &#39;1011&#39;.&lt;br /&gt;      v_elig_amount = v_elig_amount + _it-betrg.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;*--Get difference amount&lt;br /&gt;*   _delgrt_mon = v_elig_amount - v_amount.&lt;br /&gt;&lt;br /&gt;*--Get Yearly basis amount&lt;br /&gt;    v_basis = v_basis * 12.&lt;br /&gt;&lt;br /&gt;*--Get Yearly rent amount&lt;br /&gt;    v_amount = v_amount * 12.&lt;br /&gt;&lt;br /&gt;    v_diff = ( v_basis - v_amount ) * 15 / 100 .&lt;br /&gt;&lt;br /&gt;*--Calculate Yearly eligible amount&lt;br /&gt;    v_elig_amount = v_elig_amount * 12 .&lt;br /&gt;&lt;br /&gt;    IF v_diff &gt; v_elig_amount.&lt;br /&gt;      _tcprk = v_elig_amount.&lt;br /&gt;    ELSE.&lt;br /&gt;      _tcprk = v_diff.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDIF.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/7018893427565390231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/03/annual-perk-calculation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/7018893427565390231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/7018893427565390231'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/03/annual-perk-calculation.html' title='Annual Perk Calculation'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-5682964419294569519</id><published>2011-03-21T00:34:00.000-07:00</published><updated>2011-03-21T00:52:32.048-07:00</updated><title type='text'>Calculate EMI (Equated Monthly Instalments) in Infotype 0045</title><content type='html'>Write your coding in user Exit : PBAS0001 , FM - EXIT_SAPFP50M_002 in the&lt;br /&gt;Include ZXPADU02.&lt;br /&gt;&lt;br /&gt;From Indian payroll view , there was a difference in calculation of EMI &lt;br /&gt;amounts , the amount calculated in system differs from the ones calculated &lt;br /&gt;in EXCEL sheet.&lt;br /&gt;The below coding solves the problem.(Same as EXCEL calculation)&lt;br /&gt;&lt;br /&gt;EMI Calculation Courtesy &lt;a href=&quot;https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP-Utility+Program+to+Calculate+the+EMI+of+Home+Loans&quot;&gt;Link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;  Include           ZXPADU02&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;DATA : i0045 LIKE p0045.&lt;br /&gt;DATA : v_durn TYPE pea_scrmm.&lt;br /&gt;DATA : p_durn(6) TYPE n,&lt;br /&gt;       p_intr TYPE p DECIMALS 5,&lt;br /&gt;       p_loan TYPE p DECIMALS 2,&lt;br /&gt;       v_emi TYPE p DECIMALS 2,&lt;br /&gt;       v_dltyp TYPE dltyp.&lt;br /&gt;&lt;br /&gt;CHECK sy-tcode = &#39;PA30&#39;.&lt;br /&gt;&lt;br /&gt;CLEAR : p_durn , v_durn , v_emi , p_loan , p_intr , i0045 , v_dltyp.&lt;br /&gt;&lt;br /&gt;CASE: innnn-infty.&lt;br /&gt;&lt;br /&gt;  WHEN &#39;0045&#39;.&lt;br /&gt;&lt;br /&gt;    SELECT SINGLE dltyp&lt;br /&gt;           FROM t506a&lt;br /&gt;           INTO v_dltyp&lt;br /&gt;           WHERE dlart EQ innnn-subty.&lt;br /&gt;&lt;br /&gt;    IF innnn-endda = &#39;99991231&#39;.&lt;br /&gt;      MESSAGE e208(00) WITH &#39;Determine end date&#39;.&lt;br /&gt;      EXIT.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    CALL METHOD cl_hr_pnnnn_type_cast=&gt;prelp_to_pnnnn&lt;br /&gt;      EXPORTING&lt;br /&gt;        prelp = innnn&lt;br /&gt;      IMPORTING&lt;br /&gt;        pnnnn = i0045.&lt;br /&gt;&lt;br /&gt;    CALL FUNCTION &#39;HR_HK_DIFF_BT_2_DATES&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        date1                         = i0045-endda&lt;br /&gt;        date2                         = i0045-tilbg&lt;br /&gt;        output_format                 = &#39;04&#39;&lt;br /&gt;      IMPORTING&lt;br /&gt;*        YEARS                         =&lt;br /&gt;        months                        = v_durn&lt;br /&gt;*        DAYS                          =&lt;br /&gt;     EXCEPTIONS&lt;br /&gt;       invalid_dates_specified       = 1&lt;br /&gt;       OTHERS                        = 2&lt;br /&gt;              .&lt;br /&gt;    IF sy-subrc &lt;&gt; 0.&lt;br /&gt;      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;br /&gt;              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    p_durn = v_durn.&lt;br /&gt;&lt;br /&gt;*--Interest rate&lt;br /&gt;    p_intr = i0045-indin / 1200 .&lt;br /&gt;    p_loan = i0045-darbt.&lt;br /&gt;&lt;br /&gt;    v_emi = ( ( ( 1 + p_intr ) ** p_durn ) - 1 ).&lt;br /&gt;&lt;br /&gt;    IF v_emi IS NOT INITIAL.&lt;br /&gt;*--Calculate EMI&lt;br /&gt;&lt;br /&gt;      IF v_dltyp = &#39;A&#39;.&lt;br /&gt;        i0045-anrte = ( p_loan * p_intr ) *&lt;br /&gt;              ( ( ( 1 + p_intr ) ** p_durn ) /&lt;br /&gt;                ( ( ( 1 + p_intr ) ** p_durn ) - 1 ) ).&lt;br /&gt;      ELSEIF v_dltyp = &#39;I&#39;.&lt;br /&gt;        i0045-tilbt = ( p_loan * p_intr ) *&lt;br /&gt;              ( ( ( 1 + p_intr ) ** p_durn ) /&lt;br /&gt;                ( ( ( 1 + p_intr ) ** p_durn ) - 1 ) ).&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    CALL METHOD cl_hr_pnnnn_type_cast=&gt;pnnnn_to_prelp&lt;br /&gt;      EXPORTING&lt;br /&gt;        pnnnn = i0045&lt;br /&gt;      IMPORTING&lt;br /&gt;        prelp = innnn.&lt;br /&gt;&lt;br /&gt;ENDCASE.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/5682964419294569519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/03/calculate-emi-equated-monthly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/5682964419294569519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/5682964419294569519'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/03/calculate-emi-equated-monthly.html' title='Calculate EMI (Equated Monthly Instalments) in Infotype 0045'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-3606054325799520693</id><published>2011-02-10T04:18:00.000-08:00</published><updated>2011-02-10T04:20:27.299-08:00</updated><title type='text'>Merge two PDF&#39;s</title><content type='html'>Will be updated soon ...</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/3606054325799520693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2011/02/merge-two-pdfs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/3606054325799520693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/3606054325799520693'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2011/02/merge-two-pdfs.html' title='Merge two PDF&#39;s'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-2806155417219737068</id><published>2010-12-06T22:23:00.000-08:00</published><updated>2010-12-06T22:30:21.738-08:00</updated><title type='text'>Send PDF to SPOOL</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;  Report  ZPDF_TO_SPOOL.&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;report  ZPDF_TO_SPOOL.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;  Declarations&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;data : w_options  like  itcpo ,&lt;br /&gt;       it_otfdata type standard table of  itcoo ,&lt;br /&gt;       it_tlines   type standard table of tline ,&lt;br /&gt;       bin_filesize type i ,&lt;br /&gt;       bin_file type xstring ,&lt;br /&gt;       printer like tsp01-rqdest value &#39;LP01&#39;,&lt;br /&gt;       append type c value &#39;X&#39;,&lt;br /&gt;       doctype type adsdoctype value &#39;ADSP&#39; ,&lt;br /&gt;       adstype type string,&lt;br /&gt;       l_strlen type i,&lt;br /&gt;       l_strlen1 type i,&lt;br /&gt;       nopdf type c value &#39;&#39;,&lt;br /&gt;       globaldir(100),&lt;br /&gt;       pathname(256),&lt;br /&gt;       myfile type string,&lt;br /&gt;       handle like sy-tabix,&lt;br /&gt;       spoolid like tsp01-rqident,&lt;br /&gt;       partname type adspart,&lt;br /&gt;       filename    type file_name,&lt;br /&gt;       pages type i,&lt;br /&gt;       size type i.&lt;br /&gt;&lt;br /&gt;data:  begin of datatab occurs 100,&lt;br /&gt;         line(80) type x,&lt;br /&gt;       end of datatab.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;  Start of selection&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;start-of-selection.&lt;br /&gt;&lt;br /&gt;  w_options-tdgetotf = &#39;X&#39;.&lt;br /&gt;  w_options-tddest   = &#39;LP01&#39;.&lt;br /&gt;&lt;br /&gt;*--Call the Script&lt;br /&gt;&lt;br /&gt;  call function &#39;OPEN_FORM&#39;&lt;br /&gt;    exporting&lt;br /&gt;      device   = &#39;PRINTER&#39;&lt;br /&gt;      dialog   = &#39; &#39;&lt;br /&gt;      form     = &#39;ZTEST&#39;&lt;br /&gt;      language = sy-langu&lt;br /&gt;      options  = w_options.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  call function &#39;WRITE_FORM&#39;&lt;br /&gt;    exporting&lt;br /&gt;*      element  = &#39;520&#39;&lt;br /&gt;      function = &#39;SET&#39;&lt;br /&gt;      type     = &#39;BODY&#39;&lt;br /&gt;      window   = &#39;MAIN&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  call function &#39;CLOSE_FORM&#39;&lt;br /&gt;    tables&lt;br /&gt;      otfdata = it_otfdata.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*--Convert from OTF to PDF format&lt;br /&gt;*  bin_file needs to be XSTRING format.&lt;br /&gt;  call function &#39;CONVERT_OTF&#39;&lt;br /&gt;    exporting&lt;br /&gt;      format        = &#39;PDF&#39;&lt;br /&gt;      max_linewidth = 255&lt;br /&gt;    importing&lt;br /&gt;      bin_filesize  = bin_filesize&lt;br /&gt;      bin_file      = bin_file&lt;br /&gt;    tables&lt;br /&gt;      otf           = it_otfdata&lt;br /&gt;      lines         = it_tlines.&lt;br /&gt;&lt;br /&gt;  call function &#39;ADS_SR_OPEN&#39;&lt;br /&gt;    exporting&lt;br /&gt;      dest             = printer&lt;br /&gt;      append           = append&lt;br /&gt;      doctype          = doctype&lt;br /&gt;    importing&lt;br /&gt;      handle           = handle&lt;br /&gt;      spoolid          = spoolid&lt;br /&gt;      partname         = partname&lt;br /&gt;    exceptions&lt;br /&gt;      device_missing   = 1&lt;br /&gt;      no_such_device   = 2&lt;br /&gt;      operation_failed = 3&lt;br /&gt;      wrong_doctype    = 4&lt;br /&gt;      others           = 5.&lt;br /&gt;&lt;br /&gt;*  l_strlen = STRLEN( bin_file ).&lt;br /&gt;*  l_strlen1 = STRLEN( bin_file ).&lt;br /&gt;&lt;br /&gt;  l_strlen  = bin_filesize .&lt;br /&gt;  l_strlen1 = bin_filesize .&lt;br /&gt;&lt;br /&gt;  do.&lt;br /&gt;&lt;br /&gt;    if l_strlen gt 80.&lt;br /&gt;      move bin_file+0(80) to datatab-line.&lt;br /&gt;      append datatab.&lt;br /&gt;      l_strlen = l_strlen - 80.&lt;br /&gt;      bin_file = bin_file+80.&lt;br /&gt;    else.&lt;br /&gt;      move bin_file+0(l_strlen) to datatab-line.&lt;br /&gt;      append datatab.&lt;br /&gt;      exit.&lt;br /&gt;    endif.&lt;br /&gt;&lt;br /&gt;  enddo.&lt;br /&gt;&lt;br /&gt;* Filename from partname&lt;br /&gt;  concatenate partname &#39;.pdf&#39; into filename. &lt;br /&gt;&lt;br /&gt;* Get path of global directory&lt;br /&gt;  call &#39;C_SAPGPARAM&#39;&lt;br /&gt;    id &#39;NAME&#39;  field &#39;DIR_GLOBAL&#39;&lt;br /&gt;    id &#39;VALUE&#39; field globaldir.&lt;br /&gt;&lt;br /&gt;* Create fully qualified path&lt;br /&gt;  concatenate globaldir &#39;/&#39; filename into pathname.&lt;br /&gt;&lt;br /&gt;  myfile = pathname.&lt;br /&gt;&lt;br /&gt;  open dataset myfile for output in binary mode.&lt;br /&gt;&lt;br /&gt;  if sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    loop at datatab.&lt;br /&gt;      transfer datatab to myfile.&lt;br /&gt;    endloop.&lt;br /&gt;&lt;br /&gt;    close dataset myfile.&lt;br /&gt;  endif.&lt;br /&gt;&lt;br /&gt;  size = l_strlen1.&lt;br /&gt;  pages = 1.&lt;br /&gt;&lt;br /&gt;  call function &#39;ADS_SR_CONFIRM&#39;&lt;br /&gt;    exporting&lt;br /&gt;      handle           = handle&lt;br /&gt;      partname         = partname&lt;br /&gt;      size             = size&lt;br /&gt;      pages            = pages&lt;br /&gt;      no_pdf           = nopdf&lt;br /&gt;    exceptions&lt;br /&gt;      handle_not_valid = 1&lt;br /&gt;      operation_failed = 2&lt;br /&gt;      others           = 3.&lt;br /&gt;&lt;br /&gt;  call function &#39;ADS_SR_CLOSE&#39;&lt;br /&gt;    exporting&lt;br /&gt;      handle           = handle&lt;br /&gt;    exceptions&lt;br /&gt;      handle_not_valid = 1&lt;br /&gt;      operation_failed = 2&lt;br /&gt;      others           = 3.&lt;br /&gt;&lt;br /&gt;end-of-selection.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/2806155417219737068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/send-pdf-to-spool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/2806155417219737068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/2806155417219737068'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/send-pdf-to-spool.html' title='Send PDF to SPOOL'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-1540747509409361819</id><published>2010-12-03T00:50:00.000-08:00</published><updated>2010-12-03T00:52:57.470-08:00</updated><title type='text'>Split Container to display multiple ALV&#39;s</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Report  Z_SPLIT_CONTAINER_ALV&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  Z_SPLIT_CONTAINER_ALV.&lt;br /&gt;&lt;br /&gt;DATA : lcl_custom TYPE REF TO cl_gui_custom_container.&lt;br /&gt;DATA : lcl_split TYPE REF TO cl_gui_splitter_container.&lt;br /&gt;DATA : lcl_con1 TYPE REF TO cl_gui_container.&lt;br /&gt;DATA : lcl_con2 TYPE REF TO cl_gui_container.&lt;br /&gt;DATA : lcl_con3 TYPE REF TO cl_gui_container.&lt;br /&gt;DATA : lcl_con4 TYPE REF TO cl_gui_container.&lt;br /&gt;DATA : gcl_dd_doc TYPE REF TO cl_dd_document.&lt;br /&gt;DATA : gr_functions TYPE REF TO cl_salv_functions.&lt;br /&gt;&lt;br /&gt;DATA : gr_salv  TYPE REF TO cl_salv_table,&lt;br /&gt;       gr_salv2 TYPE REF TO cl_salv_table,&lt;br /&gt;       gr_salv3 TYPE REF TO cl_salv_table,&lt;br /&gt;       gr_salv4 TYPE REF TO cl_salv_table,&lt;br /&gt;       lr_exp   TYPE REF TO cx_root,&lt;br /&gt;       lv_text  TYPE string.&lt;br /&gt;&lt;br /&gt;TYPES:BEGIN OF ty_table3,&lt;br /&gt;           g_belnr       TYPE bkpf-belnr, &quot;pra&lt;br /&gt;           g_bukrs       TYPE bkpf-bukrs,&quot;pra&lt;br /&gt;           sbelnr        TYPE bkpf-belnr,&quot;pra&lt;br /&gt;           rbukrs        TYPE bkpf-bukrs,&quot;pra&lt;br /&gt;           rbelnr        TYPE bkpf-belnr,&quot;pra&lt;br /&gt;           rstblg        TYPE bkpf-stblg,&quot;pra&lt;br /&gt;           pernr         TYPE pa0001-pernr,&lt;br /&gt;           name(30)      TYPE c,&lt;br /&gt;           begda         TYPE dats,&lt;br /&gt;           endda         TYPE dats,&lt;br /&gt;     END OF ty_table3.&lt;br /&gt;&lt;br /&gt;DATA : BEGIN OF ty_alv3.&lt;br /&gt;INCLUDE TYPE ty_table3.&lt;br /&gt;DATA : END OF ty_alv3.&lt;br /&gt;&lt;br /&gt;DATA : gt_display3 LIKE TABLE OF ty_alv3,&lt;br /&gt;       gs_display3 LIKE ty_alv3.&lt;br /&gt;&lt;br /&gt;TYPES:BEGIN OF ty_table2,&lt;br /&gt;           pernr         TYPE pa0002-pernr,&lt;br /&gt;           nachn         TYPE pa0002-nachn,&lt;br /&gt;           vorna         type pa0002-vorna,&lt;br /&gt;           GESCH         type pa0002-GESCH,&lt;br /&gt;           GBDAT         type pa0002-GBDAT,&lt;br /&gt;           begda         TYPE dats,&lt;br /&gt;           endda         TYPE dats,&lt;br /&gt;     END OF ty_table2.&lt;br /&gt;&lt;br /&gt;DATA : BEGIN OF ty_alv2.&lt;br /&gt;INCLUDE TYPE ty_table2.&lt;br /&gt;DATA : END OF ty_alv2.&lt;br /&gt;&lt;br /&gt;DATA : gt_display2 LIKE TABLE OF ty_alv2,&lt;br /&gt;       gs_display2 LIKE ty_alv2.&lt;br /&gt;&lt;br /&gt;DATA : gt_display4 LIKE TABLE OF bseg,&lt;br /&gt;       gs_display4 LIKE bseg.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;  PERFORM fill_internal_tables.&lt;br /&gt;&lt;br /&gt;  CALL SCREEN 100.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  STATUS_0100  OUTPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE status_0100 OUTPUT.&lt;br /&gt;  SET PF-STATUS &#39;ZSTAT&#39;.&lt;br /&gt;  SET TITLEBAR &#39;ZTITLE&#39;.&lt;br /&gt;&lt;br /&gt;  CREATE OBJECT lcl_custom&lt;br /&gt;    EXPORTING&lt;br /&gt;*    parent                      = parent&lt;br /&gt;      container_name              = &#39;SPLIT&#39;&lt;br /&gt;*    style                       = style&lt;br /&gt;*    lifetime                    = lifetime_default&lt;br /&gt;*    repid                       = repid&lt;br /&gt;*    dynnr                       = dynnr&lt;br /&gt;*    no_autodef_progid_dynnr     = no_autodef_progid_dynnr&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      cntl_error                  = 1&lt;br /&gt;      cntl_system_error           = 2&lt;br /&gt;      create_error                = 3&lt;br /&gt;      lifetime_error              = 4&lt;br /&gt;      lifetime_dynpro_dynpro_link = 5&lt;br /&gt;      OTHERS                      = 6&lt;br /&gt;      .&lt;br /&gt;&lt;br /&gt;*Split the container into 4&lt;br /&gt;  CREATE OBJECT lcl_split&lt;br /&gt;    EXPORTING&lt;br /&gt;       parent            = lcl_custom&lt;br /&gt;       rows              = 4&lt;br /&gt;       columns           = 1&lt;br /&gt;*    no_autodef_progid_dynnr = no_autodef_progid_dynnr&lt;br /&gt;*    name              = name&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      cntl_error        = 1&lt;br /&gt;      cntl_system_error = 2&lt;br /&gt;      OTHERS            = 3&lt;br /&gt;      .&lt;br /&gt;&lt;br /&gt;*1st window&lt;br /&gt;  CALL METHOD lcl_split-&gt;get_container&lt;br /&gt;    EXPORTING&lt;br /&gt;      row       = 1&lt;br /&gt;      column    = 1&lt;br /&gt;    RECEIVING&lt;br /&gt;      container = lcl_con1.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_split-&gt;set_row_height&lt;br /&gt;    EXPORTING&lt;br /&gt;      id     = 1&lt;br /&gt;      height = 3.&lt;br /&gt;&lt;br /&gt;  IF gcl_dd_doc IS INITIAL.&lt;br /&gt;    CREATE OBJECT gcl_dd_doc.&lt;br /&gt;  ENDIF.&lt;br /&gt;  PERFORM built_header  CHANGING gcl_dd_doc.&lt;br /&gt;  CALL METHOD gcl_dd_doc-&gt;merge_document.&lt;br /&gt;&lt;br /&gt;  CALL METHOD gcl_dd_doc-&gt;display_document&lt;br /&gt;    EXPORTING&lt;br /&gt;      parent             = lcl_con1&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      html_display_error = 1.&lt;br /&gt;&lt;br /&gt;*2nd window&lt;br /&gt;  CALL METHOD lcl_split-&gt;get_container&lt;br /&gt;    EXPORTING&lt;br /&gt;      row       = 2&lt;br /&gt;      column    = 1&lt;br /&gt;    RECEIVING&lt;br /&gt;      container = lcl_con4.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_split-&gt;set_row_height&lt;br /&gt;    EXPORTING&lt;br /&gt;      id     = 2&lt;br /&gt;      height = 3.&lt;br /&gt;  TRY.&lt;br /&gt;      &quot;Factory Method for display the ALV&lt;br /&gt;      CALL METHOD cl_salv_table=&gt;factory&lt;br /&gt;        EXPORTING&lt;br /&gt;          r_container  = lcl_con4&lt;br /&gt;        IMPORTING&lt;br /&gt;          r_salv_table = gr_salv4&lt;br /&gt;        CHANGING&lt;br /&gt;          t_table      = gt_display3.&lt;br /&gt;&lt;br /&gt;    CATCH cx_salv_msg INTO lr_exp.&lt;br /&gt;      lv_text = lr_exp-&gt;get_text( ).&lt;br /&gt;&lt;br /&gt;  ENDTRY.&lt;br /&gt;&lt;br /&gt;  gr_salv4-&gt;display( ).&lt;br /&gt;&lt;br /&gt;*3rd window&lt;br /&gt;  CALL METHOD lcl_split-&gt;get_container&lt;br /&gt;    EXPORTING&lt;br /&gt;      row       = 3&lt;br /&gt;      column    = 1&lt;br /&gt;    RECEIVING&lt;br /&gt;      container = lcl_con2.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_split-&gt;set_row_height&lt;br /&gt;    EXPORTING&lt;br /&gt;      id     = 3&lt;br /&gt;      height = 22.&lt;br /&gt;&lt;br /&gt;  TRY.&lt;br /&gt;      &quot;Factory Method for display the ALV&lt;br /&gt;      CALL METHOD cl_salv_table=&gt;factory&lt;br /&gt;        EXPORTING&lt;br /&gt;          r_container  = lcl_con2&lt;br /&gt;        IMPORTING&lt;br /&gt;          r_salv_table = gr_salv2&lt;br /&gt;        CHANGING&lt;br /&gt;          t_table      = gt_display2.&lt;br /&gt;&lt;br /&gt;    gr_functions = gr_salv2-&gt;get_functions( ).&lt;br /&gt;    gr_functions-&gt;set_all( abap_true ).&lt;br /&gt;&lt;br /&gt;    CATCH cx_salv_msg INTO lr_exp.&lt;br /&gt;      lv_text = lr_exp-&gt;get_text( ).&lt;br /&gt;&lt;br /&gt;  ENDTRY.&lt;br /&gt;  gr_salv2-&gt;display( ).&lt;br /&gt;&lt;br /&gt;*4th window&lt;br /&gt;  CALL METHOD lcl_split-&gt;get_container&lt;br /&gt;    EXPORTING&lt;br /&gt;      row       = 4&lt;br /&gt;      column    = 1&lt;br /&gt;    RECEIVING&lt;br /&gt;      container = lcl_con3.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_split-&gt;set_row_height&lt;br /&gt;    EXPORTING&lt;br /&gt;      id     = 4&lt;br /&gt;      height = 21.&lt;br /&gt;&lt;br /&gt;  TRY.&lt;br /&gt;      &quot;Factory Method for display the ALV&lt;br /&gt;      CALL METHOD cl_salv_table=&gt;factory&lt;br /&gt;        EXPORTING&lt;br /&gt;          r_container  = lcl_con3&lt;br /&gt;        IMPORTING&lt;br /&gt;          r_salv_table = gr_salv3&lt;br /&gt;        CHANGING&lt;br /&gt;          t_table      = gt_display4.&lt;br /&gt;&lt;br /&gt;    gr_functions = gr_salv3-&gt;get_functions( ).&lt;br /&gt;    gr_functions-&gt;set_all( abap_true ).&lt;br /&gt;&lt;br /&gt;    CATCH cx_salv_msg INTO lr_exp.&lt;br /&gt;      lv_text = lr_exp-&gt;get_text( ).&lt;br /&gt;&lt;br /&gt;  ENDTRY.&lt;br /&gt;  gr_salv3-&gt;display( ).&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 &quot; STATUS_0100  OUTPUT&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  USER_COMMAND_0100  INPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE user_command_0100 INPUT.&lt;br /&gt;&lt;br /&gt;  CASE sy-ucomm.&lt;br /&gt;    WHEN &#39;BACK&#39; OR &#39;EXIT&#39;.&lt;br /&gt;      SET SCREEN 0.&lt;br /&gt;      LEAVE SCREEN.&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 &quot; USER_COMMAND_0100  INPUT&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  built_header&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM built_header  CHANGING ps_cl_dd_doc TYPE REF TO cl_dd_document.&lt;br /&gt;&lt;br /&gt;  DATA : lcl_ta  TYPE REF TO cl_dd_table_element,&lt;br /&gt;         lcl_col1 TYPE REF TO cl_dd_area,&lt;br /&gt;         lcl_col2 TYPE REF TO cl_dd_area,&lt;br /&gt;         lcl_col3 TYPE REF TO cl_dd_area,&lt;br /&gt;         lv_text  TYPE sdydo_text_element,&lt;br /&gt;         lcl_form TYPE REF TO cl_dd_form_area.&lt;br /&gt;&lt;br /&gt;  CALL METHOD ps_cl_dd_doc-&gt;add_table&lt;br /&gt;    EXPORTING&lt;br /&gt;      no_of_columns               = 3&lt;br /&gt;      width                       = &#39;100%&#39;&lt;br /&gt;      cell_background_transparent = space&lt;br /&gt;    IMPORTING&lt;br /&gt;      table                       = lcl_ta.&lt;br /&gt;&lt;br /&gt;*Set the columns&lt;br /&gt;  CALL METHOD lcl_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;30%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lcl_col1.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;30%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lcl_col2.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;40%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lcl_col3.&lt;br /&gt;&lt;br /&gt;  lv_text = &#39;First Field&#39;.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text&lt;br /&gt;      sap_emphasis = cl_dd_area=&gt;table_heading.&quot;strong.&lt;br /&gt;&lt;br /&gt;  lv_text = &#39;Second Field&#39;.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text&lt;br /&gt;      sap_emphasis = cl_dd_area=&gt;table_heading.&lt;br /&gt;&lt;br /&gt;  lv_text = &#39;Third Field&#39;.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lcl_col3-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text&lt;br /&gt;      sap_emphasis = cl_dd_area=&gt;table_heading.&lt;br /&gt;&lt;br /&gt;  CLEAR:lv_text.&lt;br /&gt;&lt;br /&gt;  CALL METHOD ps_cl_dd_doc-&gt;add_table&lt;br /&gt;    EXPORTING&lt;br /&gt;      no_of_columns               = 3&lt;br /&gt;      width                       = &#39;100%&#39;&lt;br /&gt;      cell_background_transparent = space&lt;br /&gt;    IMPORTING&lt;br /&gt;      table                       = lcl_ta.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; built_header&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  fill_internal_tables&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM fill_internal_tables .&lt;br /&gt;&lt;br /&gt;  SELECT pernr nachn vorna  GESCH gbdat begda endda FROM pa0002&lt;br /&gt;         INTO TABLE gt_display2&lt;br /&gt;         UP TO 20 ROWS.&lt;br /&gt;&lt;br /&gt;  gs_display4-bukrs = &#39;0112&#39;.&lt;br /&gt;  gs_display4-belnr = &#39;1090807060&#39;.&lt;br /&gt;  gs_display4-gjahr = &#39;2010&#39;.&lt;br /&gt;&lt;br /&gt;  DO 20 TIMES.&lt;br /&gt;    APPEND gs_display4 TO gt_display4.&lt;br /&gt;  ENDDO.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; fill_internal_tables</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/1540747509409361819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/split-container-to-display-multiple.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1540747509409361819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1540747509409361819'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/split-container-to-display-multiple.html' title='Split Container to display multiple ALV&#39;s'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-4661522740087094391</id><published>2010-12-03T00:20:00.000-08:00</published><updated>2010-12-03T00:31:14.123-08:00</updated><title type='text'>Convert ABAP Spool to word document</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Report  Z_SPOOL_2_WORD&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT Z_SPOOL_2_WORD.&lt;br /&gt;&lt;br /&gt;INCLUDE ole2incl.&lt;br /&gt;&lt;br /&gt;DATA i_buffer(132) OCCURS 0 WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE text-001.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_spool LIKE tsp01-rqident OBLIGATORY.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE text-002.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_word AS CHECKBOX DEFAULT &#39;X&#39;.&lt;br /&gt;PARAMETERS: p_fwor LIKE rlgrap-filename obligatory.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN END OF BLOCK B2.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* START-OF-SELECTION.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;  PERFORM read_spool.&lt;br /&gt;&lt;br /&gt;  IF NOT p_word IS INITIAL.&lt;br /&gt;    PERFORM write_word.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Form read_spool&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*  Read spool data&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM read_spool.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;RSPO_RETURN_ABAP_SPOOLJOB&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      rqident              = p_spool&lt;br /&gt;      first_line           = 1&lt;br /&gt;      last_line            = 9999999&lt;br /&gt;    TABLES&lt;br /&gt;      buffer               = i_buffer&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      no_such_job          = 1&lt;br /&gt;      not_abap_list        = 2&lt;br /&gt;      job_contains_no_data = 3&lt;br /&gt;      selection_empty      = 4&lt;br /&gt;      no_permission        = 5&lt;br /&gt;      can_not_access       = 6&lt;br /&gt;      read_error           = 7&lt;br /&gt;      OTHERS               = 8.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;    MESSAGE e398(00) WITH  &#39;Spool&#39; p_spool &#39;not found&#39;.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.         &quot; read_spool&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Form write_word&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*  Write to word.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM write_word.&lt;br /&gt;&lt;br /&gt;  DATA: wordapp TYPE ole2_object,&lt;br /&gt;        document TYPE ole2_object,&lt;br /&gt;        selection TYPE ole2_object.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;CLPB_EXPORT&#39;&lt;br /&gt;    TABLES&lt;br /&gt;      data_tab   = i_buffer&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      clpb_error = 1&lt;br /&gt;      OTHERS     = 2.&lt;br /&gt;&lt;br /&gt;* Word CREATE&lt;br /&gt;  CREATE OBJECT wordapp &#39;word.application&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;    MESSAGE e398(00) WITH &#39;Word cannot be created&#39;.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Set visible&lt;br /&gt;  SET PROPERTY OF wordapp &#39;Visible&#39; = 1.&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF wordapp &#39;Documents&#39; = document.&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF document &#39;Add&#39;.&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF wordapp &#39;Selection&#39; = selection.&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF selection &#39;Paste&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;    MESSAGE e398(00) WITH &#39;Error at writing to the document&#39;.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF wordapp &#39;ActiveDocument&#39; = document.&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF document &#39;SaveAs&#39;&lt;br /&gt;    EXPORTING #1 = p_fwor.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;    MESSAGE e398(00) WITH &#39;Error saving the document&#39;.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Close Word application&lt;br /&gt;&lt;br /&gt;  CALL METHOD OF WORDAPP &#39;Quit&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;    MESSAGE e398(00) WITH &#39;Error closing Word&#39;.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;write_word</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/4661522740087094391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/convert-abap-spool-to-word-document.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/4661522740087094391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/4661522740087094391'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/convert-abap-spool-to-word-document.html' title='Convert ABAP Spool to word document'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-4874524055380473817</id><published>2010-12-02T22:35:00.000-08:00</published><updated>2010-12-02T22:40:44.054-08:00</updated><title type='text'>Email Excel Sheet as an Attachment</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Report  Z_EXCEL_MAIL&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;REPORT  Z_EXCEL_MAIL.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF it_kna1 OCCURS 0,&lt;br /&gt;        kunnr TYPE kunnr,&lt;br /&gt;        land1 TYPE land1_gp,&lt;br /&gt;        name1 TYPE name1_gp,&lt;br /&gt;     END OF it_kna1.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;  SELECT kunnr land1 name1 FROM kna1&lt;br /&gt;    INTO TABLE it_kna1 UP TO 10 ROWS&lt;br /&gt;    WHERE land1 = &#39;US&#39;.&lt;br /&gt;&lt;br /&gt;*-- Sending mail with Excel&lt;br /&gt;&lt;br /&gt;  TYPES: BEGIN OF t_solisti1,&lt;br /&gt;          line TYPE string,&lt;br /&gt;         END OF t_solisti1.&lt;br /&gt;&lt;br /&gt;  DATA :     docdata      LIKE sodocchgi1,&lt;br /&gt;             objpack      LIKE sopcklsti1   OCCURS 1  WITH HEADER LINE,&lt;br /&gt;             objtxt       LIKE solisti1     OCCURS 10 WITH HEADER LINE,&lt;br /&gt;             objbin_tmp   TYPE STANDARD TABLE OF solix ,&lt;br /&gt;             objbin_final TYPE STANDARD TABLE OF solix ,&lt;br /&gt;             objhead      TYPE TABLE OF solisti1,&lt;br /&gt;             objbin1      TYPE t_solisti1 OCCURS 10 WITH HEADER LINE,&lt;br /&gt;             reclist      LIKE somlreci1    OCCURS 1  WITH HEADER LINE,&lt;br /&gt;             wa_objhead   LIKE LINE OF objhead,&lt;br /&gt;             tab_lines    TYPE sy-tabix.&lt;br /&gt;&lt;br /&gt;  DATA:gv_tab_lines TYPE c.&lt;br /&gt;&lt;br /&gt;  CONSTANTS :  lk_tab_char        TYPE c  VALUE  &lt;br /&gt;               cl_abap_char_utilities=&gt;horizontal_tab,&lt;br /&gt;               lk_cr_char         TYPE c  VALUE cl_abap_char_utilities=&gt;cr_lf,&lt;br /&gt;               lk_xls_extension   TYPE so_obj_tp VALUE &#39;XLS&#39;,&lt;br /&gt;               lk_filename(255)   TYPE c     VALUE &#39;Customer Details.XLS&#39;.&lt;br /&gt;&lt;br /&gt;  DESCRIBE TABLE objtxt LINES tab_lines.&lt;br /&gt;  READ TABLE objtxt INDEX tab_lines.&lt;br /&gt;  docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ) .&lt;br /&gt;&lt;br /&gt;*-- Mail Subject&lt;br /&gt;  CONCATENATE &#39;Customer details as on&#39;&lt;br /&gt;              sy-datum+4(2)&lt;br /&gt;              sy-datum+6(2)&lt;br /&gt;              sy-datum+0(4)&lt;br /&gt;              INTO docdata-obj_descr.&lt;br /&gt;&lt;br /&gt;  CLEAR objpack-transf_bin.&lt;br /&gt;  objpack-head_start = 1.&lt;br /&gt;  objpack-head_num = 0.&lt;br /&gt;  objpack-body_start = 1.&lt;br /&gt;  objpack-body_num = gv_tab_lines.&lt;br /&gt;  objpack-doc_type = &#39;RAW&#39;.&lt;br /&gt;  APPEND objpack.&lt;br /&gt;&lt;br /&gt;*-- Mail Subject&lt;br /&gt;  CLEAR :  objhead,&lt;br /&gt;           wa_objhead.&lt;br /&gt;  REFRESH  objhead.&lt;br /&gt;&lt;br /&gt;  wa_objhead-line =   lk_filename.&lt;br /&gt;  APPEND wa_objhead TO objhead.&lt;br /&gt;&lt;br /&gt;  reclist-receiver = &#39;mailid@igroup.com&#39;.&lt;br /&gt;  reclist-express  = &#39;X&#39;.&lt;br /&gt;  reclist-rec_type = &#39;U&#39;.  &quot;Internet Mail Address&lt;br /&gt;  APPEND reclist.&lt;br /&gt;&lt;br /&gt;  reclist-receiver = &#39;mailid@igroup.com&#39;.&lt;br /&gt;  reclist-copy = &#39;X&#39;.&lt;br /&gt;  reclist-express  = &#39;X&#39;.&lt;br /&gt;  reclist-rec_type = &#39;U&#39;.  &quot;Internet Mail Address&lt;br /&gt;  APPEND reclist.&lt;br /&gt;&lt;br /&gt;*-- Creation of the document attachment&lt;br /&gt;  CONCATENATE &#39;Customer&#39;&lt;br /&gt;              &#39;Country&#39;&lt;br /&gt;              &#39;Name&#39;&lt;br /&gt;               INTO objbin1-line&lt;br /&gt;            SEPARATED BY lk_tab_char.&lt;br /&gt;  CONCATENATE objbin1-line lk_cr_char&lt;br /&gt;    INTO objbin1-line.&lt;br /&gt;  CONDENSE objbin1-line.&lt;br /&gt;  APPEND objbin1.&lt;br /&gt;&lt;br /&gt;  APPEND: INITIAL LINE TO objbin1.&lt;br /&gt;&lt;br /&gt;*-- Creation of the document body&lt;br /&gt;  LOOP AT it_kna1.&lt;br /&gt;    DATA:lv_tot_approval(20) TYPE c,&lt;br /&gt;         lv_sno(3)              TYPE c.&lt;br /&gt;    lv_sno = lv_sno + 1.&lt;br /&gt;&lt;br /&gt;    CONCATENATE it_kna1-kunnr&lt;br /&gt;                it_kna1-land1&lt;br /&gt;                it_kna1-name1&lt;br /&gt;    INTO objbin1-line&lt;br /&gt;    SEPARATED BY lk_tab_char.&lt;br /&gt;    CONCATENATE objbin1-line lk_cr_char&lt;br /&gt;      INTO objbin1-line.&lt;br /&gt;    CONDENSE objbin1-line.&lt;br /&gt;    APPEND objbin1.&lt;br /&gt;    CLEAR : objbin1.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  DESCRIBE TABLE objbin1 LINES tab_lines.&lt;br /&gt;  tab_lines = tab_lines + 50.&lt;br /&gt;  objpack-doc_size = tab_lines * 255 .&lt;br /&gt;  objpack-transf_bin = &#39;X&#39;.&lt;br /&gt;  objpack-head_start = 1.&lt;br /&gt;  objpack-head_num = 1.&lt;br /&gt;  objpack-body_start = 1.&lt;br /&gt;  objpack-body_num = tab_lines.&lt;br /&gt;  objpack-doc_type = lk_xls_extension.&lt;br /&gt;  objpack-obj_name = lk_filename.&lt;br /&gt;  objpack-obj_descr = lk_filename.&lt;br /&gt;&lt;br /&gt;  APPEND objpack.&lt;br /&gt;&lt;br /&gt;*-- To avoid Junk Characters&lt;br /&gt;  LOOP AT objbin1.&lt;br /&gt;    DATA:lv_buffer TYPE xstring.&lt;br /&gt;&lt;br /&gt;    CLEAR lv_buffer.&lt;br /&gt;    CALL FUNCTION &#39;SCMS_STRING_TO_XSTRING&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        text   = objbin1-line&lt;br /&gt;      IMPORTING&lt;br /&gt;        buffer = lv_buffer&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        failed = 1&lt;br /&gt;        OTHERS = 2.&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      CALL FUNCTION &#39;SCMS_XSTRING_TO_BINARY&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          buffer     = lv_buffer&lt;br /&gt;        TABLES&lt;br /&gt;          binary_tab = objbin_tmp.&lt;br /&gt;      APPEND LINES OF objbin_tmp TO objbin_final.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;*-- FM to send mail&lt;br /&gt;  CALL FUNCTION &#39;SO_NEW_DOCUMENT_ATT_SEND_API1&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      document_data              = docdata&lt;br /&gt;      commit_work                = &#39;X&#39;&lt;br /&gt;    TABLES&lt;br /&gt;      packing_list               = objpack&lt;br /&gt;      object_header              = objhead&lt;br /&gt;      contents_txt               = objtxt&lt;br /&gt;      contents_hex               = objbin_final&lt;br /&gt;      receivers                  = reclist&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      too_many_receivers         = 1&lt;br /&gt;      document_not_sent          = 2&lt;br /&gt;      document_type_not_exist    = 3&lt;br /&gt;      operation_no_authorization = 4&lt;br /&gt;      parameter_error            = 5&lt;br /&gt;      x_error                    = 6&lt;br /&gt;      enqueue_error              = 7&lt;br /&gt;      OTHERS                     = 8.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE &#39;Mail was sent successfully&#39; TYPE &#39;I&#39;.&lt;br /&gt;  ELSE.&lt;br /&gt;    MESSAGE &#39;Mail sent successfully&#39; TYPE &#39;I&#39;.&lt;br /&gt;  ENDIF.</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/4874524055380473817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/report-zexcelmail-report-zexcelmail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/4874524055380473817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/4874524055380473817'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/report-zexcelmail-report-zexcelmail.html' title='Email Excel Sheet as an Attachment'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-7319297939043687715</id><published>2010-12-02T21:59:00.000-08:00</published><updated>2010-12-02T22:10:19.751-08:00</updated><title type='text'>ALV List with Subtotal and Page no&#39;s</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Report  ZALV_SUBTOTAL_PAGENOS                                       *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;report  ZALV_SUBTOTAL_PAGENOS.&lt;br /&gt;&lt;br /&gt;*-- Type pools&lt;br /&gt;type-pools: slis.&lt;br /&gt;&lt;br /&gt;*--------------------------------------------------------------------&lt;br /&gt;*         G L O B A L   I N T E R N  A L   T A B L E S&lt;br /&gt;*--------------------------------------------------------------------&lt;br /&gt;data: gt_fieldcat type slis_t_fieldcat_alv,&lt;br /&gt;      gs_layout   type slis_layout_alv,&lt;br /&gt;      gt_events   type slis_t_event.&lt;br /&gt;data: it_sort type slis_t_sortinfo_alv ,&lt;br /&gt;      wa_sort type slis_sortinfo_alv .&lt;br /&gt;data: gs_print type slis_print_alv.&lt;br /&gt;&lt;br /&gt;data: begin of it_sflight occurs 0,&lt;br /&gt;        carrid     like sflight-carrid,&lt;br /&gt;        connid     like sflight-connid,&lt;br /&gt;        fldate     like sflight-fldate,&lt;br /&gt;        price      like sflight-price,&lt;br /&gt;        planetype  like sflight-planetype,&lt;br /&gt;        seatsmax   like sflight-seatsmax,&lt;br /&gt;        seatsocc   like sflight-seatsocc,&lt;br /&gt;        paymentsum like sflight-paymentsum,&lt;br /&gt;     end of it_sflight.&lt;br /&gt;&lt;br /&gt;data: g_repid like sy-repid.&lt;br /&gt;data: gt_list_top_of_page type slis_t_listheader.&lt;br /&gt;data: v_total(5).&lt;br /&gt;&lt;br /&gt;start-of-selection.&lt;br /&gt;  g_repid = sy-repid.&lt;br /&gt;&lt;br /&gt;  perform init_fieldcat  using gt_fieldcat[].&lt;br /&gt;  perform build_eventtab using gt_events[].&lt;br /&gt;  perform build_comment  using gt_list_top_of_page[].&lt;br /&gt;  perform get_data.&lt;br /&gt;  perform set_layout using gs_layout.&lt;br /&gt;&lt;br /&gt;*-- SORT&lt;br /&gt;  clear wa_sort.&lt;br /&gt;  wa_sort-fieldname = &#39;CARRID&#39;.&lt;br /&gt;  wa_sort-up = &#39;X&#39;.&lt;br /&gt;  wa_sort-group = &#39;*&#39;.&lt;br /&gt;  wa_sort-subtot = &#39;X&#39;.&lt;br /&gt;  append wa_sort to it_sort.&lt;br /&gt;&lt;br /&gt;  clear wa_sort.&lt;br /&gt;  wa_sort-fieldname = &#39;CONNID&#39;.&lt;br /&gt;  wa_sort-up = &#39;X&#39;.&lt;br /&gt;  wa_sort-group = &#39;UL&#39;.&lt;br /&gt;  wa_sort-subtot = &#39;X&#39;.&lt;br /&gt;  append wa_sort to it_sort.&lt;br /&gt;&lt;br /&gt;*-- DISPLAY LIST&lt;br /&gt;  call function &#39;REUSE_ALV_LIST_DISPLAY&#39;&lt;br /&gt;    exporting&lt;br /&gt;      i_interface_check       = &#39; &#39;&lt;br /&gt;      i_callback_program      = g_repid&lt;br /&gt;      i_callback_user_command = &#39;USER_COMMAND&#39;&lt;br /&gt;      is_layout               = gs_layout&lt;br /&gt;      it_fieldcat             = gt_fieldcat[]&lt;br /&gt;      it_sort                 = it_sort[]&lt;br /&gt;      it_events               = gt_events&lt;br /&gt;      is_print                = gs_print&lt;br /&gt;    tables&lt;br /&gt;      t_outtab                = it_sflight&lt;br /&gt;    exceptions&lt;br /&gt;      program_error           = 1&lt;br /&gt;      others                  = 2.&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  INIT_FIELDCAT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;form init_fieldcat using    p_gt_fieldcat type slis_t_fieldcat_alv.&lt;br /&gt;&lt;br /&gt;  data: ls_fieldcat type slis_fieldcat_alv,&lt;br /&gt;        l_index type sy-tabix.&lt;br /&gt;&lt;br /&gt;  data :rep like sy-repid.&lt;br /&gt;  rep = sy-repid.&lt;br /&gt;  call function &#39;REUSE_ALV_FIELDCATALOG_MERGE&#39;&lt;br /&gt;    exporting&lt;br /&gt;      i_program_name         = rep&lt;br /&gt;      i_internal_tabname     = &#39;IT_SFLIGHT&#39;&lt;br /&gt;      i_inclname             = rep&lt;br /&gt;    changing&lt;br /&gt;      ct_fieldcat            = gt_fieldcat&lt;br /&gt;    exceptions&lt;br /&gt;      inconsistent_interface = 1&lt;br /&gt;      program_error          = 2&lt;br /&gt;      others                 = 3.&lt;br /&gt;  if sy-subrc &lt;&gt; 0.&lt;br /&gt;    message id sy-msgid type &#39;S&#39; number sy-msgno&lt;br /&gt;         with sy-msgv1 sy-msgv2 sy-msgv3 sy-subrc.&lt;br /&gt;  endif.&lt;br /&gt;&lt;br /&gt;  sort gt_fieldcat by col_pos.&lt;br /&gt;&lt;br /&gt;  loop at gt_fieldcat into ls_fieldcat.&lt;br /&gt;    l_index = sy-tabix.&lt;br /&gt;    if ls_fieldcat-fieldname = &#39;PRICE&#39;.&lt;br /&gt;      ls_fieldcat-do_sum = &#39;X&#39;.&lt;br /&gt;      ls_fieldcat-sp_group = &#39;X&#39;.&lt;br /&gt;      modify gt_fieldcat from ls_fieldcat index l_index .&lt;br /&gt;    endif.&lt;br /&gt;  endloop.&lt;br /&gt;&lt;br /&gt;endform.                    &quot; INIT_FIELDCAT&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  BUILD_EVENTTAB&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;form build_eventtab using  p_gt_events type slis_t_event.&lt;br /&gt;&lt;br /&gt;  data: ls_event type slis_alv_event.&lt;br /&gt;&lt;br /&gt;  clear ls_event.&lt;br /&gt;  ls_event-name = slis_ev_top_of_page.&lt;br /&gt;  ls_event-form = &#39;XTOP_OF_PAGE&#39;.&lt;br /&gt;  append ls_event to p_gt_events.&lt;br /&gt;  clear ls_event.&lt;br /&gt;  ls_event-name = slis_ev_top_of_list.&lt;br /&gt;  ls_event-form = &#39;XTOP_OF_LIST&#39;.&lt;br /&gt;  append ls_event to p_gt_events.&lt;br /&gt;  clear ls_event.&lt;br /&gt;  clear ls_event.&lt;br /&gt;  ls_event-name = slis_ev_end_of_page.&lt;br /&gt;  ls_event-form = &#39;XEND_OF_PAGE&#39;.&lt;br /&gt;  append ls_event to p_gt_events.&lt;br /&gt;  ls_event-name = slis_ev_end_of_list.&lt;br /&gt;  ls_event-form = &#39;XEND_OF_LIST&#39;.&lt;br /&gt;  append ls_event to p_gt_events.&lt;br /&gt;  clear ls_event.&lt;br /&gt;&lt;br /&gt;endform.                    &quot; BUILD_EVENTTAB&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  BUILD_COMMENT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;form build_comment using   p_gt_list_top_of_page type slis_t_listheader.&lt;br /&gt;  data: ls_line type slis_listheader.&lt;br /&gt;  ls_line-typ = &#39;H&#39;.&quot; = Header, S = Selection, A = Action&lt;br /&gt;  ls_line-key = &#39;KEY&#39;.&lt;br /&gt;  ls_line-info = &#39;INFO&#39;.&lt;br /&gt;  append ls_line to p_gt_list_top_of_page.&lt;br /&gt;&lt;br /&gt;endform.                    &quot; BUILD_COMMENT&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  SELECTION&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;form get_data..&lt;br /&gt;data: l_rows type i value 3.&lt;br /&gt;* Read data from table SFLIGHT&lt;br /&gt;  select carrid&lt;br /&gt;         connid&lt;br /&gt;         fldate&lt;br /&gt;         price&lt;br /&gt;         planetype&lt;br /&gt;         seatsmax&lt;br /&gt;         seatsocc&lt;br /&gt;         paymentsum&lt;br /&gt;     from sflight&lt;br /&gt;     into table it_sflight.&lt;br /&gt;**     up to l_rows rows.&lt;br /&gt;  sort it_sflight.&lt;br /&gt;endform.                    &quot; SELECTION&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  SET_LAYOUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;form set_layout using  p_gs_layout type slis_layout_alv.&lt;br /&gt;&lt;br /&gt;  p_gs_layout-zebra          = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-colwidth_optimize = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-no_input          = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-no_colhead        = space.&lt;br /&gt;  p_gs_layout-totals_text       = &#39;Total Price&#39;.&lt;br /&gt;  p_gs_layout-subtotals_text    = &#39;Sub Total&#39;.&lt;br /&gt;  p_gs_layout-totals_only       = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-key_hotspot       = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-detail_popup      = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-no_subtotals      = space.&lt;br /&gt;  p_gs_layout-expand_all        = &#39;X&#39;.&lt;br /&gt;  p_gs_layout-group_buttons     = &#39;X&#39;.&quot;space.&lt;br /&gt;endform.                    &quot; SET_LAYOUT&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM XTOP_OF_PAGE                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form xtop_of_page.&lt;br /&gt;&lt;br /&gt; data : lv_page(5),&lt;br /&gt;        lv_text(20).&lt;br /&gt;  MOVE SY-PAGNO TO LV_PAGE.&lt;br /&gt;  write:/  &#39;X_TOP_OF_PAGE&#39;.&lt;br /&gt;.&lt;br /&gt;endform.                    &quot;xtop_of_page&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM XTOP_OF_LIST                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form xtop_of_list.&lt;br /&gt;  write:/  &#39;X_TOP_OF_LIST&#39;.&lt;br /&gt;endform.                    &quot;xtop_of_list&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM XEND_OF_PAGE                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form xend_of_page.&lt;br /&gt;  write:/  &#39;X_END_OF_PAGE&#39;.&lt;br /&gt;endform.                    &quot;xend_of_page&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM XEND_OF_LIST                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form xend_of_list.&lt;br /&gt;  write:/  &#39;X_END_OF_LIST&#39;.&lt;br /&gt;  data : lv_page(5),&lt;br /&gt;         lv_text(20).&lt;br /&gt;  data : l_lines type i,&lt;br /&gt;         l_line  type i.&lt;br /&gt;&lt;br /&gt;  clear v_total.&lt;br /&gt;&lt;br /&gt;  write sy-pagno to v_total left-justified.&lt;br /&gt;  do sy-pagno times.&lt;br /&gt;    lv_page = sy-index.&lt;br /&gt;    concatenate &#39;Page&#39; lv_page &#39;of&#39; v_total&lt;br /&gt;         into lv_text separated by space.&lt;br /&gt;    if sy-index = 1.&lt;br /&gt;      read line 2 of page sy-index.&lt;br /&gt;    else.&lt;br /&gt;      read line 1 of page sy-index.&lt;br /&gt;&lt;br /&gt;   endif.&lt;br /&gt;    sy-lisel+60(20) = lv_text.&lt;br /&gt;      modify current line .&lt;br /&gt;  enddo.&lt;br /&gt;&lt;br /&gt;endform.                    &quot;xend_of_list&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       USER_COMMAND                                                  *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form user_command  using r_ucomm like sy-ucomm&lt;br /&gt;                          rs_selfield type slis_selfield.&lt;br /&gt;&lt;br /&gt;  case r_ucomm.&lt;br /&gt;    when &#39;EXIT&#39;.&lt;br /&gt;      leave to screen 0.&lt;br /&gt;    when &#39;&amp;IC1&#39;.&lt;br /&gt;      data: text(256),text1(6),text2(5).&lt;br /&gt;      move rs_selfield-tabindex to text1.&lt;br /&gt;      move rs_selfield-sumindex to text2.&lt;br /&gt;      concatenate  &#39;Double clicked on (field:&#39;&lt;br /&gt;                    rs_selfield-fieldname&lt;br /&gt;                    &#39;Value:&#39;&lt;br /&gt;                    rs_selfield-value&lt;br /&gt;                    &#39;,&#39;&lt;br /&gt;                    text1&lt;br /&gt;                    &#39;,&#39;&lt;br /&gt;                    text2&lt;br /&gt;                    &#39; ) &#39;&lt;br /&gt;                    into text&lt;br /&gt;                    separated by space.&lt;br /&gt;&lt;br /&gt;      call function &#39;POPUP_TO_DISPLAY_TEXT&#39;&lt;br /&gt;        exporting&lt;br /&gt;          textline1 = text.&lt;br /&gt;&lt;br /&gt;  endcase.&lt;br /&gt;endform.                    &quot;user_command</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/7319297939043687715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/alv-list-with-subtotal-and-page-nos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/7319297939043687715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/7319297939043687715'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/alv-list-with-subtotal-and-page-nos.html' title='ALV List with Subtotal and Page no&#39;s'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-1450707712572014503</id><published>2010-12-02T21:36:00.000-08:00</published><updated>2010-12-02T21:38:30.504-08:00</updated><title type='text'>Debug a popup screen</title><content type='html'>Type the below in a note pad , save it to the desktop , drag and drop onto the popup screen.&lt;br /&gt;&lt;br /&gt;[FUNCTION]&lt;br /&gt;Command=/H&lt;br /&gt;Title=Debugger&lt;br /&gt;Type=SystemCommand</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/1450707712572014503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/debug-popup-screen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1450707712572014503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/1450707712572014503'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/12/debug-popup-screen.html' title='Debug a popup screen'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-2300341912170730665</id><published>2010-11-25T21:32:00.000-08:00</published><updated>2010-11-25T21:33:34.086-08:00</updated><title type='text'>Other useful sites</title><content type='html'>&lt;a href=&quot;http://www.sdn.sap.com/&quot;&gt;www.sdn.sap.com&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.saptechnical.com/&quot;&gt;www.saptechnical.com&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/2300341912170730665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/11/other-useful-sites.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/2300341912170730665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/2300341912170730665'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/11/other-useful-sites.html' title='Other useful sites'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4188548145761823614.post-7679632395281614222</id><published>2010-11-25T21:28:00.000-08:00</published><updated>2011-01-09T22:54:04.889-08:00</updated><title type='text'>Get sample program list</title><content type='html'>Enter ABAPDOCU in Command prompt and enter&lt;br /&gt;You&#39;ll find some basic ABAP Examples&lt;br /&gt;BIBS - Contains Examples of user Interface design</content><link rel='replies' type='application/atom+xml' href='http://sapasap4u.blogspot.com/feeds/7679632395281614222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sapasap4u.blogspot.com/2010/11/get-sample-program-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/7679632395281614222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4188548145761823614/posts/default/7679632395281614222'/><link rel='alternate' type='text/html' href='http://sapasap4u.blogspot.com/2010/11/get-sample-program-list.html' title='Get sample program list'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>