<?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 ABAP CODE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-code/m-p/2811310#M657173</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Friends,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am struggling to get this developed. Please help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an internal tables IT_COBRB, IT_COBRB2, IT_COSS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the code for it and have appended the required data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a problem with the       &amp;lt;b&amp;gt;PERFORM OUTPUT_KOSTL.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;I have written the code for this perform statement but its wrong.&lt;/P&gt;&lt;P&gt;I have written comments in this perform as what I need to do.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For any questions please let me know&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ster.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZSTER                                                        *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;                                                                     *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ZSTER   LINE-SIZE 400.

DATA : BEGIN OF IT_COBRB OCCURS 0,
         KOSTL        LIKE COBRB-KOSTL,
         OBJNR        LIKE COBRB-OBJNR,
         REC_OBJNR1   LIKE COBRB-REC_OBJNR1,
         ERSJA        LIKE COBRB-ERSJA,
         ERSPE        LIKE COBRB-ERSPE,
         LETJA        LIKE COBRB-LETJA,
         LETPE        LIKE COBRB-LETPE,
         V_OBJNR      LIKE COBRB-OBJNR,
         V_REC_OBJNR1 LIKE COBRB-REC_OBJNR1,
         FLAG(1),
       END OF IT_COBRB,

       IT_COBRB2 LIKE IT_COBRB OCCURS 0 WITH HEADER LINE,

       BEGIN OF IT_COSS OCCURS 0,
         OBJNR  LIKE COSS-OBJNR,
         PAROB  LIKE COSS-PAROB,
         GJAHR  LIKE COSS-GJAHR,
         WTG001 LIKE COSS-WTG001,
         WTG002 LIKE COSS-WTG002,
         WTG003 LIKE COSS-WTG003,
         WTG004 LIKE COSS-WTG004,
         WTG005 LIKE COSS-WTG005,
         WTG006 LIKE COSS-WTG006,
         WTG007 LIKE COSS-WTG007,
         WTG008 LIKE COSS-WTG008,
         WTG009 LIKE COSS-WTG009,
         WTG010 LIKE COSS-WTG010,
         WTG011 LIKE COSS-WTG011,
         WTG012 LIKE COSS-WTG012,
       END OF IT_COSS.

DATA : BEGIN OF T_OUTPUT OCCURS 0,
         KOSTL      LIKE COBRB-KOSTL,
         WKGOO1_2   LIKE COSS-WKG001, " 2 years before
         WKGOO1_1   LIKE COSS-WKG001, " 1 year before
         WKGOO1_MTH LIKE COSS-WKG001, " Current month
         WKGOO1_YTD LIKE COSS-WKG001, " year till date
       END OF T_OUTPUT.

DATA :
       V_NO_OF_TIMES LIKE COBRB-LETPE,
       V_START_MONTH TYPE I,
       V_AMOUNT LIKE COSS-WKG001,
       V_AMOUNT_SUM LIKE COSS-WKG001,
       V_EST_AMOUNT LIKE COSS-WKG001,
       V_EST_AMOUNT_TOTAL LIKE COSS-WKG001,
       V_YEAR_2 LIKE COBRB-LETJA,
       V_YEAR_1 LIKE COBRB-LETJA,
       V_YEAR_0 LIKE COBRB-LETJA.


*Selection-Screen.
PARAMETERS : P_ERDAT LIKE SY-DATUM.

START-OF-SELECTION.
  PERFORM GET_DATA.

END-OF-SELECTION.
  PERFORM PROCESS_DATA.
  PERFORM WRITE_OUTPUT.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM GET_DATA .

  IT_COBRB-KOSTL = '0000107202'.
  IT_COBRB-OBJNR = 'PR00550175'.
  IT_COBRB-REC_OBJNR1 = 'KSKOHL0000107202'.
  IT_COBRB-ERSJA = '2006'.
  IT_COBRB-ERSPE = '005'.
  IT_COBRB-LETJA = '2006'.
  IT_COBRB-LETPE = '007'.
  IT_COBRB-V_OBJNR = ''.
  IT_COBRB-V_REC_OBJNR1 = ''.
  IT_COBRB-FLAG = ''.
  APPEND IT_COBRB.

  IT_COBRB2-KOSTL = '0000101446'.
  IT_COBRB2-OBJNR = 'PR00585682'.
  IT_COBRB2-REC_OBJNR1 = 'KSKOHL0000101446'.
  IT_COBRB2-ERSJA = '2006'.
  IT_COBRB2-ERSPE = '007'.
  IT_COBRB2-LETJA = '2006'.
  IT_COBRB2-LETPE = '007'.
  IT_COBRB2-V_OBJNR = 'PR00550175'.
  IT_COBRB2-V_REC_OBJNR1 = 'PR00585682'.
  IT_COBRB2-FLAG = 'X'.
  APPEND IT_COBRB2.

  IT_COBRB2-KOSTL = '0000107202'.
  IT_COBRB2-OBJNR = 'PR00585682'.
  IT_COBRB2-REC_OBJNR1 = 'KSKOHL0000107202'.
  IT_COBRB2-ERSJA = '2006'.
  IT_COBRB2-ERSPE = '008'.
  IT_COBRB2-LETJA = '2006'.
  IT_COBRB2-LETPE = '011'.
  IT_COBRB2-V_OBJNR = 'PR00550175'.
  IT_COBRB2-V_REC_OBJNR1 = 'PR00585682'.
  IT_COBRB2-FLAG = 'X'.
  APPEND IT_COBRB2.

  IT_COBRB2-KOSTL = '0000104555'.
  IT_COBRB2-OBJNR = 'PR00274526'.
  IT_COBRB2-REC_OBJNR1 = 'KSKOHL0000104555'.
  IT_COBRB2-ERSJA = '2004'.
  IT_COBRB2-ERSPE = '007'.
  IT_COBRB2-LETJA = '2007'.
  IT_COBRB2-LETPE = '009'.
  IT_COBRB2-V_OBJNR = 'PR00550175'.
  IT_COBRB2-V_REC_OBJNR1 = 'PR00585682'.
  IT_COBRB2-FLAG = 'X'.
  APPEND IT_COBRB2.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'KSKOHL0000107202'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = '15.00'.
  IT_COSS-WTG006 = '20.00'.
  IT_COSS-WTG007 = '25.00'.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = ''.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'KSKOHL0000107202'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = '21.00'.
  IT_COSS-WTG007 = '22.00'.
  IT_COSS-WTG008 = '23.00'.
  IT_COSS-WTG009 = ''.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = '25.00'.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2004'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = '17.00'.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = '11.00'.
  IT_COSS-WTG009 = '12.00'.
  IT_COSS-WTG010 = '13.00'.
  IT_COSS-WTG011 = '14.00'.
  IT_COSS-WTG012 = '19.00'.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = ''.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = '18.00'.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2007'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = '17.00'.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.


ENDFORM.                    " GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PROCESS_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM PROCESS_DATA .

  LOOP AT IT_COBRB.
    LOOP AT IT_COSS WHERE OBJNR = IT_COBRB-OBJNR
                     AND ( GJAHR GE IT_COBRB-ERSJA
                     AND   GJAHR LE IT_COBRB-LETJA )
                     AND PAROB = IT_COBRB-REC_OBJNR1.
      PERFORM OUTPUT_KOSTL.
* This is the part I am confused about.
*      I HAVE TO SHOW THE OUTPUT BASED ON COST CENTER(COBRB-KOSTL)

*      WHEN I GET THE RECORD FROM IT_COSS IT HAS TO SUM UP
*      ALL THE VALUES THAT FALL IN BETWEEN.
*      ERSJA, ERSPE; LETJA, LETPE of IT_COBRB. This four fields represent
*      THE START DATE AND THE END DATE IN TERMS OF MONTHS AND YEAR.

*      THE BELOW FIELDS IN COSS REPRESENT THE MONTHS.
*      WTG001,WTG002,WTG003,WTG004,WTG005,WTG006,
*      WTG007,WTG008,WTG009,WTG010,WTG011,WTG012
*      IT NEEDS TO ADD ALL THE MONTHS WHICH FALL IN
*      THE PERIOD SPECIFIED ABOVE.

*I have a date field in the selection screen.
*FO example I have 10/31/2007 in my selection screen
*The output should show
*KOSTL - cost for 2005  - 2006 -  Octoberr 2007 - upto october 2007

    ENDLOOP.
  ENDLOOP.


  LOOP AT IT_COBRB2.
    LOOP AT IT_COSS WHERE OBJNR = IT_COBRB2-V_OBJNR
                   AND ( GJAHR GE IT_COBRB2-ERSJA
                   AND   GJAHR LE IT_COBRB2-LETJA )
                   AND PAROB = IT_COBRB2-V_REC_OBJNR1.
      PERFORM OUTPUT_KOSTL.
* This is the part I am confused about.
    ENDLOOP.
  ENDLOOP.

ENDFORM.                    " PROCESS_DATA

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  OUTPUT_KOSTL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM OUTPUT_KOSTL .

  IF IT_COSS-GJAHR = P_ERDAT+0(4).

    IF IT_COBRB-LETPE LT P_ERDAT+4(2).
      V_NO_OF_TIMES = ( IT_COBRB-LETPE - IT_COBRB-ERSPE ) + 1.
    ELSE.
      V_NO_OF_TIMES = ( P_ERDAT+4(2) - IT_COBRB-ERSPE ) + 1.
    ENDIF.

    V_START_MONTH  = IT_COBRB-ERSPE.


  ELSEIF    IT_COSS-GJAHR = IT_COBRB-ERSJA
        AND IT_COSS-GJAHR = IT_COBRB-LETJA.
    V_NO_OF_TIMES = ( IT_COBRB-LETPE - IT_COBRB-ERSPE ) + 1.
    V_START_MONTH  = IT_COBRB-ERSPE.

  ELSEIF    IT_COSS-GJAHR GT IT_COBRB-ERSJA
        AND IT_COSS-GJAHR LT IT_COBRB-LETJA.
    V_NO_OF_TIMES = '12'.
    V_START_MONTH  = '1'.

  ELSEIF    IT_COSS-GJAHR = IT_COBRB-ERSJA
        AND IT_COSS-GJAHR LT IT_COBRB-LETJA.
    V_NO_OF_TIMES = ( '12' - IT_COBRB-ERSPE ) + 1.
    V_START_MONTH  = IT_COBRB-ERSPE.

  ELSEIF    IT_COSS-GJAHR = IT_COBRB-LETJA
        AND IT_COSS-GJAHR GT IT_COBRB-ERSJA.
    V_NO_OF_TIMES = IT_COBRB-LETPE.
    V_START_MONTH  = '1'.
  ENDIF.


  IF V_NO_OF_TIMES LE '0'.
    V_NO_OF_TIMES = '0'.
  ENDIF.

  DO V_NO_OF_TIMES TIMES.
    CASE V_START_MONTH.

      WHEN 1.
        V_AMOUNT = IT_COSS-WTG001.
      WHEN 2.
        V_AMOUNT = IT_COSS-WTG002.
      WHEN 3.
        V_AMOUNT = IT_COSS-WTG003.
      WHEN 4.
        V_AMOUNT = IT_COSS-WTG004.
      WHEN 5.
        V_AMOUNT = IT_COSS-WTG005.
      WHEN 6.
        V_AMOUNT = IT_COSS-WTG006.
      WHEN 7.
        V_AMOUNT = IT_COSS-WTG007.
      WHEN 8.
        V_AMOUNT = IT_COSS-WTG008.
      WHEN 9.
        V_AMOUNT = IT_COSS-WTG009.
      WHEN 10.
        V_AMOUNT = IT_COSS-WTG010.
      WHEN 11.
        V_AMOUNT = IT_COSS-WTG011.
      WHEN 12.
        V_AMOUNT = IT_COSS-WTG012.
    ENDCASE.
    V_AMOUNT_SUM = V_AMOUNT_SUM + V_AMOUNT.
    V_START_MONTH = V_START_MONTH + 1.
  ENDDO.

  IF IT_COSS-GJAHR = V_YEAR_2.
    T_OUTPUT-WKGOO1_2 = V_AMOUNT_SUM + T_OUTPUT-WKGOO1_2.

  ELSEIF IT_COSS-GJAHR = V_YEAR_1.
    T_OUTPUT-WKGOO1_1 = V_AMOUNT_SUM + T_OUTPUT-WKGOO1_1.

  ELSEIF IT_COSS-GJAHR =  V_YEAR_0.
    T_OUTPUT-WKGOO1_YTD = V_AMOUNT_SUM + T_OUTPUT-WKGOO1_YTD.

    IF     IT_COSS-GJAHR = P_ERDAT+0(4)
       AND IT_COBRB-LETPE GE P_ERDAT+4(2).
      T_OUTPUT-WKGOO1_MTH = V_AMOUNT + T_OUTPUT-WKGOO1_MTH.

    ENDIF.
  ENDIF.

  CLEAR : V_AMOUNT_SUM, V_AMOUNT, V_START_MONTH.


ENDFORM.                    " OUTPUT_KOSTL
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  WRITE_OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM WRITE_OUTPUT .

ENDFORM.                    " WRITE_OUTPUT&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Sep 2007 16:34:11 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-24T16:34:11Z</dc:date>
    <item>
      <title>ABAP CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-code/m-p/2811310#M657173</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Friends,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am struggling to get this developed. Please help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an internal tables IT_COBRB, IT_COBRB2, IT_COSS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the code for it and have appended the required data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a problem with the       &amp;lt;b&amp;gt;PERFORM OUTPUT_KOSTL.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;I have written the code for this perform statement but its wrong.&lt;/P&gt;&lt;P&gt;I have written comments in this perform as what I need to do.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For any questions please let me know&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ster.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZSTER                                                        *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;                                                                     *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ZSTER   LINE-SIZE 400.

DATA : BEGIN OF IT_COBRB OCCURS 0,
         KOSTL        LIKE COBRB-KOSTL,
         OBJNR        LIKE COBRB-OBJNR,
         REC_OBJNR1   LIKE COBRB-REC_OBJNR1,
         ERSJA        LIKE COBRB-ERSJA,
         ERSPE        LIKE COBRB-ERSPE,
         LETJA        LIKE COBRB-LETJA,
         LETPE        LIKE COBRB-LETPE,
         V_OBJNR      LIKE COBRB-OBJNR,
         V_REC_OBJNR1 LIKE COBRB-REC_OBJNR1,
         FLAG(1),
       END OF IT_COBRB,

       IT_COBRB2 LIKE IT_COBRB OCCURS 0 WITH HEADER LINE,

       BEGIN OF IT_COSS OCCURS 0,
         OBJNR  LIKE COSS-OBJNR,
         PAROB  LIKE COSS-PAROB,
         GJAHR  LIKE COSS-GJAHR,
         WTG001 LIKE COSS-WTG001,
         WTG002 LIKE COSS-WTG002,
         WTG003 LIKE COSS-WTG003,
         WTG004 LIKE COSS-WTG004,
         WTG005 LIKE COSS-WTG005,
         WTG006 LIKE COSS-WTG006,
         WTG007 LIKE COSS-WTG007,
         WTG008 LIKE COSS-WTG008,
         WTG009 LIKE COSS-WTG009,
         WTG010 LIKE COSS-WTG010,
         WTG011 LIKE COSS-WTG011,
         WTG012 LIKE COSS-WTG012,
       END OF IT_COSS.

DATA : BEGIN OF T_OUTPUT OCCURS 0,
         KOSTL      LIKE COBRB-KOSTL,
         WKGOO1_2   LIKE COSS-WKG001, " 2 years before
         WKGOO1_1   LIKE COSS-WKG001, " 1 year before
         WKGOO1_MTH LIKE COSS-WKG001, " Current month
         WKGOO1_YTD LIKE COSS-WKG001, " year till date
       END OF T_OUTPUT.

DATA :
       V_NO_OF_TIMES LIKE COBRB-LETPE,
       V_START_MONTH TYPE I,
       V_AMOUNT LIKE COSS-WKG001,
       V_AMOUNT_SUM LIKE COSS-WKG001,
       V_EST_AMOUNT LIKE COSS-WKG001,
       V_EST_AMOUNT_TOTAL LIKE COSS-WKG001,
       V_YEAR_2 LIKE COBRB-LETJA,
       V_YEAR_1 LIKE COBRB-LETJA,
       V_YEAR_0 LIKE COBRB-LETJA.


*Selection-Screen.
PARAMETERS : P_ERDAT LIKE SY-DATUM.

START-OF-SELECTION.
  PERFORM GET_DATA.

END-OF-SELECTION.
  PERFORM PROCESS_DATA.
  PERFORM WRITE_OUTPUT.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM GET_DATA .

  IT_COBRB-KOSTL = '0000107202'.
  IT_COBRB-OBJNR = 'PR00550175'.
  IT_COBRB-REC_OBJNR1 = 'KSKOHL0000107202'.
  IT_COBRB-ERSJA = '2006'.
  IT_COBRB-ERSPE = '005'.
  IT_COBRB-LETJA = '2006'.
  IT_COBRB-LETPE = '007'.
  IT_COBRB-V_OBJNR = ''.
  IT_COBRB-V_REC_OBJNR1 = ''.
  IT_COBRB-FLAG = ''.
  APPEND IT_COBRB.

  IT_COBRB2-KOSTL = '0000101446'.
  IT_COBRB2-OBJNR = 'PR00585682'.
  IT_COBRB2-REC_OBJNR1 = 'KSKOHL0000101446'.
  IT_COBRB2-ERSJA = '2006'.
  IT_COBRB2-ERSPE = '007'.
  IT_COBRB2-LETJA = '2006'.
  IT_COBRB2-LETPE = '007'.
  IT_COBRB2-V_OBJNR = 'PR00550175'.
  IT_COBRB2-V_REC_OBJNR1 = 'PR00585682'.
  IT_COBRB2-FLAG = 'X'.
  APPEND IT_COBRB2.

  IT_COBRB2-KOSTL = '0000107202'.
  IT_COBRB2-OBJNR = 'PR00585682'.
  IT_COBRB2-REC_OBJNR1 = 'KSKOHL0000107202'.
  IT_COBRB2-ERSJA = '2006'.
  IT_COBRB2-ERSPE = '008'.
  IT_COBRB2-LETJA = '2006'.
  IT_COBRB2-LETPE = '011'.
  IT_COBRB2-V_OBJNR = 'PR00550175'.
  IT_COBRB2-V_REC_OBJNR1 = 'PR00585682'.
  IT_COBRB2-FLAG = 'X'.
  APPEND IT_COBRB2.

  IT_COBRB2-KOSTL = '0000104555'.
  IT_COBRB2-OBJNR = 'PR00274526'.
  IT_COBRB2-REC_OBJNR1 = 'KSKOHL0000104555'.
  IT_COBRB2-ERSJA = '2004'.
  IT_COBRB2-ERSPE = '007'.
  IT_COBRB2-LETJA = '2007'.
  IT_COBRB2-LETPE = '009'.
  IT_COBRB2-V_OBJNR = 'PR00550175'.
  IT_COBRB2-V_REC_OBJNR1 = 'PR00585682'.
  IT_COBRB2-FLAG = 'X'.
  APPEND IT_COBRB2.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'KSKOHL0000107202'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = '15.00'.
  IT_COSS-WTG006 = '20.00'.
  IT_COSS-WTG007 = '25.00'.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = ''.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'KSKOHL0000107202'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = '21.00'.
  IT_COSS-WTG007 = '22.00'.
  IT_COSS-WTG008 = '23.00'.
  IT_COSS-WTG009 = ''.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = '25.00'.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2004'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = '17.00'.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = '11.00'.
  IT_COSS-WTG009 = '12.00'.
  IT_COSS-WTG010 = '13.00'.
  IT_COSS-WTG011 = '14.00'.
  IT_COSS-WTG012 = '19.00'.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2006'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = ''.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = '18.00'.
  APPEND IT_COSS.

  IT_COSS-OBJNR = 'PR00550175'.
  IT_COSS-PAROB = 'PR00585682'.
  IT_COSS-GJAHR = '2007'.
  IT_COSS-WTG001 = ''.
  IT_COSS-WTG002 = ''.
  IT_COSS-WTG003 = ''.
  IT_COSS-WTG004 = ''.
  IT_COSS-WTG005 = ''.
  IT_COSS-WTG006 = ''.
  IT_COSS-WTG007 = ''.
  IT_COSS-WTG008 = ''.
  IT_COSS-WTG009 = '17.00'.
  IT_COSS-WTG010 = ''.
  IT_COSS-WTG011 = ''.
  IT_COSS-WTG012 = ''.
  APPEND IT_COSS.


ENDFORM.                    " GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PROCESS_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM PROCESS_DATA .

  LOOP AT IT_COBRB.
    LOOP AT IT_COSS WHERE OBJNR = IT_COBRB-OBJNR
                     AND ( GJAHR GE IT_COBRB-ERSJA
                     AND   GJAHR LE IT_COBRB-LETJA )
                     AND PAROB = IT_COBRB-REC_OBJNR1.
      PERFORM OUTPUT_KOSTL.
* This is the part I am confused about.
*      I HAVE TO SHOW THE OUTPUT BASED ON COST CENTER(COBRB-KOSTL)

*      WHEN I GET THE RECORD FROM IT_COSS IT HAS TO SUM UP
*      ALL THE VALUES THAT FALL IN BETWEEN.
*      ERSJA, ERSPE; LETJA, LETPE of IT_COBRB. This four fields represent
*      THE START DATE AND THE END DATE IN TERMS OF MONTHS AND YEAR.

*      THE BELOW FIELDS IN COSS REPRESENT THE MONTHS.
*      WTG001,WTG002,WTG003,WTG004,WTG005,WTG006,
*      WTG007,WTG008,WTG009,WTG010,WTG011,WTG012
*      IT NEEDS TO ADD ALL THE MONTHS WHICH FALL IN
*      THE PERIOD SPECIFIED ABOVE.

*I have a date field in the selection screen.
*FO example I have 10/31/2007 in my selection screen
*The output should show
*KOSTL - cost for 2005  - 2006 -  Octoberr 2007 - upto october 2007

    ENDLOOP.
  ENDLOOP.


  LOOP AT IT_COBRB2.
    LOOP AT IT_COSS WHERE OBJNR = IT_COBRB2-V_OBJNR
                   AND ( GJAHR GE IT_COBRB2-ERSJA
                   AND   GJAHR LE IT_COBRB2-LETJA )
                   AND PAROB = IT_COBRB2-V_REC_OBJNR1.
      PERFORM OUTPUT_KOSTL.
* This is the part I am confused about.
    ENDLOOP.
  ENDLOOP.

ENDFORM.                    " PROCESS_DATA

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  OUTPUT_KOSTL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM OUTPUT_KOSTL .

  IF IT_COSS-GJAHR = P_ERDAT+0(4).

    IF IT_COBRB-LETPE LT P_ERDAT+4(2).
      V_NO_OF_TIMES = ( IT_COBRB-LETPE - IT_COBRB-ERSPE ) + 1.
    ELSE.
      V_NO_OF_TIMES = ( P_ERDAT+4(2) - IT_COBRB-ERSPE ) + 1.
    ENDIF.

    V_START_MONTH  = IT_COBRB-ERSPE.


  ELSEIF    IT_COSS-GJAHR = IT_COBRB-ERSJA
        AND IT_COSS-GJAHR = IT_COBRB-LETJA.
    V_NO_OF_TIMES = ( IT_COBRB-LETPE - IT_COBRB-ERSPE ) + 1.
    V_START_MONTH  = IT_COBRB-ERSPE.

  ELSEIF    IT_COSS-GJAHR GT IT_COBRB-ERSJA
        AND IT_COSS-GJAHR LT IT_COBRB-LETJA.
    V_NO_OF_TIMES = '12'.
    V_START_MONTH  = '1'.

  ELSEIF    IT_COSS-GJAHR = IT_COBRB-ERSJA
        AND IT_COSS-GJAHR LT IT_COBRB-LETJA.
    V_NO_OF_TIMES = ( '12' - IT_COBRB-ERSPE ) + 1.
    V_START_MONTH  = IT_COBRB-ERSPE.

  ELSEIF    IT_COSS-GJAHR = IT_COBRB-LETJA
        AND IT_COSS-GJAHR GT IT_COBRB-ERSJA.
    V_NO_OF_TIMES = IT_COBRB-LETPE.
    V_START_MONTH  = '1'.
  ENDIF.


  IF V_NO_OF_TIMES LE '0'.
    V_NO_OF_TIMES = '0'.
  ENDIF.

  DO V_NO_OF_TIMES TIMES.
    CASE V_START_MONTH.

      WHEN 1.
        V_AMOUNT = IT_COSS-WTG001.
      WHEN 2.
        V_AMOUNT = IT_COSS-WTG002.
      WHEN 3.
        V_AMOUNT = IT_COSS-WTG003.
      WHEN 4.
        V_AMOUNT = IT_COSS-WTG004.
      WHEN 5.
        V_AMOUNT = IT_COSS-WTG005.
      WHEN 6.
        V_AMOUNT = IT_COSS-WTG006.
      WHEN 7.
        V_AMOUNT = IT_COSS-WTG007.
      WHEN 8.
        V_AMOUNT = IT_COSS-WTG008.
      WHEN 9.
        V_AMOUNT = IT_COSS-WTG009.
      WHEN 10.
        V_AMOUNT = IT_COSS-WTG010.
      WHEN 11.
        V_AMOUNT = IT_COSS-WTG011.
      WHEN 12.
        V_AMOUNT = IT_COSS-WTG012.
    ENDCASE.
    V_AMOUNT_SUM = V_AMOUNT_SUM + V_AMOUNT.
    V_START_MONTH = V_START_MONTH + 1.
  ENDDO.

  IF IT_COSS-GJAHR = V_YEAR_2.
    T_OUTPUT-WKGOO1_2 = V_AMOUNT_SUM + T_OUTPUT-WKGOO1_2.

  ELSEIF IT_COSS-GJAHR = V_YEAR_1.
    T_OUTPUT-WKGOO1_1 = V_AMOUNT_SUM + T_OUTPUT-WKGOO1_1.

  ELSEIF IT_COSS-GJAHR =  V_YEAR_0.
    T_OUTPUT-WKGOO1_YTD = V_AMOUNT_SUM + T_OUTPUT-WKGOO1_YTD.

    IF     IT_COSS-GJAHR = P_ERDAT+0(4)
       AND IT_COBRB-LETPE GE P_ERDAT+4(2).
      T_OUTPUT-WKGOO1_MTH = V_AMOUNT + T_OUTPUT-WKGOO1_MTH.

    ENDIF.
  ENDIF.

  CLEAR : V_AMOUNT_SUM, V_AMOUNT, V_START_MONTH.


ENDFORM.                    " OUTPUT_KOSTL
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  WRITE_OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

FORM WRITE_OUTPUT .

ENDFORM.                    " WRITE_OUTPUT&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 16:34:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-code/m-p/2811310#M657173</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T16:34:11Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-code/m-p/2811311#M657174</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ANy suggestions or questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ster&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 16:59:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-code/m-p/2811311#M657174</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T16:59:43Z</dc:date>
    </item>
  </channel>
</rss>

