‎2008 Jun 20 6:27 AM
Hi Friends,
Please can you tell me where can i find sample oops reports? .
If can i find sample oops programs or Please can u forward links where it is available.
thanks
ver
‎2008 Jun 20 6:35 AM
hi venkatravi,
below i am giving sample oops reports,
Report Z_OOPS_JSV *
*& *
&----
REPORT z_oops_jsv .
PARAMETER: p_int1 TYPE i,
p_int2 TYPE i.
TYPES:g_tot TYPE c.
DATA: BEGIN OF I_MARA OCCURS 2.
iNCLUDE STRUCTURE MARA.
DATA:END OF I_MARA.
-
CLASS c1_first DEFINITION
-
*
-
CLASS c1_first DEFINITION.
PUBLIC SECTION.
CLASS-DATA p_int3 TYPE i.
CLASS-METHODS: e1 RETURNING value(e_type) TYPE g_tot.
METHODS: m1 IMPORTING value(p_int4) TYPE i.
ENDCLASS. "c1_first DEFINITION
-
CLASS c1_first IMPLEMENTATION
-
*
-
CLASS: c1_first IMPLEMENTATION.
METHOD: m1.
p_int3 = p_int1 + p_int2.
IF p_int3 > 5.
p_int4 = 10.
ELSE.
p_int4 = p_int3.
ENDIF.
WRITE:/ 'total = ',p_int4.
ENDMETHOD. "m1
METHOD: e1.
IF p_int3 > 5.
e_type = 'Y'.
ELSE.
e_type = 'N'.
ENDIF.
ENDMETHOD. "e1
ENDCLASS. "c1_first IMPLEMENTATION
START-OF-SELECTION.
DATA: oref1 TYPE REF TO c1_first,
oref2 TYPE REF TO c1_first.
DATA : bool TYPE c.
CREATE OBJECT: oref1,oref2.
CALL METHOD oref2->e1
RECEIVING
e_type = bool.
SELECT * INTO TABLE I_MARA FROM MARA.
READ TABLE I_MARA WITH KEY MATNR = 'PEN'.
if sy-subrc = 0.
write i_mara-matnr.
endif.
IF bool = 'N'.
CALL METHOD oref1->m1
EXPORTING
p_int4 = 0.
ELSE.
WRITE 'sorry sir'.
ENDIF.
&----
*& Report Z_OOPS_NEW *
*& *
&----
*& *
*& *
&----
REPORT Z_OOPS_NEW .
include Z_parent .
include z_child.
start-of-selection.
data: objparent type ref to parent,
objchild type ref to child.
create object : objparent,
objchild.
call method : objparent->showval,
objchild->subval.
uline.
objparent->common_data = 'public data in main report'.
write : /5 objparent->common_data.
write : /5 objparent->protected_data.
REPORT Z_OOPS_NEW1 .
creation of parent & child class
include z_parent_cal.
data : par_obj type ref to parent_cal.
include z_child_cal.
start-of-selection.
data : chi_obj type ref to child_cal.
create object : par_obj,
chi_obj.
call method : chi_obj->sum_new.
uline.
write : /5 'public values in report'.
par_obj->cp_des = 'parent --- report'.
chi_obj->ch_des = 'child -
report'.
write : /5 par_obj->cp_des,
/5 chi_obj->ch_des.
&----
*& Include Z_CHILD_CAL *
&----
class child_cal definition.
public section .
data : c_num type i value ' 300',
s_new type i,
sub_new type i,
ch_des(20) type c value 'child --- public val'.
methods : sum_new.
private section .
data : ch_val(30) type c value ' private value in child class'.
endclass.
calculation of sum using the sum of the parent class
*calculation of substraction using the direct data value of the parent
*class
class child_cal implementation.
method : sum_new.
CALL METHOD par_obj->sum_value.
uline.
write : /5 ch_val.
s_new = par_obj->s_num + c_num.
s_new = s_num + c_num.
sub_new = par_obj->b_num - par_obj->a_num.
write : /5 ' sum in child class ',s_new.
write : /5 ' substraction in child class ',sub_new.
write : /5 ch_des.
endmethod.
endclass.
&----
*& Report Z_OOPS_NEW10 *
*& *
&----
*& *
*& *
&----
REPORT Z_OOPS_NEW10 .
calling method by importing & exporting values & also giving message
data : wa_num1 type i,
wa_num2 type i,
wa_num3 type i,
wa_num4 type p decimals 2.
parameters: p_inp1 type i,
p_inp2 type i.
include z_cls.
start-of-selection.
data : obj type ref to cls.
create object obj.
call method : obj->meth exporting inp1 = p_inp1
inp2 = p_inp2
importing value1 = wa_num1
value2 = wa_num2
value3 = wa_num3
value4 = wa_num4.
if p_inp2 > p_inp1 .
message e008(za).
else.
write : /5 'sum = ',wa_num1.
write : /5 'Substract = ',wa_num2.
write : /5 'Multiple = ',wa_num3.
write : /5 'Divide = ',wa_num4.
endif.
&----
*& Include Z_CLS *
&----
class cls definition.
public section.
methods : meth importing inp1 type i
inp2 type i
exporting value1 type i
value2 type i
value3 type i
value4 type p .
endclass.
class cls implementation.
method : meth.
value1 = inp1 + inp2 .
value2 = inp1 - inp2 .
value3 = inp1 * inp2 .
value4 = inp1 / inp2 .
endmethod.
endclass.
please go through the following links ,
for filter defining please go through the fillowing links,
[http://help.sap.com/saphelp_nw04/helpdata/en/16/e6eb40c4f8712ae10000000a155106/frameset.htm]
hope its clear to you,
Reward points if usefull,
Thanks,
Kalyan.
‎2008 Jun 20 6:29 AM
‎2008 Jun 20 6:30 AM
hi
In the Tcode ABAPDOCU there is a sub tree ABAP Objects and you have lot many programs
more help links
http://www.saptechnical.com/Tutorials/ALV/Interactive/oops.htm
http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm
https://www.sdn.sap.com/irj/sdn/advancedsearch?query=sampleoopsreport&cat=sdn_all
http://abapreports.blogspot.com/2008/06/sample-alv-program-using-oops-but-not.html
regards
prasanth
‎2008 Jun 20 6:30 AM
*&---------------------------------------------------------------------*
*& Report ZSPD_ALV_OOPS *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZSPD_ALV_OOPS .
TABLES : EKKO,EKPO,MAKT.
DATA : BEGIN OF IEKKO OCCURS 0,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BEDAT LIKE EKKO-BEDAT,
END OF IEKKO.
DATA : BEGIN OF IEKPO OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
END OF IEKPO.
DATA : BEGIN OF IMAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF IMAKT.
DATA : BEGIN OF IFINAL OCCURS 0,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
AEDAT LIKE EKKO-AEDAT,
BEDAT LIKE EKKO-BEDAT,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MAKTX LIKE MAKT-MAKTX,
END OF IFINAL.
*DATA : IFINALFUL LIKE STANDARD TABLE OF
DATA : OKCODE LIKE SY-UCOMM,
CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA : IFIELDCAT TYPE LVC_T_FCAT,
WFIELDCAT TYPE LVC_S_FCAT,
ILAYOUT TYPE LVC_S_LAYO,
ISORT TYPE LVC_T_SORT,
WSORT TYPE LVC_S_SORT.
SELECT-OPTIONS : S_AEDAT FOR EKKO-AEDAT.
START-OF-SELECTION.
PERFORM FILL_EKKO.
PERFORM FILL_EKPO.
PERFORM FILL_MAKT.
PERFORM BUILD_FINALTAB.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_SORT.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Form fill_ekko
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILL_EKKO .
SELECT EBELN AEDAT BEDAT INTO TABLE IEKKO FROM EKKO WHERE AEDAT IN S_AEDAT.
ENDFORM. " fill_ekko
*&---------------------------------------------------------------------*
*& Form fill_ekpo
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILL_EKPO .
IF NOT IEKKO[] IS INITIAL.
SELECT EBELN EBELP MATNR MENGE INTO TABLE IEKPO FROM EKPO FOR ALL ENTRIES IN IEKKO
WHERE EBELN = IEKKO-EBELN.
ENDIF.
ENDFORM. " fill_ekpo
*&---------------------------------------------------------------------*
*& Form fill_makt
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILL_MAKT .
IF NOT IEKPO[] IS INITIAL.
SELECT MATNR MAKTX FROM MAKT INTO TABLE IMAKT FOR ALL ENTRIES IN IEKPO WHERE
MATNR = IEKPO-MATNR.
ENDIF.
ENDFORM. " fill_makt
*&---------------------------------------------------------------------*
*& Form BUILD_FINALTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FINALTAB .
LOOP AT IEKPO.
IFINAL-MATNR = IEKPO-MATNR.
IFINAL-MENGE = IEKPO-MENGE.
IFINAL-EBELP = IEKPO-EBELP.
IFINAL-EBELN = IEKPO-EBELN.
READ TABLE IEKKO WITH KEY EBELN = IEKPO-EBELN.
IF SY-SUBRC = 0.
IFINAL-AEDAT = IEKKO-AEDAT.
IFINAL-BEDAT = IEKKO-BEDAT.
ENDIF.
READ TABLE IMAKT WITH KEY MATNR = IEKPO-MATNR.
IF SY-SUBRC = 0.
IFINAL-MAKTX = IMAKT-MAKTX.
ENDIF.
APPEND IFINAL.
CLEAR : IFINAL,IEKKO,IMAKT,IEKPO.
ENDLOOP.
ENDFORM. " BUILD_FINALTAB
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCAT .
WFIELDCAT-FIELDNAME = 'EBELN'.
WFIELDCAT-COL_POS = 1.
WFIELDCAT-OUTPUTLEN = 10.
WFIELDCAT-COLTEXT = 'Document No'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-FIELDNAME = 'EBELP'.
WFIELDCAT-COL_POS = 2.
WFIELDCAT-OUTPUTLEN = 7.
WFIELDCAT-COLTEXT = 'Item No'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-FIELDNAME = 'AEDAT'.
WFIELDCAT-COL_POS = 3.
WFIELDCAT-OUTPUTLEN = 10.
WFIELDCAT-COLTEXT = 'Creatn dat'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-FIELDNAME = 'BEDAT'.
WFIELDCAT-COL_POS = 4.
WFIELDCAT-OUTPUTLEN = 10.
WFIELDCAT-COLTEXT = 'Delv dat'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-FIELDNAME = 'MATNR'.
WFIELDCAT-COL_POS = 5.
WFIELDCAT-OUTPUTLEN = 18.
WFIELDCAT-COLTEXT = 'Material no'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-FIELDNAME = 'MAKTX'.
WFIELDCAT-COL_POS = 6.
WFIELDCAT-OUTPUTLEN = 15.
WFIELDCAT-COLTEXT = 'Material desc.'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-FIELDNAME = 'MENGE'.
WFIELDCAT-COL_POS = 7.
WFIELDCAT-OUTPUTLEN = 15.
WFIELDCAT-COLTEXT = 'Quantity'.
WFIELDCAT-DO_SUM = 'X'.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
ENDFORM. " BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*& Form BUILD_SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_SORT .
WSORT-FIELDNAME = 'EBELN'.
WSORT-SPOS = 1.
WSORT-UP = 'X'.
WSORT-GROUP = 'UL'.
WSORT-SUBTOT = 'X'.
APPEND WSORT TO ISORT.
ENDFORM. " BUILD_SORT
*&---------------------------------------------------------------------*
*& Module PBO OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE PBO OUTPUT.
SET PF-STATUS 'ZSPD'.
CREATE OBJECT CONTAINER
EXPORTING
* PARENT =
CONTAINER_NAME = 'CONTAINER'
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
others = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = CONTAINER
* I_APPL_EVENTS = space
* I_PARENTDBG =
* I_APPLOGPARENT =
* I_GRAPHICSPARENT =
* I_NAME =
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
others = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
* EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'
* IS_LAYOUT =
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
CHANGING
IT_OUTTAB = IFINAL[]
IT_FIELDCATALOG = IFIELDCAT
IT_SORT = ISORT
* IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " PBO OUTPUT
*&---------------------------------------------------------------------*
*& Module PAI INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE PAI INPUT.
CASE OKCODE.
WHEN 'BACK' OR 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " PAI INPUT
‎2008 Jun 20 6:30 AM
‎2008 Jun 20 6:32 AM
Hi vekatravi m
Put " BCALV* " in SE38 Transaction You will get list of OOALV.
&********Reward Point if helpful************&
‎2008 Jun 20 6:32 AM
Hi,
Goto se24 and search classes and methods in which code is written in oops concepts.
Hope it is useful.
‎2008 Jun 20 6:35 AM
hi venkatravi,
below i am giving sample oops reports,
Report Z_OOPS_JSV *
*& *
&----
REPORT z_oops_jsv .
PARAMETER: p_int1 TYPE i,
p_int2 TYPE i.
TYPES:g_tot TYPE c.
DATA: BEGIN OF I_MARA OCCURS 2.
iNCLUDE STRUCTURE MARA.
DATA:END OF I_MARA.
-
CLASS c1_first DEFINITION
-
*
-
CLASS c1_first DEFINITION.
PUBLIC SECTION.
CLASS-DATA p_int3 TYPE i.
CLASS-METHODS: e1 RETURNING value(e_type) TYPE g_tot.
METHODS: m1 IMPORTING value(p_int4) TYPE i.
ENDCLASS. "c1_first DEFINITION
-
CLASS c1_first IMPLEMENTATION
-
*
-
CLASS: c1_first IMPLEMENTATION.
METHOD: m1.
p_int3 = p_int1 + p_int2.
IF p_int3 > 5.
p_int4 = 10.
ELSE.
p_int4 = p_int3.
ENDIF.
WRITE:/ 'total = ',p_int4.
ENDMETHOD. "m1
METHOD: e1.
IF p_int3 > 5.
e_type = 'Y'.
ELSE.
e_type = 'N'.
ENDIF.
ENDMETHOD. "e1
ENDCLASS. "c1_first IMPLEMENTATION
START-OF-SELECTION.
DATA: oref1 TYPE REF TO c1_first,
oref2 TYPE REF TO c1_first.
DATA : bool TYPE c.
CREATE OBJECT: oref1,oref2.
CALL METHOD oref2->e1
RECEIVING
e_type = bool.
SELECT * INTO TABLE I_MARA FROM MARA.
READ TABLE I_MARA WITH KEY MATNR = 'PEN'.
if sy-subrc = 0.
write i_mara-matnr.
endif.
IF bool = 'N'.
CALL METHOD oref1->m1
EXPORTING
p_int4 = 0.
ELSE.
WRITE 'sorry sir'.
ENDIF.
&----
*& Report Z_OOPS_NEW *
*& *
&----
*& *
*& *
&----
REPORT Z_OOPS_NEW .
include Z_parent .
include z_child.
start-of-selection.
data: objparent type ref to parent,
objchild type ref to child.
create object : objparent,
objchild.
call method : objparent->showval,
objchild->subval.
uline.
objparent->common_data = 'public data in main report'.
write : /5 objparent->common_data.
write : /5 objparent->protected_data.
REPORT Z_OOPS_NEW1 .
creation of parent & child class
include z_parent_cal.
data : par_obj type ref to parent_cal.
include z_child_cal.
start-of-selection.
data : chi_obj type ref to child_cal.
create object : par_obj,
chi_obj.
call method : chi_obj->sum_new.
uline.
write : /5 'public values in report'.
par_obj->cp_des = 'parent --- report'.
chi_obj->ch_des = 'child -
report'.
write : /5 par_obj->cp_des,
/5 chi_obj->ch_des.
&----
*& Include Z_CHILD_CAL *
&----
class child_cal definition.
public section .
data : c_num type i value ' 300',
s_new type i,
sub_new type i,
ch_des(20) type c value 'child --- public val'.
methods : sum_new.
private section .
data : ch_val(30) type c value ' private value in child class'.
endclass.
calculation of sum using the sum of the parent class
*calculation of substraction using the direct data value of the parent
*class
class child_cal implementation.
method : sum_new.
CALL METHOD par_obj->sum_value.
uline.
write : /5 ch_val.
s_new = par_obj->s_num + c_num.
s_new = s_num + c_num.
sub_new = par_obj->b_num - par_obj->a_num.
write : /5 ' sum in child class ',s_new.
write : /5 ' substraction in child class ',sub_new.
write : /5 ch_des.
endmethod.
endclass.
&----
*& Report Z_OOPS_NEW10 *
*& *
&----
*& *
*& *
&----
REPORT Z_OOPS_NEW10 .
calling method by importing & exporting values & also giving message
data : wa_num1 type i,
wa_num2 type i,
wa_num3 type i,
wa_num4 type p decimals 2.
parameters: p_inp1 type i,
p_inp2 type i.
include z_cls.
start-of-selection.
data : obj type ref to cls.
create object obj.
call method : obj->meth exporting inp1 = p_inp1
inp2 = p_inp2
importing value1 = wa_num1
value2 = wa_num2
value3 = wa_num3
value4 = wa_num4.
if p_inp2 > p_inp1 .
message e008(za).
else.
write : /5 'sum = ',wa_num1.
write : /5 'Substract = ',wa_num2.
write : /5 'Multiple = ',wa_num3.
write : /5 'Divide = ',wa_num4.
endif.
&----
*& Include Z_CLS *
&----
class cls definition.
public section.
methods : meth importing inp1 type i
inp2 type i
exporting value1 type i
value2 type i
value3 type i
value4 type p .
endclass.
class cls implementation.
method : meth.
value1 = inp1 + inp2 .
value2 = inp1 - inp2 .
value3 = inp1 * inp2 .
value4 = inp1 / inp2 .
endmethod.
endclass.
please go through the following links ,
for filter defining please go through the fillowing links,
[http://help.sap.com/saphelp_nw04/helpdata/en/16/e6eb40c4f8712ae10000000a155106/frameset.htm]
hope its clear to you,
Reward points if usefull,
Thanks,
Kalyan.