Você está na página 1de 21

*&---------------------------------------------------------------------*

*& 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.

-------------------------------------------------------------------------

Você também pode gostar