<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Example on extracting time data from clusters in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432973#M543968</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;see the sample report for time data fetching&lt;/P&gt;&lt;P&gt;But ime data is not fetched from Clusters, only payroll data is fetched from clusters&lt;/P&gt;&lt;P&gt;Time related infotypes are 2000 to 2999.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zh_absence_quota&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       MESSAGE-ID zh_msg&lt;/P&gt;&lt;P&gt;       LINE-SIZE 169&lt;/P&gt;&lt;P&gt;       LINE-COUNT 60(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T A B L E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TABLES:    pernr,    " Logical PNP&lt;/P&gt;&lt;P&gt;           t001p,    " Personnel Subarea&lt;/P&gt;&lt;P&gt;           t529u,    " Employment Status&lt;/P&gt;&lt;P&gt;           t500p,    " Personnel Area&lt;/P&gt;&lt;P&gt;           t501,     " Employee Group&lt;/P&gt;&lt;P&gt;           t503k,    " Employee Subgroup&lt;/P&gt;&lt;P&gt;           t549a,    " Payroll Area&lt;/P&gt;&lt;P&gt;           t554s,    " Absence Type&lt;/P&gt;&lt;P&gt;           t554t,    " Absence Type Texts&lt;/P&gt;&lt;P&gt;           t556a,    " Quota Type&lt;/P&gt;&lt;P&gt;           t527x,    " Orgn. Unit&lt;/P&gt;&lt;P&gt;           t556b,    " Quota Type Text&lt;/P&gt;&lt;P&gt;           pa0003.   " Payroll Status&lt;/P&gt;&lt;P&gt;INFOTYPES:&lt;/P&gt;&lt;P&gt;           0000,   " Actions&lt;/P&gt;&lt;P&gt;           0001,   " Organizational Assignment&lt;/P&gt;&lt;P&gt;           2006,   " Absence Quota&lt;/P&gt;&lt;P&gt;           2001.   " Absences&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T Y P E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Employee Absence Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_2001,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personal Number&lt;/P&gt;&lt;P&gt;         awart TYPE awart,        " Absence Type&lt;/P&gt;&lt;P&gt;         subty TYPE subty,        " Sub Type&lt;/P&gt;&lt;P&gt;         endda TYPE endda,        " End date&lt;/P&gt;&lt;P&gt;         begda TYPE begda,        " Begin date&lt;/P&gt;&lt;P&gt;         abrtg TYPE abrtg,        " Absence days&lt;/P&gt;&lt;P&gt;         ename TYPE emnam,        " employee Name&lt;/P&gt;&lt;P&gt;         atext TYPE abwtxt,       " Absence Type Text&lt;/P&gt;&lt;P&gt;       END OF s_2001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Employee Absence Quota Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_2006,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personal Number&lt;/P&gt;&lt;P&gt;         ktart TYPE abwko,        " Absence Quota Type&lt;/P&gt;&lt;P&gt;         year(4) TYPE n,          " Year&lt;/P&gt;&lt;P&gt;         subty TYPE subty,        " Sub Type&lt;/P&gt;&lt;P&gt;         endda TYPE endda,        " End date&lt;/P&gt;&lt;P&gt;         begda TYPE begda,        " Begin date&lt;/P&gt;&lt;P&gt;         anzhl TYPE ptm_quonum,   " Absence Entitlement days&lt;/P&gt;&lt;P&gt;         ename TYPE emnam,        " employee Name&lt;/P&gt;&lt;P&gt;         ktext TYPE kotxt,        " Absence Type Text&lt;/P&gt;&lt;P&gt;         kverb TYPE kverb,        " Deduction Quota days&lt;/P&gt;&lt;P&gt;         anzhb TYPE ptm_quonum,   " Balance days&lt;/P&gt;&lt;P&gt;       END OF s_2006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Combined Employee Absence and Quota Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_rep,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personal Number&lt;/P&gt;&lt;P&gt;         ktart TYPE abwko,        " Absence Quota Type&lt;/P&gt;&lt;P&gt;         year(4) TYPE n,          " Year&lt;/P&gt;&lt;P&gt;         anzhl TYPE ptm_quonum,   " Absence Entitlement days&lt;/P&gt;&lt;P&gt;         kverb TYPE kverb,        " Deduction Quota days&lt;/P&gt;&lt;P&gt;         anzhb TYPE ptm_quonum,   " Balance days&lt;/P&gt;&lt;P&gt;         ktext TYPE kotxt,        " Quota Type Text&lt;/P&gt;&lt;P&gt;         awart TYPE awart,        " Absence Type&lt;/P&gt;&lt;P&gt;         abrtg TYPE abrtg,        " Absence days&lt;/P&gt;&lt;P&gt;         ename TYPE emnam,        " employee Name&lt;/P&gt;&lt;P&gt;         atext TYPE abwtxt,       " Absence Type Text&lt;/P&gt;&lt;P&gt;         endda TYPE endda,        " End date&lt;/P&gt;&lt;P&gt;         begda TYPE begda,        " Begin date&lt;/P&gt;&lt;P&gt;       END OF s_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Declaration of Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;DATA : gv_atext TYPE abwtxt,              " Absence Type Text&lt;/P&gt;&lt;P&gt;       gv_ktext TYPE kotxt,               " Absence Type Text&lt;/P&gt;&lt;P&gt;       gv_title1   TYPE sylisel,          " Report title&lt;/P&gt;&lt;P&gt;       gv_year(4)  TYPE c,                " Year&lt;/P&gt;&lt;P&gt;       gv_mon(2)   TYPE c,                " Month&lt;/P&gt;&lt;P&gt;       gv_hrs    TYPE abwtg,              " Hours&lt;/P&gt;&lt;P&gt;       gv_date   TYPE sydatum,            " Date&lt;/P&gt;&lt;P&gt;       gv_date1  TYPE sydatum,            " Date&lt;/P&gt;&lt;P&gt;       gv_dial.                           " Color flag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Declaration of Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;CONSTANTS :&lt;/P&gt;&lt;P&gt;  c_x      TYPE c VALUE 'X',               " Sign&lt;/P&gt;&lt;P&gt;  c_1      TYPE persg   VALUE '1',         " Emp Group&lt;/P&gt;&lt;P&gt;  c_pernr(8) TYPE n VALUE '00000000',      " Pernr&lt;/P&gt;&lt;P&gt;  c_moabw  TYPE moabw   VALUE '01',        " Per SA Grouping&lt;/P&gt;&lt;P&gt;  c_mozko  TYPE mozko   VALUE '01',        " Per SA Grouping&lt;/P&gt;&lt;P&gt;  c_mopgk  TYPE mopgk   VALUE '1',         " Emp SGrp Grouping&lt;/P&gt;&lt;P&gt;  c_endda  TYPE sydatum VALUE '99991231',  " End Date&lt;/P&gt;&lt;P&gt;  c_val1(2) TYPE c VALUE '31',             " Date Type&lt;/P&gt;&lt;P&gt;  c_val2(2) TYPE c VALUE '12',             " Date Type&lt;/P&gt;&lt;P&gt;  c_val    LIKE p0041-dar01 VALUE '01',    " Date Type&lt;/P&gt;&lt;P&gt;  c_date1  LIKE sy-datum VALUE '18000101'. " Date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     I N T E R N A L  T A B L E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA: i_2001 TYPE STANDARD TABLE OF s_2001 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_2006 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_rep1 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_rep  TYPE STANDARD TABLE OF s_rep WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 S E L E C T I O N  S C R E E N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_ktart FOR t556a-ktart,  " Absence Quota Type&lt;/P&gt;&lt;P&gt;                s_awart FOR t554s-subty.  " Absence Type&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(33) text-003.   " Quota &amp;amp; Absence&lt;/P&gt;&lt;P&gt;PARAMETERS: p_qa RADIOBUTTON GROUP rb1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(33) text-004.   " Quota&lt;/P&gt;&lt;P&gt;PARAMETERS: p_q RADIOBUTTON GROUP rb1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(33) text-005.   " Absence&lt;/P&gt;&lt;P&gt;PARAMETERS: p_a RADIOBUTTON GROUP rb1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  I N I T I A L I Z A T I O N                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              A T  S E L E C T I O N - S C R E E N                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate the screen fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM validate_screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               S T A R T - O F - S E L E C T I O N                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection of Period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get PERNR from LDB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;GET pernr.&lt;/P&gt;&lt;P&gt;  IF p0000-stat2 &amp;lt;&amp;gt; '0'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from PA0001,PA2001, PA2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_pers_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T O P - O F - P A G E                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header of the List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               E N D - O F - P A G E                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Footer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END-OF-PAGE.&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display both Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE /1(188) sy-uline.&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE /1(114) sy-uline.&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Absence Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE /1(125) sy-uline.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               E N D - O F - S E L E C T I O N                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Combine the Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM append_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display both Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM display_qa_data.&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM display_q_data.&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Absence Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM display_a_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_screen&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Validation of Selection Screen fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_screen .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Personnel Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR pa0003.&lt;/P&gt;&lt;P&gt;  IF NOT pnppernr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT pernr&lt;/P&gt;&lt;P&gt;    FROM pa0003 UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO pa0003-pernr&lt;/P&gt;&lt;P&gt;      WHERE pernr IN pnppernr.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Personnel Number'(006).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Employee Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t529u.&lt;/P&gt;&lt;P&gt;  IF NOT pnpstat2[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE statv&lt;/P&gt;&lt;P&gt;      INTO t529u-statv&lt;/P&gt;&lt;P&gt;      FROM t529u&lt;/P&gt;&lt;P&gt;      WHERE statv IN pnpstat2 AND&lt;/P&gt;&lt;P&gt;            statn = '2' AND&lt;/P&gt;&lt;P&gt;            sprsl = sy-langu.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Invalid Employee Status'(007).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Personnel Area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t500p.&lt;/P&gt;&lt;P&gt;  IF NOT pnpwerks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT persa&lt;/P&gt;&lt;P&gt;    FROM t500p UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t500p-persa&lt;/P&gt;&lt;P&gt;      WHERE persa IN pnpwerks.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Personnel Area'(008).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Personnel Sub Area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t001p.&lt;/P&gt;&lt;P&gt;  IF NOT pnpbtrtl[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT btrtl&lt;/P&gt;&lt;P&gt;    FROM t001p UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t001p-btrtl&lt;/P&gt;&lt;P&gt;      WHERE btrtl IN pnpbtrtl.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Personnel Sub Area'(009).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Employee Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t501.&lt;/P&gt;&lt;P&gt;  IF NOT pnppersg[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT persg&lt;/P&gt;&lt;P&gt;    FROM t501 UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t501-persg&lt;/P&gt;&lt;P&gt;      WHERE persg IN pnppersg.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Group'(010).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Employee Sub Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t503k.&lt;/P&gt;&lt;P&gt;  IF NOT pnppersk[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT persk&lt;/P&gt;&lt;P&gt;    FROM t503k UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t503k-persk&lt;/P&gt;&lt;P&gt;      WHERE persk IN pnppersk.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Sub Group'(011).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Payroll Area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t549a.&lt;/P&gt;&lt;P&gt;  IF NOT pnpabkrs[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT abkrs&lt;/P&gt;&lt;P&gt;    FROM t549a UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t549a-abkrs&lt;/P&gt;&lt;P&gt;      WHERE abkrs IN pnpabkrs.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Payroll Area'(026).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Absence Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t554s.&lt;/P&gt;&lt;P&gt;  IF NOT s_awart[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT subty&lt;/P&gt;&lt;P&gt;    FROM t554s UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t554s-subty&lt;/P&gt;&lt;P&gt;      WHERE subty IN s_awart AND&lt;/P&gt;&lt;P&gt;            moabw EQ c_moabw AND&lt;/P&gt;&lt;P&gt;            endda EQ c_endda.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Absence Type'(012).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Absence Quota Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t556a.&lt;/P&gt;&lt;P&gt;  IF NOT s_ktart[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT ktart&lt;/P&gt;&lt;P&gt;    FROM t556a UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t556a-ktart&lt;/P&gt;&lt;P&gt;      WHERE ktart IN s_ktart AND&lt;/P&gt;&lt;P&gt;            mopgk EQ c_mopgk AND&lt;/P&gt;&lt;P&gt;            mozko EQ c_mozko AND&lt;/P&gt;&lt;P&gt;            endda EQ c_endda.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Quota Type'(013).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                  "validate_screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_period&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Correct Period based on Selection screen selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_period.&lt;/P&gt;&lt;P&gt;  CLEAR: gv_year,gv_mon, gv_date, gv_date1.&lt;/P&gt;&lt;P&gt;  gv_year = sy-datum+0(4).&lt;/P&gt;&lt;P&gt;  gv_mon  = sy-datum+4(2).&lt;/P&gt;&lt;P&gt;  IF pnptimr1 = c_x.      " Current Date&lt;/P&gt;&lt;P&gt;    pnpbegda = sy-datum.&lt;/P&gt;&lt;P&gt;    pnpendda = sy-datum.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr2 = c_x.  " Current Month&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year gv_mon c_val INTO gv_date.&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year gv_mon c_val1 INTO gv_date1.&lt;/P&gt;&lt;P&gt;    pnpbegda = gv_date.&lt;/P&gt;&lt;P&gt;    pnpendda = gv_date1.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr3 = c_x.  " Current Year&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year c_val c_val INTO gv_date.&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year c_val2 c_val1 INTO gv_date1.&lt;/P&gt;&lt;P&gt;    pnpbegda = gv_date.&lt;/P&gt;&lt;P&gt;    pnpendda = gv_date1.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr4 = c_x.  " Upto Today&lt;/P&gt;&lt;P&gt;    pnpbegda = c_date1.&lt;/P&gt;&lt;P&gt;    pnpendda = sy-datum.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr5 = c_x.  " From Today&lt;/P&gt;&lt;P&gt;    pnpbegda = sy-datum.&lt;/P&gt;&lt;P&gt;    pnpendda = c_endda.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).&lt;/P&gt;&lt;P&gt;      pnpbegda = c_date1.&lt;/P&gt;&lt;P&gt;      pnpendda = c_endda.&lt;/P&gt;&lt;P&gt;    ELSEIF pnpbegda IS INITIAL AND NOT pnpendda IS INITIAL.&lt;/P&gt;&lt;P&gt;      pnpbegda = c_date1.&lt;/P&gt;&lt;P&gt;      pnpendda = pnpendda.&lt;/P&gt;&lt;P&gt;    ELSEIF NOT ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).&lt;/P&gt;&lt;P&gt;      pnpbegda = pnpbegda.&lt;/P&gt;&lt;P&gt;      pnpendda = pnpendda.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.              "get_period&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_pers_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Absence and Quota Data from PA0001,PA2001,PA2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_pers_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_year1(4) TYPE n,&lt;/P&gt;&lt;P&gt;        lv_year2(4) TYPE n,&lt;/P&gt;&lt;P&gt;        lv_date1 TYPE sydatum,&lt;/P&gt;&lt;P&gt;        lv_date2 TYPE sydatum,&lt;/P&gt;&lt;P&gt;        lv_anzhb TYPE ptm_quonum.   " Last Year Balance days&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get data from Respective Infotypes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  rp_provide_from_last p0001 space pnpbegda pnpendda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Absence Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT p2001 WHERE pernr = pernr-pernr AND&lt;/P&gt;&lt;P&gt;                      begda GE pnpbegda   AND&lt;/P&gt;&lt;P&gt;                      endda LE pnpendda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p2001-awart IN s_awart.&lt;/P&gt;&lt;P&gt;      i_2001-pernr    = pernr-pernr.&lt;/P&gt;&lt;P&gt;      i_2001-subty    = p2001-subty.&lt;/P&gt;&lt;P&gt;      i_2001-awart    = p2001-awart.&lt;/P&gt;&lt;P&gt;      i_2001-abrtg    = p2001-abrtg.&lt;/P&gt;&lt;P&gt;      i_2001-begda    = p2001-begda.&lt;/P&gt;&lt;P&gt;      i_2001-endda    = p2001-endda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE p0001 WITH KEY pernr = p2001-pernr.&lt;/P&gt;&lt;P&gt;      i_2001-ename    = p0001-ename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Absence Type Text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR gv_atext.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE atext INTO gv_atext FROM t554t&lt;/P&gt;&lt;P&gt;              WHERE sprsl = sy-langu AND&lt;/P&gt;&lt;P&gt;                    moabw = c_moabw  AND&lt;/P&gt;&lt;P&gt;                    awart = p2001-awart.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_2001-atext = gv_atext.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND i_2001.&lt;/P&gt;&lt;P&gt;      CLEAR i_2001.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT p2006 WHERE pernr = pernr-pernr AND&lt;/P&gt;&lt;P&gt;                      begda GE pnpbegda   AND&lt;/P&gt;&lt;P&gt;                      endda LE pnpendda.&lt;/P&gt;&lt;P&gt;    IF p2006-ktart IN s_ktart.&lt;/P&gt;&lt;P&gt;      i_2006-pernr    = pernr-pernr.&lt;/P&gt;&lt;P&gt;      i_2006-subty    = p2006-subty.&lt;/P&gt;&lt;P&gt;      i_2006-begda    = p2006-begda.&lt;/P&gt;&lt;P&gt;      i_2006-endda    = p2006-endda.&lt;/P&gt;&lt;P&gt;      i_2006-year     = p2006-endda+0(4).&lt;/P&gt;&lt;P&gt;      i_2006-ktart    = p2006-ktart.&lt;/P&gt;&lt;P&gt;      i_2006-anzhl    = p2006-anzhl.&lt;/P&gt;&lt;P&gt;      i_2006-kverb    = p2006-kverb.&lt;/P&gt;&lt;P&gt;      i_2006-anzhb    = p2006-anzhl - p2006-kverb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE p0001 WITH KEY pernr = p2001-pernr.&lt;/P&gt;&lt;P&gt;      i_2006-ename    = p0001-ename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Quota Type Text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR gv_ktext.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE ktext INTO gv_ktext FROM t556b&lt;/P&gt;&lt;P&gt;              WHERE sprsl = sy-langu AND&lt;/P&gt;&lt;P&gt;                    mopgk = c_mopgk  AND&lt;/P&gt;&lt;P&gt;                    mozko = c_mozko  AND&lt;/P&gt;&lt;P&gt;                    ktart = p2006-ktart.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_2006-ktext = gv_ktext.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND i_2006.&lt;/P&gt;&lt;P&gt;      CLEAR i_2006.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Vacation Quota (80) get the Balance of the Last Year and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add to the Current Year Quota&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_2006.&lt;/P&gt;&lt;P&gt;    IF i_2006-ktart = '80'.&lt;/P&gt;&lt;P&gt;      lv_year1 = i_2006-endda+0(4).&lt;/P&gt;&lt;P&gt;      lv_year2 = lv_year1 - 1.&lt;/P&gt;&lt;P&gt;      CONCATENATE lv_year2 '01' '01' INTO lv_date1.&lt;/P&gt;&lt;P&gt;      CONCATENATE lv_year2 '12' '31' INTO lv_date2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT p2006 WHERE pernr = i_2006-pernr AND&lt;/P&gt;&lt;P&gt;                          begda GE lv_date1    AND&lt;/P&gt;&lt;P&gt;                          endda LE lv_date2    AND&lt;/P&gt;&lt;P&gt;                          ktart = '80'.&lt;/P&gt;&lt;P&gt;        lv_anzhb = p2006-anzhl - p2006-kverb.&lt;/P&gt;&lt;P&gt;        i_rep1-pernr = i_2006-pernr.&lt;/P&gt;&lt;P&gt;        i_rep1-ktext = i_2006-ktext.&lt;/P&gt;&lt;P&gt;        i_rep1-anzhl = p2006-anzhl.&lt;/P&gt;&lt;P&gt;        i_rep1-kverb = p2006-kverb.&lt;/P&gt;&lt;P&gt;        i_rep1-ename = i_2006-ename.&lt;/P&gt;&lt;P&gt;        i_rep1-begda = p2006-begda.&lt;/P&gt;&lt;P&gt;        i_rep1-endda = p2006-endda.&lt;/P&gt;&lt;P&gt;        i_rep1-anzhb = lv_anzhb.&lt;/P&gt;&lt;P&gt;        i_rep1-ktart = '80'.&lt;/P&gt;&lt;P&gt;        i_rep1-year = lv_year2.&lt;/P&gt;&lt;P&gt;        APPEND i_rep1.&lt;/P&gt;&lt;P&gt;        CLEAR: i_rep1.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: lv_year1, lv_year2,&lt;/P&gt;&lt;P&gt;           lv_date1, lv_date2,lv_anzhb.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_rep1 BY pernr ktart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.          "get_pers_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  append_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Put the Absence and Quota Data into one Report Int Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM append_data.&lt;/P&gt;&lt;P&gt;  CLEAR:   i_rep.&lt;/P&gt;&lt;P&gt;  REFRESH: i_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_2001 BY pernr awart.&lt;/P&gt;&lt;P&gt;  SORT i_2006 BY pernr ktart year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move I_REP1 data into i_2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_rep1.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING i_rep1 TO i_2006.&lt;/P&gt;&lt;P&gt;    APPEND i_2006.&lt;/P&gt;&lt;P&gt;    CLEAR  i_2006.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move the Absence and Quota Data into a final Int Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_2006.&lt;/P&gt;&lt;P&gt;    i_rep-pernr = i_2006-pernr.&lt;/P&gt;&lt;P&gt;    i_rep-ename = i_2006-ename.&lt;/P&gt;&lt;P&gt;    i_rep-ktart = i_2006-ktart.&lt;/P&gt;&lt;P&gt;    i_rep-anzhl = i_2006-anzhl.&lt;/P&gt;&lt;P&gt;    i_rep-kverb = i_2006-kverb.&lt;/P&gt;&lt;P&gt;    i_rep-ktext = i_2006-ktext.&lt;/P&gt;&lt;P&gt;    i_rep-anzhb = i_2006-anzhb.&lt;/P&gt;&lt;P&gt;    i_rep-year  = i_2006-year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR i_2001.&lt;/P&gt;&lt;P&gt;    CASE i_2006-ktart.&lt;/P&gt;&lt;P&gt;      WHEN '81'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1000' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '50'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1002' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '80'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1001' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '56'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1003' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '51'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1004' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '52'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1005' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '54'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1006' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '53'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1007' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '55'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1008' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '57'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1009' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '90'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2000' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '58'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2001' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '59'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2002' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '91'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2003' i_2006-year.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      APPEND i_rep.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR i_rep.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_rep BY pernr ktart year.&lt;/P&gt;&lt;P&gt;  DELETE i_rep WHERE pernr = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " append_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_qa_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display the Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_qa_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_flag,                   " New Flag&lt;/P&gt;&lt;P&gt;        lv_tot2 TYPE ptm_quonum.   " Absence Balance days&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_rep[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'No Data found'(014).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT i_rep.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;toggle color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM toggle_color.&lt;/P&gt;&lt;P&gt;      IF lv_flag &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      AT NEW pernr.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE:/1 sy-vline,2(8) i_rep-pernr,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40)   i_rep-ename.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW ktart.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25)   i_rep-ktext.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW year.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,&lt;/P&gt;&lt;P&gt;              77 sy-vline, 78(4)  i_rep-year,&lt;/P&gt;&lt;P&gt;              82 sy-vline, 83(11) i_rep-anzhl,&lt;/P&gt;&lt;P&gt;              94 sy-vline, 95(25) i_rep-atext,&lt;/P&gt;&lt;P&gt;             120 sy-vline,133 sy-vline,&lt;/P&gt;&lt;P&gt;             144 sy-vline,&lt;/P&gt;&lt;P&gt;             155 sy-vline,156(13)  i_rep-anzhb,&lt;/P&gt;&lt;P&gt;             169 sy-vline.&lt;/P&gt;&lt;P&gt;      lv_tot2 = lv_tot2 + i_rep-anzhb.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE: 1 sy-vline,  10 sy-vline,&lt;/P&gt;&lt;P&gt;            51 sy-vline,  77 sy-vline,&lt;/P&gt;&lt;P&gt;            82 sy-vline,  94 sy-vline,&lt;/P&gt;&lt;P&gt;           120 sy-vline,121(12)  i_rep-abrtg NO-ZERO,&lt;/P&gt;&lt;P&gt;           133 sy-vline,134(10)  i_rep-begda NO-ZERO,&lt;/P&gt;&lt;P&gt;           144 sy-vline,145(10)  i_rep-endda NO-ZERO,&lt;/P&gt;&lt;P&gt;           155 sy-vline,169 sy-vline.&lt;/P&gt;&lt;P&gt;      NEW-LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF pernr.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;        SUM.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;        WRITE:/1 sy-vline,   10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,   77 sy-vline,&lt;/P&gt;&lt;P&gt;              82 sy-vline,   94 sy-vline,&lt;/P&gt;&lt;P&gt;             120 sy-vline,121(12) i_rep-abrtg,&lt;/P&gt;&lt;P&gt;             133 sy-vline,144 sy-vline,&lt;/P&gt;&lt;P&gt;             155 sy-vline, 156(13) lv_tot2,&lt;/P&gt;&lt;P&gt;             169 sy-vline.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;        CLEAR lv_tot2.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.              " display_qa_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_q_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only the Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_q_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_flag.               " New Flag&lt;/P&gt;&lt;P&gt;  SORT i_2006 BY pernr ktart year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_2006[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'No Data found'(014).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT i_2006.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Toggle Color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM toggle_color.&lt;/P&gt;&lt;P&gt;      IF lv_flag &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      AT NEW pernr.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2006 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline,  2(8)  i_2006-pernr,&lt;/P&gt;&lt;P&gt;               10 sy-vline,11(40)  i_2006-ename.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW ktart.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2006 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline,10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,52(25)  i_2006-ktext.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW year.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2006 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline,  10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,&lt;/P&gt;&lt;P&gt;              77 sy-vline,78(4)  i_2006-year,&lt;/P&gt;&lt;P&gt;              82 sy-vline,83(11) i_2006-anzhl,&lt;/P&gt;&lt;P&gt;              94 sy-vline,95(13) i_2006-anzhb,&lt;/P&gt;&lt;P&gt;             108 sy-vline.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF pernr.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;        SUM.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;               51 sy-vline,&lt;/P&gt;&lt;P&gt;               77 sy-vline, 82 sy-vline,&lt;/P&gt;&lt;P&gt;               94 sy-vline, 95(13) i_2006-anzhb,&lt;/P&gt;&lt;P&gt;              108 sy-vline.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.              " display_q_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_a_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display Only the Absence Quota&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_a_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_flag.               " New Flag&lt;/P&gt;&lt;P&gt;  SORT i_2001 BY pernr awart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_2001[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'No Data found'(014).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT i_2001.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Toggle Color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM toggle_color.&lt;/P&gt;&lt;P&gt;      IF lv_flag &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      AT NEW pernr.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2001 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline, 2(10) i_2001-pernr,&lt;/P&gt;&lt;P&gt;               10 sy-vline,11(40) i_2001-ename.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      WRITE:  1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,52(25) i_2001-atext,&lt;/P&gt;&lt;P&gt;              77 sy-vline,78(12) i_2001-abrtg,&lt;/P&gt;&lt;P&gt;              90 sy-vline,91(10) i_2001-begda,&lt;/P&gt;&lt;P&gt;             101 sy-vline,102(10) i_2001-endda,&lt;/P&gt;&lt;P&gt;             112 sy-vline.&lt;/P&gt;&lt;P&gt;      NEW-LINE.&lt;/P&gt;&lt;P&gt;      AT END OF pernr.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;        SUM.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;               51 sy-vline,&lt;/P&gt;&lt;P&gt;               77 sy-vline,78(12) i_2001-abrtg,&lt;/P&gt;&lt;P&gt;               90 sy-vline,101 sy-vline,&lt;/P&gt;&lt;P&gt;              112 sy-vline.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " display_a_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  header&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Write the Report Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM header .&lt;/P&gt;&lt;P&gt;  data : lv_pers type pbtxt,&lt;/P&gt;&lt;P&gt;         lv_orgn type orgtx.&lt;/P&gt;&lt;P&gt;  gv_title1 = sy-title.              " Set List Header&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;P&gt;    NEW-PAGE LINE-SIZE 193.&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;P&gt;    NEW-PAGE LINE-SIZE 125.&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;P&gt;    NEW-PAGE LINE-SIZE 119.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_STANDARD_HEADER'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      title1 = gv_title1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Personal Area and Org.Unit Texts&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear : lv_pers,lv_orgn.&lt;/P&gt;&lt;P&gt;  select single name1 into lv_pers&lt;/P&gt;&lt;P&gt;    from t500p where persa = pnpwerks-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single orgtx into lv_orgn&lt;/P&gt;&lt;P&gt;    from t527x where sprsl = sy-langu and&lt;/P&gt;&lt;P&gt;                     orgeh = pnporgeh-low and&lt;/P&gt;&lt;P&gt;                     endda = c_endda.&lt;/P&gt;&lt;P&gt;  if not lv_pers is initial.&lt;/P&gt;&lt;P&gt;    write : /2 'Personal Area:'(017), 17(25) lv_pers color 7.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if not lv_orgn is initial.&lt;/P&gt;&lt;P&gt;    write : /2 'Organization Unit:'(021), 20(25) lv_orgn color 3.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,2(8)    'Emp.No'(015) CENTERED,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40)  'Employee Name'(016) CENTERED,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25)  'Quota Description'(018) CENTERED,&lt;/P&gt;&lt;P&gt;          77 sy-vline,78(4)   'Year'(027),&lt;/P&gt;&lt;P&gt;          82 sy-vline,83(11)  'Entitlement'(019),&lt;/P&gt;&lt;P&gt;          94 sy-vline,95(25)  'Absence Description'(022) CENTERED,&lt;/P&gt;&lt;P&gt;         120 sy-vline,121(12) 'Absence days'(023),&lt;/P&gt;&lt;P&gt;         133 sy-vline,134(10) 'From Date'(024),&lt;/P&gt;&lt;P&gt;         144 sy-vline,145(10) 'To Date'(025),&lt;/P&gt;&lt;P&gt;         155 sy-vline,156(13) 'Quota Balance'(020),&lt;/P&gt;&lt;P&gt;         169 sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,2(8)   'Emp.No'(015) CENTERED,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40) 'Employee Name'(016) CENTERED,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25) 'Quota Description'(018) CENTERED,&lt;/P&gt;&lt;P&gt;          77 sy-vline,78(4)  'Year'(027),&lt;/P&gt;&lt;P&gt;          82 sy-vline,83(11) 'Entitlement'(019),&lt;/P&gt;&lt;P&gt;          94 sy-vline,95(13) 'Quota Balance'(020),&lt;/P&gt;&lt;P&gt;         108 sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,2(8)    'Emp.No'(015) CENTERED,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40)  'Employee Name'(016) CENTERED,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25)  'Absence Description'(022) CENTERED,&lt;/P&gt;&lt;P&gt;          77 sy-vline,78(12)  'Absence days'(023),&lt;/P&gt;&lt;P&gt;          90 sy-vline,91(10)  'From Date'(024),&lt;/P&gt;&lt;P&gt;         101 sy-vline,102(10) 'To Date'(025),&lt;/P&gt;&lt;P&gt;         112 sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  toggle_color&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; This routine alters the color of the records in the list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM toggle_color.&lt;/P&gt;&lt;P&gt;  IF gv_dial = space.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    gv_dial = c_x.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    CLEAR gv_dial.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " toggle_color&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_2001&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Get the ABsence type for each Quota type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_2001 USING p_pernr TYPE persno&lt;/P&gt;&lt;P&gt;                    p_value TYPE awart&lt;/P&gt;&lt;P&gt;                    p_year.&lt;/P&gt;&lt;P&gt;  LOOP AT i_2001 WHERE pernr = p_pernr AND&lt;/P&gt;&lt;P&gt;                       awart = p_value AND&lt;/P&gt;&lt;P&gt;                       endda+0(4) = p_year.&lt;/P&gt;&lt;P&gt;    i_rep-awart = i_2001-awart.&lt;/P&gt;&lt;P&gt;    i_rep-abrtg = i_2001-abrtg.&lt;/P&gt;&lt;P&gt;    i_rep-atext = i_2001-atext.&lt;/P&gt;&lt;P&gt;    i_rep-begda = i_2001-begda.&lt;/P&gt;&lt;P&gt;    i_rep-endda = i_2001-endda.&lt;/P&gt;&lt;P&gt;    APPEND i_rep.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " get_2001&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points for useful Answers&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 Jun 2007 13:50:47 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-21T13:50:47Z</dc:date>
    <item>
      <title>Example on extracting time data from clusters</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432972#M543967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;   Please send me a sample code for time data extraction from clusters. or steps to extract time data from clusters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Admir.&lt;/P&gt;&lt;P&gt;Points will be rewarded.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2007 13:47:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432972#M543967</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-21T13:47:04Z</dc:date>
    </item>
    <item>
      <title>Re: Example on extracting time data from clusters</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432973#M543968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;see the sample report for time data fetching&lt;/P&gt;&lt;P&gt;But ime data is not fetched from Clusters, only payroll data is fetched from clusters&lt;/P&gt;&lt;P&gt;Time related infotypes are 2000 to 2999.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zh_absence_quota&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       MESSAGE-ID zh_msg&lt;/P&gt;&lt;P&gt;       LINE-SIZE 169&lt;/P&gt;&lt;P&gt;       LINE-COUNT 60(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T A B L E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TABLES:    pernr,    " Logical PNP&lt;/P&gt;&lt;P&gt;           t001p,    " Personnel Subarea&lt;/P&gt;&lt;P&gt;           t529u,    " Employment Status&lt;/P&gt;&lt;P&gt;           t500p,    " Personnel Area&lt;/P&gt;&lt;P&gt;           t501,     " Employee Group&lt;/P&gt;&lt;P&gt;           t503k,    " Employee Subgroup&lt;/P&gt;&lt;P&gt;           t549a,    " Payroll Area&lt;/P&gt;&lt;P&gt;           t554s,    " Absence Type&lt;/P&gt;&lt;P&gt;           t554t,    " Absence Type Texts&lt;/P&gt;&lt;P&gt;           t556a,    " Quota Type&lt;/P&gt;&lt;P&gt;           t527x,    " Orgn. Unit&lt;/P&gt;&lt;P&gt;           t556b,    " Quota Type Text&lt;/P&gt;&lt;P&gt;           pa0003.   " Payroll Status&lt;/P&gt;&lt;P&gt;INFOTYPES:&lt;/P&gt;&lt;P&gt;           0000,   " Actions&lt;/P&gt;&lt;P&gt;           0001,   " Organizational Assignment&lt;/P&gt;&lt;P&gt;           2006,   " Absence Quota&lt;/P&gt;&lt;P&gt;           2001.   " Absences&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T Y P E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Employee Absence Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_2001,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personal Number&lt;/P&gt;&lt;P&gt;         awart TYPE awart,        " Absence Type&lt;/P&gt;&lt;P&gt;         subty TYPE subty,        " Sub Type&lt;/P&gt;&lt;P&gt;         endda TYPE endda,        " End date&lt;/P&gt;&lt;P&gt;         begda TYPE begda,        " Begin date&lt;/P&gt;&lt;P&gt;         abrtg TYPE abrtg,        " Absence days&lt;/P&gt;&lt;P&gt;         ename TYPE emnam,        " employee Name&lt;/P&gt;&lt;P&gt;         atext TYPE abwtxt,       " Absence Type Text&lt;/P&gt;&lt;P&gt;       END OF s_2001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Employee Absence Quota Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_2006,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personal Number&lt;/P&gt;&lt;P&gt;         ktart TYPE abwko,        " Absence Quota Type&lt;/P&gt;&lt;P&gt;         year(4) TYPE n,          " Year&lt;/P&gt;&lt;P&gt;         subty TYPE subty,        " Sub Type&lt;/P&gt;&lt;P&gt;         endda TYPE endda,        " End date&lt;/P&gt;&lt;P&gt;         begda TYPE begda,        " Begin date&lt;/P&gt;&lt;P&gt;         anzhl TYPE ptm_quonum,   " Absence Entitlement days&lt;/P&gt;&lt;P&gt;         ename TYPE emnam,        " employee Name&lt;/P&gt;&lt;P&gt;         ktext TYPE kotxt,        " Absence Type Text&lt;/P&gt;&lt;P&gt;         kverb TYPE kverb,        " Deduction Quota days&lt;/P&gt;&lt;P&gt;         anzhb TYPE ptm_quonum,   " Balance days&lt;/P&gt;&lt;P&gt;       END OF s_2006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Combined Employee Absence and Quota Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF s_rep,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personal Number&lt;/P&gt;&lt;P&gt;         ktart TYPE abwko,        " Absence Quota Type&lt;/P&gt;&lt;P&gt;         year(4) TYPE n,          " Year&lt;/P&gt;&lt;P&gt;         anzhl TYPE ptm_quonum,   " Absence Entitlement days&lt;/P&gt;&lt;P&gt;         kverb TYPE kverb,        " Deduction Quota days&lt;/P&gt;&lt;P&gt;         anzhb TYPE ptm_quonum,   " Balance days&lt;/P&gt;&lt;P&gt;         ktext TYPE kotxt,        " Quota Type Text&lt;/P&gt;&lt;P&gt;         awart TYPE awart,        " Absence Type&lt;/P&gt;&lt;P&gt;         abrtg TYPE abrtg,        " Absence days&lt;/P&gt;&lt;P&gt;         ename TYPE emnam,        " employee Name&lt;/P&gt;&lt;P&gt;         atext TYPE abwtxt,       " Absence Type Text&lt;/P&gt;&lt;P&gt;         endda TYPE endda,        " End date&lt;/P&gt;&lt;P&gt;         begda TYPE begda,        " Begin date&lt;/P&gt;&lt;P&gt;       END OF s_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Declaration of Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;DATA : gv_atext TYPE abwtxt,              " Absence Type Text&lt;/P&gt;&lt;P&gt;       gv_ktext TYPE kotxt,               " Absence Type Text&lt;/P&gt;&lt;P&gt;       gv_title1   TYPE sylisel,          " Report title&lt;/P&gt;&lt;P&gt;       gv_year(4)  TYPE c,                " Year&lt;/P&gt;&lt;P&gt;       gv_mon(2)   TYPE c,                " Month&lt;/P&gt;&lt;P&gt;       gv_hrs    TYPE abwtg,              " Hours&lt;/P&gt;&lt;P&gt;       gv_date   TYPE sydatum,            " Date&lt;/P&gt;&lt;P&gt;       gv_date1  TYPE sydatum,            " Date&lt;/P&gt;&lt;P&gt;       gv_dial.                           " Color flag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Declaration of Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;CONSTANTS :&lt;/P&gt;&lt;P&gt;  c_x      TYPE c VALUE 'X',               " Sign&lt;/P&gt;&lt;P&gt;  c_1      TYPE persg   VALUE '1',         " Emp Group&lt;/P&gt;&lt;P&gt;  c_pernr(8) TYPE n VALUE '00000000',      " Pernr&lt;/P&gt;&lt;P&gt;  c_moabw  TYPE moabw   VALUE '01',        " Per SA Grouping&lt;/P&gt;&lt;P&gt;  c_mozko  TYPE mozko   VALUE '01',        " Per SA Grouping&lt;/P&gt;&lt;P&gt;  c_mopgk  TYPE mopgk   VALUE '1',         " Emp SGrp Grouping&lt;/P&gt;&lt;P&gt;  c_endda  TYPE sydatum VALUE '99991231',  " End Date&lt;/P&gt;&lt;P&gt;  c_val1(2) TYPE c VALUE '31',             " Date Type&lt;/P&gt;&lt;P&gt;  c_val2(2) TYPE c VALUE '12',             " Date Type&lt;/P&gt;&lt;P&gt;  c_val    LIKE p0041-dar01 VALUE '01',    " Date Type&lt;/P&gt;&lt;P&gt;  c_date1  LIKE sy-datum VALUE '18000101'. " Date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     I N T E R N A L  T A B L E S  D E C L A R A T I O N S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA: i_2001 TYPE STANDARD TABLE OF s_2001 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_2006 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_rep1 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_rep  TYPE STANDARD TABLE OF s_rep WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 S E L E C T I O N  S C R E E N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_ktart FOR t556a-ktart,  " Absence Quota Type&lt;/P&gt;&lt;P&gt;                s_awart FOR t554s-subty.  " Absence Type&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(33) text-003.   " Quota &amp;amp; Absence&lt;/P&gt;&lt;P&gt;PARAMETERS: p_qa RADIOBUTTON GROUP rb1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(33) text-004.   " Quota&lt;/P&gt;&lt;P&gt;PARAMETERS: p_q RADIOBUTTON GROUP rb1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(33) text-005.   " Absence&lt;/P&gt;&lt;P&gt;PARAMETERS: p_a RADIOBUTTON GROUP rb1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  I N I T I A L I Z A T I O N                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              A T  S E L E C T I O N - S C R E E N                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate the screen fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM validate_screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               S T A R T - O F - S E L E C T I O N                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection of Period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get PERNR from LDB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;GET pernr.&lt;/P&gt;&lt;P&gt;  IF p0000-stat2 &amp;lt;&amp;gt; '0'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from PA0001,PA2001, PA2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_pers_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               T O P - O F - P A G E                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header of the List&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               E N D - O F - P A G E                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Footer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END-OF-PAGE.&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display both Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE /1(188) sy-uline.&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE /1(114) sy-uline.&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Absence Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE /1(125) sy-uline.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               E N D - O F - S E L E C T I O N                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Combine the Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM append_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display both Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM display_qa_data.&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM display_q_data.&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only Absence Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM display_a_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_screen&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Validation of Selection Screen fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_screen .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Personnel Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR pa0003.&lt;/P&gt;&lt;P&gt;  IF NOT pnppernr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT pernr&lt;/P&gt;&lt;P&gt;    FROM pa0003 UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO pa0003-pernr&lt;/P&gt;&lt;P&gt;      WHERE pernr IN pnppernr.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Personnel Number'(006).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Employee Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t529u.&lt;/P&gt;&lt;P&gt;  IF NOT pnpstat2[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE statv&lt;/P&gt;&lt;P&gt;      INTO t529u-statv&lt;/P&gt;&lt;P&gt;      FROM t529u&lt;/P&gt;&lt;P&gt;      WHERE statv IN pnpstat2 AND&lt;/P&gt;&lt;P&gt;            statn = '2' AND&lt;/P&gt;&lt;P&gt;            sprsl = sy-langu.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Invalid Employee Status'(007).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Personnel Area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t500p.&lt;/P&gt;&lt;P&gt;  IF NOT pnpwerks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT persa&lt;/P&gt;&lt;P&gt;    FROM t500p UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t500p-persa&lt;/P&gt;&lt;P&gt;      WHERE persa IN pnpwerks.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Personnel Area'(008).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Personnel Sub Area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t001p.&lt;/P&gt;&lt;P&gt;  IF NOT pnpbtrtl[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT btrtl&lt;/P&gt;&lt;P&gt;    FROM t001p UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t001p-btrtl&lt;/P&gt;&lt;P&gt;      WHERE btrtl IN pnpbtrtl.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Personnel Sub Area'(009).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Employee Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t501.&lt;/P&gt;&lt;P&gt;  IF NOT pnppersg[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT persg&lt;/P&gt;&lt;P&gt;    FROM t501 UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t501-persg&lt;/P&gt;&lt;P&gt;      WHERE persg IN pnppersg.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Group'(010).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Employee Sub Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t503k.&lt;/P&gt;&lt;P&gt;  IF NOT pnppersk[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT persk&lt;/P&gt;&lt;P&gt;    FROM t503k UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t503k-persk&lt;/P&gt;&lt;P&gt;      WHERE persk IN pnppersk.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Sub Group'(011).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Payroll Area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t549a.&lt;/P&gt;&lt;P&gt;  IF NOT pnpabkrs[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT abkrs&lt;/P&gt;&lt;P&gt;    FROM t549a UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t549a-abkrs&lt;/P&gt;&lt;P&gt;      WHERE abkrs IN pnpabkrs.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Payroll Area'(026).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Absence Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t554s.&lt;/P&gt;&lt;P&gt;  IF NOT s_awart[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT subty&lt;/P&gt;&lt;P&gt;    FROM t554s UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t554s-subty&lt;/P&gt;&lt;P&gt;      WHERE subty IN s_awart AND&lt;/P&gt;&lt;P&gt;            moabw EQ c_moabw AND&lt;/P&gt;&lt;P&gt;            endda EQ c_endda.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Absence Type'(012).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Absence Quota Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t556a.&lt;/P&gt;&lt;P&gt;  IF NOT s_ktart[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT ktart&lt;/P&gt;&lt;P&gt;    FROM t556a UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;      INTO t556a-ktart&lt;/P&gt;&lt;P&gt;      WHERE ktart IN s_ktart AND&lt;/P&gt;&lt;P&gt;            mopgk EQ c_mopgk AND&lt;/P&gt;&lt;P&gt;            mozko EQ c_mozko AND&lt;/P&gt;&lt;P&gt;            endda EQ c_endda.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e999 WITH 'Incorrect Employee Quota Type'(013).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                  "validate_screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_period&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Correct Period based on Selection screen selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_period.&lt;/P&gt;&lt;P&gt;  CLEAR: gv_year,gv_mon, gv_date, gv_date1.&lt;/P&gt;&lt;P&gt;  gv_year = sy-datum+0(4).&lt;/P&gt;&lt;P&gt;  gv_mon  = sy-datum+4(2).&lt;/P&gt;&lt;P&gt;  IF pnptimr1 = c_x.      " Current Date&lt;/P&gt;&lt;P&gt;    pnpbegda = sy-datum.&lt;/P&gt;&lt;P&gt;    pnpendda = sy-datum.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr2 = c_x.  " Current Month&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year gv_mon c_val INTO gv_date.&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year gv_mon c_val1 INTO gv_date1.&lt;/P&gt;&lt;P&gt;    pnpbegda = gv_date.&lt;/P&gt;&lt;P&gt;    pnpendda = gv_date1.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr3 = c_x.  " Current Year&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year c_val c_val INTO gv_date.&lt;/P&gt;&lt;P&gt;    CONCATENATE gv_year c_val2 c_val1 INTO gv_date1.&lt;/P&gt;&lt;P&gt;    pnpbegda = gv_date.&lt;/P&gt;&lt;P&gt;    pnpendda = gv_date1.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr4 = c_x.  " Upto Today&lt;/P&gt;&lt;P&gt;    pnpbegda = c_date1.&lt;/P&gt;&lt;P&gt;    pnpendda = sy-datum.&lt;/P&gt;&lt;P&gt;  ELSEIF pnptimr5 = c_x.  " From Today&lt;/P&gt;&lt;P&gt;    pnpbegda = sy-datum.&lt;/P&gt;&lt;P&gt;    pnpendda = c_endda.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).&lt;/P&gt;&lt;P&gt;      pnpbegda = c_date1.&lt;/P&gt;&lt;P&gt;      pnpendda = c_endda.&lt;/P&gt;&lt;P&gt;    ELSEIF pnpbegda IS INITIAL AND NOT pnpendda IS INITIAL.&lt;/P&gt;&lt;P&gt;      pnpbegda = c_date1.&lt;/P&gt;&lt;P&gt;      pnpendda = pnpendda.&lt;/P&gt;&lt;P&gt;    ELSEIF NOT ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).&lt;/P&gt;&lt;P&gt;      pnpbegda = pnpbegda.&lt;/P&gt;&lt;P&gt;      pnpendda = pnpendda.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.              "get_period&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_pers_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Absence and Quota Data from PA0001,PA2001,PA2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_pers_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lv_year1(4) TYPE n,&lt;/P&gt;&lt;P&gt;        lv_year2(4) TYPE n,&lt;/P&gt;&lt;P&gt;        lv_date1 TYPE sydatum,&lt;/P&gt;&lt;P&gt;        lv_date2 TYPE sydatum,&lt;/P&gt;&lt;P&gt;        lv_anzhb TYPE ptm_quonum.   " Last Year Balance days&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get data from Respective Infotypes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  rp_provide_from_last p0001 space pnpbegda pnpendda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Absence Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT p2001 WHERE pernr = pernr-pernr AND&lt;/P&gt;&lt;P&gt;                      begda GE pnpbegda   AND&lt;/P&gt;&lt;P&gt;                      endda LE pnpendda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p2001-awart IN s_awart.&lt;/P&gt;&lt;P&gt;      i_2001-pernr    = pernr-pernr.&lt;/P&gt;&lt;P&gt;      i_2001-subty    = p2001-subty.&lt;/P&gt;&lt;P&gt;      i_2001-awart    = p2001-awart.&lt;/P&gt;&lt;P&gt;      i_2001-abrtg    = p2001-abrtg.&lt;/P&gt;&lt;P&gt;      i_2001-begda    = p2001-begda.&lt;/P&gt;&lt;P&gt;      i_2001-endda    = p2001-endda.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE p0001 WITH KEY pernr = p2001-pernr.&lt;/P&gt;&lt;P&gt;      i_2001-ename    = p0001-ename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Absence Type Text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR gv_atext.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE atext INTO gv_atext FROM t554t&lt;/P&gt;&lt;P&gt;              WHERE sprsl = sy-langu AND&lt;/P&gt;&lt;P&gt;                    moabw = c_moabw  AND&lt;/P&gt;&lt;P&gt;                    awart = p2001-awart.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_2001-atext = gv_atext.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND i_2001.&lt;/P&gt;&lt;P&gt;      CLEAR i_2001.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT p2006 WHERE pernr = pernr-pernr AND&lt;/P&gt;&lt;P&gt;                      begda GE pnpbegda   AND&lt;/P&gt;&lt;P&gt;                      endda LE pnpendda.&lt;/P&gt;&lt;P&gt;    IF p2006-ktart IN s_ktart.&lt;/P&gt;&lt;P&gt;      i_2006-pernr    = pernr-pernr.&lt;/P&gt;&lt;P&gt;      i_2006-subty    = p2006-subty.&lt;/P&gt;&lt;P&gt;      i_2006-begda    = p2006-begda.&lt;/P&gt;&lt;P&gt;      i_2006-endda    = p2006-endda.&lt;/P&gt;&lt;P&gt;      i_2006-year     = p2006-endda+0(4).&lt;/P&gt;&lt;P&gt;      i_2006-ktart    = p2006-ktart.&lt;/P&gt;&lt;P&gt;      i_2006-anzhl    = p2006-anzhl.&lt;/P&gt;&lt;P&gt;      i_2006-kverb    = p2006-kverb.&lt;/P&gt;&lt;P&gt;      i_2006-anzhb    = p2006-anzhl - p2006-kverb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE p0001 WITH KEY pernr = p2001-pernr.&lt;/P&gt;&lt;P&gt;      i_2006-ename    = p0001-ename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Quota Type Text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR gv_ktext.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE ktext INTO gv_ktext FROM t556b&lt;/P&gt;&lt;P&gt;              WHERE sprsl = sy-langu AND&lt;/P&gt;&lt;P&gt;                    mopgk = c_mopgk  AND&lt;/P&gt;&lt;P&gt;                    mozko = c_mozko  AND&lt;/P&gt;&lt;P&gt;                    ktart = p2006-ktart.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_2006-ktext = gv_ktext.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND i_2006.&lt;/P&gt;&lt;P&gt;      CLEAR i_2006.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Vacation Quota (80) get the Balance of the Last Year and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add to the Current Year Quota&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_2006.&lt;/P&gt;&lt;P&gt;    IF i_2006-ktart = '80'.&lt;/P&gt;&lt;P&gt;      lv_year1 = i_2006-endda+0(4).&lt;/P&gt;&lt;P&gt;      lv_year2 = lv_year1 - 1.&lt;/P&gt;&lt;P&gt;      CONCATENATE lv_year2 '01' '01' INTO lv_date1.&lt;/P&gt;&lt;P&gt;      CONCATENATE lv_year2 '12' '31' INTO lv_date2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT p2006 WHERE pernr = i_2006-pernr AND&lt;/P&gt;&lt;P&gt;                          begda GE lv_date1    AND&lt;/P&gt;&lt;P&gt;                          endda LE lv_date2    AND&lt;/P&gt;&lt;P&gt;                          ktart = '80'.&lt;/P&gt;&lt;P&gt;        lv_anzhb = p2006-anzhl - p2006-kverb.&lt;/P&gt;&lt;P&gt;        i_rep1-pernr = i_2006-pernr.&lt;/P&gt;&lt;P&gt;        i_rep1-ktext = i_2006-ktext.&lt;/P&gt;&lt;P&gt;        i_rep1-anzhl = p2006-anzhl.&lt;/P&gt;&lt;P&gt;        i_rep1-kverb = p2006-kverb.&lt;/P&gt;&lt;P&gt;        i_rep1-ename = i_2006-ename.&lt;/P&gt;&lt;P&gt;        i_rep1-begda = p2006-begda.&lt;/P&gt;&lt;P&gt;        i_rep1-endda = p2006-endda.&lt;/P&gt;&lt;P&gt;        i_rep1-anzhb = lv_anzhb.&lt;/P&gt;&lt;P&gt;        i_rep1-ktart = '80'.&lt;/P&gt;&lt;P&gt;        i_rep1-year = lv_year2.&lt;/P&gt;&lt;P&gt;        APPEND i_rep1.&lt;/P&gt;&lt;P&gt;        CLEAR: i_rep1.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: lv_year1, lv_year2,&lt;/P&gt;&lt;P&gt;           lv_date1, lv_date2,lv_anzhb.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_rep1 BY pernr ktart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.          "get_pers_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  append_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Put the Absence and Quota Data into one Report Int Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM append_data.&lt;/P&gt;&lt;P&gt;  CLEAR:   i_rep.&lt;/P&gt;&lt;P&gt;  REFRESH: i_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_2001 BY pernr awart.&lt;/P&gt;&lt;P&gt;  SORT i_2006 BY pernr ktart year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move I_REP1 data into i_2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_rep1.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING i_rep1 TO i_2006.&lt;/P&gt;&lt;P&gt;    APPEND i_2006.&lt;/P&gt;&lt;P&gt;    CLEAR  i_2006.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move the Absence and Quota Data into a final Int Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_2006.&lt;/P&gt;&lt;P&gt;    i_rep-pernr = i_2006-pernr.&lt;/P&gt;&lt;P&gt;    i_rep-ename = i_2006-ename.&lt;/P&gt;&lt;P&gt;    i_rep-ktart = i_2006-ktart.&lt;/P&gt;&lt;P&gt;    i_rep-anzhl = i_2006-anzhl.&lt;/P&gt;&lt;P&gt;    i_rep-kverb = i_2006-kverb.&lt;/P&gt;&lt;P&gt;    i_rep-ktext = i_2006-ktext.&lt;/P&gt;&lt;P&gt;    i_rep-anzhb = i_2006-anzhb.&lt;/P&gt;&lt;P&gt;    i_rep-year  = i_2006-year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR i_2001.&lt;/P&gt;&lt;P&gt;    CASE i_2006-ktart.&lt;/P&gt;&lt;P&gt;      WHEN '81'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1000' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '50'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1002' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '80'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1001' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '56'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1003' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '51'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1004' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '52'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1005' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '54'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1006' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '53'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1007' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '55'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1008' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '57'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '1009' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '90'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2000' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '58'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2001' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '59'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2002' i_2006-year.&lt;/P&gt;&lt;P&gt;      WHEN '91'.&lt;/P&gt;&lt;P&gt;        PERFORM get_2001 USING i_2006-pernr '2003' i_2006-year.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      APPEND i_rep.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR i_rep.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_rep BY pernr ktart year.&lt;/P&gt;&lt;P&gt;  DELETE i_rep WHERE pernr = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " append_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_qa_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display the Absence and Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_qa_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_flag,                   " New Flag&lt;/P&gt;&lt;P&gt;        lv_tot2 TYPE ptm_quonum.   " Absence Balance days&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_rep[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'No Data found'(014).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT i_rep.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;toggle color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM toggle_color.&lt;/P&gt;&lt;P&gt;      IF lv_flag &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      AT NEW pernr.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE:/1 sy-vline,2(8) i_rep-pernr,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40)   i_rep-ename.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW ktart.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25)   i_rep-ktext.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW year.&lt;/P&gt;&lt;P&gt;        READ TABLE i_rep INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,&lt;/P&gt;&lt;P&gt;              77 sy-vline, 78(4)  i_rep-year,&lt;/P&gt;&lt;P&gt;              82 sy-vline, 83(11) i_rep-anzhl,&lt;/P&gt;&lt;P&gt;              94 sy-vline, 95(25) i_rep-atext,&lt;/P&gt;&lt;P&gt;             120 sy-vline,133 sy-vline,&lt;/P&gt;&lt;P&gt;             144 sy-vline,&lt;/P&gt;&lt;P&gt;             155 sy-vline,156(13)  i_rep-anzhb,&lt;/P&gt;&lt;P&gt;             169 sy-vline.&lt;/P&gt;&lt;P&gt;      lv_tot2 = lv_tot2 + i_rep-anzhb.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE: 1 sy-vline,  10 sy-vline,&lt;/P&gt;&lt;P&gt;            51 sy-vline,  77 sy-vline,&lt;/P&gt;&lt;P&gt;            82 sy-vline,  94 sy-vline,&lt;/P&gt;&lt;P&gt;           120 sy-vline,121(12)  i_rep-abrtg NO-ZERO,&lt;/P&gt;&lt;P&gt;           133 sy-vline,134(10)  i_rep-begda NO-ZERO,&lt;/P&gt;&lt;P&gt;           144 sy-vline,145(10)  i_rep-endda NO-ZERO,&lt;/P&gt;&lt;P&gt;           155 sy-vline,169 sy-vline.&lt;/P&gt;&lt;P&gt;      NEW-LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF pernr.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;        SUM.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;        WRITE:/1 sy-vline,   10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,   77 sy-vline,&lt;/P&gt;&lt;P&gt;              82 sy-vline,   94 sy-vline,&lt;/P&gt;&lt;P&gt;             120 sy-vline,121(12) i_rep-abrtg,&lt;/P&gt;&lt;P&gt;             133 sy-vline,144 sy-vline,&lt;/P&gt;&lt;P&gt;             155 sy-vline, 156(13) lv_tot2,&lt;/P&gt;&lt;P&gt;             169 sy-vline.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;        CLEAR lv_tot2.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.              " display_qa_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_q_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display only the Quota Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_q_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_flag.               " New Flag&lt;/P&gt;&lt;P&gt;  SORT i_2006 BY pernr ktart year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_2006[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'No Data found'(014).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT i_2006.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Toggle Color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM toggle_color.&lt;/P&gt;&lt;P&gt;      IF lv_flag &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      AT NEW pernr.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2006 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline,  2(8)  i_2006-pernr,&lt;/P&gt;&lt;P&gt;               10 sy-vline,11(40)  i_2006-ename.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW ktart.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2006 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline,10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,52(25)  i_2006-ktext.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      AT NEW year.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2006 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: 1 sy-vline,  10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,&lt;/P&gt;&lt;P&gt;              77 sy-vline,78(4)  i_2006-year,&lt;/P&gt;&lt;P&gt;              82 sy-vline,83(11) i_2006-anzhl,&lt;/P&gt;&lt;P&gt;              94 sy-vline,95(13) i_2006-anzhb,&lt;/P&gt;&lt;P&gt;             108 sy-vline.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF pernr.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;        SUM.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;               51 sy-vline,&lt;/P&gt;&lt;P&gt;               77 sy-vline, 82 sy-vline,&lt;/P&gt;&lt;P&gt;               94 sy-vline, 95(13) i_2006-anzhb,&lt;/P&gt;&lt;P&gt;              108 sy-vline.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.              " display_q_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_a_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display Only the Absence Quota&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_a_data.&lt;/P&gt;&lt;P&gt;  DATA: lv_flag.               " New Flag&lt;/P&gt;&lt;P&gt;  SORT i_2001 BY pernr awart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_2001[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH 'No Data found'(014).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT i_2001.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Toggle Color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM toggle_color.&lt;/P&gt;&lt;P&gt;      IF lv_flag &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;        NEW-LINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      AT NEW pernr.&lt;/P&gt;&lt;P&gt;        READ TABLE i_2001 INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline, 2(10) i_2001-pernr,&lt;/P&gt;&lt;P&gt;               10 sy-vline,11(40) i_2001-ename.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      WRITE:  1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;              51 sy-vline,52(25) i_2001-atext,&lt;/P&gt;&lt;P&gt;              77 sy-vline,78(12) i_2001-abrtg,&lt;/P&gt;&lt;P&gt;              90 sy-vline,91(10) i_2001-begda,&lt;/P&gt;&lt;P&gt;             101 sy-vline,102(10) i_2001-endda,&lt;/P&gt;&lt;P&gt;             112 sy-vline.&lt;/P&gt;&lt;P&gt;      NEW-LINE.&lt;/P&gt;&lt;P&gt;      AT END OF pernr.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;        SUM.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;        WRITE: /1 sy-vline, 10 sy-vline,&lt;/P&gt;&lt;P&gt;               51 sy-vline,&lt;/P&gt;&lt;P&gt;               77 sy-vline,78(12) i_2001-abrtg,&lt;/P&gt;&lt;P&gt;               90 sy-vline,101 sy-vline,&lt;/P&gt;&lt;P&gt;              112 sy-vline.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " display_a_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  header&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Write the Report Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM header .&lt;/P&gt;&lt;P&gt;  data : lv_pers type pbtxt,&lt;/P&gt;&lt;P&gt;         lv_orgn type orgtx.&lt;/P&gt;&lt;P&gt;  gv_title1 = sy-title.              " Set List Header&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;P&gt;    NEW-PAGE LINE-SIZE 193.&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;P&gt;    NEW-PAGE LINE-SIZE 125.&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;P&gt;    NEW-PAGE LINE-SIZE 119.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_STANDARD_HEADER'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      title1 = gv_title1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Personal Area and Org.Unit Texts&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear : lv_pers,lv_orgn.&lt;/P&gt;&lt;P&gt;  select single name1 into lv_pers&lt;/P&gt;&lt;P&gt;    from t500p where persa = pnpwerks-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single orgtx into lv_orgn&lt;/P&gt;&lt;P&gt;    from t527x where sprsl = sy-langu and&lt;/P&gt;&lt;P&gt;                     orgeh = pnporgeh-low and&lt;/P&gt;&lt;P&gt;                     endda = c_endda.&lt;/P&gt;&lt;P&gt;  if not lv_pers is initial.&lt;/P&gt;&lt;P&gt;    write : /2 'Personal Area:'(017), 17(25) lv_pers color 7.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if not lv_orgn is initial.&lt;/P&gt;&lt;P&gt;    write : /2 'Organization Unit:'(021), 20(25) lv_orgn color 3.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_qa = c_x.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,2(8)    'Emp.No'(015) CENTERED,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40)  'Employee Name'(016) CENTERED,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25)  'Quota Description'(018) CENTERED,&lt;/P&gt;&lt;P&gt;          77 sy-vline,78(4)   'Year'(027),&lt;/P&gt;&lt;P&gt;          82 sy-vline,83(11)  'Entitlement'(019),&lt;/P&gt;&lt;P&gt;          94 sy-vline,95(25)  'Absence Description'(022) CENTERED,&lt;/P&gt;&lt;P&gt;         120 sy-vline,121(12) 'Absence days'(023),&lt;/P&gt;&lt;P&gt;         133 sy-vline,134(10) 'From Date'(024),&lt;/P&gt;&lt;P&gt;         144 sy-vline,145(10) 'To Date'(025),&lt;/P&gt;&lt;P&gt;         155 sy-vline,156(13) 'Quota Balance'(020),&lt;/P&gt;&lt;P&gt;         169 sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(169) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF p_q = c_x.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,2(8)   'Emp.No'(015) CENTERED,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40) 'Employee Name'(016) CENTERED,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25) 'Quota Description'(018) CENTERED,&lt;/P&gt;&lt;P&gt;          77 sy-vline,78(4)  'Year'(027),&lt;/P&gt;&lt;P&gt;          82 sy-vline,83(11) 'Entitlement'(019),&lt;/P&gt;&lt;P&gt;          94 sy-vline,95(13) 'Quota Balance'(020),&lt;/P&gt;&lt;P&gt;         108 sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(108) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF p_a = c_x.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,2(8)    'Emp.No'(015) CENTERED,&lt;/P&gt;&lt;P&gt;          10 sy-vline,11(40)  'Employee Name'(016) CENTERED,&lt;/P&gt;&lt;P&gt;          51 sy-vline,52(25)  'Absence Description'(022) CENTERED,&lt;/P&gt;&lt;P&gt;          77 sy-vline,78(12)  'Absence days'(023),&lt;/P&gt;&lt;P&gt;          90 sy-vline,91(10)  'From Date'(024),&lt;/P&gt;&lt;P&gt;         101 sy-vline,102(10) 'To Date'(025),&lt;/P&gt;&lt;P&gt;         112 sy-vline.&lt;/P&gt;&lt;P&gt;    WRITE  : /1(112) sy-uline.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  toggle_color&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; This routine alters the color of the records in the list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM toggle_color.&lt;/P&gt;&lt;P&gt;  IF gv_dial = space.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    gv_dial = c_x.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    CLEAR gv_dial.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " toggle_color&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_2001&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Get the ABsence type for each Quota type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_2001 USING p_pernr TYPE persno&lt;/P&gt;&lt;P&gt;                    p_value TYPE awart&lt;/P&gt;&lt;P&gt;                    p_year.&lt;/P&gt;&lt;P&gt;  LOOP AT i_2001 WHERE pernr = p_pernr AND&lt;/P&gt;&lt;P&gt;                       awart = p_value AND&lt;/P&gt;&lt;P&gt;                       endda+0(4) = p_year.&lt;/P&gt;&lt;P&gt;    i_rep-awart = i_2001-awart.&lt;/P&gt;&lt;P&gt;    i_rep-abrtg = i_2001-abrtg.&lt;/P&gt;&lt;P&gt;    i_rep-atext = i_2001-atext.&lt;/P&gt;&lt;P&gt;    i_rep-begda = i_2001-begda.&lt;/P&gt;&lt;P&gt;    i_rep-endda = i_2001-endda.&lt;/P&gt;&lt;P&gt;    APPEND i_rep.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " get_2001&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points for useful Answers&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2007 13:50:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432973#M543968</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-21T13:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: Example on extracting time data from clusters</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432974#M543969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check these 2 FM's&lt;/P&gt;&lt;P&gt;HR_TIME_CLUSTER_B1_GET&lt;/P&gt;&lt;P&gt;HR_TIME_RESULTS_GET&lt;/P&gt;&lt;P&gt; they may help u.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2007 13:51:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/example-on-extracting-time-data-from-clusters/m-p/2432974#M543969</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-21T13:51:07Z</dc:date>
    </item>
  </channel>
</rss>

