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.
Hi,
Goto se24 and search classes and methods in which code is written in oops concepts.
Hope it is useful.
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.
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |