ALV Example: Contract Renewal Details

Tips by: M. Praveen Kumar

*----------------------------------------------------------------------*
*                   Contract Renewal Details                           *
*----------------------------------------------------------------------*

************************************************************************
* Description: The contract details of the customers in a particular   *
*             sales area are displayed. This report is run to view the *
* *            contract details existing                               *
* Author     : M.Praveen kumar                                         *
* Date       : 18 March 2005                                           *
*                                                                      *
*----------------------------------------------------------------------*
*     Change No         |    Date     |      Details        |  Req  No *
*----------------------------------------------------------------------*
*     CR-102            | 18/03/05    | Original Version    | PRDK90011*
*                       |             |                     |          *
************************************************************************

REPORT zadi_sd_contractalv NO STANDARD PAGE HEADING
 LINE-COUNT 45(2) LINE-SIZE 130
 MESSAGE-ID ymessage.

**********************Type Pool Declaration for ALV********************

TYPE-POOLS: slis.

********************Table Declaration**********************************

TABLES: vbak,vbfa,veda.

*********************Declaring Data Objects****************************

DATA: BEGIN OF lt_sd_c1 OCCURS 0,
        vbeln LIKE vbak-vbeln,     "Sales Document Number
        vbelv LIKE vbfa-vbelv,     "Preceding Sales and Distribution Doc
        kunnr LIKE vbak-kunnr,     "Customer Number
      END OF lt_sd_c1.

*data: Lt_Sd_C2 like veda occurs 0 with header line.

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv, "ALV Catalog Table
      gs_fieldcat TYPE slis_fieldcat_alv.   "ALV Catalog Structure


DATA: BEGIN OF lt_sd_c2 OCCURS 0,
        vbeln LIKE veda-vbeln,     "Sales Document Number
        vlaufz LIKE veda-vlaufz,   "Validity Period of Contract
        vuntdat LIKE veda-vuntdat, "Date on which Contract was Signed
        vbegdat LIKE veda-vbegdat, "Contract Start Date
        venddat LIKE veda-venddat, "Contract End Date
      END OF lt_sd_c2.

*****************************Selection Screen***************************


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-101.
SELECT-OPTIONS:  s_vkorg FOR vbak-vkorg OBLIGATORY,"Sales organization.
                 s_vtweg FOR vbak-vtweg,  "Distribution channel.
                 s_spart  FOR vbak-spart, "Division.
                 s_kunnr FOR  vbak-kunnr, "Customer number
                 p_dat FOR sy-datum."Date=current date
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK c1 WITH FRAME TITLE text-100.
PARAMETERS list  RADIOBUTTON GROUP radi.
PARAMETERS alv RADIOBUTTON GROUP radi.
SELECTION-SCREEN END OF BLOCK c1.


*****************Validation of Selection Screen Fields******************

AT SELECTION-SCREEN.

  SELECT SINGLE vkorg FROM tvko INTO vbak-vkorg WHERE vkorg IN s_vkorg.
  IF sy-subrc <> 0.
    MESSAGE e002.
  ENDIF.


  SELECT SINGLE vtweg FROM tvkov INTO vbak-vtweg WHERE vtweg IN s_vtweg.
  IF sy-subrc <> 0.
    MESSAGE e004.
  ENDIF.

  SELECT SINGLE spart FROM tspa INTO vbak-spart WHERE spart IN s_spart.
  IF sy-subrc <> 0.
    MESSAGE e006.
  ENDIF.


  SELECT  SINGLE kunnr FROM kna1 INTO vbak-kunnr WHERE kunnr IN s_kunnr.
  IF sy-subrc <> 0.
    MESSAGE e007.
  ENDIF.

*********************************Data Fetching**************************

START-OF-SELECTION.

  SELECT a~vbeln a~kunnr b~vbelv
               FROM vbak AS a INNER JOIN vbfa AS b
               ON a~vbeln = b~vbeln
               INTO CORRESPONDING FIELDS OF TABLE lt_sd_c1
               WHERE vkorg IN s_vkorg
               AND vtweg IN s_vtweg
               AND spart IN s_spart
               AND kunnr IN s_kunnr.

  IF NOT lt_sd_c1[] IS INITIAL.

    SELECT vbeln vlaufz vuntdat vbegdat venddat
         FROM veda INTO CORRESPONDING FIELDS OF TABLE lt_sd_c2
         FOR ALL ENTRIES IN lt_sd_c1
         WHERE vbeln = lt_sd_c1-vbelv
         AND venddat = p_dat.

  ELSE.

    MESSAGE i005.
    EXIT.

  ENDIF.


END-OF-SELECTION.

*******************************Display of Data**************************

  IF list = 'X'.

    LOOP AT lt_sd_c2.

      WRITE:/0 sy-vline,
            lt_sd_c2-vbeln UNDER 'SALES DOCUMENT', 16 sy-vline,
            lt_sd_c2-vuntdat UNDER 'CONTRACT SINGED DATE', 42 sy-vline,
            lt_sd_c2-vbegdat UNDER 'CONTRACT START DATE', 65 sy-vline,
       lt_sd_c2-venddat UNDER 'CONTRACT END DATE' COLOR 6, 100 sy-vline,
      lt_sd_c2-vlaufz UNDER 'VALIDITY PERIOD OF CONTRACT', 130 sy-vline.

    ENDLOOP.

    ULINE.

  ELSE.

**************Calling a subroutine for Field display in ALV*************

    PERFORM built_field_catalog.

*************Calling fucntion module for ALV****************************

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
              i_background_id  = 'ALV_BACKGROUND'
              i_grid_title     = 'Contract Details'
*              i_structure_name = 'veda'
              it_fieldcat      = gt_fieldcat[]
         TABLES
              t_outtab         = lt_sd_c2.

  ENDIF.


**************************Header for the page***************************

TOP-OF-PAGE.

  WRITE:/ 'CREATED BY : ', sy-uname,
         102 'CREATED ON :', sy-datum,
        /1(130) sy-uline .

  WRITE:/ sy-vline, 50 ' CONTRACT DETAILS ' COLOR 5,
          111 'Page No:',
          sy-pagno,
          130 sy-vline.

  ULINE.

  WRITE:/0 sy-vline,
          2 'SALES DOCUMENT' COLOR 3,16 sy-vline,
          20 'CONTRACT SIGNED DATE' COLOR 3, 42 sy-vline,
          45 'CONTRACT START DATE' COLOR 3, 65 sy-vline,
          75 'CONTRACT END DATE' COLOR 3, 100 sy-vline,
          102 'VALIDITY PERIOD OF CONTRACT' COLOR 3, 130 sy-vline.

  ULINE.




*&---------------------------------------------------------------------*
*&      Form  built_field_catalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

FORM built_field_catalog.

  gs_fieldcat-col_pos      = '1'.
  gs_fieldcat-fieldname    = 'VBELN'.
  gs_fieldcat-outputlen    = 30.
  gs_fieldcat-seltext_l    = 'SALES DOCUMENT NUMBER'.
  APPEND gs_fieldcat TO gt_fieldcat.

  gs_fieldcat-col_pos      = '2'.
  gs_fieldcat-fieldname    = 'VLAUFZ'.
  gs_fieldcat-outputlen    = 9.
  gs_fieldcat-seltext_l    = 'VALIDITY'.
  APPEND gs_fieldcat TO gt_fieldcat.

  gs_fieldcat-col_pos      = '3'.
  gs_fieldcat-fieldname    = 'VUNTDAT'.
  gs_fieldcat-outputlen    = 12.
  gs_fieldcat-seltext_l    = 'SIGNED DATE'.
  APPEND gs_fieldcat TO gt_fieldcat.

  gs_fieldcat-col_pos      = '4'.
  gs_fieldcat-fieldname    = 'VBEGDAT'.
  gs_fieldcat-outputlen    = 12.
  gs_fieldcat-seltext_l    = 'START DATE'.
  APPEND gs_fieldcat TO gt_fieldcat.

  gs_fieldcat-col_pos      = '5'.
  gs_fieldcat-fieldname    = 'VENDDAT'.
  gs_fieldcat-outputlen    = 12.
  gs_fieldcat-seltext_l    = 'END DATE'.
  APPEND gs_fieldcat TO gt_fieldcat.

ENDFORM.

More Function Module
Functions / SAP Script / ALV

Tables
Database Table

ABAP Books List
ABAP/4 Certification, Programming, Smartforms, Sapscripts and Object Oriented Programming Books

Smart Forms
SAP Smartforms

ABAP Menu:
ABAP Example Hints and Tips

Return to Index:-
SAP ABAP/4 Programming, Basis Administration, Configuration Hints and Tips

(c) www.gotothings.com All material on this site is Copyright.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
All product names are trademarks of their respective companies.  The site www.gotothings.com is in no way affiliated with SAP AG.
Any unauthorised copying or mirroring is prohibited.