SIMPLE SAP ABAP PROGRAM FOR ALV LIST DISPLAY

*&---------------------------------------------------------------------*
*& Report  ZSSR_ALV_LIST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zsan_alv_list_display.

TYPE-POOLS: slis.

TABLES: mara.

DATA: g_t_mara TYPE mara OCCURS WITH HEADER LINE.


* ALV specific data objects
DATA : g_f_repid      LIKE sy-repid.
DATA : g_t_fieldcat   TYPE slis_t_fieldcat_alv.
DATA : g_r_fieldcat   TYPE slis_fieldcat_alv.
DATA : g_t_events     TYPE slis_t_event.
DATA : g_r_events     TYPE slis_alv_event.
DATA : g_r_layout     TYPE slis_layout_alv.
DATA : g_f_callback_user_command TYPE slis_formname.
DATA : g_f_callback_pf_status_set TYPE slis_formname.

DATA : g_r_x_variant  LIKE disvariant.
DATA : g_r_variant    LIKE disvariant.
DATA : g_f_exit(1)    TYPE c.
DATA : g_f_save(1)    TYPE c.



SELECT-OPTIONS: s_matnr FOR mara-matnr.


START-OF-SELECTION.
  PERFORM get_data.
  PERFORM display_data.

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data .

  SELECT *
    INTO TABLE g_t_mara
    FROM mara
    WHERE matnr IN s_matnr.

ENDFORM.                    " GET_DATA

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_data .

  g_f_repid sy-repid.

* Attributes for layout
  g_r_layout-zebra 'X'.
*  g_r_layout-min_linesize = 119.
  g_r_layout-colwidth_optimize 'X'.
  g_r_layout-f2code '&ETA'.
  g_r_layout-detail_initial_lines 'X'.
  g_r_layout-get_selinfos 'X'.


  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
*     I_INTERFACE_CHECK              = ' '
*     I_BYPASSING_BUFFER             =
*     I_BUFFER_ACTIVE                = ' '
     i_callback_program             g_f_repid
*     I_CALLBACK_PF_STATUS_SET       = ' '
*     I_CALLBACK_USER_COMMAND        = ' '
     i_structure_name               'MARA'
     is_layout                      g_r_layout
*     IT_FIELDCAT                    =
*     IT_EXCLUDING                   =
*     IT_SPECIAL_GROUPS              =
*     IT_SORT                        =
*     IT_FILTER                      =
*     IS_SEL_HIDE                    =
*     I_DEFAULT                      = 'X'
*     I_SAVE                         = ' '
*     IS_VARIANT                     =
*     IT_EVENTS                      =
*     IT_EVENT_EXIT                  =
*     IS_PRINT                       =
*     IS_REPREP_ID                   =
*     I_SCREEN_START_COLUMN          = 0
*     I_SCREEN_START_LINE            = 0
*     I_SCREEN_END_COLUMN            = 0
*     I_SCREEN_END_LINE              = 0
*     IR_SALV_LIST_ADAPTER           =
*     IT_EXCEPT_QINFO                =
*     I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER        =
*     ES_EXIT_CAUSED_BY_USER         =
    TABLES
      t_outtab                       g_t_mara
   EXCEPTIONS
     program_error                  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.
  ENDIF.


ENDFORM.                    " DISPLAY_DATA

SIMPLE SAP ABAP PROGRAM FOR ALV GRID DISPLAY

*&---------------------------------------------------------------------*
*& Report  ZSAN_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZSAN_ALV.

TYPE-POOLS:SLIS.

TABLES:ZSAN_EMP_DETAILS.

DATA:SAN_ITABLE TYPE ZSAN_EMP_DETAILS OCCURS WITH HEADER LINE.

* ALV specific data objects
DATA : g_f_repid      LIKE sy-repid.
DATA : g_t_fieldcat   TYPE slis_t_fieldcat_alv.
DATA : g_r_fieldcat   TYPE slis_fieldcat_alv.
DATA : g_t_events     TYPE slis_t_event.
DATA : g_r_events     TYPE slis_alv_event.
DATA : g_r_layout     TYPE slis_layout_alv.
DATA : g_f_callback_user_command TYPE slis_formname.
DATA : g_f_callback_pf_status_set TYPE slis_formname.

DATA : g_r_x_variant  LIKE disvariant.
DATA : g_r_variant    LIKE disvariant.
DATA : g_f_exit(1)    TYPE c.
DATA : g_f_save(1)    TYPE c.


SELECT-OPTIONS:S_INP FOR ZSAN_EMP_DETAILS-EMP_NO.

START-OF-SELECTION.
  PERFORM GETDATA.
  PERFORM DISPLAYDATA.


FORM GETDATA.


  SELECT INTO TABLE SAN_ITABLE FROM ZSAN_EMP_DETAILS WHERE EMP_NO IN S_INP.

  ENDFORM.

FORM DISPLAYDATA.


  g_f_repid sy-repid.

* Attributes for layout
  g_r_layout-zebra 'X'.
*  g_r_layout-min_linesize = 119.
  g_r_layout-colwidth_optimize 'X'.
  g_r_layout-f2code '&ETA'.
  g_r_layout-detail_initial_lines 'X'.
  g_r_layout-get_selinfos 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING

      i_callback_program             g_f_repid
      i_structure_name               'ZSAN_EMP_DETAILS'
*     is_layout                      = g_r_layout

     TABLES
      t_outtab                       SAN_ITABLE
   EXCEPTIONS
     program_error                  1
     OTHERS                         2.

  ENDFORM.

SAP ABAP BASIC DML QUERIES (INSERT, UPDATE, DELETE, MODIFY)

*&---------------------------------------------------------------------*
*& Report  ZSAN_DML
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZSAN_DML.
TABLES:ZSAN_EMP_DETAILS.
DATA:SAN_ITABLE TYPE TABLE OF ZSAN_EMP_DETAILS,
      SAN_STRUCT TYPE ZSAN_EMP_DETAILS.
PARAMETERS:P_EMPNO TYPE ZSAN_EMP_DETAILS-EMP_NO,
            P_ENAME TYPE ZSAN_EMP_DETAILS-EMP_NAME,
            P_SALARY TYPE ZSAN_EMP_DETAILS-EMP_SALARY.
**            p_cunt type i.



START-OF-SELECTION.
PERFORM insert.
PERFORM UPDATE.
PERFORM DELETE.
PERFORM MODIFY.



*&---------------------------------------------------------------------*
*&      Form  INSERT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM INSERT .


      SAN_STRUCT-EMP_NO P_EMPNO.
        SAN_STRUCT-EMP_NAME P_ENAME.
        SAN_STRUCT-EMP_SALARY P_SALARY.

        APPEND SAN_STRUCT TO SAN_ITABLE.

INSERT ZSAN_EMP_DETAILS FROM TABLE SAN_ITABLE.

    LOOP AT SAN_ITABLE INTO SAN_STRUCT.
         WRITE: SAN_STRUCT-EMP_NO,SAN_STRUCT-EMP_NAME,SAN_STRUCT-EMP_SALARY.
         ENDLOOP.

ENDFORM.
" INSERT
*&---------------------------------------------------------------------*
*&      Form  UPDATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM UPDATE .
    LOOP AT SAN_ITABLE INTO SAN_STRUCT.
      IF SAN_STRUCT-EMP_NO P_EMPNO.
        SAN_STRUCT-EMP_SALARY '12345'.

        APPEND SAN_STRUCT TO SAN_ITABLE.
        UPDATE ZSAN_EMP_DETAILS FROM TABLE SAN_ITABLE.

        ENDIF.
     ENDLOOP.

  UPDATE ZSAN_EMP_DETAILS SET EMP_SALARY P_SALARY WHERE EMP_NO P_EMPNO.

      WRITE:'UPDATE SUCCESS'.


ENDFORM.                    " UPDATE
*&---------------------------------------------------------------------*
*&      Form  DELETE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DELETE .
  DELETE FROM ZSAN_EMP_DETAILS WHERE EMP_NO P_EMPNO.
  WRITE: 'DELETE SUCCCESS'.

ENDFORM.                    " DELETE
*&---------------------------------------------------------------------*
*&      Form  MODIFY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MODIFY .

        SAN_STRUCT-EMP_NO P_EMPNO.
        SAN_STRUCT-EMP_NAME P_ENAME.
        SAN_STRUCT-EMP_SALARY P_SALARY.

        MODIFY ZSAN_EMP_DETAILS FROM SAN_STRUCT .
        WRITE: 'MODIFY SUCCESS'.

ENDFORM.                    " MODIFY

SAP ABAP BASIC STRING OPERATIONS

*&---------------------------------------------------------------------*
*& Report  ZSTA_STRING_OPERATIONS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZSAN_STRING_OPERATIONS.

data:g_f_value1 type char10 value 'Sankarganesh',
     g_f_value2 type char10 value 'Thirumalaisamy',
     g_f_value3 type char50,
     g_f_value4 type char40 VALUE 'this is small    example',
     g_f_str1 type char10,
     g_f_str2 type char10,
     g_f_str3 type char10,
     g_f_str4 type char10,
     g_f_value5 type char10 VALUE '000000012'.


START-OF-SELECTION.

* Concatenate operation
CONCATENATE g_f_value1 g_f_value2 into g_f_value3 SEPARATED BY space.

write:g_f_value3.


* condense operation
write:/.
write:'before condense operation'.
write:/.
WRITE:g_f_value4.
write:/.

condense g_f_value4.
write:'After condense operation'.
write:/.
write: g_f_value4.

* split operation

split g_f_value4 at space into :g_f_str1 g_f_str2 g_f_str3 g_f_str4.

write:/.
write:g_f_str1.
write:/.
write:g_f_str2.
write:/.
write:g_f_str3.
write:/.
write:g_f_str4.

* Translate operation

TRANSLATE g_f_value4 to UPPER CASE.
write:/.
write:g_f_value4.


* Replace operation
replace 'Sankarganesh' with 'Thirumalaisamy' into g_f_value3.
write:/.
write:g_f_value3.

* Search operation
SEARCH g_f_value1 for 's'.
write:/.
write:sy-fdpos.

* Shift operation
write:/.
write:g_f_value5.
write:/.
shift g_f_value5 LEFT DELETING LEADING '0'.

write: g_f_value5.

SAP ABAP ALL BASIC INTERNAL TABLE (Open SQL) OPERATIONS

*&---------------------------------------------------------------------*
*& Report  ZTAS_ITAB_OPERATIONS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTAS_ITAB_OPERATIONS.

*  Data Type Declaration
TABLES: T001.

TYPES:BEGIN OF T_TY_ITAB,
  BUKRS TYPE BUKRS, "Company Code
  BUTXT TYPE BUTXT, "Company name
  ORT01 TYPE ORT01, "City
  LAND1 TYPE LAND1, "Country Key
  END OF T_TY_ITAB.


DATA: ITAB TYPE TABLE OF T_TY_ITAB,
      WA_ITAB TYPE T_TY_ITAB.

*Fetch data from the table T001 to Internal table

SELECT BUKRS BUTXT ORT01 LAND1 INTO TABLE ITAB FROM T001 WHERE LAND1 'DE'.


SORT ITAB DESCENDING BY BUKRS.

*  Display Data
CLEAR:SY-INDEX.
  LOOP AT ITAB INTO WA_ITAB .
*    CLEAR:SY-INDEX.
    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1),
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
*    WRITE:SY-INDEX.

    ENDLOOP.
    WRITE:/ SY-ULINE(84).

*ADDING MORE RECORDS

    CLEAR : WA_ITAB. "CLEAR CONTENTS OF WORK AREA

          WA_ITAB-BUKRS 'A100'.
          WA_ITAB-BUTXT 'INVINCIBLER'.
          WA_ITAB-ORT01 'MUMBAI'.
          WA_ITAB-LAND1 'IN'.

    APPEND WA_ITAB TO ITAB.

*Display Data AFTER ADDING RECORD

 WRITE : 'AFTER APPENDING DATA TO INTERNAL TABLE' COLOR 5.
  LOOP AT ITAB INTO WA_ITAB .
    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1),
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).

     CLEAR : WA_ITAB. "CLEAR CONTENTS OF WORK AREA

          WA_ITAB-BUKRS 'B100'.
          WA_ITAB-BUTXT 'LITTLEMASTER'.
          WA_ITAB-ORT01 'DELHI'.
          WA_ITAB-LAND1 'IN'.

    INSERT WA_ITAB INTO ITAB INDEX 10. " INDEX 10 MEANS THE RECORD IS INSERTED AT 10 TH POSITION IN THE TABLE

*    Display Data AFTER ADDING RECORD

    WRITE : 'AFTER INSERTING DATA TO INTERNAL TABLE' COLOR 5.

  LOOP AT ITAB INTO WA_ITAB .

    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1), " SY-TABIX FINDS THE CURRENT LINE IN THE INTERNAL TABLE
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).


*    DELETING DATA FROM INTERNAL TABLE

    DELETE ITAB FROM TO 9.
*    SKIP 1. " specifies No of blank line
*    DISPLAY DATA AFTER DELETING

  WRITE : 'AFTER DELETING DATA FROM INTERNAL TABLE' COLOR 5.

     LOOP AT ITAB INTO WA_ITAB .

    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1), " SY-TABIX FINDS THE CURRENT LINE IN THE INTERNAL TABLE
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).

*    MODIFICATION

    CLEAR :WA_ITAB.

    WA_ITAB-LAND1 'US'.

    MODIFY ITAB FROM WA_ITAB TRANSPORTING LAND1 WHERE BUKRS 'A100' OR BUKRS 'B100'.

    WRITE : 'AFTER MODIFICATION DATA FROM INTERNAL TABLE' COLOR 5.

     LOOP AT ITAB INTO WA_ITAB .

    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1), " SY-TABIX FINDS THE CURRENT LINE IN THE INTERNAL TABLE
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).

*    READ INTERNAL TABLE

    SORT ITAB DESCENDING BY BUKRS.

    CLEAR :WA_ITAB.

    READ TABLE ITAB INTO WA_ITAB WITH KEY LAND1 'US' BINARY SEARCH.

    WRITE : 'DATA AFTER READ' COLOR 5.

     LOOP AT ITAB INTO WA_ITAB .

    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1), " SY-TABIX FINDS THE CURRENT LINE IN THE INTERNAL TABLE
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).

*    DELETE ADJACENT DUPLICATES

    CLEAR:WA_ITAB.
          WA_ITAB-BUKRS 'C100'.
          WA_ITAB-BUTXT 'MASTERBLASTER'.
          WA_ITAB-ORT01 'CHENNAI'.
          WA_ITAB-LAND1 'IN'.


    DO TIMES.
       APPEND WA_ITAB TO ITAB.
      ENDDO.

    WRITE : 'DATA AFTER ADDING DUPLICATES' COLOR 5.

    LOOP AT ITAB INTO WA_ITAB .

    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1), " SY-TABIX FINDS THE CURRENT LINE IN THE INTERNAL TABLE
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).

    SORT ITAB BY BUKRS. " SORT IS MANDATORY TO PERFORM ADJCENT DUPLICATES

    DELETE ADJACENT DUPLICATES FROM ITAB COMPARING BUKRS.

        WRITE : 'DATA AFTER ADJACENT DUPLICATES' COLOR 5.

    LOOP AT ITAB INTO WA_ITAB .

    WRITE :/ SY-ULINE(84). " ULINE DRAWS THE HORIZANTAL LINE , VLINE DRAWS VERTICAL LINE
    WRITE: / SY-VLINE(1),SY-TABIX,SY-VLINE(1), " SY-TABIX FINDS THE CURRENT LINE IN THE INTERNAL TABLE
          WA_ITAB-BUKRS,SY-VLINE(1),
          WA_ITAB-BUTXT,SY-VLINE(1),
          WA_ITAB-ORT01,SY-VLINE(1),
          WA_ITAB-LAND1,SY-VLINE(1).
    ENDLOOP.
    WRITE:/ SY-ULINE(84).