Monday, January 9, 2012

Program - Example - FOR ALL ENTRIES

  REPORT  z_vtest13.

TABLES :
  marc,
  mast,
  mapl.

SELECT-OPTIONS : s_matnr FOR marc-matnr,
                 s_werks FOR marc-werks.


TYPES : BEGIN OF ty_marc,
  matnr TYPE marc-matnr,
  werks TYPE marc-werks,
  lvorm TYPE marc-lvorm,
  ekgrp TYPE marc-ekgrp,
  dismm TYPE marc-dismm,
  dispo TYPE marc-dispo,
  END OF ty_marc.

DATA : it_marc TYPE TABLE OF marc,
      wa_marc TYPE ty_marc.


TYPES : BEGIN OF ty_mast,
  matnr TYPE mast-matnr,
  werks TYPE mast-werks,
  stlan TYPE mast-stlan,
  stlnr TYPE mast-stlnr,
  stlal TYPE mast-stlal,
  END OF ty_mast.

DATA : it_mast TYPE TABLE OF mast,
      wa_mast TYPE ty_mast.

DATA : BEGIN OF it_table1 OCCURS 0,
  matnr TYPE marc-matnr,
werks TYPE marc-werks,
lvorm TYPE marc-lvorm,
ekgrp TYPE marc-ekgrp,
dismm TYPE marc-dismm,
dispo TYPE marc-dispo,
stlan TYPE mast-stlan,
stlnr TYPE mast-stlnr,
stlal TYPE mast-stlal,
END OF it_table1.

TYPES : BEGIN OF ty_table2.
INCLUDE TYPE ty_marc.
TYPES : stlan TYPE mast-stlan,
        stlnr TYPE mast-stlnr,
        stlal TYPE mast-stlal.
TYPES : END OF ty_table2.


SELECT matnr werks lvorm ekgrp dismm dispo
FROM marc
INTO CORRESPONDING FIELDS OF TABLE it_marc WHERE matnr IN s_matnr AND werks IN s_werks.

IF sy-subrc 0.

  SELECT matnr werks stlan stlnr stlal
    FROM mast
    INTO CORRESPONDING FIELDS OF TABLE it_mast
    FOR ALL ENTRIES IN it_marc
    WHERE matnr it_marc-matnr AND
          werks it_marc-werks.
ENDIF.

WRITE :/.
SKIP 1.


LOOP AT it_mast INTO wa_mast.
  WRITE : / sy-vline,
            wa_mast-matnr, sy-vline,
            wa_mast-werks, sy-vline,
            wa_mast-stlan, sy-vline,
            wa_mast-stlnr, sy-vline,
            wa_mast-stlal, sy-vline.

ENDLOOP.

Sunday, January 8, 2012

Program - Examples for- SELECT statements

  REPORT  z_vtest12.

* Table declaration
TABLES:
  mara,
  marc,
  mast,
  mapl.

* Selection screen
SELECT-OPTIONS : s_matnr FOR mara-matnr,
                 s_mtart FOR mara-mtart,
                 s_werks FOR marc-werks.

PARAMETERS :  p_stlan TYPE mast-stlan,
              p_plnty TYPE mapl-plnty.

* Variable declaration
DATA : TYPE i.

* Internal Structure 1 declaration
TYPES : BEGIN OF ty_mara,
  matnr TYPE mara-matnr,
  ersda TYPE mara-ersda,
  ernam TYPE mara-ernam,
  laeda TYPE mara-laeda,
  aenam TYPE mara-aenam,
  vpsta TYPE mara-vpsta,
  pstat TYPE mara-pstat,
  lvorm TYPE mara-lvorm,
  mtart TYPE mara-mtart,
  mbrsh TYPE mara-mbrsh,
  matkl TYPE mara-matkl,
  bismt TYPE mara-bismt,
  meins TYPE mara-meins,
END OF ty_mara.

* Internal table 1 declaration
DATA : it_mara TYPE TABLE OF mara,
      wa_mara TYPE ty_mara.

* Internal Strucuture 2 declaration
TYPES : BEGIN OF ty_marc,
  matnr TYPE marc-matnr,
  werks TYPE marc-werks,
  pstat TYPE marc-pstat,
  lvorm TYPE marc-lvorm,
  bwtty TYPE marc-bwtty,
  xchar TYPE marc-xchar,
  mmsta TYPE marc-mmsta,
  mmstd TYPE marc-mmstd,
  maabc TYPE marc-maabc,
  kzkri TYPE marc-kzkri,
  ekgrp TYPE marc-ekgrp,
  ausme TYPE marc-ausme,
  dispr TYPE marc-dispr,
  dismm TYPE marc-dismm,
  dispo TYPE marc-dispo,
END OF ty_marc.

* Internal table 2 declaration
DATA : it_marc TYPE TABLE OF marc,
      wa_marc TYPE ty_marc.

* Internal table 3 declaration
DATA : it_mast TYPE TABLE OF mast WITH HEADER LINE.

*  Outputs
WRITE : 'Output Screen'.


* Select statement - SELECT *
SELECT *
  FROM mast
  INTO TABLE it_mast.

* Output for - SELECT *
SKIP 2.
IF sy-subrc <> 0.
  WRITE : 'No Selections made'.
ELSEIF sy-subrc 0.
  WRITE : 'Output for - SELECT * statement in table MAST'.
  SKIP 1.
  0.
  LOOP AT it_mast.
    IF 11.
      WRITE : / it_mast-matnr, it_mast-werks, it_mast-stlan, it_mast-stlnr, it_mast-stlal.
      1.
    ENDIF.
  ENDLOOP.
ENDIF.


* Select statement - SELECT entries into internal table
SELECT matnr werks dispr dispo
  FROM marc
  INTO TABLE it_marc.

* Output for - SELECT entries into internal table
SKIP 4.
0.
WRITE : 'Output for - SELECT entries into internal table'.
SKIP 1.
LOOP AT it_marc INTO wa_marc.
  IF 11.
    WRITE : / wa_marc-matnr, wa_marc-werks, wa_marc-dispr, wa_marc-dispr.
    1.
  ENDIF.
ENDLOOP.


* Select statement - SELECT entries into corresponding fields of table
SELECT matnr werks dispr dispo
  FROM marc
  INTO CORRESPONDING FIELDS OF TABLE it_marc.

* Output for - SELECT entries into corresponding fields of table
SKIP 4.
0.
WRITE : 'Output for - SELECT entries into corresponding fields of table'.
SKIP 1.
LOOP AT it_marc INTO wa_marc.
  IF 11.
    WRITE : / wa_marc-matnr, wa_marc-werks, wa_marc-dispr, wa_marc-dispo.
    1.
  ENDIF.
ENDLOOP.


* Select statement - SELECT entries from selection screen
SELECT matnr werks dispr dispo
  FROM marc
  INTO TABLE it_marc WHERE matnr IN s_matnr AND werks IN s_werks.

* Output for - SELECT entries from selection screen
SKIP 4.
0.
WRITE : 'Output for - SELECT entries from selection screen'.
SKIP 1.
LOOP AT it_marc INTO wa_marc.
  IF 11.
    WRITE : / wa_marc-matnr, wa_marc-werks, wa_marc-dispr, wa_marc-dispo.
    1.
  ENDIF.
ENDLOOP.

Saturday, January 7, 2012

Program - Internal Table declaration - Type 3

  REPORT  z_vtest9.

* Table declaration
TABLES : mara,
         marc,
         mapl,
         mast.

* Selection Screen
SELECT-OPTIONS : s_matnr FOR mara-matnr,
                 s_werks FOR marc-werks.

PARAMETERS : p_dispo TYPE marc-dispo.

* Internal table declaration type - 3.
* (First declare the include structures and then declare the internal table based on the structures)

* Declare internal structure 1
TYPES : BEGIN OF ty_mara,
  matnr TYPE matnr,
  mtart TYPE mara-mtart,
  material_uom TYPE meins,
  mat_grp TYPE mara-matkl,
  END OF ty_mara.

* Declare internal table it_mara along with work area wa_mara (Header which can hold only one record at a time)
DATA : it_mara TYPE TABLE OF ty_mara,
       wa_mara TYPE ty_mara.

* Declare internal structure 2 and then decalre internal table it_marc.
TYPES : BEGIN OF ty_marc,
  matnr TYPE marc-matnr,
  werks TYPE werks,
  mrp_controller TYPE dispo,
  pur_grp TYPE marc-ekgrp,
  END OF ty_marc.

DATA : it_marc TYPE TABLE OF ty_marc,
       wa_marc TYPE ty_marc.

* Declare internal structure 3 and then decalre internal table it_mast.
TYPES : BEGIN OF ty_mast,
  matnr TYPE matnr,
  werks TYPE mast-werks,
  bom_number TYPE mast-stlnr,
  END OF ty_mast.

DATA : it_mast TYPE TABLE OF ty_mast,
      wa_mast TYPE ty_mast.

* Select statements
SELECT matnr mtart meins matkl
  FROM mara
  INTO TABLE it_mara UP TO 10 ROWS.

SELECT matnr werks dispo ekgrp
  FROM marc
  INTO TABLE it_marc UP TO 10 ROWS.

SELECT matnr werks stlnr
 FROM mast
 INTO TABLE it_mast UP TO 10 ROWS.

* Output
WRITE : 'Temporary output screen'.

skip 5.
WRITE : 'it_mara output'.
LOOP AT it_mara INTO wa_mara.
  WRITE :/ wa_mara-matnr, '   ', wa_mara-mtart, '   ', wa_mara-material_uom, '   ', wa_mara-mat_grp.
  ENDLOOP.

skip 5.
  WRITE : 'it_marc output'.
LOOP AT it_marc INTO wa_marc.
  WRITE :/ wa_marc-matnr, '   ', wa_marc-werks, '   ', wa_marc-mrp_controller, '   ', wa_marc-pur_grp.
  ENDLOOP.

skip 5.
  WRITE : 'it_mast output'.
LOOP AT it_mast INTO wa_mast.
  WRITE :/ wa_mast-matnr, '   ', wa_mast-werks, '   ', wa_mast-bom_number.
  ENDLOOP.

Thursday, January 5, 2012

Program - Internal Table declaration - Type 2

  REPORT  z_vtest8.

*Table declaration.
TABLES: marc,
        mara,
        mast.


*Selection screen.
SELECT-OPTIONS : s_matnr FOR mara-matnr,
                 s_werks FOR marc-werks.
PARAMETERS : p_dispo TYPE marc-dispo.


*Internal table declaration - Type 2.

DATA : BEGIN OF itab_marc OCCURS 0,

  matnr TYPE matnr,                     "In this line the first matnr is a field in Internal table.
                                        "The second matnr is a Data Element from a Standard table.

  dispo TYPE marc-dispo,                "The first dispo is internal table field
                                        "and second marc-dispo is from standard table.

END OF itab_marc.


*Select Statement (The below commented select statement is not working).
*
*SELECT *
*  FROM mara
*  INTO TABLE itab_mara UP TO 10 ROWS.

*Select Statement (The below commented select statement goes to dump
*because the itab_marc has only two defined fields but select statement is
*trying to fetch and insert three fields into itab_marc.
*
*SELECT matnr werks dispo
*  FROM marc
*  INTO TABLE itab_marc UP TO 10 ROWS.

*Select Statement
SELECT matnr meins
  FROM mara
  INTO TABLE itab_marc UP TO 10 ROWS.

*Write statement.
WRITE : 'Below is the output for the program'.

LOOP at itab_marc.
  WRITE : / itab_marc-matnr, itab_marc-dispo.
    ENDLOOP.

* In the output you can see the meins field values from mara table has been inserted into dispo field itab_marc.

Wednesday, January 4, 2012

Program - Internal Table declaration - Type 1

REPORT  z_vtest7.

TABLES: mara,
        marc,
        mast,
        mapl.

* Selection screen
SELECT-OPTIONS : s_matnr FOR marc-matnr.
PARAMETERS : p_werks TYPE marc-werks.

* Internal Table declaration - Type 1
DATA : internal_table_marc TYPE STANDARD TABLE OF marc WITH HEADER LINE.

* Select statement
SELECT *
  FROM marc
  INTO table internal_table_marc UP TO 15 ROWS.

*Output
WRITE : 'Hello this is the output'.
skip 5.
loop at internal_table_marc.
  WRITE : / internal_table_marc-matnr, internal_table_marc-werks.
ENDLOOP.

Tuesday, January 3, 2012

Program - Selection Screen design

  REPORT  ZV_SELECTION_SCREEN1.

TABLES : marc.

SELECTION-SCREEN BEGIN OF BLOCK Block1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_matnr for marc-matnr.
SELECT-OPTIONS : s_dispo for marc-dispo.


SELECTION-SCREEN END OF BLOCK Block1.

SELECTION-SCREEN BEGIN OF BLOCK Block2 WITH FRAME TITLE text-002.

PARAMETERS : p_werks TYPE marc-werks.
SELECTION-SCREEN SKIP.
  SELECTION-SCREEN BEGIN OF line.
  SELECTION-SCREEN COMMENT 18(7text-006.
  SELECTION-SCREEN POSITION 25.
  PARAMETERS :  rbut1 RADIOBUTTON GROUP grp1.

  SELECTION-SCREEN COMMENT 66(7text-007.
  SELECTION-SCREEN POSITION 75.
  PARAMETERS :  rbut2 RADIOBUTTON GROUP grp1.

  SELECTION-SCREEN end OF line.

SELECTION-SCREEN END OF BLOCK Block2.

SELECTION-SCREEN BEGIN OF BLOCK Block3 WITH FRAME TITLE text-003.

  SELECTION-SCREEN SKIP.

  SELECTION-SCREEN BEGIN OF line.
    SELECTION-SCREEN COMMENT 18(14text-008.
    PARAMETERS : chkbx1 AS CHECKBOX.
  SELECTION-SCREEN end OF line.

  SELECTION-SCREEN SKIP.

  SELECTION-SCREEN BEGIN OF line.
    SELECTION-SCREEN COMMENT 18(14text-009.
    PARAMETERS : chkbx2 AS CHECKBOX.
  SELECTION-SCREEN end OF line.

  SELECTION-SCREEN SKIP.

  SELECTION-SCREEN BEGIN OF line.
    SELECTION-SCREEN COMMENT 18(14text-010.
    PARAMETERS : chkbx3 AS CHECKBOX.
  SELECTION-SCREEN end OF line.

SELECTION-SCREEN END OF BLOCK Block3.

WRITE : 'Hello'.

Text Elements definitons:




Selection Text definitons:






Output Selection screen dessign:




Program - SPLIT example

  REPORT  Z_VTEST5.
*DATA: STRING(60),
*P1(20) VALUE '++++++++++++++++++++',
*P2(20) VALUE '++++++++++++++++++++',
*DEL(1) VALUE '.'.
*STRING = 'TOM.JERRY'.
*WRITE : 'The given input is:' , STRING.
*SPLIT STRING AT DEL INTO P1 P2 .
*SKIP 2.
*WRITE / P1.
*SKIP 1.
*WRITE / P2.


DATA : NAME(20TYPE VALUE 'TOM.JERRY',
       STR1(20TYPE C,
       STR2(20TYPE C,
       DEL(1VALUE '.'.

SPLIT NAME AT DEL INTO STR1 STR2.

WRITE / STR1.
WRITE / STR2.