Need ABAP OOPs

hi all
I'm new for ABAP OOPS, I want to know about abap oops concept. Can you any one explain about that i want simple example.
with regards.
Muthukumar.K

Hi Muthu,
Please check out transaction ABAPDOCU. It contains multiple examples on ABAP Objects. Also, browse this site for more examples on ABAP Objects. I also have included a sample report that I did using ABAP Objects. Please check it out. Hope it helps...
P.S. Please award points if it helps...
*==================================================================
* Program Name : ZFR_FOREX_REV_ACCTG
* Author       : Aris Hidalgo
* Date Created : August 3, 2006
* Description  : Show the exchange rate for a given range of 7 years
*==================================================================
REPORT zfr_forex_rev_acctg
       NO STANDARD PAGE HEADING
       LINE-SIZE 500
       LINE-COUNT 0
       MESSAGE-ID zz.
* Data dictionary table/s                     *
TABLES: bsis,
        bsas,
        tcurr,
        t001.
* Global Structure/s                          *
TYPES: BEGIN OF t_bsis_bsas,
        hkont    TYPE bsis-hkont,   "General ledger account
        year_dum TYPE bsis-gjahr,
        belnr    TYPE bsis-belnr,   "Accounting document number
        bldat    TYPE bsis-bldat,   "Document date in document
        waers    TYPE bsis-waers,   "Currency Key
        dmbtr    TYPE bsis-dmbtr,   "Amount in local currency
        wrbtr    TYPE bsis-wrbtr,   "Amount in document currency
        shkzg    TYPE bsis-shkzg,   "Debit/credit indicator
        zuonr    TYPE bsis-zuonr,   "Assignment number
        gjahr    TYPE bsis-gjahr,   "Fiscal year
        blart    TYPE bsis-blart,   "Document type
       END OF t_bsis_bsas.
TYPES: BEGIN OF t_summary,
        hkont    TYPE bsis-hkont,
        year_dum TYPE bsis-gjahr,
        waers    TYPE bsis-waers,
        rate     TYPE tcurr-ukurs,
        wrbtr    TYPE bsis-wrbtr,
        dmbtr    TYPE bsis-dmbtr,
        gl_bal   TYPE bsis-wrbtr,
        unrealized TYPE bsis-wrbtr,
       END OF t_summary.
TYPES: BEGIN OF t_exch,
        year      TYPE bsis-gjahr,
        rate      TYPE bapi1093_1-rate_type,
        from_curr TYPE bapi1093_1-from_curr,
        exch_rate TYPE bapi1093_0-exch_rate_v,
       END OF t_exch.
* Global Data                                 *
DATA: gv_hkont TYPE bsis-hkont,
      it_bsis_bsas TYPE STANDARD TABLE OF t_bsis_bsas,
      it_exch      TYPE SORTED   TABLE OF t_exch WITH UNIQUE
                                     KEY year rate from_curr,
      it_summary   TYPE STANDARD TABLE OF t_summary,
      wa_summary   LIKE LINE OF it_summary,
      wa_exch      LIKE LINE OF it_exch,
      t_rate_type  TYPE bapi1093_1-rate_type  VALUE 'ME',
      t_from_curr  TYPE bapi1093_1-from_curr,
      t_to_curr    TYPE bapi1093_1-to_currncy VALUE 'USD',
      t_date       TYPE bapi1093_2-trans_date,
      t_date_out   TYPE bapi1093_2-trans_date,
      t_exch_rate  TYPE bapi1093_0,
      t_message    TYPE bapireturn1.
FIELD-SYMBOLS: <fs_asof>      TYPE bsis-gjahr,
               <fs_bsis_bsas> LIKE LINE OF it_bsis_bsas.
* Selection screen                             *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_bukrs TYPE t001-bukrs OBLIGATORY,
            p_asof  TYPE bsis-budat OBLIGATORY,
            p_year  TYPE bsis-gjahr OBLIGATORY.
SELECT-OPTIONS: s_hkont FOR bsis-hkont NO INTERVALS OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
*/ CLASS DEFINITIONS
*       CLASS lcl_main DEFINITION
CLASS lcl_main DEFINITION.
  PUBLIC SECTION.
    METHODS: get_data,
             get_diff,
             display_subheader,
             display_rate
                IMPORTING
                   rate TYPE tcurr-ukurs
                   pos  TYPE i,
             display_header,
             top_of_page,
             get_rate_and_show
                EXPORTING
                   ex_bsis_bsas LIKE it_bsis_bsas
                   ex_exch      LIKE it_exch,
             conversion
                IMPORTING
                   year      TYPE bsis-gjahr
                   rate_type TYPE bapi1093_1-rate_type
                   from_curr TYPE bapi1093_1-from_curr
                   to_curr   TYPE bapi1093_1-to_currncy
                EXPORTING
                   exch_rate TYPE bapi1093_0
                   t_date    TYPE bapi1093_2-trans_date.
    EVENTS: no_data EXPORTING value(hkont) TYPE bsis-hkont.
  PRIVATE SECTION.
    TYPES: BEGIN OF t_waers,
            waers TYPE bsis-waers,
           END OF t_waers.
    TYPES: BEGIN OF t_local,
            year      TYPE bsis-gjahr,
            rate      TYPE tcurr-ukurs,
           END OF t_local.
    DATA: it_waers     TYPE SORTED TABLE OF t_waers WITH UNIQUE
                            KEY waers,
          it_local     TYPE SORTED TABLE OF t_local WITH UNIQUE
                            KEY year,
          wa_waers     LIKE LINE OF it_waers,
          wa_local     LIKE LINE OF it_local,
          lv_counter   TYPE i,
          lv_asof      TYPE bsis-gjahr,
          lv_year      TYPE bsis-gjahr,
          lv_check     TYPE i,
          lv_7years    TYPE i,
          lv_date      TYPE pc226-endda,
          lv_pos       TYPE i,
          lv_pos2      TYPE i,
          lv_vline     TYPE i,
          lv_rate      TYPE p DECIMALS 5,
          lv_givendate TYPE syst-datum.
ENDCLASS.
*       CLASS lcl_summary DEFINITION
CLASS lcl_summary DEFINITION INHERITING FROM lcl_main.
  PUBLIC SECTION.
    METHODS: display_summary_header,
             display_summary
                IMPORTING
                   im_bsis_bsas LIKE it_bsis_bsas
                   im_exch      LIKE it_exch.
ENDCLASS.
*       CLASS lcl_handler DEFINITION
CLASS lcl_handler DEFINITION.
  PUBLIC SECTION.
    METHODS handle_event FOR EVENT no_data OF lcl_main
    IMPORTING hkont.
ENDCLASS.
*/ CLASS IMPLEMENTATIONS
*       CLASS lcl_main IMPLEMENTATION
CLASS lcl_main IMPLEMENTATION.
* METHOD get_data                              *
  METHOD get_data.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
     EXPORTING
*     PERCENTAGE       = 0
       text             = 'Getting data. Please wait...'
*   get records from BSIS
    SELECT hkont zuonr gjahr belnr waers bldat blart dmbtr wrbtr shkzg
    FROM bsis
    INTO  CORRESPONDING FIELDS OF TABLE it_bsis_bsas
    WHERE bukrs = p_bukrs
      AND hkont IN s_hkont
      AND budat <= p_asof.
*   get records from BSAS
    SELECT hkont zuonr gjahr belnr waers bldat blart dmbtr wrbtr shkzg
    FROM bsas
    APPENDING CORRESPONDING FIELDS OF TABLE it_bsis_bsas
    WHERE bukrs = p_bukrs
      AND hkont IN s_hkont
      AND budat <= p_asof
      AND augdt > p_asof.
*   if itab has no records, raise event
    IF it_bsis_bsas[] IS INITIAL.
      RAISE EVENT no_data EXPORTING hkont = s_hkont-low.
    ENDIF.
  ENDMETHOD.
* METHOD get_diff                              *
  METHOD get_diff.
    DATA: lv_sub7 TYPE i.
    lv_asof = p_year + 6.
    IF lv_asof > p_asof+0(4).
      lv_asof = p_asof+0(4).
    ENDIF.
    lv_year = p_year.
*   determine how many years will be displayed
    lv_counter = lv_asof - lv_year.
    ADD 1 TO lv_counter.
    lv_sub7   = lv_asof - 6.
    lv_7years = lv_asof - lv_sub7.
    ADD 1 TO lv_7years.
  ENDMETHOD.
* METHOD display_subheader                     *
  METHOD display_subheader.
    DATA: lv_date(10)  TYPE c,
          lv_gdatu     TYPE tcurr-gdatu,
          lv_flag(1)   TYPE c,
          lv_pos_dum   TYPE i.
    FIELD-SYMBOLS: <fs_bsis_bsas> LIKE LINE OF it_bsis_bsas.
*   pre-defined length of uline and vline depending on the
*   number of years to be displayed
    CASE lv_counter.
      WHEN 1.
        lv_pos   = 24.
        lv_pos2  = 37.
        lv_vline = 126.
      WHEN 2.
        lv_pos   = 45.
        lv_pos2  = 58.
        lv_vline = 147.
      WHEN 3.
        lv_pos   = 66.
        lv_pos2  = 79.
        lv_vline = 168.
      WHEN 4.
        lv_pos   = 87.
        lv_pos2  = 100.
        lv_vline = 189.
      WHEN 5.
        lv_pos   = 108.
        lv_pos2  = 121.
        lv_vline = 210.
      WHEN 6.
        lv_pos   = 128.
        lv_pos2  = 141.
        lv_vline = 230.
      WHEN 7.
        lv_pos   = 148.
        lv_pos2  = 161.
        lv_vline = 250.
    ENDCASE.
*  get currency
    IF NOT lv_check = 1.
      LOOP AT it_bsis_bsas ASSIGNING <fs_bsis_bsas>.
        MOVE <fs_bsis_bsas>-waers TO wa_waers.
        INSERT wa_waers INTO TABLE it_waers.
        <fs_bsis_bsas>-year_dum = <fs_bsis_bsas>-bldat+0(4).
      ENDLOOP.
    ENDIF.
    ASSIGN lv_asof TO <fs_asof>.
    IF NOT lv_check = 1.
      SORT it_bsis_bsas BY hkont year_dum belnr bldat waers dmbtr wrbtr.
      IF <fs_bsis_bsas> IS ASSIGNED.
        UNASSIGN <fs_bsis_bsas>.
        READ TABLE it_bsis_bsas INDEX 1 ASSIGNING <fs_bsis_bsas>.
        IF sy-subrc = 0 AND <fs_bsis_bsas> IS ASSIGNED.
          gv_hkont = <fs_bsis_bsas>-hkont.
        ENDIF.
      ENDIF.
    ENDIF.
*   write sub-header
    DESCRIBE TABLE it_waers LINES sy-tfill.
    LOOP AT it_waers INTO wa_waers.
      IF sy-tfill = 1 AND wa_waers-waers = 'PHP'.
        lv_flag = 1 .
      ENDIF.
      IF NOT lv_flag = 1.
        IF lv_check IS INITIAL.
          WRITE: AT /103 sy-uline(lv_pos),
                 AT /103 sy-vline.
        ENDIF.
*       write the years in the sub-header
        IF NOT lv_check = 1.
          lv_pos_dum = 110.
          FORMAT COLOR COL_HEADING.
          DO lv_counter TIMES.
            IF sy-index = 6.
              WRITE: AT lv_pos_dum(14) <fs_asof> RIGHT-JUSTIFIED.
            ELSEIF sy-index = 7.
              WRITE: AT lv_pos_dum(13) <fs_asof> RIGHT-JUSTIFIED.
            ELSE.
              WRITE: AT lv_pos_dum(15) <fs_asof> RIGHT-JUSTIFIED.
            ENDIF.
            ADD 21 TO lv_pos_dum.
            SUBTRACT 1 FROM <fs_asof>.
          ENDDO.
          WRITE sy-vline.
          FORMAT COLOR OFF.
        ENDIF.
        IF sy-tabix = 1 AND wa_waers-waers = 'PHP'.
          WRITE: AT /90 sy-uline(lv_pos2).
        ENDIF.
        IF wa_waers-waers <> 'PHP'.
          IF lv_check IS INITIAL.
            WRITE: AT /90 sy-uline(lv_pos2).
            WRITE: AT /90 sy-vline.
          ELSE.
            WRITE: AT /90 sy-vline.
          ENDIF.
        ENDIF.
        FORMAT COLOR COL_NORMAL.
        IF NOT wa_waers-waers = 'PHP'.
         WRITE: AT 91(10) wa_waers-waers CENTERED.   "write the currency
        ENDIF.
      ENDIF.
      lv_asof = p_year + 6.
      IF lv_asof > p_asof+0(4).
        lv_asof = p_asof+0(4).
      ENDIF.
*     get exchange rate from PHP to USD
      IF lv_check IS INITIAL.
        t_from_curr = 'PHP'.
        DO lv_counter TIMES.
*         use BAPI to get exchange rate
          CALL METHOD me->conversion EXPORTING
                                       year      = <fs_asof>
                                       rate_type = t_rate_type
                                       from_curr = t_from_curr
                                       to_curr   = t_to_curr
                                      IMPORTING
                                       exch_rate = t_exch_rate
                                       t_date    = t_date_out.
*         if no exchange rate was fetched, get directly from TCURR
*         using given date
          IF t_exch_rate-exch_rate_v IS INITIAL.
            WRITE t_date_out TO lv_date USING EDIT MASK '__/__/____'.
            CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
                 EXPORTING
                      input  = lv_date
                 IMPORTING
                      output = lv_date.
            SELECT SINGLE ukurs FROM tcurr
            INTO t_exch_rate-exch_rate_v
            WHERE kurst = 'ME'
              AND fcurr = 'PHP'
              AND tcurr = 'USD'
              AND gdatu = lv_date.
          ENDIF.
          IF NOT t_exch_rate-exch_rate_v IS INITIAL.
            t_exch_rate-exch_rate_v = abs( t_exch_rate-exch_rate_v ).
            wa_local-year = <fs_asof>.
            wa_local-rate = t_exch_rate-exch_rate_v.
            INSERT wa_local INTO TABLE it_local.
          ENDIF.
          SUBTRACT 1 FROM <fs_asof>.
          CLEAR: t_exch_rate, wa_local, t_date_out, lv_date.
        ENDDO.
      ENDIF.
      lv_pos = 106.
*     get exchange rate from itab to USD
      CLEAR: t_exch_rate, lv_gdatu.
      t_from_curr = wa_waers-waers.
      lv_asof = p_year + 6.
      IF lv_asof > p_asof+0(4).
        lv_asof = p_asof+0(4).
      ENDIF.
      DO lv_counter TIMES.
        IF t_from_curr = 'USD'.
          READ TABLE it_local WITH KEY year = <fs_asof>
                                       INTO wa_local TRANSPORTING rate.
          lv_rate = wa_local-rate.
        ELSEIF t_from_curr = 'PHP'.
          READ TABLE it_local WITH KEY year = <fs_asof>
                                       INTO wa_local TRANSPORTING rate.
          lv_rate = wa_local-rate.
        ELSE.
*         use BAPI to get exchange rate for currencies that is
*         not 'PHP' and 'USD'
          CALL METHOD me->conversion EXPORTING
                                      year      = <fs_asof>
                                      rate_type = t_rate_type
                                      from_curr = t_from_curr
                                      to_curr   = t_to_curr
                                     IMPORTING
                                      exch_rate = t_exch_rate
                                      t_date    = t_date_out.
*         if no exchange rate was fetched, get directly from TCURR
*         using given date
          IF t_exch_rate-exch_rate_v IS INITIAL.
            WRITE t_date_out TO lv_date USING EDIT MASK '__/__/____'.
            CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
                 EXPORTING
                      input  = lv_date
                 IMPORTING
                      output = lv_date.
            SELECT SINGLE ukurs FROM tcurr
            INTO t_exch_rate-exch_rate_v
            WHERE kurst = 'ME'
              AND fcurr = wa_waers-waers
              AND tcurr = 'USD'
              AND gdatu = lv_date.
          ENDIF.
          IF NOT t_exch_rate-exch_rate_v IS INITIAL.
            READ TABLE it_local WITH KEY year = <fs_asof>
                                        INTO wa_local TRANSPORTING rate.
            IF sy-subrc = 0.
              IF t_exch_rate-exch_rate_v <> wa_local-rate.
                lv_rate = 1 / t_exch_rate-exch_rate_v * wa_local-rate.
              ELSE.
                lv_rate = t_exch_rate-exch_rate_v.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
        IF NOT lv_rate IS INITIAL.
          lv_rate = abs( lv_rate ).
          wa_exch-year      = <fs_asof>.
          wa_exch-rate      = t_rate_type.
          wa_exch-from_curr = t_from_curr.
          wa_exch-exch_rate = lv_rate.
          INSERT wa_exch INTO TABLE it_exch.
          IF NOT lv_flag = 1.
            IF NOT wa_waers-waers = 'PHP'.
              CALL METHOD me->display_rate
                 EXPORTING
                    rate = wa_exch-exch_rate
                    pos  = lv_pos.
              CLEAR wa_exch.
            ENDIF.
          ENDIF.
        ENDIF.
        ADD 21 TO lv_pos.
        SUBTRACT 1 FROM <fs_asof>.
        CLEAR: t_exch_rate, wa_local, t_date_out,
               lv_date,lv_rate.
      ENDDO.
      IF NOT lv_flag = 1.
        WRITE: AT lv_vline sy-vline.
      ENDIF.
      FORMAT COLOR OFF.
      lv_asof = p_year + 6.
      IF lv_asof > p_asof+0(4).
        lv_asof = p_asof+0(4).
      ENDIF.
      lv_check = 1.
      CLEAR lv_flag.
    ENDLOOP.
  ENDMETHOD.
* METHOD display_rate                          *
  METHOD display_rate.
    WRITE: AT pos(15) rate RIGHT-JUSTIFIED.
  ENDMETHOD.
* METHOD display_header                        *
  METHOD display_header.
    CLEAR lv_pos.
    lv_asof = p_year + 6.
    IF lv_asof > p_asof+0(4).
      lv_asof = p_asof+0(4).
    ENDIF.
    CLEAR lv_pos2.
    CASE lv_counter.
      WHEN 1.
        lv_pos2 = 126.
      WHEN 2.
        lv_pos2 = 147.
      WHEN 3.
        lv_pos2 = 168.
      WHEN 4.
        lv_pos2 = 189.
      WHEN 5.
        lv_pos2 = 210.
      WHEN 6.
        lv_pos2 = 230.
      WHEN 7.
        lv_pos2 = 250.
    ENDCASE.
    lv_pos = 110.
    FORMAT COLOR COL_HEADING.
    WRITE: /   sy-uline(lv_pos2),
           /   sy-vline,
         (18) 'Allocation'         CENTERED,
         (04) 'DT'                 CENTERED,
         (11) 'Doc. No.'           CENTERED,
         (11) 'Doc. Date'          LEFT-JUSTIFIED,
         (06) 'Cur.'               LEFT-JUSTIFIED,
         (20) 'Transaction Curr.'  CENTERED,
         (20) 'Local Curr. (PHP)'  CENTERED.
    DO lv_counter TIMES.
      WRITE: AT lv_pos(14) <fs_asof> RIGHT-JUSTIFIED.
      SUBTRACT 1 FROM <fs_asof>.
      ADD 21 TO lv_pos.
    ENDDO.
    WRITE: AT lv_pos2 sy-vline,
           /  sy-uline(lv_pos2).
    FORMAT COLOR OFF.
  ENDMETHOD.
* METHOD top_of_page                           *
  METHOD top_of_page.
    DATA: text1         TYPE string,
          text2         TYPE string,
          lv_asof       TYPE bsis-budat,
          lv_pageno(03) TYPE n,
          lv_date(10)   TYPE c.
*   get company code description
    SELECT SINGLE butxt FROM t001
    INTO t001-butxt
    WHERE bukrs = p_bukrs.
    WRITE: / t001-butxt,
           / sy-title.
*   write account code(HKONT)
    CONCATENATE: gv_hkont '/' p_bukrs
                 INTO text1.
    CONCATENATE: 'Account:' text1
                 INTO text2
                 SEPARATED BY space.
    WRITE: / text2.
    CLEAR: text1, text2.
*   write as of date
    WRITE p_asof TO lv_date USING EDIT MASK '__/__/____'.
    CONCATENATE: 'As of' lv_date
                   INTO text1
                   SEPARATED BY space.
    WRITE: / text1.
    CLEAR: text1, lv_date.
*   from year to as of year
    lv_asof = p_asof+0(4).
    CONCATENATE: 'Year:' p_year 'to' lv_asof
                 INTO text1
                 SEPARATED BY space.
    WRITE: / text1.
    CLEAR text1.
*   page number
    lv_pageno = sy-pagno.
    CONCATENATE: 'Page No:' lv_pageno
                 INTO text1
                 SEPARATED BY space.
    WRITE: / text1.
    CLEAR text1.
    SKIP 2.
  ENDMETHOD.
* METHOD get_rate_and_show                     *
  METHOD get_rate_and_show.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
     EXPORTING
*       PERCENTAGE       = 0
       text             = 'Combining data.Please wait... '
    DATA: lv_amount(15)    TYPE p DECIMALS 2,
          lv_color(1)      TYPE n VALUE 1,
          lv_index1(15)    TYPE p DECIMALS 2,
          lv_index2(15)    TYPE p DECIMALS 2,
          lv_index3(15)    TYPE p DECIMALS 2,
          lv_index4(15)    TYPE p DECIMALS 2,
          lv_index5(15)    TYPE p DECIMALS 2,
          lv_index6(15)    TYPE p DECIMALS 2,
          lv_index7(15)    TYPE p DECIMALS 2,
          lv_total1(15)    TYPE p DECIMALS 2,
          lv_total2(15)    TYPE p DECIMALS 2,
          lv_total3(15)    TYPE p DECIMALS 2,
          lv_total4(15)    TYPE p DECIMALS 2,
          lv_total5(15)    TYPE p DECIMALS 2,
          lv_total6(15)    TYPE p DECIMALS 2,
          lv_total7(15)    TYPE p DECIMALS 2,
          lv_dmbtr(15)     TYPE p DECIMALS 2,
          lv_dmbtr_tot(15) TYPE p DECIMALS 2,
          lv_old           TYPE bsis-hkont,
          lv_new           TYPE bsis-hkont.
    lv_asof = p_year + 6.
    IF lv_asof > p_asof+0(4).
      lv_asof = p_asof+0(4).
    ENDIF.
    CLEAR lv_check.
    ADD 1 TO lv_check.
    SORT it_bsis_bsas BY hkont year_dum belnr bldat waers dmbtr wrbtr.
*   write details
    LOOP AT it_bsis_bsas ASSIGNING <fs_bsis_bsas>.
      IF lv_color = 1.
        lv_color = 2.
      ELSE.
        lv_color = 1.
      ENDIF.
*     if <fs_bsis_bsas>-shkzg = 'H', multiply WRBTR and
*     DMBTR by -1
      IF <fs_bsis_bsas>-shkzg = 'H'.
        <fs_bsis_bsas>-wrbtr = <fs_bsis_bsas>-wrbtr * -1.
        <fs_bsis_bsas>-dmbtr = <fs_bsis_bsas>-dmbtr * -1.
      ENDIF.
*     for every new account no.(HKONT), create a new page
      lv_new = <fs_bsis_bsas>-hkont.
      gv_hkont = <fs_bsis_bsas>-hkont.
      IF lv_new <> lv_old AND NOT lv_old IS INITIAL.
        NEW-PAGE.
        CALL METHOD me->display_subheader.
        CALL METHOD me->display_header.
      ENDIF.
      lv_old = lv_new.
*     write details
      FORMAT INTENSIFIED OFF COLOR = lv_color.
      WRITE: /   sy-vline,
            (18) <fs_bsis_bsas>-zuonr   CENTERED,
            (04) <fs_bsis_bsas>-blart   CENTERED,
            (10) <fs_bsis_bsas>-belnr   CENTERED,
            (10) <fs_bsis_bsas>-bldat   RIGHT-JUSTIFIED,
            (05) <fs_bsis_bsas>-waers   RIGHT-JUSTIFIED,
            (20) <fs_bsis_bsas>-wrbtr   RIGHT-JUSTIFIED,
            (20) <fs_bsis_bsas>-dmbtr   RIGHT-JUSTIFIED.
      ADD <fs_bsis_bsas>-dmbtr TO: lv_dmbtr, lv_dmbtr_tot.
*     write the converted amount for a given year
      WHILE lv_check <= lv_counter.
        IF <fs_asof> >= <fs_bsis_bsas>-bldat+0(4).
          t_from_curr = <fs_bsis_bsas>-waers.
          READ TABLE it_exch WITH KEY year      = <fs_asof>
                                      rate      = t_rate_type
                                      from_curr = t_from_curr
                                    INTO wa_exch TRANSPORTING exch_rate.
          IF sy-subrc = 0.
            IF <fs_bsis_bsas>-waers = 'PHP'.
              lv_amount = 1 / wa_exch-exch_rate * wa_exch-exch_rate.
              lv_amount = <fs_bsis_bsas>-wrbtr * lv_amount.
            ELSE.
              lv_amount = <fs_bsis_bsas>-wrbtr * wa_exch-exch_rate.
            ENDIF.
            WRITE: (20) lv_amount RIGHT-JUSTIFIED.
            CASE sy-index.
              WHEN 1.
                ADD lv_amount TO lv_index1.
                ADD lv_amount TO lv_total1.
              WHEN 2.
                ADD lv_amount TO lv_index2.
                ADD lv_amount TO lv_total2.
              WHEN 3.
                ADD lv_amount TO lv_index3.
                ADD lv_amount TO lv_total3.
              WHEN 4.
                ADD lv_amount TO lv_index4.
                ADD lv_amount TO lv_total4.
              WHEN 5.
                ADD lv_amount TO lv_index5.
                ADD lv_amount TO lv_total5.
              WHEN 6.
                ADD lv_amount TO lv_index6.
                ADD lv_amount TO lv_total6.
              WHEN 7.
                ADD lv_amount TO lv_index7.
                ADD lv_amount TO lv_total7.
            ENDCASE.
          ENDIF.
        ENDIF.
        CLEAR: lv_amount, wa_exch.
        SUBTRACT 1 FROM <fs_asof>.
        ADD 1 TO lv_check.
      ENDWHILE.
      WRITE AT lv_pos2 sy-vline.
*     write sub-total for every year for the same account code(HKONT)
      AT END OF year_dum.
        FORMAT COLOR COL_TOTAL.
        WRITE: / sy-vline,
               <fs_bsis_bsas>-year_dum,
               'Sub-total:'.
        IF NOT lv_dmbtr IS INITIAL.
          WRITE: AT 76(20) lv_dmbtr RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index1 IS INITIAL.
          WRITE: (20) lv_index1     RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index2 IS INITIAL.
          WRITE (20) lv_index2      RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index3 IS INITIAL.
          WRITE (20) lv_index3      RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index4 IS INITIAL.
          WRITE (20) lv_index4      RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index5 IS INITIAL.
          WRITE (20) lv_index5      RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index6 IS INITIAL.
          WRITE: (20) lv_index6     RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_index7 IS INITIAL.
          WRITE: (20) lv_index7      RIGHT-JUSTIFIED.
        ENDIF.
        WRITE: AT lv_pos2 sy-vline.
        FORMAT COLOR OFF.
        CLEAR: lv_index1, lv_index2, lv_index3,
               lv_index4, lv_index5, lv_index6,
               lv_index7, lv_dmbtr.
      ENDAT.
*     write total for a given account code(HKONT)
      AT END OF hkont.
        FORMAT COLOR COL_TOTAL INTENSIFIED.
        WRITE: / sy-vline,
                 'Total', <fs_bsis_bsas>-hkont, 'GI'.
        IF NOT lv_dmbtr_tot IS INITIAL.
          WRITE: AT 76(20) lv_dmbtr_tot RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total1 IS INITIAL.
          WRITE: (20) lv_total1         RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total2 IS INITIAL.
          WRITE (20) lv_total2          RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total3 IS INITIAL.
          WRITE (20) lv_total3          RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total4 IS INITIAL.
          WRITE (20) lv_total4          RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total5 IS INITIAL.
          WRITE (20) lv_total5          RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total6 IS INITIAL.
          WRITE: (20) lv_total6         RIGHT-JUSTIFIED.
        ENDIF.
        IF NOT lv_total7 IS INITIAL.
          WRITE: (20) lv_total7         RIGHT-JUSTIFIED.
        ENDIF.
        WRITE: AT lv_pos2 sy-vline.
        FORMAT COLOR OFF.
        CLEAR: lv_total1, lv_total2, lv_total3,
               lv_total4, lv_total5, lv_total6,
               lv_total7, lv_dmbtr_tot.
        WRITE: / sy-uline(lv_pos2).
      ENDAT.
      lv_asof = p_year + 6.
      IF lv_asof > p_asof+0(4).
        lv_asof = p_asof+0(4).
      ENDIF.
      CLEAR lv_check.
      ADD 1 TO lv_check.
      FORMAT COLOR OFF.
    ENDLOOP.
    SKIP 5.
    ex_bsis_bsas[] = it_bsis_bsas[].
    ex_exch[]      = it_exch[].
  ENDMETHOD.
* METHOD conversion                            *
  METHOD conversion.
    IF year = p_asof+0(4).
*     get last date of a given month and year
      CALL FUNCTION 'LAST_DAY_OF_MONTHS'
       EXPORTING
         day_in                  = p_asof
       IMPORTING
         last_day_of_month       = lv_givendate
*     EXCEPTIONS
*       DAY_IN_NO_DATE          = 1
*       OTHERS                  = 2
      IF sy-subrc <> 0.
*       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*       WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ELSE.
*   get last date of a given year
      CALL FUNCTION 'HR_E_GET_FISC_YEAR_DATES'
        EXPORTING
          fisc_year         = year
      IMPORTING
*      FISC_FECINI       =
         fisc_fecfin       = lv_date
*    EXCEPTIONS
*      ERROR             = 1
*      OTHERS            = 2
      IF sy-subrc <> 0.
*       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*       WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
    IF lv_date IS INITIAL.
      t_date = lv_givendate.
      CLEAR lv_givendate.
    ELSE.
      t_date = lv_date.
      CLEAR lv_date.
    ENDIF.
*   get exchange rate from a given currency to US dollars
    CALL FUNCTION 'BAPI_EXCHANGERATE_GETDETAIL'
      EXPORTING
        rate_type        = rate_type
        from_curr        = from_curr
        to_currncy       = to_curr
        date             = t_date
      IMPORTING
        exch_rate        = t_exch_rate
*      RETURN           =
  ENDMETHOD.
ENDCLASS.
*       CLASS lcl_summary IMPLEMENTATION
CLASS lcl_summary IMPLEMENTATION.
* METHOD display_summary                       *
  METHOD display_summary.
    TYPES: BEGIN OF t_total,
            hkont      TYPE bsis-hkont,
            waers      TYPE bsis-waers,
            wrbtr      TYPE bsis-wrbtr,
            dmbtr      TYPE bsis-dmbtr,
            gl_bal     TYPE bsis-wrbtr,
            unrealized TYPE bsis-wrbtr,
           END OF t_total.
    DATA: lv_balance        TYPE bsis-wrbtr,
          lv_date(10)       TYPE c,
          lv_color(1)       TYPE n VALUE '1',
          lv_wrbtr          TYPE bsis-wrbtr,
          lv_dmbtr          TYPE bsis-dmbtr,
          lv_gl_bal         TYPE bsis-wrbtr,
          lv_unrealized     TYPE bsis-wrbtr,
          lv_old_year       TYPE bsis-gjahr,
          lv_new_year       TYPE bsis-gjahr,
          lv_flag(1)        TYPE n,
          lt_bsis_bsas_dum  TYPE STANDARD TABLE OF t_bsis_bsas,
          lt_total          TYPE STANDARD TABLE OF t_total,
          wa_total          LIKE LINE OF lt_total.
    FIELD-SYMBOLS: <fs_dum> LIKE LINE OF lt_bsis_bsas_dum.
    it_bsis_bsas[] = im_bsis_bsas[].
    it_exch[]      = im_exch[].
    CLEAR wa_exch.
    SORT it_bsis_bsas BY hkont year_dum DESCENDING waers.
    lt_bsis_bsas_dum[] = it_bsis_bsas[].
    LOOP AT it_bsis_bsas ASSIGNING <fs_bsis_bsas>.
      AT NEW hkont.
        MOVE <fs_bsis_bsas>-hkont TO wa_summary-hkont.
      ENDAT.
      AT NEW year_dum.
        MOVE <fs_bsis_bsas>-year_dum TO wa_summary-year_dum.
      ENDAT.
      AT NEW waers.
        MOVE <fs_bsis_bsas>-waers TO wa_summary-waers.
        t_from_curr = wa_summary-waers.
        READ TABLE it_exch WITH KEY year      = wa_summary-year_dum
                                    rate      = t_rate_type
                                    from_curr = t_from_curr
                                    INTO wa_exch TRANSPORTING exch_rate.
        IF sy-subrc = 0.
          MOVE wa_exch-exch_rate TO wa_summary-rate.
        ELSE.
          CALL METHOD me->conversion
             EXPORTING
                year      = wa_summary-year_dum
                rate_type = t_rate_type
                from_curr = t_from_curr
                to_curr   = t_to_curr
             IMPORTING
                exch_rate = t_exch_rate
                t_date    = t_date_out.
          IF t_exch_rate-exch_rate_v IS INITIAL.
            WRITE t_date_out TO lv_date USING EDIT MASK '__/__/____'.
            CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
                 EXPORTING
                      input  = lv_date
                 IMPORTING
                      output = lv_date.
            SELECT SINGLE ukurs FROM tcurr
            INTO t_exch_rate-exch_rate_v
            WHERE kurst = 'ME'
              AND fcurr = 'PHP'
              AND tcurr = 'USD'
              AND gdatu = lv_date.
          ENDIF.
          IF NOT t_exch_rate-exch_rate_v IS INITIAL.
            t_exch_rate-exch_rate_v = abs( t_exch_rate-exch_rate_v ).
            MOVE t_exch_rate-exch_rate_v TO wa_summary-rate.
          ENDIF.
        ENDIF.
      ENDAT.
      LOOP AT lt_bsis_bsas_dum ASSIGNING <fs_dum>
         WHERE hkont    = wa_summary-hkont
           AND year_dum = wa_summary-year_dum
           AND waers    = wa_summary-waers.
        ADD <fs_dum>-wrbtr TO wa_summary-wrbtr.
        ADD <fs_dum>-dmbtr TO wa_summary-dmbtr.
        IF NOT wa_exch-exch_rate IS INITIAL.
          IF <fs_dum>-waers = 'PHP'.
            lv_balance = 1 / wa_exch-exch_rate * wa_exch-exch_rate.
            lv_balance = <fs_dum>-wrbtr * lv_balance.
            ADD lv_balance TO wa_summary-gl_bal.
          ELSE.
            lv_balance = <fs_dum>-wrbtr * wa_exch-exch_rate.
            ADD lv_balance TO wa_summary-gl_bal.
          ENDIF.
        ENDIF.
        CLEAR lv_balance.
        DELETE lt_bsis_bsas_dum.
      ENDLOOP.
      DELETE it_bsis_bsas WHERE hkont    = wa_summary-hkont
                            AND year_dum = wa_summary-year_dum
                            AND waers    = wa_summary-waers.
      wa_summary-unrealized = wa_summary-dmbtr - wa_summary-gl_bal.
      APPEND wa_summary TO it_summary.
      CLEAR wa_summary.
    ENDLOOP.
    IF NOT it_summary[] IS INITIAL.
      CALL METHOD me->display_summary_header.
      CLEAR wa_summary.
      SORT it_summary BY hkont year_dum DESCENDING waers.
*/     WRITE SUMMARY
      LOOP AT it_summary INTO wa_summary.
        IF lv_color = 1.
          lv_color = 2.
        ELSE.
          lv_color = 1.
        ENDIF.
        MOVE: wa_summary-hkont     TO wa_total-hkont,
              wa_summary-waers     TO wa_total-waers.
        READ TABLE lt_total WITH KEY hkont = wa_summary-hkont
                                     waers = wa_summary-waers
                                     INTO wa_total.
        IF sy-subrc = 0.
          ADD: wa_summary-wrbtr      TO wa_total-wrbtr,
               wa_summary-dmbtr      TO wa_total-dmbtr,
               wa_summary-gl_bal     TO wa_total-gl_bal,
               wa_summary-unrealized TO wa_total-unrealized.
          MODIFY lt_total FROM wa_total TRANSPORTING
           wrbtr dmbtr gl_bal unrealized
              WHERE hkont = wa_summary-hkont
                AND waers = wa_summary-waers.
          CLEAR wa_total.
          lv_flag = 1.
        ELSE.
          ADD: wa_summary-wrbtr      TO wa_total-wrbtr,
               wa_summary-dmbtr      TO wa_total-dmbtr,
               wa_summary-gl_bal     TO wa_total-gl_bal,
               wa_summary-unrealized TO wa_total-unrealized.
        ENDIF.
*       write sub-total for every end of a year
        lv_new_year = wa_summary-year_dum.
        IF lv_new_year <> lv_old_year AND NOT lv_old_year IS INITIAL.
          FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
          WRITE: /    sy-vline,
                 (42) 'Subtotal',
                 (18) lv_wrbtr      RIGHT-JUSTIFIED,
                 (18) lv_dmbtr      RIGHT-JUSTIFIED,
                 (18) lv_gl_bal     RIGHT-JUSTIFIED,
                 (18) lv_unrealized RIGHT-JUSTIFIED,
                      sy-vline.
          FORMAT COLOR OFF.
          CLEAR: lv_wrbtr, lv_dmbtr, lv_gl_bal, lv_unrealized.
        ENDIF.
        lv_old_year = lv_new_year.
        ADD: wa_summary-wrbtr      TO lv_wrbtr,
             wa_summary-dmbtr      TO lv_dmbtr,
             wa_summary-gl_bal     TO lv_gl_bal,
             wa_summary-unrealized TO lv_unrealized.
        FORMAT INTENSIFIED OFF COLOR = lv_color.
        WRITE: /    sy-vline,
               (15) wa_summary-hkont,
               (04) wa_summary-year_dum,
               (05) wa_summary-waers,
               (15) wa_summary-rate,
               (18) wa_summary-wrbtr,
               (18) wa_summary-dmbtr,
               (18) wa_summary-gl_bal,
               (18) wa_summary-unrealized,
                    sy-vline.
        FORMAT COLOR OFF.
        IF NOT lv_flag = 1.
          APPEND wa_total TO lt_total.
          CLEAR wa_total.
        ENDIF.
        AT END OF hkont.
*         write the last sub-total
          FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
          WRITE: /    sy-vline,
                 (37) 'Subtotal', wa_summary-year_dum,
                 (18) lv_wrbtr      RIGHT-JUSTIFIED,
                 (18) lv_dmbtr      RIGHT-JUSTIFIED,
                 (18) lv_gl_bal     RIGHT-JUSTIFIED,
                 (18) lv_unrealized RIGHT-JUSTIFIED,
                      sy-vline.
          FORMAT COLOR OFF.
          CLEAR: lv_wrbtr, lv_dmbtr, lv_gl_bal, lv_unrealized.
*         write the total for a given account code(HKONT)
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          LOOP AT lt_total INTO wa_total
             WHERE hkont = wa_summary-hkont.
            WRITE: /    sy-vline.
            IF sy-tabix = 1.
              WRITE: (25) 'Total', wa_summary-hkont.
            ENDIF.
            IF sy-tabix = 1.
              WRITE: (05) wa_total-waers,
                     (18) wa_total-wrbtr,
                     (18) wa_total-dmbtr,
                     (18) wa_total-gl_bal,
                     (18) wa_total-unrealized,
                          sy-vline.
            ELSE.
              WRITE: AT 40(05) wa_total-waers,
                          (18) wa_total-wrbtr,
                          (18) wa_total-dmbtr,
                          (18) wa_total-gl_bal,
                          (18) wa_total-unrealized,
                               sy-vline.
            ENDIF.
          ENDLOOP.
          FORMAT COLOR OFF.
        ENDAT.
        CLEAR lv_flag.
      ENDLOOP.
      WRITE: / sy-uline(122).
    ENDIF.
  ENDMETHOD.
* METHOD display_summary                       *
  METHOD display_summary_header.
    FORMAT COLOR COL_HEADING.
    WRITE: /    sy-uline(122),
           /    sy-vline,
           (15) 'GL Account'  CENTERED,
           (04) 'Year'        CENTERED,
           (05) 'Curr.'       CENTERED,
           (15) 'Rate'        CENTERED,
           (18) 'Trans. Curr' CENTERED,
           (18) 'Local Curr.' CENTERED,
           (18) 'GL Balance'  CENTERED,
           (18) 'Unrealized'  CENTERED,
                 sy-vline,
           /     sy-uline(122).
    FORMAT COLOR OFF.
  ENDMETHOD.
ENDCLASS.
*       CLASS lcl_handler IMPLEMENTATION
CLASS lcl_handler IMPLEMENTATION.
  METHOD handle_event.
    MESSAGE i008 WITH 'No data found for account no:' hkont.
    LEAVE LIST-PROCESSING.
  ENDMETHOD.
ENDCLASS.
* TOP-OF-PAGE                                  *
TOP-OF-PAGE.
  DATA: o_top TYPE REF TO lcl_main.
  CREATE OBJECT o_top.
  CALL METHOD o_top->top_of_page.
* START-OF-SELECTION                           *
START-OF-SELECTION.
  DATA: o_main           TYPE REF TO lcl_main,
        o_handler        TYPE REF TO lcl_handler,
        o_summary        TYPE REF TO lcl_summary,
        it_bsis_bsas_dum TYPE STANDARD TABLE OF t_bsis_bsas,
        it_exch_dum      LIKE it_exch.
  CREATE OBJECT: o_main, o_handler, o_summary.
  SET HANDLER o_handler->handle_event FOR ALL INSTANCES.
  CALL METHOD o_main->get_data.
  CALL METHOD o_main->get_diff.
  CALL METHOD o_main->display_subheader.
  CALL METHOD o_main->display_header.
  CALL METHOD o_main->get_rate_and_show
     IMPORTING
        ex_bsis_bsas = it_bsis_bsas_dum
        ex_exch      = it_exch_dum.
  CALL METHOD o_summary->display_summary
     EXPORTING
        im_bsis_bsas = it_bsis_bsas_dum
        im_exch      = it_exch_dum.

Similar Messages

  • I need abap oops web site?

    i need abap oops help web site?

    Hi,
    Go through the below links,
    For Materials:
    1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
    2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
    OO ABAP links:
    1) http://www.erpgenie.com/sap/abap/OO/index.htm
    2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    <b>Reward Points if it helps,</b>
    Satish
    Excellent simple pgms in SAP.
    ABAP_OBJECTS_ENJOY_0 Template for Solutions of ABAP Object Enjoy Course
    ABAP_OBJECTS_ENJOY_1 Model Solution 1: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_2 Model Solution 2: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_3 Model Solution 3: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_4 Model Solution 4: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_5 Model Solution 5: ABAP Objects Enjoy Course
    DEMO_ABAP_OBJECTS Complete Demonstration for ABAP Objects
    DEMO_ABAP_OBJECTS_CONTROLS GUI Controls on Screen
    DEMO_ABAP_OBJECTS_EVENTS Demonstration of Events in ABAP Objects
    DEMO_ABAP_OBJECTS_GENERAL ABAP Objects Demonstration
    DEMO_ABAP_OBJECTS_INTERFACES Demonstration of Interfaces in ABAP Objects
    DEMO_ABAP_OBJECTS_METHODS Demonstration of Methods in ABAP Objects
    DEMO_ABAP_OBJECTS_SPLIT_SCREEN Splitter Control on Screen

  • I need  abap oops help docu?

    i need abap oops help docu?

    Hi Karthikeyan,
    Chk this standard Programs.
    ABAP_OBJECTS_ENJOY_0 Template for Solutions of ABAP Object Enjoy Course
    ABAP_OBJECTS_ENJOY_1 Model Solution 1: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_2 Model Solution 2: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_3 Model Solution 3: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_4 Model Solution 4: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_5 Model Solution 5: ABAP Objects Enjoy Course
    DEMO_ABAP_OBJECTS Complete Demonstration for ABAP Objects
    DEMO_ABAP_OBJECTS_CONTROLS GUI Controls on Screen
    DEMO_ABAP_OBJECTS_EVENTS Demonstration of Events in ABAP Objects
    DEMO_ABAP_OBJECTS_GENERAL ABAP Objects Demonstration
    DEMO_ABAP_OBJECTS_INTERFACES Demonstration of Interfaces in ABAP Objects
    DEMO_ABAP_OBJECTS_METHODS Demonstration of Methods in ABAP Objects
    DEMO_ABAP_OBJECTS_SPLIT_SCREEN Splitter Control on Screen
    links for OO ABAP.
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com.
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    some more materials.
    Go through the following Documents Links & Materials for ABAP Objects
    check the below links lot of info and examples r there
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/sap.user72/blog/2005/05/10/a-small-tip-for-the-beginners-in-oo-abap
    /people/ravikumar.allampallam/blog/2005/02/11/abap-oo-in-action
    /people/thomas.jung3/blog/2005/09/08/oo-abap-dynpro-programming
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    check the below links lot of info and examples r there
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    OO ABAP is nothing but a class-method apprach to write ABAP codes and define them : below are few of the informations which will be of help for a newbie :
    Types of attributes and the basic concepts :
    Public attributes
    Private attributes
    Instance attributes
    Static attributes
    Public methods
    Private methods
    Constructor method
    Static constructor
    Protected components
    Polymorphism
    Public attributes
    Public attributes are defined in the PUBLIC section and can be viewed and changed from outside the class. There is direct access to public attributes. As a general rule, as few public attributes should be defined as possible.
    PUBLIC SECTION.
    DATA: Counter type i.
    Private attributes
    Private attributes are defined in the PRIVATE section. The can only be viewes and changed from within the class. There is no direct access from outside the class.
    PRIVATE SECTION.
    DATA: name(25) TYPE c,
    planetype LIKE saplane-planetyp,
    Instance attributes
    There exist one instance attribute for each instance of the class, thus they exist seperately for each object. Instance attributes are declared with the DATA keyword.
    Static attributes
    Static attributes exist only once for each class. The data are the same for all instances of the class, and can be used e.g. for instance counters. Static attributes are defined with the keyword CLASS-DATA.
    PRIVATE SECTION.
    CLASS-DATA: counter type i,
    Public methods
    Can called from outside the class
    PUBLIC SECTION.
    METHODS: set_attributes IMPORTING p_name(25) TYPE c,
    p_planetype LIKE saplane-planetyp,
    Private methods
    Can only be called from inside the class. They are placed in the PRIVATE section of the class.
    Constructor method
    Implicitly, each class has an instance constructor method with the reserved name constructor and a static constructor method with the reserved name class_constructor.
    The instance constructor is executed each time you create an object (instance) with the CREATE OBJECT statement, while the class constructor is executed exactly once before you first access a class.
    The constructors are always present. However, to implement a constructor you must declare it explicitly with the METHODS or CLASS-METHODS statements. An instance constructor can have IMPORTING parameters and exceptions. You must pass all non-optional parameters when creating an object. Static constructors have no parameters.
    Static constructor
    The static constructor is always called CLASS_CONSTRUCTER, and is called autmatically before the clas is first accessed, that is before any of the following actions are executed:
    Creating an instance using CREATE_OBJECT
    Adressing a static attribute using <classname>-><attrbute>
    Calling a ststic attribute using CALL METHOD
    Registering a static event handler
    Registering an evetm handler method for a static event
    The static constructor cannot be called explicitly.
    Protected components
    When we are talking subclassing and enheritance there is one more component than Public and Private, the Protected component. Protected components can be used by the superclass and all of the subclasses. Note that Subclasses cannot access Private components.
    Polymorphism
    Polymorphism: When the same method is implemented differently in different classes. This can be done using enheritance, by redefining a method from the superclass in subclasses and implement it differently.
    Reward points if helpful.
    Regards,
    Harini.S

  • I need basic ABAP OOPS material to learn OOPS concepts

    Hi,
    I need  ABAP Object oriented programming material.
    if any one having pls send it to my mail id
    [email protected]
    Thanks
    lokesh

    Hi,
    check the below links lot of info and examples r there
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    For Materials:
    1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
    2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
    1) http://www.erpgenie.com/sap/abap/OO/index.htm
    2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    Regards,
    Priyanka.

  • ABAP  OOP example and invitation

    For quite a while, I've been trying to learn more about ABAP OOP. But, I've
    found many of the examples on the web, and in SAP provided articles, either
    difficult to understand or outright lame. They never seemed to illustrate
    much of what a staff ABAP programmer is called upon to do.
    So, last week I decided to take the problem head on and see if I could come
    up with something we all could use as a starting point to learn more about
    ABAP objects.
    Here's a chunk of code that I want everybody to pick apart, critique,
    modify, append or whatever. The only stipulation is that you post your
    suggestions back to this forum. Maybe after we get some nice ABAP objects
    together, the forum manager can put them into an OOP area of this website.
    ================================================================
    The first object I created uses the MARC (Plant Data for Material) table.
    I wanted to use it to learn more about how "Selection Sets" can be used with
    ABAP OOP.
    The class has five methods:
    -o- constructor
    -o- return_marc_table
    -o- return_subset_marc_table
    -o- length
    -o- write_marc_table
    This class isn't, really, very useful. But, it does show how selection-sets
    can be used with ABAP oop. The code is studded with commented BREAK-POINTS
    that you can turn on and off to examine things.
    Split the code into two files: Main program and Top include. Look at the
    initialization section and you should be able to see how you can tweak
    the materials selected for your environment.
    enjoy
    [email protected]
    REPORT zejb_oop_sel_set2 .
    This program is designed to demonstrate passing selection sets
    to an ABAP object
    The program has some educational value. But, other than that
    probably isn't of much use.
    =========================================== Main Program - BEGIN
    INCLUDE zejb_oop_sel_set2_top.      "data and class definitions
    SELECT-OPTIONS:
      s_matnr FOR marc-matnr,
      s_werks FOR marc-werks.
    DATA: my_marc TYPE REF TO marc_object .
    ============================================= START-OF-SELECTION
    START-OF-SELECTION.
      matnr_selector[] = s_matnr[] .
      werks_selector[] = s_werks[].
    call the constructor table and create the CLASS-DATA
      CREATE OBJECT my_marc
        EXPORTING
          s_matnr  = matnr_selector
          s_werks  = werks_selector .
    ================================================ END-OF-SELECTION
    END-OF-SELECTION.
      CALL METHOD my_marc->return_marc_table
        IMPORTING
          return_marc = tb_marc.
    BREAK-POINT. " inspect tb_marc
      CALL METHOD my_marc->length
        IMPORTING
          table_size = zzlines.
      WRITE:/ 'Class-Data table in object my_marc has '
               , zzlines , ' lines'.
      ULINE.
      WRITE:/ 'printing internal table tb_marc'.
      CALL METHOD my_marc->write_marc_table
        EXPORTING
          print_table = tb_marc.
      SKIP.
    BREAK-POINT.
      examine matnr_subset_selector
      examine werks_subset_selector
      CALL METHOD my_marc->return_subset_marc_table
        EXPORTING
          s_matnr     = matnr_subset_selector
          s_werks     = werks_subset_selector
        IMPORTING
          return_marc = tb_subset_marc.
    BREAK-POINT.
      examine tb_subset_marc
      ULINE.
      WRITE:/ 'printing internal table tb_subset_marc'.
      CALL METHOD my_marc->write_marc_table
        EXPORTING
          print_table = tb_subset_marc.
      ULINE.
    ================================================== INITIALIZATION
    INITIALIZATION.
      DEFINE range_append.                                      "#EC *
    1 == range_name
        clear &1.                                               "#EC *
        &1-sign = &2.                                           "#EC *
        &1-option = &3.                                         "#EC *
        &1-low = &4.                                            "#EC *
        &1-high = &5.                                           "#EC *
        append &1. clear &1.                                    "#EC *
      END-OF-DEFINITION.                                        "#EC *
      DEFINE fill_range.                                        "#EC *
    1 == range_name
        clear &1.                                               "#EC *
        &1-sign = &2.                                           "#EC *
        &1-option = &3.                                         "#EC *
        &1-low = &4.                                            "#EC *
        &1-high = &5.                                           "#EC *
      END-OF-DEFINITION.                                        "#EC *
    modify these materials and plants to suit your environment
    or create a selection variant
      range_append s_matnr 'I' 'EQ' 'HAP100' space.
      range_append s_matnr 'I' 'EQ' 'HAP205' space.
      range_append s_matnr 'I' 'EQ' 'HAP221' space.
      range_append s_matnr 'I' 'EQ' 'HAP240' space.
      range_append s_matnr 'I' 'EQ' 'HAP245' space.
      range_append s_matnr 'I' 'EQ' 'HAP250' space.
      range_append s_matnr 'I' 'EQ' 'HAP260' space.
      range_append s_werks 'I' 'EQ' '1000' space.
      range_append s_werks 'I' 'EQ' '1020' space.
    fill subset selector
      fill_range st_matnr_selector 'I' 'EQ' 'HAP205' space.
      APPEND st_matnr_selector TO matnr_subset_selector.
      fill_range st_matnr_selector 'I' 'EQ' 'HAP250' space.
      APPEND st_matnr_selector TO matnr_subset_selector.
      fill_range st_werks_selector 'I' 'EQ' '1000' space.
      APPEND st_werks_selector TO werks_subset_selector.
    ============================================ Main Program - End
    *&  Include           ZEJB_OOP_SEL_SET2_TOP                       *
    ============================================ Top include - BEGIN
    TABLES : marc.
    DATA: tb_marc TYPE TABLE OF marc,
          tb_subset_marc TYPE TABLE OF marc,
          st_marc TYPE marc.                                    "#EC *
    "^^^^^^^ to/from structure. use as needed
    DATA: st_matnr_selector TYPE range_s_matnr,
    st_werks_selector TYPE range_werks,
    matnr_selector TYPE TABLE OF range_s_matnr,
    werks_selector TYPE TABLE OF range_werks,
    matnr_subset_selector TYPE TABLE OF range_s_matnr,
    werks_subset_selector TYPE TABLE OF range_werks.
    DATA: zzlines TYPE i. " size of class_data table.
          CLASS marc_object DEFINITION
    NOTE: for those new to abap objects, EVERYTHING in abap OOP
          must be explicitly "TYPED". more on this as I go along
    CLASS marc_object DEFINITION.
      PUBLIC SECTION.
        TYPES:
          typ_marc TYPE TABLE OF marc,
          typ_matnr_selector TYPE TABLE OF range_s_matnr,
          typ_werks_selector TYPE TABLE OF range_werks.
        DATA: return_marc TYPE typ_marc,
              print_table TYPE typ_marc.
        CLASS-DATA:
          class_marc
            TYPE typ_marc. " <== inside public area
        ^^^^^^^ this table will be available to all methods
        ^^^^^^^ in the class
        METHODS:
          constructor
            IMPORTING
              s_matnr  TYPE typ_matnr_selector
              s_werks  TYPE typ_werks_selector OPTIONAL ,
          return_marc_table
            EXPORTING return_marc TYPE typ_marc ,
          return_subset_marc_table
            IMPORTING
              s_matnr  TYPE typ_matnr_selector
              s_werks  TYPE typ_werks_selector OPTIONAL
            EXPORTING
              return_marc TYPE typ_marc,
          length EXPORTING table_size TYPE i,
          write_marc_table
            IMPORTING print_table TYPE typ_marc.
      PROTECTED SECTION.
      PRIVATE SECTION.
    ENDCLASS.                    "marc_object DEFINITION
    *EJECT
          CLASS zget_sales_order_change IMPLEMENTATION
    CLASS marc_object IMPLEMENTATION.
      METHOD constructor .
        DATA:
          s_lcl_matnr TYPE TABLE OF  range_s_matnr ,
          s_lcl_werks TYPE TABLE OF  range_werks .
        s_lcl_matnr[] = s_matnr[] .
        s_lcl_werks[] = s_werks[] .
        SELECT * FROM marc
          APPENDING TABLE class_marc
          WHERE matnr IN s_lcl_matnr
            AND werks IN s_lcl_werks.
        SORT class_marc BY matnr werks.
       BREAK-POINT.
      ENDMETHOD.                    "xxx
      METHOD return_marc_table.
        return_marc[] = class_marc[] .
       BREAK-POINT. " examine class_marc
      ENDMETHOD.                    "return_marc table
      METHOD        return_subset_marc_table.
        DATA: st_marc TYPE marc.
        REFRESH return_marc.
        LOOP AT class_marc INTO st_marc
          WHERE matnr IN s_matnr
            AND werks IN s_werks  .
          APPEND st_marc TO return_marc.
        ENDLOOP.
       BREAK-POINT. " examine return_marc
      ENDMETHOD.                    "return_subset_marc_table
      METHOD length.
        DESCRIBE TABLE class_marc LINES  table_size.
      ENDMETHOD.                    "length
      METHOD write_marc_table.
        DATA: st_marc TYPE marc.
        LOOP AT print_table INTO st_marc.
          WRITE:/ 'Material ' , st_marc-matnr,
          'Plant ' , st_marc-werks.
        ENDLOOP.
      ENDMETHOD.                    "write_marc_table
    ENDCLASS.                    "marc_object IMPLEMENTATION
    ============================================== Top include - END

    Search using " ALV Factory methods" u'll get lots of material.
    for instance u can a look at this wiki
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/abap/abap%2b-%2bdeveloping%2binteractive%2balv%2breport%2busing%2booabap
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/community/object%2bmodel%2balv%2b-%2binteractive
    [ALVOO PDF|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/cda3992d-0e01-0010-90b2-c4e1f899ac01]

  • Info on ABAP-OOPS

    Hi All,
    I want to know where exactly can we use ABAP OOPS..
    Can  we use in Classical Reports,
                            Pool Programming
    If we can use them in Pool Programming can you help me out with a small example.
    Regards

    hi,
    Object Orientation
    A programming technique in which solutions reflect real world objects
    What are objects ?
    An object is an instantiation of a class. E.g. If “Animal” is a class, A cat
    can be an object of that class .
    With respect to code, Object refers to a set of services ( methods /
    attributes ) and can contain data
    What are classes ?
    A class defines the properties of an object. A class can be instantiated
    as many number of times
    Advantages of Object Orientated approach
    Easier to understand when the system is complex
    Easy to make changes
    Encapsulation - Can restrict the visibility of the data ( Restrict the access to the data )
    Polymorphism - Identically named methods behave differently in different classes
    Inheritance - You can use an existing class to define a new class
    Polymorphism and inheritance lead to code reuse
    Classes in abap
    Classes in ABAP are either local or global
    Global classes are declared in class builder (SE24 )
    Local classes are declared within programs
    Components of a class
    Attributes : Internal data fields of class
    Attributes can be either instance attributes – specific to each instance of the class ( object ) or static attributes which are common to all instances
    Methods :
    Subroutines / procedures in a class that define the behavior of the object. Methods can also be instance methods or static methods
    Encapsulation in ABAP
    Encapsulation is obtained through the restriction in visibility of attributes / methods attained through the definition of Public, Private and Protected section of a class
    Public Section
    All of the components declared in the public section are accessible to all users of the class, and to the methods of the class and any classes that inherit from it. The public components of the class form the interface between the class and its users.
    Protected Section
    All of the components declared in the protected section are accessible to all methods of the class and of classes that inherit from it.
    Private Section
    Components that you declare in the private section are only visible in the methods of the same class.
    Inheritance in ABAP
    Inheritance allows you to derive a class based on an already existing class.
    CLASS <subclass> DEFINITION INHERITING FROM <superclass>.
    ENDCLASS.
    CLASS <subclass> IMPLEMENTATION.
    ENDCLASS.
    All attributes / methods of super class become the property of the subclass too. Only public and protected attributes / methods are visible in the subclass
    Polymorphism in ABAP
    When methods with same name perform differently under different
    circumstances we call it polymorphism.
    Methods redefined in a subclass is an example for Polymorphism
    Interfaces
    Interfaces are used to define the model of a class.
    They also like classes can be either local or global.
    Global interfaces are defined through SE24 and local interfaces are defined in program.
    Please check this online document (starting page 1291).
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf
    Also check this links as well.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.futureobjects.de/content/intro_oo_e.html
    http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
    /people/ravikumar.allampallam/blog/2005/02/11/abap-oo-in-action
    check the below links lot of info and examples r there
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards
    Omkar

  • Need ABAP Objects Tutorial

    Hi,
    I m very new in ABAP Objects.
    So I need ABAP Objects tutorial.
    Plz give me.
    Thanks
    Deep Sama

    hii
    follow the links
    For basic stuff......
    abap oops
    http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/frameset.htm
    ABAP Business Development and Service Provisioning/ABAP Objects
    General information
    What is Object Orientation?
    some blogs
    A small tip for the beginners in OO ABAP
    Object Oriented ABAP (OO-ABAP)
    and others wiki OO Abap
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/sap.user72/blog/2005/05/10/a-small-tip-for-the-beginners-in-oo-abap
    /people/ravikumar.allampallam/blog/2005/02/11/abap-oo-in-action
    /people/thomas.jung3/blog/2005/09/08/oo-abap-dynpro-programming
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    some sap doc
    ALV Gird Control (BC-SRV-ALE)
    SAP Container
    SAP Control Framework
    SAP Picture (BC-CI)
    SAP Textedit
    And if you can find a lot of information at SDN Blogs, I suggest you these ones: /people/dirk.feeken/blog/2007/07/06/abap-trial-version-for-newbies-part-17--your-first-abap-object, https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/0a33479c-0b01-0010-7485-dc8c09d6bc69, https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3e59b790-0201-0010-88aa-bc8a7f95f6fb and https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3412d190-0201-0010-aaaa-ff5a315ae5fe.
    cheers,
    sharad.

  • Scrolling Issue - ALV- ABAP OOPS!

    Hello All,
    I have a strange issue with regards to ALV developed using ABAP OOPS. I have more than 25 fields on the output screen.
    For each field on output screen, F4 help is possible. So when I scroll to the right most fields on the screen, do a f4 help and fill the value, the alv output screen automatically moves to the left side.
    I tried to resolve using SET_SCROLL_INFO_VIA_ID method of the class CL_GUI_ALV_GRID.
    CALL METHOD g_alvgrid->set_scroll_info_via_id
        EXPORTING
          is_row_info = v_scrl_row_info
          is_col_info = v_scrl_col_info.
    * Set Scroll Position
      CALL METHOD g_alvgrid->set_current_cell_via_id
        EXPORTING
          is_row_id    = v_scrl_row_set
          is_column_id = v_scrl_col_set.
    But still moves to the left side.
    If you have some ideas on this, pls share the same. Thanks in advance.
    Best Regards
    Himayat.
    Edited by: Himayatullah Md on Nov 25, 2011 4:42 PM
    Please use code tags
    Edited by: Rob Burbank on Nov 25, 2011 10:49 AM

    If you use [refresh_table_display|http://help.sap.com/saphelp_erp2004/helpdata/en/0a/b5531ed30911d2b467006094192fe3/frameset.htm] set paramter is_stable to keep scrollbar on desired position.
    Regards
    Marcin

  • ABAP OOPs concept

    why u want Events and whts the use of it in ABAP OOPs concept

    Locked for the same reason the others are
    And please don't use textspeak.
    Rob

  • Reports using abap-oops

    Hi,
    This is chakravarthi. I have to learn abap-oops.
    Sure! No Problem. You can find a classroom course and get on with it.
    Edited by: kishan P on Apr 15, 2011 11:56 AM

    check ur fcat

  • Use of "super" key word in abap oops...

    Hi,
      Can any one explain me what is the use of ' super ' key word in abap oops. excluding super class.
    With Regards,
    M.S.Amirtharaj Vijay.

    Vijay,
    please read the sap documentation or f1 help
    Thanks
    Bala Duvvuri

  • Need ABAP Query Builder Like Ms-SQLQuery Builder for Critical ABAP-Query

    Dear ABAP Friends,
    I Need ABAP Query Builder which is as flexible as Ms-SQLQuery Builder for building Critical ABAP-Queries e.g. "I have 4 master tables , Each master table having self-join with some condition and these 4 Result-Sets have Innser-Join+Left Outer Join " Please Help.

    I have seen TCODE SQ01, But I found that this TCODE may be used to build simple ABAP Query with Selection-screen which can be used for generating simple report. But i think for critical query ??????????
    I have build my Query in MS-SQL and got the right output, Now how do I write this in ABAP Using Join statement. Please Help.....................
    My SQL Query as below(Remember this is a single Query and verified correct in SQL):
    SELECT     P1.PERNR, P1.ENAME, P1.BEGDA AS P1BEGDA, P1.ENDDA AS P1ENDDA, P1.AEDTM AS P1AEDTM, P1.UNAME AS P1UNAME, P1.PERSG, P1.PERSK,
                          P1.PLANS,
           P2.ENDDA AS P2ENDDA, P2.BEGDA AS P2BEGDA, P2.AEDTM AS P2AEDTM, P2.UNAME AS P2UNAME, P2.GESCH, P2.FAMST,
                       P21.ENDDA AS P21ENDDA, P21.BEGDA AS P21BEDDA, P21.AEDTM AS P21AEDTM, P21.UNAME AS P21UNAME, P21.FAMSA, P21.FAVOR, P21.FANAM,
                          P21.FGBDT, P21.FASEX,
                       P0.ENDDA AS P0ENDDA, P0.BEGDA AS P0BEDDA, P0.AEDTM AS P0AEDTM, P0.UNAME AS P0UNAME, P0.MASSN,
                          P0.MASSG
    FROM         (SELECT     TOP (100) PERCENT PA0001_2.PERNR, PA0001_2.ENDDA, PA0001_2.BEGDA, PA0001_2.AEDTM, PA0001_2.UNAME, PA0001_2.PERSG,
                                                  PA0001_2.PERSK, PA0001_2.PLANS, PA0001_2.ENAME
                           FROM          PA0001 AS PA0001_2 INNER JOIN
                                                      (SELECT     PERNR, MAX(ENDDA) AS ENDDA
                                                        FROM          PA0001 AS PA0001_1
                                                        GROUP BY PERNR) AS Pi1
    ON PA0001_2.PERNR = Pi1.PERNR
    AND PA0001_2.ENDDA = Pi1.ENDDA
                                               ORDER BY PA0001_2.PERNR) AS P1 LEFT OUTER JOIN
                              (SELECT     TOP (100) PERCENT PA0000.PERNR, PA0000.ENDDA, PA0000.BEGDA, PA0000.AEDTM, PA0000.UNAME, PA0000.MASSN,
                                                       PA0000.MASSG
                                FROM          PA0000 INNER JOIN
                                                           (SELECT     PERNR, MAX(AEDTM) AS Pi0AEDTM
                                                             FROM          PA0000 AS PA0000_1
                                                             GROUP BY PERNR) AS Pi0 ON PA0000.PERNR = Pi0.PERNR AND PA0000.AEDTM = Pi0.Pi0AEDTM
                                ORDER BY PA0000.PERNR) AS P0 ON P1.PERNR = P0.PERNR LEFT OUTER JOIN
                              (SELECT     TOP (100) PERCENT PA0021.PERNR, PA0021.ENDDA, PA0021.BEGDA, PA0021.AEDTM, PA0021.UNAME, PA0021.FAMSA, PA0021.FAVOR,
                                                       PA0021.FANAM, PA0021.FGBDT, PA0021.FASEX
                                FROM          PA0021 INNER JOIN
                                                           (SELECT     PERNR, MAX(AEDTM) AS Pi21AEDTM
                                                             FROM          PA0021 AS PA0021_1
                                                             GROUP BY PERNR) AS Pi21 ON PA0021.PERNR = Pi21.PERNR AND PA0021.AEDTM = Pi21.Pi21AEDTM
                                ORDER BY PA0021.PERNR) AS P21 ON P1.PERNR = P21.PERNR LEFT OUTER JOIN
                              (SELECT     TOP (100) PERCENT PA0002.PERNR, PA0002.ENDDA, PA0002.BEGDA, PA0002.AEDTM, PA0002.UNAME, PA0002.GESCH,
                                                       PA0002.FAMST
                                FROM          PA0002 INNER JOIN
                                                           (SELECT     PERNR, MAX(ENDDA) AS Pi2ENDDA
                                                             FROM          PA0002 AS PA0002_1
                                                             GROUP BY PERNR) AS Pi2 ON PA0002.PERNR = Pi2.PERNR AND PA0002.ENDDA = Pi2.Pi2ENDDA
                                ORDER BY PA0002.PERNR) AS P2 ON P1.PERNR = P2.PERNR
    xxxxx----
    Edited by: Goutam Roy on May 5, 2009 1:11 PM

  • Hi i need ABAP-HR meterial

    hi
    iam sivaram  i need ABAP-HR meterial please send to me

    Hi,
    chk this links.
    http://www.planetsap.com/index.htm is useful for the Basics in HR.
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    http://www.sap-basis-abap.com/saphr.htm
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Transactions
    http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/content.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/content.htm
    http://www.saptips.com/Previews/SAPtipsAugust-September2004TableOfContents.pdf
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Transactions
    http://help.sap.com/saphelp_46c/helpdata/en/4f/d528be575e11d189270000e8322f96/frameset.htm.
    http://www.sap-basis-abap.com/saphr.htm.
    http://www.sapgenie.com/faq/hr.htm
    http://www.sapgenie.com/workflow/scenarios.htm
    http://www.sap-img.com/human/hr-faq.htm
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    http://www.sapgenie.com/mysap/mysap_hr.htm
    Re: remunaration statement
    Regards
    Anver
    if hlped pls mark points

  • Abap oops-netweaver-xi

    hi
    could anyone provide me with the abap oops from basics wat is required for netweaver-xi

    Hi,
    ABAP mapping and the ABAP proxies would be useful.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5c46ab90-0201-0010-42bd-9d0302591383
    ABAP Proxies
    /people/ravikumar.allampallam/blog/2005/03/14/abap-proxies-in-xiclient-proxy
    /people/prateek.shah/blog/2005/06/14/file-to-r3-via-abap-proxy
    Regards,
    Bhavesh

  • Material for ABAP OOPS

    hi everybody, i am new ABAP oops. can anybody tell me any site or suggest me any material to learn ABAP oops from basics.
                       thnx in advance,
                              santosh.

    Hi,
    check the below links lot of info and examples r there
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    For Materials:
    1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
    2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
    1) http://www.erpgenie.com/sap/abap/OO/index.htm
    2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    Regards,
    Priyanka.

Maybe you are looking for

  • Messages opens when I receive a new iMessage/text

    Hi there, I use an iMac at work and an MBA at home. I also use an iPhone and an iPad. Don't ask. I quite like the integration of all the message across these devices. However, I keep encountering the problem that whenever I receive an iMessage or a t

  • When to use ACR vs. PS?

    I really like some of the tools in ACR for changing image color. I'm confused as to when I should use tools in ACR vs. Photoshop for non raw format files. It seems that it is really easy to change temperature and make other adjustments to non raw fil

  • Car Charger for Qosmio F60

    Hi, Is there a car charger available for the F60 laptop? I am having trouble finding one. Thanks

  • Magic trick to make Cinema Display see a closed Macbook?

    Setup: Macbook (computer) 23" Cinema Display (monitor) USB Apple KB / Mouse (kb/mouse) I've never been able to make sense of when the display can "see" the Macbook and vice versa. Sometimes I plug the video cable in for the display and it turns on, I

  • How can I distort an image like 3d bubbles.

    Hello everyone.  What I'm wanting to accomplish is making an image (static image jpg) feel like it's a lava lamp.  I found a really good tutorial on creative a lava lamp effect (the bubble movement) here (http://www.premiumbeat.com/blog/video-tutoria