Data Type I Parameters Type I Type I: 'X' 'P - Num1 ' 'P - Num2 ' 'Addition Two Numbers '
Data Type I Parameters Type I Type I: 'X' 'P - Num1 ' 'P - Num2 ' 'Addition Two Numbers '
*& Report ZTRAINING_PROG1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog1.
DATA: result TYPE i.
PARAMETERS: p_num1 TYPE i,
p_num2 TYPE i.
PARAMETERS: add RADIOBUTTON GROUP g1,
mul RADIOBUTTON GROUP g1,
divi RADIOBUTTON GROUP g1,
subt RADIOBUTTON GROUP g1.
PARAMETERS: c1 AS CHECKBOX.
IF add = 'X'.
result = p_num1 + p_num2.
WRITE: / 'p_num1 = ', p_num1,
/ 'p_num2 = ', p_num2.
WRITE: / 'Addition two numbers=', result.
ENDIF.
IF mul = 'X'.
result = p_num1 * p_num2.
WRITE: / 'p_num1 = ', p_num1,
/ 'p_num2 = ', p_num2.
WRITE: / 'Multiplication of two numbers=', result.
ENDIF.
IF divi = 'X'.
IF NOT p_num2 IS INITIAL.
result = p_num1 / p_num2.
ENDIF.
WRITE: / 'p_num1 = ', p_num1,
/ 'p_num2 = ', p_num2.
WRITE: / 'Division of two numbers=', result.
ENDIF.
IF subt = 'X'.
result = p_num1 - p_num2.
WRITE: / 'p_num1 = ', p_num1,
/ 'p_num2 = ', p_num2.
WRITE: / 'Subtraction of two numbers=', result.
ENDIF.
Program 2:-
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog2.
PARAMETERS: p_var1 TYPE c.
CASE p_var1.
WHEN 'A'.
WRITE: / 'WHEN A block has executed since p_var1=', p_var1.
WHEN 'B'.
WRITE: / 'WHEN B block has executed since p_var1=', p_var1.
WHEN 'C'.
WRITE: / 'WHEN C block has executed since p_var1=', p_var1.
WHEN OTHERS.
WRITE: / 'WHEN others block has executed since p_var1 not equal to A or B
or C p_var1 = ', P_VAR1.
ENDCASE.
write: / 'after endcase'.
Program3:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG3
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG3.
PARAMETERS: NUM1 TYPE I.
DO NUM1 TIMES.
WRITE: / SY-INDEX, 15 'HP GLOBAL SOFT PVT.LTD' .
ENDDO.
Program4:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG4
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog4.
DATA: num1 TYPE i.
DO.
num1 = num1 + 1.
WRITE: / 'NUM1 = ', num1.
IF num1 GE 20.
EXIT.
ENDIF.
ENDDO.
Program5:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG5
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog5.
*DECALRATION
DATA: BEGIN OF itab OCCURS 0,
empno TYPE i,
empname(40) TYPE c,
deptcode(4) TYPE c,
salary(12) TYPE p DECIMALS 2,
END OF itab.
* POPULATE
itab-empno = 1.
itab-empname = 'RADHA kRISHNA'.
itab-deptcode = 'IT'.
itab-salary = '28000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 2.
itab-empname = 'ARUNA'.
itab-deptcode = 'HR'.
itab-salary = '18000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 3.
itab-empname = 'RAJESH'.
itab-deptcode = 'PURC'.
itab-salary = '20000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 4.
itab-empname = 'NALINI'.
itab-deptcode = 'FICO'.
itab-salary = '29000.00' .
APPEND itab.
CLEAR itab.
*PROCESSING
WRITE: / 'EMP.NO', 15 'EMPNAME', 60 'DEPTCODE', 75 'SALARY'.
ULINE.
*before sort
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
SKIP 5.
WRITE: / 'After sort'.
*SORT itab DESCENDING BY empname.
SORT itab ASCENDING BY empname.
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
*read statement
*READ TABLE itab WITH KEY empname = 'ARUNA'
* deptcode = 'IT'.
read table itab index 3.
IF sy-subrc = 0.
SKIP 4.
WRITE: / 'After read'.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
else.
write: / 'Read is failed'.
ENDIF.
-------------------------------------------------------------------------
Program6:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG6
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog6.
*DECALRATION
DATA: BEGIN OF itab OCCURS 0,
empno TYPE i,
empname(40) TYPE c,
deptcode(4) TYPE c,
salary(12) TYPE p DECIMALS 2,
END OF itab.
* POPULATE
itab-empno = 1.
itab-empname = 'RADHA kRISHNA'.
itab-deptcode = 'IT'.
itab-salary = '28000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 2.
itab-empname = 'ARUNA'.
itab-deptcode = 'HR'.
itab-salary = '18000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 3.
itab-empname = 'RAJESH'.
itab-deptcode = 'PURC'.
itab-salary = '20000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 4.
itab-empname = 'NALINI'.
itab-deptcode = 'FICO'.
itab-salary = '29000.00' .
APPEND itab.
CLEAR itab.
*PROCESSING
WRITE: / 'EMP.NO', 15 'EMPNAME', 60 'DEPTCODE', 75 'SALARY'.
ULINE.
*before sort
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
SKIP 5.
*after modify
*loop at itab.
*
* if itab-deptcode = 'HR'.
* itab-salary = 23000 .
* modify itab transporting salary.
* endif.
*
* endloop.
loop at itab where deptcode = 'HR' .
itab-salary = 23000 .
modify itab transporting salary.
endloop.
itab-salary = 32000.
modify itab index sy-tabix transporting salary.
write: / 'After Modify'.
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
loop at itab where deptcode = 'FICO'.
delete itab.
endloop.
skip 4.
write:/ 'After delete'.
delete itab index 2.
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
-------------------------------------------------------------------------
Program7:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG6
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog7.
DATA: TOTNOOFREC TYPE I.
*DECALRATION
DATA: BEGIN OF itab OCCURS 0,
empno TYPE i,
empname(40) TYPE c,
deptcode(4) TYPE c,
salary(12) TYPE p DECIMALS 2,
END OF itab.
* POPULATE
itab-empno = 1.
itab-empname = 'RADHA kRISHNA'.
itab-deptcode = 'IT'.
itab-salary = '28000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 2.
itab-empname = 'ARUNA'.
itab-deptcode = 'HR'.
itab-salary = '18000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 3.
itab-empname = 'RAJESH'.
itab-deptcode = 'PURC'.
itab-salary = '20000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 4.
itab-empname = 'NALINI'.
itab-deptcode = 'FICO'.
itab-salary = '29000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 5.
itab-empname = 'SRIKANTH'.
itab-deptcode = 'HR'.
itab-salary = '19000.00' .
APPEND itab.
CLEAR itab.
itab-empno = 6.
itab-empname = 'MEENA'.
itab-deptcode = 'PURC'.
itab-salary = '22000.00' .
APPEND itab.
CLEAR itab.
*PROCESSING
WRITE: / 'EMP.NO', 15 'EMPNAME', 60 'DEPTCODE', 75 'SALARY'.
ULINE.
*before sort
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
SORT itab ASCENDING BY DEPTCODE.
DELETE ADJACENT DUPLICATES FROM itab COMPARING deptcode.
SKIP 5.
WRITE: / 'AFTER DELETE'.
LOOP AT itab.
WRITE: / itab-empno, 15 itab-empname, 60 itab-deptcode, 75 itab-salary.
ENDLOOP.
DESCRIBE TABLE ITAB LINES TOTNOOFREC.
WRITE: / 'TOTAL NO.OF RECORDS IN ITAB=', TOTNOOFREC.
-------------------------------------------------------------------------
Program8:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG8
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog8.
DATA: BEGIN OF itab OCCURS 0,
f1 TYPE c,
f2 TYPE c,
f3 TYPE i,
END OF itab.
itab-f1 = 'A'.
itab-f2 = 'B'.
itab-f3 = 25.
COLLECT itab.
CLEAR itab.
itab-f1 = 'A'.
itab-f2 = 'C'.
itab-f3 = 30.
COLLECT itab.
CLEAR itab.
itab-f1 = 'A'.
itab-f2 = 'B'.
itab-f3 = 10.
COLLECT itab.
CLEAR itab.
itab-f1 = 'B'.
itab-f2 = 'C'.
itab-f3 = 20.
COLLECT itab.
CLEAR itab.
itab-f1 = 'A'.
itab-f2 = 'C'.
itab-f3 = 20.
COLLECT itab.
CLEAR itab.
LOOP AT itab.
WRITE: / itab-f1, 5 itab-f2, 10 itab-f3.
ENDLOOP.
-------------------------------------------------------------------------
Program9:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG9
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG9.
DATA: BEGIN OF itab OCCURS 0,
matnr TYPE vbap-matnr,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
kwmeng TYPE vbap-kwmeng,
END OF itab.
DATA: g_subtotal TYPE vbap-kwmeng,
g_grandtotal TYPE vbap-kwmeng.
SELECT-OPTIONS: s_matnr FOR itab-matnr.
SELECT matnr
vbeln
posnr
kwmeng FROM vbap INTO TABLE itab
WHERE matnr IN s_matnr.
IF sy-subrc = 0.
SORT itab.
LOOP AT itab.
AT FIRST.
WRITE: / 'Material.No', 25 'Salesord.no', 45 'item.no', 55 'item.qty'.
ENDAT.
AT NEW matnr.
WRITE: / itab-matnr.
ENDAT.
WRITE:/25 itab-vbeln, 45 itab-posnr, 55 itab-kwmeng.
g_subtotal = g_subtotal + itab-kwmeng.
g_grandtotal = g_grandtotal + itab-kwmeng.
AT END OF matnr.
FORMAT COLOR 6.
WRITE: /45 'SUBTOTAL=' , 55 g_subtotal.
FORMAT RESET.
CLEAR g_subtotal.
ENDAT.
AT LAST.
FORMAT COLOR 7.
WRITE: /45 'GRANDTOTAL=' , 55 g_grandtotal.
FORMAT RESET.
ENDAT.
ENDLOOP.
ENDIF.
-------------------------------------------------------------------------
Program10:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG5
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog10.
*DECALRATION
types: BEGIN OF ty_itab, " OCCURS 0,
empno TYPE i,
empname(40) TYPE c,
deptcode(4) TYPE c,
salary(12) TYPE p DECIMALS 2,
END OF ty_itab.
*DATA: BEGIN OF wa_itab, " OCCURS 0
,
* empno TYPE i,
* empname(40) TYPE c,
* deptcode(4) TYPE c,
* salary(12) TYPE p DECIMALS 2,
* END OF wa_itab.
data: wa_itab type ty_itab.
DATA: itab type TABLE OF ty_itab.
* POPULATE
wa_itab-empno = 1.
wa_itab-empname = 'RADHA kRISHNA'.
wa_itab-deptcode = 'IT'.
wa_itab-salary = '28000.00' .
APPEND wa_itab TO itab.
CLEAR wa_itab.
wa_itab-empno = 2.
wa_itab-empname = 'ARUNA'.
wa_itab-deptcode = 'HR'.
wa_itab-salary = '18000.00' .
APPEND wa_itab TO itab.
CLEAR wa_itab.
wa_itab-empno = 3.
wa_itab-empname = 'RAJESH'.
wa_itab-deptcode = 'PURC'.
wa_itab-salary = '20000.00' .
APPEND wa_itab TO itab.
CLEAR wa_itab.
wa_itab-empno = 4.
wa_itab-empname = 'NALINI'.
wa_itab-deptcode = 'FICO'.
wa_itab-salary = '29000.00' .
APPEND wa_itab TO itab.
CLEAR wa_itab.
*PROCESSING
WRITE: / 'EMP.NO', 15 'EMPNAME', 60 'DEPTCODE', 75 'SALARY'.
ULINE.
*before sort
LOOP AT itab INTO wa_itab.
WRITE: / wa_itab-empno, 15 wa_itab-empname, 60 wa_itab-deptcode, 75 wa_itab-
salary.
ENDLOOP.
SKIP 5.
WRITE: / 'After sort'.
*SORT itab DESCENDING BY empname.
SORT itab ASCENDING BY empname.
LOOP AT itab INTO wa_itab.
WRITE: / wa_itab-empno, 15 wa_itab-empname, 60 wa_itab-deptcode, 75 wa_itab-
salary.
ENDLOOP.
*read statement
*READ TABLE itab WITH KEY empname = 'ARUNA'
* deptcode = 'IT'.
READ TABLE itab INTO wa_itab INDEX 3.
IF sy-subrc = 0.
SKIP 4.
WRITE: / 'After read'.
WRITE: / wa_itab-empno, 15 wa_itab-empname, 60 wa_itab-deptcode, 75 wa_itab-
salary.
ELSE.
WRITE: / 'Read is failed'.
ENDIF.
LOOP AT itab INTO wa_itab WHERE deptcode = 'HR'.
wa_itab-salary = 24000.
MODIFY itab FROM wa_itab TRANSPORTING salary.
delete itab from wa_itab.
ENDLOOP.
-------------------------------------------------------------------------
Program11:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG11
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG11.
data: itab type table of vbap,
wa_itab type vbap.
data: itab2 like vbap occurs 0 with header line.
data: begin of itab3.
include structure vbap.
data: name(40) type c,
date type d.
data: end of itab3.
-------------------------------------------------------------------------
Program12:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG12
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG12.
data: var2 type i,
result type i.
var2 = 5.
include ZTEST_INCLUDE1.
result = var1 * var2.
write: / 'var1=', var1,
/ 'var2=', var2,
/ 'Result=', result,
/ 'name =' , name.
-------------------------------------------------------------------------
Program13:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG13
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG13.
data: num1 type i.
num1 = 40.
write: / 'Before calling subroutine num1=', num1.
perform calculations using num1.
write: / 'After calling subroutine num1=', num1.
*&---------------------------------------------------------------------*
*& Form CALCULATIONS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_NUM1 text
*----------------------------------------------------------------------*
form CALCULATIONS using p_num1.
p_num1 = p_num1 - 10.
endform. " CALCULATIONS
-------------------------------------------------------------------------
Program14:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG14
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG14.
data: num1 type i.
num1 = 40.
write: / 'Before calling subroutine num1=', num1.
perform calculations using num1.
write: / 'After calling subroutine num1=', num1.
*&---------------------------------------------------------------------*
*& Form CALCULATIONS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_NUM1 text
*----------------------------------------------------------------------*
form CALCULATIONS using value(p_num1).
p_num1 = p_num1 - 10.
endform. " CALCULATIONS
-------------------------------------------------------------------------
Program15:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG15
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTRAINING_PROG15.
data: num1 type i.
num1 = 40.
write: / 'Before calling subroutine num1=', num1.
perform calculte changing num1.
write: / 'After calling subroutine num1=', num1.
*&---------------------------------------------------------------------*
*& Form CALCULTE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_NUM1 text
*----------------------------------------------------------------------*
form CALCULTE changing value(p_num1).
p_num1 = p_num1 - 10.
endform. " CALCULTE
-------------------------------------------------------------------------
Program16:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG16
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog16.
DATA: BEGIN OF itab OCCURS 0,
num1 TYPE i,
END OF itab.
PERFORM populate_intab TABLES itab.
PERFORM display_output.
*perform sub1 in program ZTRAINING_PROG14.
*&---------------------------------------------------------------------*
*& Form POPULATE_INTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_ITAB text
*----------------------------------------------------------------------*
FORM populate_intab TABLES p_itab LIKE itab[].
DO 5 TIMES.
itab-num1 = sy-index.
APPEND itab.
CLEAR itab.
ENDDO.
ENDFORM. " POPULATE_INTAB
*&---------------------------------------------------------------------*
*& Form DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_output .
LOOP AT itab.
WRITE: / itab-num1.
ENDLOOP.
ENDFORM. " DISPLAY_OUTPUT
-------------------------------------------------------------------------
Program17:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG17
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog17.
DATA: g_result TYPE i.
PARAMETERS: num1 TYPE i,
num2 TYPE i,
num3 TYPE i,
num4 TYPE I.
CALL FUNCTION 'ZCALCULATIONS'
EXPORTING
var1 = num1
var2 = num2
var3 = num3
var4 = num4
IMPORTING
RESULT = g_result.
write: / 'g_result = ', g_result.
SUBMIT ZTRAINING_PROG16 AND RETURN.
-------------------------------------------------------------------------
Program18:
*&---------------------------------------------------------------------*
*& Report ZTRAINING_PROG18
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztraining_prog18.
DATA: itab LIKE mara OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_mtart TYPE mara-mtart.
CALL FUNCTION 'ZGET_MATERIALS'
EXPORTING
v_mtart = p_mtart
TABLES
it_mara = itab
EXCEPTIONS
no_data_found = 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.
WRITE: / 'nO MATERIAL AVAILABLE FOR GIVEN MATERIAL TYPE=', p_mtart.
ENDIF.
IF sy-subrc = 0.
LOOP AT itab.
WRITE: / itab-matnr.
ENDLOOP.
ENDIF.
-------------------------------------------------------------------------