<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ALV Reporting in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723530#M896249</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is like ur requirement.....have a look&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report ZFI_RK_ACTIVE_VENDORS.                                       *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Program Name : ZFI_RK_ACTIVE_VENDORS                                *
*&amp;amp; Developer    : Mrunalini                                            *
*&amp;amp; Date Created : 11/17/2006                                           *
*&amp;amp; Date Ended   : 11/18/2006                                           *
*&amp;amp; Description  : Program to display the active and inactive Vendors.  *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ZFI_RK_ACTIVE_VENDORS LINE-COUNT 70
                              LINE-SIZE 250
                              NO STANDARD PAGE HEADING..

************************************************************************

TABLES: DISVARIANT, EKPO.
TYPE-POOLS: SLIS.

* Tables
TABLES:  BSAK,  " Accounting secondary index for vendor( cleared)
         BSIK,  " Accounting secondary index for vendor( opened)
         LFA1,   " vendor master table
         WYT3, "Partner Functions
         LFM1, "Vendor master record purchasing organization data
         LFB1. "Vendor Master (Company Code)
DATA:V_EKORG LIKE WYT3-EKORG.   " purchase organisation

* vendor tax id table
TYPES :  BEGIN OF TY_RTAB ,
           BUKRS TYPE BSAK-BUKRS,
         STCD1   TYPE LFA1-STCD1,
         STCD2   TYPE LFA1-STCD2,
         LIFNR   TYPE LFA1-LIFNR,
         NAME1   TYPE LFA1-NAME1,
         NAME2   TYPE LFA1-NAME2,
         STRAS   TYPE LFA1-STRAS,
         ORT01   TYPE LFA1-ORT01,
         PSTLZ   TYPE LFA1-PSTLZ,
         PFACH   TYPE LFA1-PFACH,
         PFORT   TYPE LFA1-PFORT,
         PSTL2   TYPE LFA1-PSTL2,
         REGIO   TYPE LFA1-REGIO,
         SPERM   TYPE LFA1-SPERM, "ASI
         QSREC TYPE  LFB1-QSREC,
         QSSKZ TYPE  LFB1-QSSKZ,
         SPERR TYPE LFB1-SPERR,
         EBELN TYPE EKKO-EBELN, "ASI
         BELNR TYPE BSIK-BELNR,

       END OF TY_RTAB.

* report data
TYPES :  BEGIN OF TY_DTAB,
         BUKRS   TYPE BSAK-BUKRS,
         LIFNR   TYPE LFA1-LIFNR,
         EBELN   TYPE EKKO-EBELN,   "ASI
      END OF TY_DTAB.

TYPES :  BEGIN OF TY_DTAB2 ,
       EBELN   TYPE EKKO-EBELN,
       LIFN2 TYPE EKPA-LIFN2,
       END OF TY_DTAB2.

TYPES: BEGIN OF TY_DTAB3, OCCURS, 0,
*     EBELN LIKE EKKO-EBELN,
      BELNR TYPE BSAK-BELNR,
      END OF TY_DTAB3.

PARAMETERS    :  REPT(1)." OBLIGATORY.
SELECT-OPTIONS:  COMPANY  FOR  BSAK-BUKRS," OBLIGATORY,
                 POSTDATE FOR  BSAK-BUDAT," OBLIGATORY,
                 VENDOR    FOR  LFA1-LIFNR ,
                 VenName for lfa1-name1.
PARAMETERS: P_VARI LIKE DISVARIANT-REPORT.
PARAMETERS: P_Count  AS CHECKBOX.
PARAMETERS: P_DETAIL AS CHECKBOX.
*----------------------------------------------------------------------*


DATA : RTAB TYPE STANDARD TABLE OF TY_RTAB WITH HEADER LINE,
       DTAB TYPE STANDARD TABLE OF TY_DTAB WITH HEADER LINE,
       DTAB2 TYPE STANDARD TABLE OF TY_DTAB2 WITH HEADER LINE,
       DTAB3 TYPE STANDARD TABLE OF ty_dtab3 WITH HEADER LINE.


DATA: TITLE(30) VALUE 'Active vendors listing'.
DATA: TITLE2(30) VALUE 'Non Active vendors listing'.
DATA: TAX_COUNT(5) TYPE N.
DATA: COUNT(6) TYPE N.
DATA: LIN TYPE I.
DATA: GX_VARIANT LIKE DISVARIANT,
      G_VARIANT LIKE DISVARIANT.
DATA:  LAYOUT   TYPE SLIS_LAYOUT_ALV,
       L_F      TYPE SLIS_T_FIELDCAT_ALV   WITH HEADER LINE,
       GROUP    TYPE SLIS_T_SP_GROUP_ALV   WITH HEADER LINE,
       COLOR    TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
DATA:  LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
       LS_LINE TYPE SLIS_LISTHEADER,
       T_EVENTS   TYPE SLIS_T_EVENT.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*----------------------------------------------------------------------*

INITIALIZATION.
  PERFORM EVENTTAB_AUFBAUEN USING T_EVENTS[].
  PERFORM VARIANT_INIT.
* Get default variant
  GX_VARIANT = G_VARIANT.

  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            I_SAVE     = 'A'
       CHANGING
            CS_VARIANT = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND  = 2.
  IF SY-SUBRC = 0.
    P_VARI = GX_VARIANT-VARIANT.
  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
  PERFORM VARIANT_INPUTHELP_F14.

START-OF-SELECTION.
  LS_LINE-TYP  = 'S'.
  WRITE SY-DATUM TO LS_LINE-INFO DD/MM/YY.
  WRITE SY-UZEIT TO LS_LINE-INFO+10.
  WRITE SY-UNAME TO LS_LINE-INFO+20.
  IF REPT = 'A'.
    WRITE TITLE    TO LS_LINE-INFO+30.
  ELSE.
    WRITE TITLE2   TO LS_LINE-INFO+30.
  ENDIF.
  APPEND LS_LINE TO LT_TOP_OF_PAGE.
  PERFORM FIELDS.
  IF NOT P_VARI IS INITIAL.
    PERFORM PAI_OF_SELECTION_SCREEN.
  ELSE.
    CALL FUNCTION 'REUSE_ALV_VARIANT_SELECT'
         EXPORTING
              I_DIALOG            = ' '
              I_USER_SPECIFIC     = 'A'
              I_DEFAULT           = ' '
*         I_TABNAME_HEADER    =
*         I_TABNAME_ITEM      =
              IT_DEFAULT_FIELDCAT = L_F[]
              I_LAYOUT            = LAYOUT
         IMPORTING
*         E_EXIT              =
              ET_FIELDCAT         = L_F[]
*         ET_SORT             =
*         ET_FILTER           =
         CHANGING
              CS_VARIANT          = DISVARIANT
         EXCEPTIONS
              WRONG_INPUT         = 1
              FC_NOT_COMPLETE     = 2
              NOT_FOUND           = 3
              PROGRAM_ERROR       = 4
              OTHERS              = 5.

  ENDIF.
  PERFORM MAIN_SELECT.

  IF P_DETAIL = 'X'.
    PERFORM GET_DETAIL.
  ENDIF.


  IF REPT = 'A'.
    MOVE TITLE  TO LAYOUT-WINDOW_TITLEBAR.
  ELSE.
    MOVE TITLE2 TO LAYOUT-WINDOW_TITLEBAR.
  ENDIF.
  IF P_COUNT = 'X'. "ASI
    WRITE: 'Count:', LIN.    "ASI
  ELSE.            "ASI

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         EXPORTING
              I_CALLBACK_PROGRAM      = 'ZFUS0109'
              I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
              IS_LAYOUT               = LAYOUT
              IT_FIELDCAT             = L_F[]
              IT_SPECIAL_GROUPS       = GROUP[]
              I_SAVE                  = 'A'
              IS_VARIANT              = G_VARIANT
              IT_EVENTS               = T_EVENTS
         TABLES
              T_OUTTAB                = RTAB
         EXCEPTIONS
              PROGRAM_ERROR           = 1
              OTHERS                  = 2.
  ENDIF. "ASI
*---------------------------------------------------------------------*
*       FORM FIELDS                                                   *
*---------------------------------------------------------------------*
FORM FIELDS.
  L_F-FIELDNAME     = 'BUKRS'.
  L_F-OUTPUTLEN     = 4.
  L_F-SELTEXT_L     = 'Co.'.
  L_F-REPTEXT_DDIC  = 'Co.'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'STCD1'.
  L_F-OUTPUTLEN     = 9.
  L_F-SELTEXT_L     = 'Tax id 1'.
  L_F-REPTEXT_DDIC  = 'Tax id 1'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'STCD2'.
  L_F-OUTPUTLEN     = 9.
  L_F-SELTEXT_L     = 'Tax id 2'.
  L_F-REPTEXT_DDIC  = 'Tax id 2'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'LIFNR'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'Vendor No.'.
  L_F-REPTEXT_DDIC  = 'Vendor No.'.
  L_F-REF_TABNAME   = 'LFA1'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'NAME1'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'Name1'.
  L_F-REPTEXT_DDIC  = 'Name1'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'NAME2'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'Name2'.
  L_F-REPTEXT_DDIC  = 'Name2'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'STRAS'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'Street'.
  L_F-REPTEXT_DDIC  = 'Street'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'ORT01'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'City'.
  L_F-REPTEXT_DDIC  = 'City'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PSTLZ'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'Zip code'.
  L_F-REPTEXT_DDIC  = 'Zip code'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PFACH'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'P.O. box'.
  L_F-REPTEXT_DDIC  = 'P.O. box'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PFORT'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'P.O. box City'.
  L_F-REPTEXT_DDIC  = 'P.O. box City'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PSTL2'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'Zip code'.
  L_F-REPTEXT_DDIC  = 'Zip code'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'REGIO'.
  L_F-OUTPUTLEN     = 3.
  L_F-SELTEXT_L     = 'State'.
  L_F-REPTEXT_DDIC  = 'State'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
* Start of code Change - 11/14/2001 -  ASI
  L_F-FIELDNAME     = 'QSREC'.
  L_F-OUTPUTLEN     = 13.
  L_F-SELTEXT_L     = 'Recipent Type'.
  L_F-REPTEXT_DDIC  = 'Recipent Type'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFB1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'QSSKZ'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'W.Tax Code'.
  L_F-REPTEXT_DDIC  = 'W.Tax Code'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFB1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'SPERR'.
  L_F-OUTPUTLEN     = 16.
  L_F-SELTEXT_L     = 'Co.Code Post Block'.
  L_F-REPTEXT_DDIC  = 'Co.Code Post Block'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFB1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'SPERM'.
  L_F-OUTPUTLEN     = 11.
  L_F-SELTEXT_L     = 'Purch Block'.
  L_F-REPTEXT_DDIC  = 'Purch Block'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'BELNR'.
  L_F-OUTPUTLEN     = 18.
  L_F-SELTEXT_L     = 'Document Number'.
  L_F-REPTEXT_DDIC  = 'Document Number'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = ' '.

  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'EBELN'.
  L_F-OUTPUTLEN     = 11.
  L_F-SELTEXT_L     = 'Purchase order'.
  L_F-REPTEXT_DDIC  = 'Purchase order'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'EKKO '.


*end of code change - 11/14/2001 - asi

* Start of code Change - 10/22/2001 -T53K934213 -  ASI
*  l_f-fieldname     = 'EKORG'.
*  l_f-outputlen     = 4.
*  l_f-seltext_l     = 'POrg'.
*  l_f-reptext_ddic  = 'POrg'.
*  l_f-ref_tabname   = 'RTAB'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'WYT3'.
*  append l_f. clear l_f.
* End of code Change - 10/22/2001 -T53K934213 -  ASI
*  l_f-fieldname     = 'QSSKZ'.
*  l_f-outputlen     = 2.
*  l_f-seltext_l     = 'WTC'.
*  l_f-reptext_ddic  = 'WTC'.
*  l_f-ref_tabname   = 'WTC'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'LFB1'.
*  append l_f. clear l_f.
*  l_f-fieldname     = 'WRBTR'.
*  l_f-seltext_l     = 'Amount'.
*  l_f-reptext_ddic  = 'Amount'.
*  l_f-ref_tabname   = 'RTAB'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'BSAK'.
*  l_f-ref_fieldname = 'WRBTR'.
*  l_f-do_sum        = 'X'.
*  append l_f. clear l_f.
*  l_f-fieldname     = 'BELNR'.
*  l_f-outputlen     = 10.
*  l_f-seltext_l     = 'Document'.
*  l_f-reptext_ddic  = 'Document'.
*  l_f-ref_tabname   = 'RTAB'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'BSAK'.
*  append l_f. clear l_f.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM MAIN_SELECT                                              *
*---------------------------------------------------------------------*
FORM MAIN_SELECT.

  SELECT BUKRS STCD1 STCD2 LFB1~LIFNR NAME1 NAME2 STRAS ORT01 PSTLZ
         PFACH PFORT PSTL2 REGIO LFA1~SPERM QSREC QSSKZ LFB1~SPERR

         INTO TABLE RTAB
         FROM ( LFB1 INNER JOIN LFA1
                   ON LFB1~LIFNR = LFA1~LIFNR )
        WHERE BUKRS IN COMPANY AND    "asi added 'and'
              LFA1~LIFNR IN VENDOR  AND    "asi
              LFA1~NAME1 IN VENNAME AND
              NOT LFB1~LOEVM = 'X'.


  SELECT DISTINCT BUKRS LIFNR
          INTO TABLE DTAB
          FROM BSAK FOR ALL ENTRIES IN RTAB
          WHERE LIFNR = RTAB-LIFNR
          AND   BUKRS = RTAB-BUKRS
          AND   BUDAT IN POSTDATE.

  SELECT DISTINCT BUKRS LIFNR
         APPENDING TABLE DTAB
         FROM BSIK FOR ALL ENTRIES IN RTAB
         WHERE LIFNR = RTAB-LIFNR
         AND   BUKRS = RTAB-BUKRS
         AND   BUDAT IN POSTDATE.

  SELECT DISTINCT BUKRS LIFNR EBELN
         APPENDING TABLE DTAB
         FROM EKKO FOR ALL ENTRIES IN RTAB
         WHERE LIFNR = RTAB-LIFNR
         AND   BUKRS = RTAB-BUKRS
         AND   BEDAT IN POSTDATE.


  SELECT DISTINCT  LIFN2    "ASI
         APPENDING TABLE DTAB2
         FROM EKPA FOR ALL ENTRIES IN DTAB
         WHERE EBELN = DTAB-EBELN AND   "ASI
               PARVW = 'PI'.            "ASI

  LOOP AT DTAB2.
    MOVE DTAB2-LIFN2 TO DTAB-LIFNR.
    APPEND DTAB.
  ENDLOOP.

  DELETE ADJACENT DUPLICATES FROM DTAB COMPARING LIFNR.

  IF REPT = 'A'.
    LOOP AT RTAB.
      READ TABLE DTAB WITH KEY LIFNR = RTAB-LIFNR.
      IF SY-SUBRC NE 0.
        DELETE RTAB.
      ENDIF.
    ENDLOOP.
    IF P_COUNT = 'X'. "ASI
      DESCRIBE TABLE RTAB LINES LIN.
    ENDIF. "ASI
  ELSE.
    IF REPT = 'N'.
      LOOP AT RTAB.
        READ TABLE DTAB WITH KEY LIFNR = RTAB-LIFNR.
        IF SY-SUBRC EQ 0.
          DELETE RTAB.
        ENDIF.
      ENDLOOP.
      IF P_COUNT = 'X'. "ASI
        DESCRIBE TABLE RTAB LINES LIN.
      ENDIF. "ASI

    ENDIF.
  ENDIF.

ENDFORM.                    "



*---------------------------------------------------------------------*
*       FORM VARIANT_INPUTHELP_F14                                    *
*---------------------------------------------------------------------*
FORM VARIANT_INPUTHELP_F14.
  DATA:  G_EXIT(1) TYPE C.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            IS_VARIANT          = G_VARIANT
            I_SAVE              = 'A'  " g_save
*           it_default_fieldcat =
       IMPORTING
            E_EXIT              = G_EXIT
            ES_VARIANT          = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND = 2.
  IF SY-SUBRC = 2.
    MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    IF G_EXIT = SPACE.
      P_VARI = GX_VARIANT-VARIANT.
    ENDIF.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM USER_COMMAND                                             *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
*  --&amp;gt;  UCOMM                                                         *
*  --&amp;gt;  SELFIELD                                                      *
*---------------------------------------------------------------------*
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
  IF UCOMM EQ '&amp;amp;IC1'.
    IF SELFIELD-TABINDEX &amp;lt;= 0.
*      MESSAGE S108.
      EXIT.
    ENDIF.
    IF SELFIELD-SEL_TAB_FIELD CS 'LIFNR'.
      SET PARAMETER ID 'LIF' FIELD SELFIELD-VALUE.
      CALL TRANSACTION 'XK05'.
    ELSEIF SELFIELD-SEL_TAB_FIELD CS 'BELNR'.
      SET PARAMETER ID 'BES' FIELD SELFIELD-VALUE.
      CALL TRANSACTION 'ME23N'.
*      read table itab index selfield-tabindex.
*      call transaction 'MB03'.
    ENDIF.
    CLEAR SY-UCOMM. CLEAR UCOMM.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM TOP_OF_PAGE                                              *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
*
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            IT_LIST_COMMENTARY = LT_TOP_OF_PAGE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM EVENTTAB_AUFBAUEN                                        *
*---------------------------------------------------------------------*
*  --&amp;gt;  P_T_EVENTS                                                    *
*---------------------------------------------------------------------*
FORM EVENTTAB_AUFBAUEN USING P_T_EVENTS TYPE SLIS_T_EVENT.
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            I_LIST_TYPE = 0
       IMPORTING
            ET_EVENTS   = P_T_EVENTS.
  READ TABLE P_T_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                                                 INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO P_T_EVENTS.
  ENDIF.

ENDFORM.                               " EVENTTAB_AUFBAUEN
*---------------------------------------------------------------------*
*       FORM PAI_OF_SELECTION_SCREEN                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM PAI_OF_SELECTION_SCREEN.

  IF NOT P_VARI IS INITIAL.
    MOVE G_VARIANT TO GX_VARIANT.
    MOVE P_VARI TO GX_VARIANT-VARIANT.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
         EXPORTING
              I_SAVE     = 'A'  " g_save
         CHANGING
              CS_VARIANT = GX_VARIANT.
    G_VARIANT = GX_VARIANT.
  ELSE.
    PERFORM VARIANT_INIT.
  ENDIF.

ENDFORM.                               " PAI_OF_SELECTION_SCREEN

*---------------------------------------------------------------------*
*       FORM VARIANT_INIT                                             *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM VARIANT_INIT.
*
  CLEAR G_VARIANT.
  G_VARIANT-REPORT = 'ZFUS0108'.
ENDFORM.                               " VARIANT_INIT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DETAIL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_DETAIL.
  SELECT BELNR
           INTO  TABLE DTAB3
           FROM BSAK
           WHERE LIFNR IN VENDOR
           AND   BUKRS IN COMPANY
           AND   BUDAT IN POSTDATE.


 SELECT  BELNR
         APPENDING TABLE DTAB3
         FROM BSIK
         WHERE LIFNR IN VENDOR
         AND   BUKRS IN COMPANY
         AND   BUDAT IN POSTDATE.

  SELECT EKKO~EBELN
         APPENDING TABLE DTAB3
         FROM ( EKKO INNER JOIN EKPO
                   ON EKKO~EBELN = EKPO~EBELN )
         WHERE ( LIFNR IN VENDOR OR
                 LIFRE IN VENDOR )
         AND   EKKO~BUKRS IN COMPANY
         AND   BEDAT IN POSTDATE AND
         NOT EKPO~ELIKZ = 'X'.

DELETE ADJACENT DUPLICATES FROM DTAB3 COMPARING BELNR.

  LOOP AT DTAB3.
    MOVE DTAB3-BELNR TO RTAB-BELNR.
    APPEND RTAB.
  ENDLOOP.

ENDFORM.                    " GET_DETAIL&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 May 2008 07:13:57 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-06T07:13:57Z</dc:date>
    <item>
      <title>ALV Reporting</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723529#M896248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please help me to create ALV list to display Vendor&amp;#146;s master data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Design a selection screen where user have option to enter range of vendor number based on the given vendor number get its master data from LFA1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output fields:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Account Number of Vendor or Creditor&lt;/P&gt;&lt;P&gt;Country Key&lt;/P&gt;&lt;P&gt;Name 1&lt;/P&gt;&lt;P&gt;City&lt;/P&gt;&lt;P&gt;Postal Code&lt;/P&gt;&lt;P&gt;House number and street&lt;/P&gt;&lt;P&gt;Vendor account group&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2008 07:05:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723529#M896248</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-06T07:05:46Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Reporting</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723530#M896249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is like ur requirement.....have a look&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report ZFI_RK_ACTIVE_VENDORS.                                       *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Program Name : ZFI_RK_ACTIVE_VENDORS                                *
*&amp;amp; Developer    : Mrunalini                                            *
*&amp;amp; Date Created : 11/17/2006                                           *
*&amp;amp; Date Ended   : 11/18/2006                                           *
*&amp;amp; Description  : Program to display the active and inactive Vendors.  *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ZFI_RK_ACTIVE_VENDORS LINE-COUNT 70
                              LINE-SIZE 250
                              NO STANDARD PAGE HEADING..

************************************************************************

TABLES: DISVARIANT, EKPO.
TYPE-POOLS: SLIS.

* Tables
TABLES:  BSAK,  " Accounting secondary index for vendor( cleared)
         BSIK,  " Accounting secondary index for vendor( opened)
         LFA1,   " vendor master table
         WYT3, "Partner Functions
         LFM1, "Vendor master record purchasing organization data
         LFB1. "Vendor Master (Company Code)
DATA:V_EKORG LIKE WYT3-EKORG.   " purchase organisation

* vendor tax id table
TYPES :  BEGIN OF TY_RTAB ,
           BUKRS TYPE BSAK-BUKRS,
         STCD1   TYPE LFA1-STCD1,
         STCD2   TYPE LFA1-STCD2,
         LIFNR   TYPE LFA1-LIFNR,
         NAME1   TYPE LFA1-NAME1,
         NAME2   TYPE LFA1-NAME2,
         STRAS   TYPE LFA1-STRAS,
         ORT01   TYPE LFA1-ORT01,
         PSTLZ   TYPE LFA1-PSTLZ,
         PFACH   TYPE LFA1-PFACH,
         PFORT   TYPE LFA1-PFORT,
         PSTL2   TYPE LFA1-PSTL2,
         REGIO   TYPE LFA1-REGIO,
         SPERM   TYPE LFA1-SPERM, "ASI
         QSREC TYPE  LFB1-QSREC,
         QSSKZ TYPE  LFB1-QSSKZ,
         SPERR TYPE LFB1-SPERR,
         EBELN TYPE EKKO-EBELN, "ASI
         BELNR TYPE BSIK-BELNR,

       END OF TY_RTAB.

* report data
TYPES :  BEGIN OF TY_DTAB,
         BUKRS   TYPE BSAK-BUKRS,
         LIFNR   TYPE LFA1-LIFNR,
         EBELN   TYPE EKKO-EBELN,   "ASI
      END OF TY_DTAB.

TYPES :  BEGIN OF TY_DTAB2 ,
       EBELN   TYPE EKKO-EBELN,
       LIFN2 TYPE EKPA-LIFN2,
       END OF TY_DTAB2.

TYPES: BEGIN OF TY_DTAB3, OCCURS, 0,
*     EBELN LIKE EKKO-EBELN,
      BELNR TYPE BSAK-BELNR,
      END OF TY_DTAB3.

PARAMETERS    :  REPT(1)." OBLIGATORY.
SELECT-OPTIONS:  COMPANY  FOR  BSAK-BUKRS," OBLIGATORY,
                 POSTDATE FOR  BSAK-BUDAT," OBLIGATORY,
                 VENDOR    FOR  LFA1-LIFNR ,
                 VenName for lfa1-name1.
PARAMETERS: P_VARI LIKE DISVARIANT-REPORT.
PARAMETERS: P_Count  AS CHECKBOX.
PARAMETERS: P_DETAIL AS CHECKBOX.
*----------------------------------------------------------------------*


DATA : RTAB TYPE STANDARD TABLE OF TY_RTAB WITH HEADER LINE,
       DTAB TYPE STANDARD TABLE OF TY_DTAB WITH HEADER LINE,
       DTAB2 TYPE STANDARD TABLE OF TY_DTAB2 WITH HEADER LINE,
       DTAB3 TYPE STANDARD TABLE OF ty_dtab3 WITH HEADER LINE.


DATA: TITLE(30) VALUE 'Active vendors listing'.
DATA: TITLE2(30) VALUE 'Non Active vendors listing'.
DATA: TAX_COUNT(5) TYPE N.
DATA: COUNT(6) TYPE N.
DATA: LIN TYPE I.
DATA: GX_VARIANT LIKE DISVARIANT,
      G_VARIANT LIKE DISVARIANT.
DATA:  LAYOUT   TYPE SLIS_LAYOUT_ALV,
       L_F      TYPE SLIS_T_FIELDCAT_ALV   WITH HEADER LINE,
       GROUP    TYPE SLIS_T_SP_GROUP_ALV   WITH HEADER LINE,
       COLOR    TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
DATA:  LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
       LS_LINE TYPE SLIS_LISTHEADER,
       T_EVENTS   TYPE SLIS_T_EVENT.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*----------------------------------------------------------------------*

INITIALIZATION.
  PERFORM EVENTTAB_AUFBAUEN USING T_EVENTS[].
  PERFORM VARIANT_INIT.
* Get default variant
  GX_VARIANT = G_VARIANT.

  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            I_SAVE     = 'A'
       CHANGING
            CS_VARIANT = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND  = 2.
  IF SY-SUBRC = 0.
    P_VARI = GX_VARIANT-VARIANT.
  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
  PERFORM VARIANT_INPUTHELP_F14.

START-OF-SELECTION.
  LS_LINE-TYP  = 'S'.
  WRITE SY-DATUM TO LS_LINE-INFO DD/MM/YY.
  WRITE SY-UZEIT TO LS_LINE-INFO+10.
  WRITE SY-UNAME TO LS_LINE-INFO+20.
  IF REPT = 'A'.
    WRITE TITLE    TO LS_LINE-INFO+30.
  ELSE.
    WRITE TITLE2   TO LS_LINE-INFO+30.
  ENDIF.
  APPEND LS_LINE TO LT_TOP_OF_PAGE.
  PERFORM FIELDS.
  IF NOT P_VARI IS INITIAL.
    PERFORM PAI_OF_SELECTION_SCREEN.
  ELSE.
    CALL FUNCTION 'REUSE_ALV_VARIANT_SELECT'
         EXPORTING
              I_DIALOG            = ' '
              I_USER_SPECIFIC     = 'A'
              I_DEFAULT           = ' '
*         I_TABNAME_HEADER    =
*         I_TABNAME_ITEM      =
              IT_DEFAULT_FIELDCAT = L_F[]
              I_LAYOUT            = LAYOUT
         IMPORTING
*         E_EXIT              =
              ET_FIELDCAT         = L_F[]
*         ET_SORT             =
*         ET_FILTER           =
         CHANGING
              CS_VARIANT          = DISVARIANT
         EXCEPTIONS
              WRONG_INPUT         = 1
              FC_NOT_COMPLETE     = 2
              NOT_FOUND           = 3
              PROGRAM_ERROR       = 4
              OTHERS              = 5.

  ENDIF.
  PERFORM MAIN_SELECT.

  IF P_DETAIL = 'X'.
    PERFORM GET_DETAIL.
  ENDIF.


  IF REPT = 'A'.
    MOVE TITLE  TO LAYOUT-WINDOW_TITLEBAR.
  ELSE.
    MOVE TITLE2 TO LAYOUT-WINDOW_TITLEBAR.
  ENDIF.
  IF P_COUNT = 'X'. "ASI
    WRITE: 'Count:', LIN.    "ASI
  ELSE.            "ASI

    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         EXPORTING
              I_CALLBACK_PROGRAM      = 'ZFUS0109'
              I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
              IS_LAYOUT               = LAYOUT
              IT_FIELDCAT             = L_F[]
              IT_SPECIAL_GROUPS       = GROUP[]
              I_SAVE                  = 'A'
              IS_VARIANT              = G_VARIANT
              IT_EVENTS               = T_EVENTS
         TABLES
              T_OUTTAB                = RTAB
         EXCEPTIONS
              PROGRAM_ERROR           = 1
              OTHERS                  = 2.
  ENDIF. "ASI
*---------------------------------------------------------------------*
*       FORM FIELDS                                                   *
*---------------------------------------------------------------------*
FORM FIELDS.
  L_F-FIELDNAME     = 'BUKRS'.
  L_F-OUTPUTLEN     = 4.
  L_F-SELTEXT_L     = 'Co.'.
  L_F-REPTEXT_DDIC  = 'Co.'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'STCD1'.
  L_F-OUTPUTLEN     = 9.
  L_F-SELTEXT_L     = 'Tax id 1'.
  L_F-REPTEXT_DDIC  = 'Tax id 1'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'STCD2'.
  L_F-OUTPUTLEN     = 9.
  L_F-SELTEXT_L     = 'Tax id 2'.
  L_F-REPTEXT_DDIC  = 'Tax id 2'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'LIFNR'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'Vendor No.'.
  L_F-REPTEXT_DDIC  = 'Vendor No.'.
  L_F-REF_TABNAME   = 'LFA1'.
  L_F-SP_GROUP      = 'A'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'NAME1'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'Name1'.
  L_F-REPTEXT_DDIC  = 'Name1'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'NAME2'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'Name2'.
  L_F-REPTEXT_DDIC  = 'Name2'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'STRAS'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'Street'.
  L_F-REPTEXT_DDIC  = 'Street'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'ORT01'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'City'.
  L_F-REPTEXT_DDIC  = 'City'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PSTLZ'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'Zip code'.
  L_F-REPTEXT_DDIC  = 'Zip code'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PFACH'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'P.O. box'.
  L_F-REPTEXT_DDIC  = 'P.O. box'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PFORT'.
  L_F-OUTPUTLEN     = 35.
  L_F-SELTEXT_L     = 'P.O. box City'.
  L_F-REPTEXT_DDIC  = 'P.O. box City'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'PSTL2'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'Zip code'.
  L_F-REPTEXT_DDIC  = 'Zip code'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
  L_F-FIELDNAME     = 'REGIO'.
  L_F-OUTPUTLEN     = 3.
  L_F-SELTEXT_L     = 'State'.
  L_F-REPTEXT_DDIC  = 'State'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.
* Start of code Change - 11/14/2001 -  ASI
  L_F-FIELDNAME     = 'QSREC'.
  L_F-OUTPUTLEN     = 13.
  L_F-SELTEXT_L     = 'Recipent Type'.
  L_F-REPTEXT_DDIC  = 'Recipent Type'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFB1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'QSSKZ'.
  L_F-OUTPUTLEN     = 10.
  L_F-SELTEXT_L     = 'W.Tax Code'.
  L_F-REPTEXT_DDIC  = 'W.Tax Code'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFB1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'SPERR'.
  L_F-OUTPUTLEN     = 16.
  L_F-SELTEXT_L     = 'Co.Code Post Block'.
  L_F-REPTEXT_DDIC  = 'Co.Code Post Block'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFB1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'SPERM'.
  L_F-OUTPUTLEN     = 11.
  L_F-SELTEXT_L     = 'Purch Block'.
  L_F-REPTEXT_DDIC  = 'Purch Block'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'LFA1'.
  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'BELNR'.
  L_F-OUTPUTLEN     = 18.
  L_F-SELTEXT_L     = 'Document Number'.
  L_F-REPTEXT_DDIC  = 'Document Number'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = ' '.

  APPEND L_F. CLEAR L_F.

  L_F-FIELDNAME     = 'EBELN'.
  L_F-OUTPUTLEN     = 11.
  L_F-SELTEXT_L     = 'Purchase order'.
  L_F-REPTEXT_DDIC  = 'Purchase order'.
  L_F-REF_TABNAME   = 'RTAB'.
  L_F-SP_GROUP      = 'A'.
  L_F-REF_TABNAME   = 'EKKO '.


*end of code change - 11/14/2001 - asi

* Start of code Change - 10/22/2001 -T53K934213 -  ASI
*  l_f-fieldname     = 'EKORG'.
*  l_f-outputlen     = 4.
*  l_f-seltext_l     = 'POrg'.
*  l_f-reptext_ddic  = 'POrg'.
*  l_f-ref_tabname   = 'RTAB'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'WYT3'.
*  append l_f. clear l_f.
* End of code Change - 10/22/2001 -T53K934213 -  ASI
*  l_f-fieldname     = 'QSSKZ'.
*  l_f-outputlen     = 2.
*  l_f-seltext_l     = 'WTC'.
*  l_f-reptext_ddic  = 'WTC'.
*  l_f-ref_tabname   = 'WTC'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'LFB1'.
*  append l_f. clear l_f.
*  l_f-fieldname     = 'WRBTR'.
*  l_f-seltext_l     = 'Amount'.
*  l_f-reptext_ddic  = 'Amount'.
*  l_f-ref_tabname   = 'RTAB'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'BSAK'.
*  l_f-ref_fieldname = 'WRBTR'.
*  l_f-do_sum        = 'X'.
*  append l_f. clear l_f.
*  l_f-fieldname     = 'BELNR'.
*  l_f-outputlen     = 10.
*  l_f-seltext_l     = 'Document'.
*  l_f-reptext_ddic  = 'Document'.
*  l_f-ref_tabname   = 'RTAB'.
*  l_f-sp_group      = 'A'.
*  l_f-ref_tabname   = 'BSAK'.
*  append l_f. clear l_f.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM MAIN_SELECT                                              *
*---------------------------------------------------------------------*
FORM MAIN_SELECT.

  SELECT BUKRS STCD1 STCD2 LFB1~LIFNR NAME1 NAME2 STRAS ORT01 PSTLZ
         PFACH PFORT PSTL2 REGIO LFA1~SPERM QSREC QSSKZ LFB1~SPERR

         INTO TABLE RTAB
         FROM ( LFB1 INNER JOIN LFA1
                   ON LFB1~LIFNR = LFA1~LIFNR )
        WHERE BUKRS IN COMPANY AND    "asi added 'and'
              LFA1~LIFNR IN VENDOR  AND    "asi
              LFA1~NAME1 IN VENNAME AND
              NOT LFB1~LOEVM = 'X'.


  SELECT DISTINCT BUKRS LIFNR
          INTO TABLE DTAB
          FROM BSAK FOR ALL ENTRIES IN RTAB
          WHERE LIFNR = RTAB-LIFNR
          AND   BUKRS = RTAB-BUKRS
          AND   BUDAT IN POSTDATE.

  SELECT DISTINCT BUKRS LIFNR
         APPENDING TABLE DTAB
         FROM BSIK FOR ALL ENTRIES IN RTAB
         WHERE LIFNR = RTAB-LIFNR
         AND   BUKRS = RTAB-BUKRS
         AND   BUDAT IN POSTDATE.

  SELECT DISTINCT BUKRS LIFNR EBELN
         APPENDING TABLE DTAB
         FROM EKKO FOR ALL ENTRIES IN RTAB
         WHERE LIFNR = RTAB-LIFNR
         AND   BUKRS = RTAB-BUKRS
         AND   BEDAT IN POSTDATE.


  SELECT DISTINCT  LIFN2    "ASI
         APPENDING TABLE DTAB2
         FROM EKPA FOR ALL ENTRIES IN DTAB
         WHERE EBELN = DTAB-EBELN AND   "ASI
               PARVW = 'PI'.            "ASI

  LOOP AT DTAB2.
    MOVE DTAB2-LIFN2 TO DTAB-LIFNR.
    APPEND DTAB.
  ENDLOOP.

  DELETE ADJACENT DUPLICATES FROM DTAB COMPARING LIFNR.

  IF REPT = 'A'.
    LOOP AT RTAB.
      READ TABLE DTAB WITH KEY LIFNR = RTAB-LIFNR.
      IF SY-SUBRC NE 0.
        DELETE RTAB.
      ENDIF.
    ENDLOOP.
    IF P_COUNT = 'X'. "ASI
      DESCRIBE TABLE RTAB LINES LIN.
    ENDIF. "ASI
  ELSE.
    IF REPT = 'N'.
      LOOP AT RTAB.
        READ TABLE DTAB WITH KEY LIFNR = RTAB-LIFNR.
        IF SY-SUBRC EQ 0.
          DELETE RTAB.
        ENDIF.
      ENDLOOP.
      IF P_COUNT = 'X'. "ASI
        DESCRIBE TABLE RTAB LINES LIN.
      ENDIF. "ASI

    ENDIF.
  ENDIF.

ENDFORM.                    "



*---------------------------------------------------------------------*
*       FORM VARIANT_INPUTHELP_F14                                    *
*---------------------------------------------------------------------*
FORM VARIANT_INPUTHELP_F14.
  DATA:  G_EXIT(1) TYPE C.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            IS_VARIANT          = G_VARIANT
            I_SAVE              = 'A'  " g_save
*           it_default_fieldcat =
       IMPORTING
            E_EXIT              = G_EXIT
            ES_VARIANT          = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND = 2.
  IF SY-SUBRC = 2.
    MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    IF G_EXIT = SPACE.
      P_VARI = GX_VARIANT-VARIANT.
    ENDIF.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM USER_COMMAND                                             *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
*  --&amp;gt;  UCOMM                                                         *
*  --&amp;gt;  SELFIELD                                                      *
*---------------------------------------------------------------------*
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
  IF UCOMM EQ '&amp;amp;IC1'.
    IF SELFIELD-TABINDEX &amp;lt;= 0.
*      MESSAGE S108.
      EXIT.
    ENDIF.
    IF SELFIELD-SEL_TAB_FIELD CS 'LIFNR'.
      SET PARAMETER ID 'LIF' FIELD SELFIELD-VALUE.
      CALL TRANSACTION 'XK05'.
    ELSEIF SELFIELD-SEL_TAB_FIELD CS 'BELNR'.
      SET PARAMETER ID 'BES' FIELD SELFIELD-VALUE.
      CALL TRANSACTION 'ME23N'.
*      read table itab index selfield-tabindex.
*      call transaction 'MB03'.
    ENDIF.
    CLEAR SY-UCOMM. CLEAR UCOMM.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM TOP_OF_PAGE                                              *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
*
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            IT_LIST_COMMENTARY = LT_TOP_OF_PAGE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM EVENTTAB_AUFBAUEN                                        *
*---------------------------------------------------------------------*
*  --&amp;gt;  P_T_EVENTS                                                    *
*---------------------------------------------------------------------*
FORM EVENTTAB_AUFBAUEN USING P_T_EVENTS TYPE SLIS_T_EVENT.
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            I_LIST_TYPE = 0
       IMPORTING
            ET_EVENTS   = P_T_EVENTS.
  READ TABLE P_T_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                                                 INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO P_T_EVENTS.
  ENDIF.

ENDFORM.                               " EVENTTAB_AUFBAUEN
*---------------------------------------------------------------------*
*       FORM PAI_OF_SELECTION_SCREEN                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM PAI_OF_SELECTION_SCREEN.

  IF NOT P_VARI IS INITIAL.
    MOVE G_VARIANT TO GX_VARIANT.
    MOVE P_VARI TO GX_VARIANT-VARIANT.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
         EXPORTING
              I_SAVE     = 'A'  " g_save
         CHANGING
              CS_VARIANT = GX_VARIANT.
    G_VARIANT = GX_VARIANT.
  ELSE.
    PERFORM VARIANT_INIT.
  ENDIF.

ENDFORM.                               " PAI_OF_SELECTION_SCREEN

*---------------------------------------------------------------------*
*       FORM VARIANT_INIT                                             *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM VARIANT_INIT.
*
  CLEAR G_VARIANT.
  G_VARIANT-REPORT = 'ZFUS0108'.
ENDFORM.                               " VARIANT_INIT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DETAIL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_DETAIL.
  SELECT BELNR
           INTO  TABLE DTAB3
           FROM BSAK
           WHERE LIFNR IN VENDOR
           AND   BUKRS IN COMPANY
           AND   BUDAT IN POSTDATE.


 SELECT  BELNR
         APPENDING TABLE DTAB3
         FROM BSIK
         WHERE LIFNR IN VENDOR
         AND   BUKRS IN COMPANY
         AND   BUDAT IN POSTDATE.

  SELECT EKKO~EBELN
         APPENDING TABLE DTAB3
         FROM ( EKKO INNER JOIN EKPO
                   ON EKKO~EBELN = EKPO~EBELN )
         WHERE ( LIFNR IN VENDOR OR
                 LIFRE IN VENDOR )
         AND   EKKO~BUKRS IN COMPANY
         AND   BEDAT IN POSTDATE AND
         NOT EKPO~ELIKZ = 'X'.

DELETE ADJACENT DUPLICATES FROM DTAB3 COMPARING BELNR.

  LOOP AT DTAB3.
    MOVE DTAB3-BELNR TO RTAB-BELNR.
    APPEND RTAB.
  ENDLOOP.

ENDFORM.                    " GET_DETAIL&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2008 07:13:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723530#M896249</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-06T07:13:57Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Reporting</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723531#M896250</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;all the fields u require r from lfa1 only. so u dont need to create a report again. if u want to see the output as alv list then&lt;/P&gt;&lt;P&gt;goto se11 ,give table name lfa1 - display ,goto utilities- settings - data browser and select radio button alv list.&lt;/P&gt;&lt;P&gt;if u want only specific fields goto settings - list format - choose fields and select the fields u reqiure in output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2008 07:14:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723531#M896250</guid>
      <dc:creator>GauthamV</dc:creator>
      <dc:date>2008-05-06T07:14:25Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Reporting</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723532#M896251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;all the fields u require r from lfa1 only. so u dont need to create a report again. if u want to see the output as alv list then&lt;/P&gt;&lt;P&gt;goto se11 ,give table name lfa1 - display ,goto utilities- settings - data browser and select radio button alv list.&lt;/P&gt;&lt;P&gt;if u want only specific fields goto settings - list format - choose fields and select the fields u reqiure in output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2008 07:14:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723532#M896251</guid>
      <dc:creator>GauthamV</dc:creator>
      <dc:date>2008-05-06T07:14:52Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Reporting</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723533#M896252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;design selection scren&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select-options:s_lifnr for lfa1-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;based on that retrieve records to internal table .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pass that internal table to function module .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see this example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZTUFI091                                .&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZDEMO_ALVGRID                                               *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp; Example of a simple ALV Grid Report                                 *&lt;/P&gt;&lt;P&gt;*&amp;amp; ...................................                                 *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp; The basic requirement for this demo is to display a number of       *&lt;/P&gt;&lt;P&gt;*&amp;amp; fields from the EKKO table.                                         *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*REPORT  zdemo_alvgrid                 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:     ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools: slis.                                 "ALV Declarations&lt;/P&gt;&lt;P&gt;*Data Declaration&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;TYPES: BEGIN OF t_ekko,&lt;/P&gt;&lt;P&gt;  ebeln TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;  ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;  statu TYPE ekpo-statu,&lt;/P&gt;&lt;P&gt;  aedat TYPE ekpo-aedat,&lt;/P&gt;&lt;P&gt;  matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;  menge TYPE ekpo-menge,&lt;/P&gt;&lt;P&gt;  meins TYPE ekpo-meins,&lt;/P&gt;&lt;P&gt;  netpr TYPE ekpo-netpr,&lt;/P&gt;&lt;P&gt;  peinh TYPE ekpo-peinh,&lt;/P&gt;&lt;P&gt; END OF t_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;      wa_ekko TYPE t_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ALV data declarations&lt;/P&gt;&lt;P&gt;data: fieldcatalog type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;      gd_tab_group type slis_t_sp_group_alv,&lt;/P&gt;&lt;P&gt;      gd_layout    type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      gd_repid     like sy-repid,&lt;/P&gt;&lt;P&gt;      gt_events     type slis_t_event,&lt;/P&gt;&lt;P&gt;      gd_prntparams type slis_print_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*Start-of-selection.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform data_retrieval.&lt;/P&gt;&lt;P&gt;perform build_fieldcatalog.&lt;/P&gt;&lt;P&gt;perform build_layout.&lt;/P&gt;&lt;P&gt;perform build_events.&lt;/P&gt;&lt;P&gt;perform build_print_params.&lt;/P&gt;&lt;P&gt;perform display_alv_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_FIELDCATALOG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Build Fieldcatalog for ALV Report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;There are a number of ways to create a fieldcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For the purpose of this example i will build the fieldcatalog manualy&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;by populating the internal table fields individually and then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;appending the rows. This method can be the most time consuming but can&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;also allow you  more control of the final product.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Beware though, you need to ensure that all fields required are&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;populated. When using some of functionality available via ALV, such as&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;total. You may need to provide more information than if you were&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;simply displaying the result&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              I.e. Field type may be required in-order for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   the 'TOTAL' function to work.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'EBELN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Purchase Order'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 0.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 10.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-no_zero     = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'EBELP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'PO Item'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 1.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'STATU'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Status'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 2.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'AEDAT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Item change date'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 3.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MATNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Material Number'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 4.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MENGE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'PO quantity'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 5.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MEINS'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Order Unit'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 6.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'NETPR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Net Price'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 7.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-datatype     = 'CURR'.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'PEINH'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'Price Unit'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 8.&lt;/P&gt;&lt;P&gt;  append fieldcatalog to fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear  fieldcatalog.&lt;/P&gt;&lt;P&gt;endform.                    " BUILD_FIELDCATALOG&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_LAYOUT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Build layout for ALV grid report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_layout.&lt;/P&gt;&lt;P&gt;  gd_layout-no_input          = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-totals_text       = 'Totals'(201).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-totals_only        = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-f2code            = 'DISP'.  "Sets fcode for when double&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        "click(press f2)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-zebra             = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-group_change_edit = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-header_text       = 'helllllo'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.                    " BUILD_LAYOUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DISPLAY_ALV_REPORT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Display report using ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form display_alv_report.&lt;/P&gt;&lt;P&gt;  gd_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_callback_program      = gd_repid&lt;/P&gt;&lt;P&gt;            i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM&lt;/P&gt;&lt;P&gt;            i_callback_user_command = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           i_grid_title           = outtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            is_layout               = gd_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat             = fieldcatalog[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           it_special_groups       = gd_tabgroup&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            it_events               = gt_events&lt;/P&gt;&lt;P&gt;            is_print                = gd_prntparams&lt;/P&gt;&lt;P&gt;            i_save                  = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           is_variant              = z_template&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            t_outtab                = it_ekko&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            program_error           = 1&lt;/P&gt;&lt;P&gt;            others                  = 2.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " DISPLAY_ALV_REPORT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DATA_RETRIEVAL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Retrieve data form EKPO table and populate itab it_ekko&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form data_retrieval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select ebeln ebelp statu aedat matnr menge meins netpr peinh&lt;/P&gt;&lt;P&gt; up to 10 rows&lt;/P&gt;&lt;P&gt;  from ekpo&lt;/P&gt;&lt;P&gt;  into table it_ekko.&lt;/P&gt;&lt;P&gt;endform.                    " DATA_RETRIEVAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Form  TOP-OF-PAGE                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Report Header                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form top-of-page.&lt;/P&gt;&lt;P&gt;*ALV Header declarations&lt;/P&gt;&lt;P&gt;data: t_header type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      wa_header type slis_listheader,&lt;/P&gt;&lt;P&gt;      t_line like wa_header-info,&lt;/P&gt;&lt;P&gt;      ld_lines type i,&lt;/P&gt;&lt;P&gt;      ld_linesc(10) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Title&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_header-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  wa_header-info = 'EKKO Table Report'.&lt;/P&gt;&lt;P&gt;  append wa_header to t_header.&lt;/P&gt;&lt;P&gt;  clear wa_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_header-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  wa_header-key = 'Date: '.&lt;/P&gt;&lt;P&gt;  CONCATENATE  sy-datum+6(2) '.'&lt;/P&gt;&lt;P&gt;               sy-datum+4(2) '.'&lt;/P&gt;&lt;P&gt;               sy-datum(4) INTO wa_header-info.   "todays date&lt;/P&gt;&lt;P&gt;  append wa_header to t_header.&lt;/P&gt;&lt;P&gt;  clear: wa_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Total No. of Records Selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  describe table it_ekko lines ld_lines.&lt;/P&gt;&lt;P&gt;  ld_linesc = ld_lines.&lt;/P&gt;&lt;P&gt;  concatenate 'Total No. of Records Selected: ' ld_linesc&lt;/P&gt;&lt;P&gt;                    into t_line separated by space.&lt;/P&gt;&lt;P&gt;  wa_header-typ  = 'A'.&lt;/P&gt;&lt;P&gt;  wa_header-info = t_line.&lt;/P&gt;&lt;P&gt;  append wa_header to t_header.&lt;/P&gt;&lt;P&gt;  clear: wa_header, t_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            it_list_commentary = t_header.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           i_logo             = 'Z_LOGO'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM USER_COMMAND                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      --&amp;gt; R_UCOMM                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      --&amp;gt; RS_SELFIELD                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                  rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check function code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check field clicked on within ALVgrid report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF rs_selfield-fieldname = 'EBELN'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Read data table, using index of row user clicked on&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Set parameter ID for transaction screen field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Sxecute transaction ME23N, and skip initial data entry screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_EVENTS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Build events table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_events.&lt;/P&gt;&lt;P&gt;  data: ls_event type slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_list_type = 0&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            et_events   = gt_events[].&lt;/P&gt;&lt;P&gt;  read table gt_events with key name =  slis_ev_end_of_page&lt;/P&gt;&lt;P&gt;                           into ls_event.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move 'END_OF_PAGE' to ls_event-form.&lt;/P&gt;&lt;P&gt;    append ls_event to gt_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table gt_events with key name =  slis_ev_end_of_list&lt;/P&gt;&lt;P&gt;                           into ls_event.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move 'END_OF_LIST' to ls_event-form.&lt;/P&gt;&lt;P&gt;    append ls_event to gt_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " BUILD_EVENTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_PRINT_PARAMS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Setup print parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_print_params.&lt;/P&gt;&lt;P&gt;  gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer&lt;/P&gt;&lt;P&gt;  gd_prntparams-no_coverpage = 'X'.&lt;/P&gt;&lt;P&gt;endform.                    " BUILD_PRINT_PARAMS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  END_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form END_OF_PAGE.&lt;/P&gt;&lt;P&gt;  data: listwidth type i,&lt;/P&gt;&lt;P&gt;        ld_pagepos(10) type c,&lt;/P&gt;&lt;P&gt;        ld_page(10)    type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write: sy-uline(50).&lt;/P&gt;&lt;P&gt;  skip.&lt;/P&gt;&lt;P&gt;  write:/40 'Page:', sy-pagno .&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  END_OF_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form END_OF_LIST.&lt;/P&gt;&lt;P&gt;  data: listwidth type i,&lt;/P&gt;&lt;P&gt;        ld_pagepos(10) type c,&lt;/P&gt;&lt;P&gt;        ld_page(10)    type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  skip.&lt;/P&gt;&lt;P&gt;  write:/40 'Page:', sy-pagno .&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2008 07:15:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723533#M896252</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-06T07:15:49Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Reporting</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723534#M896253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters : P_lifnr like lfa1-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : begin of it_lfa1 occurs 0 ,&lt;/P&gt;&lt;P&gt;lifnt like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;name1 like lfa1-name1,&lt;/P&gt;&lt;P&gt;ort01 like lfa1-ort01,&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;end of it_lfa1.&lt;/P&gt;&lt;P&gt;select lifnr land1 name1 ort01 pstlz stras from lfa1 into table it_lfa1 where&lt;/P&gt;&lt;P&gt; lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  Perform fieldcat1 using    'LIFNR'  1  'LIFNR' 'Vendor number'&lt;/P&gt;&lt;P&gt;      'it_lfa1' .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  Perform fieldcat1 using    'NAME1'  2  'NAME1' 'Name'&lt;/P&gt;&lt;P&gt;      'it_lfa1' .&lt;/P&gt;&lt;P&gt;      &lt;/P&gt;&lt;P&gt;  Perform fieldcat1 using    'ORT01'   3  'ORT01' 'city'&lt;/P&gt;&lt;P&gt;      'it_lfa1' .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  Perform fieldcat1 using    'PSTLZ'   4  'PSTLZ' 'Postal code'&lt;/P&gt;&lt;P&gt;      'it_lfa1' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Perform fieldcat1 using    'STRAS'   5   'STRAS' 'House no'&lt;/P&gt;&lt;P&gt;      'it_lfa1' .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      &lt;/P&gt;&lt;P&gt;      &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; FORM fieldcat1 USING  fname    TYPE slis_fieldname&lt;/P&gt;&lt;P&gt;                      pos      LIKE sy-cucol&lt;/P&gt;&lt;P&gt;                      reffield LIKE dd03p-fieldname&lt;/P&gt;&lt;P&gt;                      seltext  LIKE dd03p-scrtext_l&lt;/P&gt;&lt;P&gt;                      tabname  TYPE slis_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear ls_fieldcat.&lt;/P&gt;&lt;P&gt;   ls_fieldcat-fieldname =  fname.&lt;/P&gt;&lt;P&gt;   ls_fieldcat-col_pos       =   pos.&lt;/P&gt;&lt;P&gt;   ls_fieldcat-ref_fieldname =   reffield.&lt;/P&gt;&lt;P&gt;   ls_fieldcat-seltext_l     =   seltext.&lt;/P&gt;&lt;P&gt;   ls_fieldcat-tabname       =   tabname.&lt;/P&gt;&lt;P&gt;  APPEND ls_fieldcat TO lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   I_CALLBACK_PROGRAM                = sy-repid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   IT_FIELDCAT                       = lt_fieldcat&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    T_OUTTAB                          = it_lfa1&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   PROGRAM_ERROR                     = 1&lt;/P&gt;&lt;P&gt;   OTHERS                            = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;test it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;give reward if useful,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Narasimha&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: narasimha marella on May 6, 2008 9:26 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 May 2008 07:20:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-reporting/m-p/3723534#M896253</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-06T07:20:26Z</dc:date>
    </item>
  </channel>
</rss>

