ALVGRID

Hi,
I develop a program to display the informations using alvgrid.
my goal is to create several "top-of-page" for each changing of a customer and the details displaying alvgrid.
thx in advance.
Use meaningful subject
Edited by: Vijay Babu Dudla on Jan 19, 2009 5:23 AM

hi,
u can have 2 headings at a time.
have a look,
FORM Z_LISTHEADER USING P_I_LISTHEADER TYPE SLIS_T_LISTHEADER.
  DATA: L_LISTHEADER TYPE SLIS_LISTHEADER.
  REFRESH P_I_LISTHEADER.
  CLEAR L_LISTHEADER.
  L_LISTHEADER-TYP = 'H'.
  L_LISTHEADER-INFO = TEXT-001.
  APPEND L_LISTHEADER TO P_I_LISTHEADER.
  CLEAR L_LISTHEADER.
  L_LISTHEADER-TYP = 'H'.
  L_LISTHEADER-INFO = TEXT-002.
  APPEND L_LISTHEADER TO P_I_LISTHEADER.
*&      Form  GRID_TITLE
FORM grid_title .
  v_gridtitle = ' ALV FOR SALES ORDER'.
ENDFORM.                    " GRID_TITLE
*TOP OF PAGE.
FORM top_of_page.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = i_listheader.
ENDFORM.                    "TOP_OF_PAGE
u can have multiple headings using listheader.
regards,
Pritha.

Similar Messages

  • Want to convert Sap standard report  into alvgrid

    HI PLEASE HELP THIS IS CODE BELOW OF SAP STANDARD REPORT CODE  WANT TO CONVERT INTO ALVGRID
    LEAS HELP
    REPORT RFKOPR00
           MESSAGE-ID FR
           LINE-SIZE  132
           NO STANDARD PAGE HEADING.
    TABLES:   B0SG,
              LFA1,                        "Daten auf Mandantenebene
                LFB1,                      "Daten auf Buchungskreisebene
                  LFB5,                    "Mahndaten
                  LFC1,                    "Verkehrszahlen
                  LFC3,                    "Sonderumsätze
                  BSIK,                    "Offend Posten
                  BKPF,
                    BSEG,
                           BSEGA.
    TABLES:
              BHDGD,
              T001,
              T001S,
              *T001S,
              T074T,
              T074U,
              TBSL,
              TBSLT,
              TCURX,
              ADRS,
              RFPDO,
              RFPDO1,
              RFSDO,
              FAEDE.
    FIELD-SYMBOLS: .
    *Hilfsfelder
    *---Prüfung ob mehrere Hauswährungen verarbeitet werden.
    DATA:    CFAKT(3)      TYPE P,
             CHECKSALDO(8) TYPE P,
             CHECKAGOBL(8) TYPE P,
             WAERS LIKE T001-WAERS,
             WFLAG(1) TYPE P VALUE '0',
             WAERS2        LIKE T001-WAERS,
             WFLAG2(1)     TYPE P VALUE '0',
             PH-LINE(132)  TYPE C.
    *---Ermittlung aktuelles Geschäftsjahr über Funktionsbaustein.
    DATA: CURRY LIKE BSIK-GJAHR.
    *-Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug--
    *ATA: ZVTAGE LIKE KNB4-VZS01, "Verzugstage
        ZVSKONTO(8) TYPE P,     "Zahlungsvolumen bei Zahlung mit Skonto
        ZVNETTO(8)  TYPE P,     "Zahlungsvolumen bei Nettozahlung
        ZVVERZUG(8) TYPE P,     "Verzugstage
        ZVMALVZ(8)  TYPE P,     "Zahlungvolumen * Verzugstage
                                "KNB4-VZSxx)
        ZVTYP(1)    TYPE C,     "Skonto oder Nettozahler
        ZVPER(4)    TYPE C.     "Periode letze Zahlung
    *---Zeilenanzahl fü Adressausgabe -
    DATA: ZEILENANZAHL LIKE ADRS-ANZZL VALUE 7.
    DATA: KSALDO(6)  TYPE P.               "Saldovortrag
        BEABZUG(6) TYPE P,                   "Berechtigte Abzüge
        UBABZUG(6) TYPE P,                   "Unberechtigte Abzüge
        JAHRAUG(6) TYPE P,                   "Kumulierter Jahresausgleich
        KUMZINS(6) TYPE P.                   "Kumulierter Zins
    Ausgabe der Mahndaten pro Buchungskreis.
    DATA: INDEX(2) TYPE P VALUE 0.
    Hilfsfelder
    DATA: HF(1)    TYPE C.
    DATA: TXT_1(78) TYPE C,                "Mahnbereich
          TXT_2(78) TYPE C,                "Mahnart
          TXT_3(78) TYPE C,                "Mahnempfänger
          TXT_4(78) TYPE C,                "Mahndatum
          TXT_5(78) TYPE C,                "Mahnstufe
          TXT_6(78) TYPE C,                "Mahnsperre
          TXT_7(78) TYPE C,                "Mahnverfahren
          TXT_8(78) TYPE C.                "Sachbearbeiter
    DATA: BEGIN OF XMAHN OCCURS 10.
            INCLUDE STRUCTURE LFB5.
    DATA: END OF XMAHN.
    Hilfsfelder
    DATA: CHAR1(1)   TYPE C.
    DATA: FLAG1(1)   TYPE C.
    DATA: INTENS(1)  TYPE C.
    DATA: FLAG2(1)   TYPE C.
    *---- K o n s t a n t e n -
    *---- DNULL zum Vergleich mit Datumsfeldern -
    DATA: DNULL(8) TYPE C VALUE '00000000'.
    *---- DECKBLATT = 'N' ==> Kein Deckblatt bei NEW-SECTION -
    DATA: DECKBLATT TYPE C VALUE 'N'.
    *---- 'H' =   Hilfsfelder, die jederzeit fuer Berechnungen ver-  -
    *---- wendet werden koennen. -
    DATA: BEGIN OF H,
            STICHTAG(8),
            OFFSET(2) TYPE P,
            OFFSE1(2) TYPE P,
            SOLL      LIKE LFC1-UM01S,
            HABEN     LIKE LFC1-UM01H,
            SALDO     LIKE LFC1-UMSAV,
            SHBKZ     LIKE LFC3-SHBKZ,     "Sonderhauptbuchkennzeichen
            SALDV     LIKE LFC3-SALDV,     "Sonderhauptbuch-Saldovortrag
            SHBLS     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-Saldo
            SHBSL     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-SOLL
            SHBHB     LIKE LFC3-HABNL,     "Sonderhauptbuch-Lfd.-HABEN
          GBNUM     LIKE lfC1-GBN01,    "Geschaeftsber. Nummer ECKERT
          GBUMS     LIKE lfC1-GBU01,    "Geschaeftsber. Umsatz
            TEXT(15),
            UMLOW     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
            UMHIG     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
          END   OF H.
    ---- 'C' =   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C,
            SALDO     TYPE P,              "Saldo
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          END   OF C.
    ---- 'C2'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C2 OCCURS 0,
            BUKRS     LIKE LFC1-BUKRS,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
            LFTAGE(3) TYPE P,              "Langfristige Überzugstage
            MFTAGE(3) TYPE P,              "Mittelfristige Überzugstage
            KFTAGE(3) TYPE P,              "Kurzfristige Überzugstage
            ZVTYP(1)    TYPE C,            "Flag Skonto oder Nettozahler
            ZVPER(6)    TYPE C,            "letze Zahlungsperiode
            ZVVERZUG(8) TYPE P,            "Durchschittliche Verzugst
          END   OF C2.
    ---- 'C3'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C3,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          ZVTYP(1)    TYPE C,       "Flag Skonto oder Nettozahler
          ZVPER(6)    TYPE C,       "letze Zahlungsperiode
          ZVVERZUG(8) TYPE P,       "Durchschittliche Verzugst
          END   OF C3.
    DATA: SHBETRAG LIKE BSEGA-DMSHB.       "TYPE P.
    *---- 'RTAB' = Rastertabelle fuer offene Posten -
    DATA: BEGIN OF RTAB OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RTAB.
    *---- 'RBUS' = Rastertabelle fuer Summen pro Sachbearbeiter -
    *ATA: BEGIN OF RBUS OCCURS 30,
          SORTK(1)   TYPE C,        "0 = Summe Gesber
                                    "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
          WAERS LIKE BSIk-WAERS,
          RAART TYPE C,             "Rasterart
                                    "1 = Netto-Faelligkeit
                                    "2 = Skonto1-Faelligkeit
                                    "3 = Zahlungseingang
                                    "4 = Ueber-Faelligkeit
          KUMUM TYPE P,             "Umsatz
          ANZAH TYPE P,             "Anzahlungen
          OPSUM TYPE P,             "Offene Posten Summe
          RAST1 TYPE P,             "Rasterfeld 1
          RAST2 TYPE P,             "Rasterfeld 2
          RAST3 TYPE P,             "Rasterfeld 3
          RAST4 TYPE P,             "Rasterfeld 4
          RAST5 TYPE P,             "Rasterfeld 5
          RAST6 TYPE P,             "Rasterfeld 6
        END   OF RBUS.
    *---- 'RBUK' = Rastertabelle fuer Summen pro Buchungskreis  -
    DATA: BEGIN OF RBUK OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RBUK.
    ---- 'RSUM' = Rastertabelle pro Währung über alle Buchungskreise ---
    DATA: BEGIN OF RSUM OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesperrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RSUM.
    *---- interne Tabelle für Periodenabgrenzung----
    RANGES: BMONAT FOR RFPDO-DOPRBMON.
    ---- In die Felder RP01 bis RP05 werden dynamisch die von aussen ---
    *---- eingegebenen Rasterpunkte uebertragen -
    DATA: RP01(2)   TYPE P,                "   0
          RP02(2)   TYPE P,                "  20
          RP03(2)   TYPE P,                "  40
          RP04(2)   TYPE P,                "  80
          RP05(2)   TYPE P,                " 100
          RP06(3)   TYPE P,                "   1
          RP07(3)   TYPE P,                "  21
          RP08(3)   TYPE P,                "  41
          RP09(3)   TYPE P,                "  81
          RP10(3)   TYPE P.                " 101
    *---- In die Felder RC01 bis RC10 werden die Rasterpunkte in -
    ---- charakterform abgestellt. (fuer REPLACE-Funktion in Variabler -
    *---- Ueberschrift) -
    DATA: RC01(4)   TYPE C,                                     "  0
          RC02(4)   TYPE C,                "  20
          RC03(4)   TYPE C,                "  40
          RC04(4)   TYPE C,                "  80
          RC05(4)   TYPE C,                " 100
          RC06(4)   TYPE C,                "   1
          RC07(4)   TYPE C,                "  21
          RC08(4)   TYPE C,                "  41
          RC09(4)   TYPE C,                "  81
          RC10(4)   TYPE C.                " 101
    *---- Felder für Umsatzkennzeichen -
    *---- für Ausweis der Sonderumsätze----
    DATA: HUMKZ1    LIKE LFC3-SHBKZ,
          HUMKZ2    LIKE LFC3-SHBKZ,
          HUMKZ3    LIKE LFC3-SHBKZ,
          HUMKZ4    LIKE LFC3-SHBKZ,
          HUMKZ5    LIKE LFC3-SHBKZ,
          HUMKZ6    LIKE LFC3-SHBKZ,
          HUMKZ7    LIKE LFC3-SHBKZ,
          HUMKZ8    LIKE LFC3-SHBKZ,
          HUMKZ9    LIKE LFC3-SHBKZ,
          HUMKZ10   LIKE LFC3-SHBKZ.
    *---- GBZAEHL - In diesem Feld wird vermerkt, fuer wieviele Ge- -
    *----           schaeftsbereiche ein OP-Raster ausgegeben wird. -
    ----           Wird das Raster nur fuer einen Geschaeftsbereich ge- -
    *----           druckt, so entfaellt das Summen-Raster. -
    DATA: GBZAEHL(3) TYPE P.
    ---- TOP-FLAG '1' = bei TOP-OF-PAGE Einzelpostenueberschrift ausg. --
    *----          '2' = bei TOP-OF-PAGE Ueberschrift fuer Raster ausgeb. *
    *----          '3' = bei TOP-OF-PAGE ULINE ausgeben. -
    ----          '4' = bei TOP-OF-PAGE Stammsatzueberschrift ausgeben --
    DATA: TOP-FLAG(1) TYPE C.
    *---- SEL-STAMM  'J' = Stammsatz wird ausgewertet                     *
    *----            'N' = Stammsatz wird nicht ausgewertet               *
    *---- SEL-POSTN  'J' = Stammsatz hat Posten gerastert                 *
    *----            'N' = Stammsatz hat keine Posten gerastert           *
    DATA: BEGIN OF SEL,
            STAMM(1) TYPE C,
            POSTN(1) TYPE C,
            POST2(1) TYPE C,
          END   OF SEL.
    *---- SATZART  '1' = Stammdaten -
    *----          '2' = Faelligkeitsraster -
    *----          '3' = Einzelposten -
    DATA: SATZART(1) TYPE C.
    *---- RART  =  Erste ausgewaehlte Rasterart -
    DATA: RART(1)    TYPE C.
    *---- TAGE  =  Tage nach denen die Posten sortiert sind -
    DATA: TAGE(4)    TYPE P,
    *---- NTAGE =  Tage fuer Netto-Faelligkeit -
          NTAGE(4)   TYPE P,
    *---- STAGE =  Tage fuer Skonto1-Faelligkeit -
          STAGE(4)   TYPE P,
    *---- ATAGE =  Alter der Belege -
          ATAGE(4)   TYPE P,
    *---- UTAGE =  Tage fuer Ueber-Faelligkeit -
          UTAGE(4)   TYPE P.
    *---- RASTERUU dient zur Sortierung der Einzelposten. Die Posten -
    *----          gemaess ihrer Rasterung die Werte '1' bis '6' -
    DATA: RASTERUU(1) TYPE C.
    *---- RAART  Rasterart -
    ---- Die einzelnen Felder der Feldleiste werden bei SART-OF-SELECTION
    *---- mit 1 oder 0 bestueckt. -
    *ATA: BEGIN OF RAART,
          NET(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          SKT(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          UEB(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
        END   OF RAART.
    DATA: BEGIN OF GB,
            GSBER  LIKE BSIK-GSBER,
            WAERS  LIKE BSIK-WAERS,
          END   OF GB.
    *---- Variable Ueberschriften -
    DATA: BEGIN OF VARUEB1,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB1.
    DATA: BEGIN OF VARUEB2,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB2.
    DATA: VARUEB3(132),
          VARUEB4(132),
          VARTXT1(40),
          VARTXT(40)  TYPE C.
    *---- Variable für Ausgabe der Sonderumsätze----
    DATA: SHBBEZ LIKE T074T-LTEXT.
    DATA: ASUMS  TYPE P.                                        "
    *---- Interne Tabelle für Bezeichnungen der SHBKZ----
    DATA: BEGIN OF BEZSHB OCCURS 10,
            SHBKZ LIKE T074T-SHBKZ,
            LTEXT LIKE T074T-LTEXT,
          END OF BEZSHB.
    *---- Interne Tabelle für Zwischenspeicherung -
    DATA: BEGIN OF BLKEY,
            BUKRS LIKE BSIK-BUKRS,
            BELNR LIKE BSIK-BELNR,
            GJAHR LIKE BSIK-GJAHR,
            BUZEI LIKE BSIK-BUZEI,
          END   OF BLKEY.
    DATA: BEGIN OF RTAGE,
            NTAGE LIKE NTAGE,
            STAGE LIKE STAGE,
            ATAGE LIKE ATAGE,
            UTAGE LIKE UTAGE,
         END   OF RTAGE.
    DATA: BEGIN OF HBSIK OCCURS 10.
            INCLUDE STRUCTURE BSIK.
            INCLUDE STRUCTURE BSEGA.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF HBSIK.
    DATA: BEGIN OF REFBL OCCURS 10.
            INCLUDE STRUCTURE BLKEY.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF REFBL.
    DATA: BEGIN OF HLFB1 OCCURS 10.
            INCLUDE STRUCTURE LFB1.
    DATA: END   OF HLFB1.
    DATA: BEGIN OF HT001 OCCURS 10.
            INCLUDE STRUCTURE T001.
    DATA: END   OF HT001.
    *---- Interne Tabelle für Ausgabe der Obligos -
    DATA: BEGIN OF AOBLIGO OCCURS 12,
            OBART TYPE C,             "Flag für Obligoart 1 = Kontokorrent
                                           "                   2 = SHBKZ
                                      "                   3 = sonstige SHB
            SHBKZ LIKE T074T-SHBKZ,        "SHB-Kennzeichen
            LTEXT LIKE T074T-LTEXT,        "Bezeichnung
            OBLIG TYPE P,                  "Obligobetrag
          END OF AOBLIGO.
    *---- Declarationen für Accessibility /ALV GRID -
    data: ACC_MODE type c.
    Data: UEBTEXT(22) type c.
    Data: UEKTEXT(15)  type c.
    Data: TITTEXT(100) type c.
    Data: DATTEXT(10) type c.
    DATA: BEGIN OF RTAB_ALV OCCURS 30,
          SORTK(1)   TYPE C,             "0 = Summe Gesber
                                         "1 = Summe aller Gesber
                                         "2 = Umsatzdaten
            BUKRS LIKE BSIk-BUKRS,
            lifnr LIKE LFA1-lifnr,
            busab like lfb1-busab,
            SORTL LIKE lfA1-SORTL,
            LAND1 LIKE lfA1-LAND1,
            GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIk-WAERS,
          hwaer like rf140-hwaer,
            RAART like RF140-RAART,        "Rasterart
          shkzg like bsik-shkzg,
          XGUTS TYPE C,                  "Gutschrift
            KUMUM LIKE RF140-KUMUMHW,      "Umsatz
            ANZAH like rf140-anzbthw,      "Anzahlungen
            OPSUM like RF140-gsaldd,       "Offene Posten Summe
            RAST1 like RF140-rast1,        "Rasterfeld 1
            RAST2 like RF140-rast2,        "Rasterfeld 2
            RAST3 like RF140-rast3,        "Rasterfeld 3
            RAST4 like RF140-rast4,        "Rasterfeld 4
            RAST5 like RF140-rast5,        "Rasterfeld 5
            RAST6 like RF140-rast6,        "Rasterfeld 6
          END   OF RTAB_ALV.
    *"General Data
    TYPE-POOLS: SLIS.
    *DATA: BEGIN OF GT_OUTTAB OCCURS 0.
           INCLUDE STRUCTURE rtab_alv.
    *DATA: END OF GT_OUTTAB.
    Data: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
         G_EXIT_CAUSED_BY_CALLER,
         GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
          G_REPID LIKE SY-REPID,
          G_GRID_TITLE TYPE  LVC_TITLE.
    *"Callback
    *Data: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
         G_STATUS_SET   TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
    Data: G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
         G_TOP_OF_PAGE  TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
         G_TOP_OF_LIST  TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
         G_END_OF_LIST  TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
    *"Variants
    DATA: GS_VARIANT LIKE DISVARIANT,
          G_SAVE.
    Global structure of list
    fieldcatalog
    DATA:   LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    sort
    *DATA:   GT_SORT     TYPE SLIS_T_SORTINFO_ALV.
    events
    *DATA:   GT_EVENTS   TYPE SLIS_T_EVENT.
    *----- Structure for specific color settings -
    *DATA:   COL_TAB_T TYPE SLIS_T_SPECIALCOL_ALV,
           COL_TAB   TYPE SLIS_SPECIALCOL_ALV.
    DATA:   G_TABNAME TYPE SLIS_TABNAME VALUE 'RTAB_ALV'.
    print
    *DATA:   GS_PRINT    TYPE SLIS_PRINT_ALV.
    *---- FIELD-GROUPS                            -
    FIELD-GROUPS:
              HEADER,
              STAMMDATEN,
              OP-RASTER,
              EINZELPOSTEN.
    INSERT
      LFB1-BUKRS                           " Buchungskreis
    lfB1-BUSAB         " Sachbearbeiter
      LFA1-LIFNR                           " Kontonummer
      SATZART                              " Satzart
      RTAB-SORTK                           " Sortkz fuer Tabelle RTAB
                                           " '0' = normale Eintraege
                                           " '1' = Summeneintraege
      GB                                   " Geschaeftsbereich
                                           " - GB-GSBER
                                           " - GB-WAERS
      RASTERUU         " Kennzeichen fuer Detailposten bzw Raster
    ab hier nur fuer Einzelposten -
      TAGE                                 " Rastertage  fuer Detailposten
      BSIK-UMSKZ                           " Umsatzkennzeichen
      BSIK-BLART                           " Belegart
    BSIK-ZUONR         " Zuordnungsnummer
      BSIK-BELNR                           " Belegnummer
      BSIK-BUZEI                           " Belegzeile
    INTO HEADER.
    INSERT
    Addressdaten
      ADRS-LINE0                           " 1. Zeile Adressenaufbereitung
      ADRS-LINE1                           " 2. "     "
      ADRS-LINE2                           " 3. "     "
      ADRS-LINE3                           " 4. "     "
      ADRS-LINE4                           " 5. "     "
      ADRS-LINE5                           " 6. "     "
      ADRS-LINE6                           " 7. "     "
    ADRS-LINE7         " 8. "     "
    ADRS-LINE8         " 9. "     "
    ADRS-LINE9         " 10."     "
    Umsatzdaten
      C-KUMUM                              " Umsatz
    C-BABZG          " Berechtigt. Abzuege
    C-UABZG          " Unberechtigt. Abzuege
    C-KZINS          " Zinszahlungen
    C-KUMAG          " Kum. Jahresausgleich
    Obligos
      C-SALDO                              " Saldo ohne SHB-Vorgänge
      C-UMKZ1                              "SHBKZ 1
      C-SUMS1                              "Sonderumsatz 1
      C-UMKZ2                              "SHBKZ 2
      C-SUMS2                              "Sonderumsatz 2
      C-UMKZ3                              "SHBKZ 3
      C-SUMS3                              "Sonderumsatz 3
      C-UMKZ4                              "SHBKZ 4
      C-SUMS4                              "Sonderumsatz 4
      C-UMKZ5                              "SHBKZ 5
      C-SUMS5                              "Sonderumsatz 5
      C-UMKZ6                              "SHBKZ 6
      C-SUMS6                              "Sonderumsatz 6
      C-UMKZ7                              "SHBKZ 7
      C-SUMS7                              "Sonderumsatz 7
      C-UMKZ8                              "SHBKZ 8
      C-SUMS8                              "Sonderumsatz 8
      C-UMKZ9                              "SHBKZ 9
      C-SUMS9                              "Sonderumsatz 9
      C-UMKZ10                             "SHBKZ 10
      C-SUMS10                             "Sonderumsatz 10
      C-SONOB                              " Sonst. Obligen
    Limits
      C-AGOBLI                             " Absolutes Gesamtobligo
    Zahlungdaten
      LFB1-ZTERM                           "Zahlungsbedingung
      LFB1-ZAHLS                           "Sperrschlüssel für Zahlung
      LFB1-ZWELS                           "Zahlwege
      LFB1-XVERR                           "Zahlungsverrechnung
      LFB1-WEBTR                           "Wechsellimit
      LFB1-BUSAB                           " Sachbearbeiter
      lfa1-sortl
      lfa1-land1
    INTO STAMMDATEN.
    INSERT
      RTAB-RAART                           "Rasterart
      RTAB-SPERR                           "gesperrte Posten
      RTAB-KUMUM                           "Umsatz
      RTAB-ANZAH                           "Anzahlungen
      RTAB-OPSUM                           "Offene Posten Summe
      RTAB-RAST1                           "Rasterfeld 1
      RTAB-RAST2                           "Rasterfeld 2
      RTAB-RAST3                           "Rasterfeld 3
      RTAB-RAST4                           "Rasterfeld 4
      RTAB-RAST5                           "Rasterfeld 5
      RTAB-RAST6                           "Rasterfeld 6
    INTO OP-RASTER.
    INSERT
      BSIK-BUDAT                           " Buchungsdatum
      BSIK-BLDAT                           " Belegdatum
      BSIK-CPUDT                           " CPU-Datum
    BKPF-USNAM         " User-ID
      BSIK-WAERS                           " Wahrungsschluessel
      BSEGA-NETDT                          " Nettofaelligkeitsdatum
    FAEDE-NETDT        " Nettofaelligkeitsdatum
      BSIK-ZFBDT                           " Zahlungsfristen-Basisdatum
      BSIK-BSCHL                           " Buchungsschluessel
      BSIK-ZLSCH                           " Zahlungsschluessel
    BSIK-MANST         " Mahnstufe
      SHBETRAG                             " Hauswaehrungsbetrag
      BSEGA-DMSHB                          " Hauswaehrungsbetrag
      BSEGA-WRSHB                          " Fremwaehrungsbetrag
    INTO EINZELPOSTEN.
    BEGIN_OF_BLOCK 1.
    *ELECT-OPTIONS:
         GESBER   FOR BSIK-GSBER.
    PARAMETERS:
           MONAT    LIKE RFPDO-DOPRBMON.
    SELECT-OPTIONS:
           KKSALDO2 FOR RFSDO-KOPRSAL2,    "Saldovortrag
           AGOBLIG2 FOR RFSDO-KOPRAGO2.    "Absolutes Obligo
         RGOBLIGO FOR RFSDO-DOPRRGOB.          "Relatives Obligo
    SELECT-OPTIONS:
         LAND     FOR LFA1-LAND1,
         KONTENGR FOR LFA1-KTOKK,
         SACHBEAR FOR LFB1-BUSAB,
           AKONTS   FOR LFB1-AKONT,
           AKONTP   FOR BSIK-HKONT.
    SELECT-OPTIONS:
           BUDAT    FOR BSIK-BUDAT,
           BLDAT    FOR BSIK-BLDAT,
           NETDT    FOR BSEGA-NETDT.
    PARAMETERS:     N_BELEGE    LIKE RFPDO-BPETNBEL
                                       DEFAULT 'X',   "Normale Belege.
                    STAT_BLG    LIKE RFPDO-BPETSBEL.  "Statistische Belege
    END_OF_BLOCK 1.
    *ELECT-OPTIONS:
         BERABZU1 FOR LFC1-BABZG,
         UNBABZU1 FOR LFC1-UABZG,
         ZINSE1   FOR LFC1-KZINS,
         JHRAUSG1 FOR LFC1-KUMAG.
         BERABZUG FOR BEABZUG NO-DISPLAY,       "Berechtigter Abzug
         UNBABZUG FOR UBABZUG NO-DISPLAY,       "Unberechtigter Abzug
         ZINSEN   FOR KUMZINS NO-DISPLAY,       "Kumulierter Zins
         JHRAUSGL FOR JAHRAUG NO-DISPLAY.       "Kumulierter Jahresausgl.
    BEGIN_OF_BLOCK 2.
    PARAMETERS:
           SORTART  LIKE RFPDO1-KOPRSOAR DEFAULT '1',          "Doku
           VERDICHT LIKE RFPDO1-KOPRVERD DEFAULT '1',          "Doku
           RASTVERD LIKE RFPDO1-KOPRRAST DEFAULT '0',          "Doku
           KONZVERS LIKE RFPDO-DOPOKONZ,   "Konzernversion
           XBUKRDAT LIKE RFPDO3-ALLGBUKD DEFAULT 0, "Bukr.daten
           KAUSGABE like rfpdo3-ALLGKAOR.
         SELECTION-SCREEN BEGIN OF LINE.
         SELECTION-SCREEN COMMENT 01(30) TEXT-030.
    PARAMETERS: RART-NET LIKE RFPDO-DOPRRNET DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 33(01) TEXT-028.
    PARAMETERS: RART-SKT LIKE RFPDO-DOPRRSKT DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 35(01) TEXT-028.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: RART-ALT LIKE RFPDO1-KOPRRALT DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 03(28) TEXT-031.
    SELECTION-SCREEN POSITION POS_HIGH.
    PARAMETERS      RBLDAT   LIKE RFPDO2-KORD10BD.
    SELECTION-SCREEN COMMENT 61(12) TEXT-032.
    SELECTION-SCREEN END OF LINE.
         SELECTION-SCREEN COMMENT 37(01) TEXT-028.
    PARAMETERS: RART-UEB LIKE RFPDO-DOPRRUEB DEFAULT 'X'.
         SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-026.
    PARAMETERS: RASTBIS1 LIKE RFPDO1-ALLGROGR DEFAULT '000'.
         SELECTION-SCREEN COMMENT 35(02) TEXT-027.
    PARAMETERS: RASTBIS2 LIKE RFPDO1-ALLGROGR DEFAULT '020'.
         SELECTION-SCREEN COMMENT 41(02) TEXT-027.
    PARAMETERS: RASTBIS3 LIKE RFPDO1-ALLGROGR DEFAULT '040'.
         SELECTION-SCREEN COMMENT 47(02) TEXT-027.
    PARAMETERS: RASTBIS4 LIKE RFPDO1-ALLGROGR DEFAULT '080'.
         SELECTION-SCREEN COMMENT 53(02) TEXT-027.
    PARAMETERS: RASTBIS5 LIKE RFPDO1-ALLGROGR DEFAULT '100'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-029.
    PARAMETERS:  FAKTOR LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN COMMENT 35(1) TEXT-028.
    PARAMETERS:  STELLEN LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: PZUOR    LIKE RFPDO2-DOPRZUOR.
    PARAMETERS: UMSATZKZ LIKE RFPDO1-DOPRSHBO. "DEFAULT 'WSABIMVD'.
    PARAMETERS:
           TITLE       LIKE RFPDO1-ALLGLINE,
           LISTSEP     LIKE RFPDO-ALLGLSEP,
           MIKFICHE    LIKE RFPDO-ALLGMIKF.
    PARAMETERS:
           P_LVAR    LIKE Gs_VARIANT-VARIANT DEFAULT SPACE modif id 508.
    END_OF_BLOCK 2.
    AT SELECTION-SCREEN OUTPUT.
    if acc_mode is initial.
      LOOP AT SCREEN.
        IF SCREEN-GROUP1 = '508'.
          SCREEN-active    = '0'.
          MODIFY SCREEN.
        ENDIF.
    ENDLOOP.
    endif.
    AT SELECTION-SCREEN ON AKONTS.
       Konvertierung der Kontonummer
      LOOP AT AKONTS.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-LOW AKONTS-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-HIGH AKONTS-HIGH.
        MODIFY AKONTS.
      ENDLOOP.
    AT SELECTION-SCREEN ON AKONTP.
       Konvertierung der Kontonummer
      LOOP AT AKONTP.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-LOW AKONTP-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-HIGH AKONTP-HIGH.
        MODIFY AKONTP.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LVAR.
      Gs_VARIANT-REPORT  = SY-REPID.
      Gs_VARIANT-VARIANT = P_LVAR.
      PERFORM F4_FOR_S_LVAR   USING Gs_VARIANT.
      P_LVAR = Gs_VARIANT-VARIANT.
    AT SELECTION-SCREEN.
      IF NOT RASTBIS5 IS INITIAL.
        IF  RASTBIS5 GT RASTBIS4
        AND RASTBIS4 GT RASTBIS3
        AND RASTBIS3 GT RASTBIS2
        AND RASTBIS2 GT RASTBIS1.
        ELSE.
          MESSAGE E379.
        ENDIF.
      ELSE.
        IF NOT RASTBIS4 IS INITIAL.
          IF  RASTBIS4 GT RASTBIS3
          AND RASTBIS3 GT RASTBIS2
          AND RASTBIS2 GT RASTBIS1.
          ELSE.
            MESSAGE E379.
          ENDIF.
        ELSE.
          IF NOT RASTBIS3 IS INITIAL.
            IF  RASTBIS3 GT RASTBIS2
            AND RASTBIS2 GT RASTBIS1.
            ELSE.
              MESSAGE E379.
            ENDIF.
          ELSE.
            IF NOT RASTBIS2 IS INITIAL.
              IF  RASTBIS2 GT RASTBIS1.
              ELSE.
                MESSAGE E379.
              E

    Hi Laxman,
    I have checked the program and found out following:
    the field "acc_mode" which gets populated by FM "GET_ACCESSIBILITY_MODE".
    If this field is initial, then normal list gets displayed and
    If this field has value, then ALV grid gets displayed.
    regards,
    Dharitree

  • Select columns from table for display in alvgrid.

    Hi all,
    i have the following:
    i do select a tablename and pass it as a parameter. then this table is loaded into an internal table and displayed in an alv-grid.
    what i now want to do is a step  between the both:
    after the internal table with its structure is loaded, i want to display the field columns and i want them to be selectable so that in the next step the alv - grid is selected only with the selected columns ( just now it allways runs with all columns - even the not needed ).
    Any ideas for that would be appreciated. Is there some tutorial on that or some sample ?

    hi
    chk this sample code:
    *REPORT  zdemo_alvgrid                 .
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid,
          gt_events     type slis_t_event,
          gd_prntparams type slis_print_alv.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform build_events.
    perform build_print_params.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    fieldcatalog-do_sum      = 'X'.
    fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    gd_layout-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_special_groups       = gd_tabgroup
                it_events               = gt_events
                is_print                = gd_prntparams
                i_save                  = 'X'
               is_variant              = z_template
           tables
                t_outtab                = it_ekko
           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_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into table it_ekko.
    endform.                    " DATA_RETRIEVAL
    Form  TOP-OF-PAGE                                                 *
    ALV Report Header                                                 *
    Form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
          wa_header type slis_listheader,
          t_line like wa_header-info,
          ld_lines type i,
          ld_linesc(10) type c.
    Title
      wa_header-typ  = 'H'.
      wa_header-info = 'EKKO Table Report'.
      append wa_header to t_header.
      clear wa_header.
    Date
      wa_header-typ  = 'S'.
      wa_header-key = 'Date: '.
      CONCATENATE  sy-datum+6(2) '.'
                   sy-datum+4(2) '.'
                   sy-datum(4) INTO wa_header-info.   "todays date
      append wa_header to t_header.
      clear: wa_header.
    Total No. of Records Selected
      describe table it_ekko lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'Total No. of Records Selected: ' ld_linesc
                        into t_line separated by space.
      wa_header-typ  = 'A'.
      wa_header-info = t_line.
      append wa_header to t_header.
      clear: wa_header, t_line.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
               i_logo             = 'Z_LOGO'.
    endform.
          FORM USER_COMMAND                                          *
          --> R_UCOMM                                                *
          --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
      Check field clicked on within ALVgrid report
        IF rs_selfield-fieldname = 'EBELN'.
        Read data table, using index of row user clicked on
          READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
          SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
        Sxecute transaction ME23N, and skip initial data entry screen
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDCASE.
    ENDFORM.
    *&      Form  BUILD_EVENTS
          Build events table
    form build_events.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
           exporting
                i_list_type = 0
           importing
                et_events   = gt_events[].
      read table gt_events with key name =  slis_ev_end_of_page
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_PAGE' to ls_event-form.
        append ls_event to gt_events.
      endif.
        read table gt_events with key name =  slis_ev_end_of_list
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_LIST' to ls_event-form.
        append ls_event to gt_events.
      endif.
    endform.                    " BUILD_EVENTS
    *&      Form  BUILD_PRINT_PARAMS
          Setup print parameters
    form build_print_params.
      gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer
      gd_prntparams-no_coverpage = 'X'.
    endform.                    " BUILD_PRINT_PARAMS
    *&      Form  END_OF_PAGE
    form END_OF_PAGE.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    *&      Form  END_OF_LIST
    form END_OF_LIST.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    **reward if helpful
    regards,
    madhu

  • How to give own field  name in alvgrid

    how to give own field name in alvgrid
    CLEAR LS_FIELDCAT.
      LS_FIELDCAT-TABNAME       = G_TABNAME.
      LS_FIELDCAT-FIELDNAME     = 'KBETR'.
      LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
      LS_FIELDCAT-REF_TABNAME   = 'KONV'.
      APPEND LS_FIELDCAT TO  RT_FIELDCAT.
    here i want to give field name in output like this
    Non-Deductible Tax.
    thanks in advanced.

    Hi Laxman,
    Getting your required description is very simple.
    Just fill these 3 parameters in your field catalog.
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-TABNAME = G_TABNAME.
    LS_FIELDCAT-FIELDNAME = 'KBETR'.
    LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
    LS_FIELDCAT-REF_TABNAME = 'KONV'.
    LS_FIELDCAT-SELTEXT_L = 'NON-DEDUCTIBLE TAX''. "LONG
    LS_FIELDCAT-SELTEXT_M = 'NON-DEDUCTIBLE TAX''. "MEDIUM
    LS_FIELDCAT-SELTEXT_S = 'NON-DEDUCTIBLE TAX''. "Short
    APPEND LS_FIELDCAT TO RT_FIELDCAT.
    The Comments besides the desctription tells what kind of format for display is ..
    Regards,
    Raghav

  • Want to convert Sap standard report s_alr_87012085  into alvgrid

    i Want to convert Sap standard report s_alr_87012085  into alvgrid please help me.

    REPORT RFKOPR00
           MESSAGE-ID FR
           LINE-SIZE  132
           NO STANDARD PAGE HEADING.
    TABLES:   B0SG,
              LFA1,                        "Daten auf Mandantenebene
                LFB1,                      "Daten auf Buchungskreisebene
                  LFB5,                    "Mahndaten
                  LFC1,                    "Verkehrszahlen
                  LFC3,                    "Sonderumsätze
                  BSIK,                    "Offend Posten
                  BKPF,
                    BSEG,
                           BSEGA.
    TABLES:
              BHDGD,
              T001,
              T001S,
              *T001S,
              T074T,
              T074U,
              TBSL,
              TBSLT,
              TCURX,
              ADRS,
              RFPDO,
              RFPDO1,
              RFSDO,
              FAEDE.
    FIELD-SYMBOLS: .
    *Hilfsfelder
    *---Prüfung ob mehrere Hauswährungen verarbeitet werden.
    DATA:    CFAKT(3)      TYPE P,
             CHECKSALDO(8) TYPE P,
             CHECKAGOBL(8) TYPE P,
             WAERS LIKE T001-WAERS,
             WFLAG(1) TYPE P VALUE '0',
             WAERS2        LIKE T001-WAERS,
             WFLAG2(1)     TYPE P VALUE '0',
             PH-LINE(132)  TYPE C.
    *---Ermittlung aktuelles Geschäftsjahr über Funktionsbaustein.
    DATA: CURRY LIKE BSIK-GJAHR.
    *-Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug--
    *ATA: ZVTAGE LIKE KNB4-VZS01, "Verzugstage
        ZVSKONTO(8) TYPE P,     "Zahlungsvolumen bei Zahlung mit Skonto
        ZVNETTO(8)  TYPE P,     "Zahlungsvolumen bei Nettozahlung
        ZVVERZUG(8) TYPE P,     "Verzugstage
        ZVMALVZ(8)  TYPE P,     "Zahlungvolumen * Verzugstage
                                "KNB4-VZSxx)
        ZVTYP(1)    TYPE C,     "Skonto oder Nettozahler
        ZVPER(4)    TYPE C.     "Periode letze Zahlung
    *---Zeilenanzahl fü Adressausgabe -
    DATA: ZEILENANZAHL LIKE ADRS-ANZZL VALUE 7.
    DATA: KSALDO(6)  TYPE P.               "Saldovortrag
        BEABZUG(6) TYPE P,                   "Berechtigte Abzüge
        UBABZUG(6) TYPE P,                   "Unberechtigte Abzüge
        JAHRAUG(6) TYPE P,                   "Kumulierter Jahresausgleich
        KUMZINS(6) TYPE P.                   "Kumulierter Zins
    Ausgabe der Mahndaten pro Buchungskreis.
    DATA: INDEX(2) TYPE P VALUE 0.
    Hilfsfelder
    DATA: HF(1)    TYPE C.
    DATA: TXT_1(78) TYPE C,                "Mahnbereich
          TXT_2(78) TYPE C,                "Mahnart
          TXT_3(78) TYPE C,                "Mahnempfänger
          TXT_4(78) TYPE C,                "Mahndatum
          TXT_5(78) TYPE C,                "Mahnstufe
          TXT_6(78) TYPE C,                "Mahnsperre
          TXT_7(78) TYPE C,                "Mahnverfahren
          TXT_8(78) TYPE C.                "Sachbearbeiter
    DATA: BEGIN OF XMAHN OCCURS 10.
            INCLUDE STRUCTURE LFB5.
    DATA: END OF XMAHN.
    Hilfsfelder
    DATA: CHAR1(1)   TYPE C.
    DATA: FLAG1(1)   TYPE C.
    DATA: INTENS(1)  TYPE C.
    DATA: FLAG2(1)   TYPE C.
    *---- K o n s t a n t e n -
    *---- DNULL zum Vergleich mit Datumsfeldern -
    DATA: DNULL(8) TYPE C VALUE '00000000'.
    *---- DECKBLATT = 'N' ==> Kein Deckblatt bei NEW-SECTION -
    DATA: DECKBLATT TYPE C VALUE 'N'.
    *---- 'H' =   Hilfsfelder, die jederzeit fuer Berechnungen ver-  -
    *---- wendet werden koennen. -
    DATA: BEGIN OF H,
            STICHTAG(8),
            OFFSET(2) TYPE P,
            OFFSE1(2) TYPE P,
            SOLL      LIKE LFC1-UM01S,
            HABEN     LIKE LFC1-UM01H,
            SALDO     LIKE LFC1-UMSAV,
            SHBKZ     LIKE LFC3-SHBKZ,     "Sonderhauptbuchkennzeichen
            SALDV     LIKE LFC3-SALDV,     "Sonderhauptbuch-Saldovortrag
            SHBLS     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-Saldo
            SHBSL     LIKE LFC3-SOLLL,     "Sonderhauptbuch-Lfd.-SOLL
            SHBHB     LIKE LFC3-HABNL,     "Sonderhauptbuch-Lfd.-HABEN
          GBNUM     LIKE lfC1-GBN01,    "Geschaeftsber. Nummer ECKERT
          GBUMS     LIKE lfC1-GBU01,    "Geschaeftsber. Umsatz
            TEXT(15),
            UMLOW     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
            UMHIG     LIKE BSIK-UMSKZ,     "Umsatzkennzeichen
          END   OF H.
    ---- 'C' =   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C,
            SALDO     TYPE P,              "Saldo
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          END   OF C.
    ---- 'C2'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C2 OCCURS 0,
            BUKRS     LIKE LFC1-BUKRS,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
            LFTAGE(3) TYPE P,              "Langfristige Überzugstage
            MFTAGE(3) TYPE P,              "Mittelfristige Überzugstage
            KFTAGE(3) TYPE P,              "Kurzfristige Überzugstage
            ZVTYP(1)    TYPE C,            "Flag Skonto oder Nettozahler
            ZVPER(6)    TYPE C,            "letze Zahlungsperiode
            ZVVERZUG(8) TYPE P,            "Durchschittliche Verzugst
          END   OF C2.
    ---- 'C3'=   Zwischenergebnisse, die aus Feldern des C-Segmentes ---
    *---- berechnet werden. -
    DATA: BEGIN OF C3,
            SALDO     TYPE P,              "Saldo
          WEXOB     TYPE P,         "Wechsel-Obligo        W,S,B
          ANZOB     TYPE P,         "Anzahlungs-Obligo     A
          ZANFB     TYPE P,         "Zahlungs-Anforderung  F
            UMKZ1     LIKE LFC3-SHBKZ,     "SHBKZ 1
            SUMS1     TYPE P,              "Sonderumsatz 1
            UMKZ2     LIKE LFC3-SHBKZ,     "SHBKZ 2
            SUMS2     TYPE P,              "Sonderumsatz 2
            UMKZ3     LIKE LFC3-SHBKZ,     "SHBKZ 3
            SUMS3     TYPE P,              "Sonderumsatz 3
            UMKZ4     LIKE LFC3-SHBKZ,     "SHBKZ 4
            SUMS4     TYPE P,              "Sonderumsatz 4
            UMKZ5     LIKE LFC3-SHBKZ,     "SHBKZ 5
            SUMS5     TYPE P,              "Sonderumsatz 5
            UMKZ6     LIKE LFC3-SHBKZ,     "SHBKZ 6
            SUMS6     TYPE P,              "Sonderumsatz 6
            UMKZ7     LIKE LFC3-SHBKZ,     "SHBKZ 7
            SUMS7     TYPE P,              "Sonderumsatz 7
            UMKZ8     LIKE LFC3-SHBKZ,     "SHBKZ 8
            SUMS8     TYPE P,              "Sonderumsatz 8
            UMKZ9     LIKE LFC3-SHBKZ,     "SHBKZ 9
            SUMS9     TYPE P,              "Sonderumsatz 9
            UMKZ10    LIKE LFC3-SHBKZ,     "SHBKZ 10
            SUMS10    TYPE P,              "Sonderumsatz 10
            SONOB     TYPE P,              "Sonstige Umsatz-Kz
            BABZG     TYPE P,              "Berechtigte Abzuege
            UABZG     TYPE P,              "Unberechtigte Abzuege
            KZINS     TYPE P,              "Zinszahlungen
            KUMUM     TYPE P,              "Umsatz
            KUMAG     TYPE P,              "Kum. Jahresausgleich
          KREUEB    TYPE P,         "Kreditueberschreitung
          AGOBLI    TYPE P,         "Gesamt-Obligo (absolut)
            AGOBLI LIKE LFC1-UMSAV,        "Gesamt-Obligo (absolut)
          RGOBLI    TYPE P,         "Gesamt-Obligo (relativ)
          LFTAGE(3) TYPE P,         "Langfristige Überzugstage
          MFTAGE(3) TYPE P,         "Mittelfristige Überzugstage
          KFTAGE(3) TYPE P,         "Kurzfristige Überzugstage
          ZVTYP(1)    TYPE C,       "Flag Skonto oder Nettozahler
          ZVPER(6)    TYPE C,       "letze Zahlungsperiode
          ZVVERZUG(8) TYPE P,       "Durchschittliche Verzugst
          END   OF C3.
    DATA: SHBETRAG LIKE BSEGA-DMSHB.       "TYPE P.
    *---- 'RTAB' = Rastertabelle fuer offene Posten -
    DATA: BEGIN OF RTAB OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RTAB.
    *---- 'RBUS' = Rastertabelle fuer Summen pro Sachbearbeiter -
    *ATA: BEGIN OF RBUS OCCURS 30,
          SORTK(1)   TYPE C,        "0 = Summe Gesber
                                    "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
          WAERS LIKE BSIk-WAERS,
          RAART TYPE C,             "Rasterart
                                    "1 = Netto-Faelligkeit
                                    "2 = Skonto1-Faelligkeit
                                    "3 = Zahlungseingang
                                    "4 = Ueber-Faelligkeit
          KUMUM TYPE P,             "Umsatz
          ANZAH TYPE P,             "Anzahlungen
          OPSUM TYPE P,             "Offene Posten Summe
          RAST1 TYPE P,             "Rasterfeld 1
          RAST2 TYPE P,             "Rasterfeld 2
          RAST3 TYPE P,             "Rasterfeld 3
          RAST4 TYPE P,             "Rasterfeld 4
          RAST5 TYPE P,             "Rasterfeld 5
          RAST6 TYPE P,             "Rasterfeld 6
        END   OF RBUS.
    *---- 'RBUK' = Rastertabelle fuer Summen pro Buchungskreis  -
    DATA: BEGIN OF RBUK OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
                                           "2 = Umsatzdaten
            BUKRS LIKE BSIK-BUKRS,
            GSBER LIKE BSIK-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesprrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RBUK.
    ---- 'RSUM' = Rastertabelle pro Währung über alle Buchungskreise ---
    DATA: BEGIN OF RSUM OCCURS 30,
            SORTK(1)   TYPE C,             "0 = Summe Gesber
                                           "1 = Summe aller Gesber
          BUKRS LIKE BSIk-BUKRS,
          GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIK-WAERS,
            RAART TYPE C,                  "Rasterart
                                           "1 = Netto-Faelligkeit
                                           "2 = Skonto1-Faelligkeit
                                           "3 = Zahlungseingang
                                           "4 = Ueber-Faelligkeit
            SPERR TYPE P,                  "gesperrte Posten
            KUMUM TYPE P,                  "Umsatz
            ANZAH TYPE P,                  "Anzahlungen
            OPSUM TYPE P,                  "Offene Posten Summe
            RAST1 TYPE P,                  "Rasterfeld 1
            RAST2 TYPE P,                  "Rasterfeld 2
            RAST3 TYPE P,                  "Rasterfeld 3
            RAST4 TYPE P,                  "Rasterfeld 4
            RAST5 TYPE P,                  "Rasterfeld 5
            RAST6 TYPE P,                  "Rasterfeld 6
          END   OF RSUM.
    *---- interne Tabelle für Periodenabgrenzung----
    RANGES: BMONAT FOR RFPDO-DOPRBMON.
    ---- In die Felder RP01 bis RP05 werden dynamisch die von aussen ---
    *---- eingegebenen Rasterpunkte uebertragen -
    DATA: RP01(2)   TYPE P,                "   0
          RP02(2)   TYPE P,                "  20
          RP03(2)   TYPE P,                "  40
          RP04(2)   TYPE P,                "  80
          RP05(2)   TYPE P,                " 100
          RP06(3)   TYPE P,                "   1
          RP07(3)   TYPE P,                "  21
          RP08(3)   TYPE P,                "  41
          RP09(3)   TYPE P,                "  81
          RP10(3)   TYPE P.                " 101
    *---- In die Felder RC01 bis RC10 werden die Rasterpunkte in -
    ---- charakterform abgestellt. (fuer REPLACE-Funktion in Variabler -
    *---- Ueberschrift) -
    DATA: RC01(4)   TYPE C,                                     "  0
          RC02(4)   TYPE C,                "  20
          RC03(4)   TYPE C,                "  40
          RC04(4)   TYPE C,                "  80
          RC05(4)   TYPE C,                " 100
          RC06(4)   TYPE C,                "   1
          RC07(4)   TYPE C,                "  21
          RC08(4)   TYPE C,                "  41
          RC09(4)   TYPE C,                "  81
          RC10(4)   TYPE C.                " 101
    *---- Felder für Umsatzkennzeichen -
    *---- für Ausweis der Sonderumsätze----
    DATA: HUMKZ1    LIKE LFC3-SHBKZ,
          HUMKZ2    LIKE LFC3-SHBKZ,
          HUMKZ3    LIKE LFC3-SHBKZ,
          HUMKZ4    LIKE LFC3-SHBKZ,
          HUMKZ5    LIKE LFC3-SHBKZ,
          HUMKZ6    LIKE LFC3-SHBKZ,
          HUMKZ7    LIKE LFC3-SHBKZ,
          HUMKZ8    LIKE LFC3-SHBKZ,
          HUMKZ9    LIKE LFC3-SHBKZ,
          HUMKZ10   LIKE LFC3-SHBKZ.
    *---- GBZAEHL - In diesem Feld wird vermerkt, fuer wieviele Ge- -
    *----           schaeftsbereiche ein OP-Raster ausgegeben wird. -
    ----           Wird das Raster nur fuer einen Geschaeftsbereich ge- -
    *----           druckt, so entfaellt das Summen-Raster. -
    DATA: GBZAEHL(3) TYPE P.
    ---- TOP-FLAG '1' = bei TOP-OF-PAGE Einzelpostenueberschrift ausg. --
    *----          '2' = bei TOP-OF-PAGE Ueberschrift fuer Raster ausgeb. *
    *----          '3' = bei TOP-OF-PAGE ULINE ausgeben. -
    ----          '4' = bei TOP-OF-PAGE Stammsatzueberschrift ausgeben --
    DATA: TOP-FLAG(1) TYPE C.
    *---- SEL-STAMM  'J' = Stammsatz wird ausgewertet                     *
    *----            'N' = Stammsatz wird nicht ausgewertet               *
    *---- SEL-POSTN  'J' = Stammsatz hat Posten gerastert                 *
    *----            'N' = Stammsatz hat keine Posten gerastert           *
    DATA: BEGIN OF SEL,
            STAMM(1) TYPE C,
            POSTN(1) TYPE C,
            POST2(1) TYPE C,
          END   OF SEL.
    *---- SATZART  '1' = Stammdaten -
    *----          '2' = Faelligkeitsraster -
    *----          '3' = Einzelposten -
    DATA: SATZART(1) TYPE C.
    *---- RART  =  Erste ausgewaehlte Rasterart -
    DATA: RART(1)    TYPE C.
    *---- TAGE  =  Tage nach denen die Posten sortiert sind -
    DATA: TAGE(4)    TYPE P,
    *---- NTAGE =  Tage fuer Netto-Faelligkeit -
          NTAGE(4)   TYPE P,
    *---- STAGE =  Tage fuer Skonto1-Faelligkeit -
          STAGE(4)   TYPE P,
    *---- ATAGE =  Alter der Belege -
          ATAGE(4)   TYPE P,
    *---- UTAGE =  Tage fuer Ueber-Faelligkeit -
          UTAGE(4)   TYPE P.
    *---- RASTERUU dient zur Sortierung der Einzelposten. Die Posten -
    *----          gemaess ihrer Rasterung die Werte '1' bis '6' -
    DATA: RASTERUU(1) TYPE C.
    *---- RAART  Rasterart -
    ---- Die einzelnen Felder der Feldleiste werden bei SART-OF-SELECTION
    *---- mit 1 oder 0 bestueckt. -
    *ATA: BEGIN OF RAART,
          NET(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          SKT(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
          UEB(1)   TYPE C,      "X = ausgewaehlt, ' ' = nicht ausgewaehlt
        END   OF RAART.
    DATA: BEGIN OF GB,
            GSBER  LIKE BSIK-GSBER,
            WAERS  LIKE BSIK-WAERS,
          END   OF GB.
    *---- Variable Ueberschriften -
    DATA: BEGIN OF VARUEB1,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB1.
    DATA: BEGIN OF VARUEB2,
            FELD1(45)   TYPE C,
            FELD2(14)   TYPE C,
            FELD3(14)   TYPE C,
            FELD4(14)   TYPE C,
            FELD5(14)   TYPE C,
            FELD6(14)   TYPE C,
            FELD7(14)   TYPE C,
          END   OF VARUEB2.
    DATA: VARUEB3(132),
          VARUEB4(132),
          VARTXT1(40),
          VARTXT(40)  TYPE C.
    *---- Variable für Ausgabe der Sonderumsätze----
    DATA: SHBBEZ LIKE T074T-LTEXT.
    DATA: ASUMS  TYPE P.                                        "
    *---- Interne Tabelle für Bezeichnungen der SHBKZ----
    DATA: BEGIN OF BEZSHB OCCURS 10,
            SHBKZ LIKE T074T-SHBKZ,
            LTEXT LIKE T074T-LTEXT,
          END OF BEZSHB.
    *---- Interne Tabelle für Zwischenspeicherung -
    DATA: BEGIN OF BLKEY,
            BUKRS LIKE BSIK-BUKRS,
            BELNR LIKE BSIK-BELNR,
            GJAHR LIKE BSIK-GJAHR,
            BUZEI LIKE BSIK-BUZEI,
          END   OF BLKEY.
    DATA: BEGIN OF RTAGE,
            NTAGE LIKE NTAGE,
            STAGE LIKE STAGE,
            ATAGE LIKE ATAGE,
            UTAGE LIKE UTAGE,
         END   OF RTAGE.
    DATA: BEGIN OF HBSIK OCCURS 10.
            INCLUDE STRUCTURE BSIK.
            INCLUDE STRUCTURE BSEGA.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF HBSIK.
    DATA: BEGIN OF REFBL OCCURS 10.
            INCLUDE STRUCTURE BLKEY.
            INCLUDE STRUCTURE RTAGE.
    DATA: END   OF REFBL.
    DATA: BEGIN OF HLFB1 OCCURS 10.
            INCLUDE STRUCTURE LFB1.
    DATA: END   OF HLFB1.
    DATA: BEGIN OF HT001 OCCURS 10.
            INCLUDE STRUCTURE T001.
    DATA: END   OF HT001.
    *---- Interne Tabelle für Ausgabe der Obligos -
    DATA: BEGIN OF AOBLIGO OCCURS 12,
            OBART TYPE C,             "Flag für Obligoart 1 = Kontokorrent
                                           "                   2 = SHBKZ
                                      "                   3 = sonstige SHB
            SHBKZ LIKE T074T-SHBKZ,        "SHB-Kennzeichen
            LTEXT LIKE T074T-LTEXT,        "Bezeichnung
            OBLIG TYPE P,                  "Obligobetrag
          END OF AOBLIGO.
    *---- Declarationen für Accessibility /ALV GRID -
    data: ACC_MODE type c.
    Data: UEBTEXT(22) type c.
    Data: UEKTEXT(15)  type c.
    Data: TITTEXT(100) type c.
    Data: DATTEXT(10) type c.
    DATA: BEGIN OF RTAB_ALV OCCURS 30,
          SORTK(1)   TYPE C,             "0 = Summe Gesber
                                         "1 = Summe aller Gesber
                                         "2 = Umsatzdaten
            BUKRS LIKE BSIk-BUKRS,
            lifnr LIKE LFA1-lifnr,
            busab like lfb1-busab,
            SORTL LIKE lfA1-SORTL,
            LAND1 LIKE lfA1-LAND1,
            GSBER LIKE BSIk-GSBER,
            WAERS LIKE BSIk-WAERS,
          hwaer like rf140-hwaer,
            RAART like RF140-RAART,        "Rasterart
          shkzg like bsik-shkzg,
          XGUTS TYPE C,                  "Gutschrift
            KUMUM LIKE RF140-KUMUMHW,      "Umsatz
            ANZAH like rf140-anzbthw,      "Anzahlungen
            OPSUM like RF140-gsaldd,       "Offene Posten Summe
            RAST1 like RF140-rast1,        "Rasterfeld 1
            RAST2 like RF140-rast2,        "Rasterfeld 2
            RAST3 like RF140-rast3,        "Rasterfeld 3
            RAST4 like RF140-rast4,        "Rasterfeld 4
            RAST5 like RF140-rast5,        "Rasterfeld 5
            RAST6 like RF140-rast6,        "Rasterfeld 6
          END   OF RTAB_ALV.
    *"General Data
    TYPE-POOLS: SLIS.
    *DATA: BEGIN OF GT_OUTTAB OCCURS 0.
           INCLUDE STRUCTURE rtab_alv.
    *DATA: END OF GT_OUTTAB.
    Data: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
         G_EXIT_CAUSED_BY_CALLER,
         GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
          G_REPID LIKE SY-REPID,
          G_GRID_TITLE TYPE  LVC_TITLE.
    *"Callback
    *Data: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
         G_STATUS_SET   TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
    Data: G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
         G_TOP_OF_PAGE  TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
         G_TOP_OF_LIST  TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
         G_END_OF_LIST  TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
    *"Variants
    DATA: GS_VARIANT LIKE DISVARIANT,
          G_SAVE.
    Global structure of list
    fieldcatalog
    DATA:   LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA:   GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    sort
    *DATA:   GT_SORT     TYPE SLIS_T_SORTINFO_ALV.
    events
    *DATA:   GT_EVENTS   TYPE SLIS_T_EVENT.
    *----- Structure for specific color settings -
    *DATA:   COL_TAB_T TYPE SLIS_T_SPECIALCOL_ALV,
           COL_TAB   TYPE SLIS_SPECIALCOL_ALV.
    DATA:   G_TABNAME TYPE SLIS_TABNAME VALUE 'RTAB_ALV'.
    print
    *DATA:   GS_PRINT    TYPE SLIS_PRINT_ALV.
    *---- FIELD-GROUPS                            -
    FIELD-GROUPS:
              HEADER,
              STAMMDATEN,
              OP-RASTER,
              EINZELPOSTEN.
    INSERT
      LFB1-BUKRS                           " Buchungskreis
    lfB1-BUSAB         " Sachbearbeiter
      LFA1-LIFNR                           " Kontonummer
      SATZART                              " Satzart
      RTAB-SORTK                           " Sortkz fuer Tabelle RTAB
                                           " '0' = normale Eintraege
                                           " '1' = Summeneintraege
      GB                                   " Geschaeftsbereich
                                           " - GB-GSBER
                                           " - GB-WAERS
      RASTERUU         " Kennzeichen fuer Detailposten bzw Raster
    ab hier nur fuer Einzelposten -
      TAGE                                 " Rastertage  fuer Detailposten
      BSIK-UMSKZ                           " Umsatzkennzeichen
      BSIK-BLART                           " Belegart
    BSIK-ZUONR         " Zuordnungsnummer
      BSIK-BELNR                           " Belegnummer
      BSIK-BUZEI                           " Belegzeile
    INTO HEADER.
    INSERT
    Addressdaten
      ADRS-LINE0                           " 1. Zeile Adressenaufbereitung
      ADRS-LINE1                           " 2. "     "
      ADRS-LINE2                           " 3. "     "
      ADRS-LINE3                           " 4. "     "
      ADRS-LINE4                           " 5. "     "
      ADRS-LINE5                           " 6. "     "
      ADRS-LINE6                           " 7. "     "
    ADRS-LINE7         " 8. "     "
    ADRS-LINE8         " 9. "     "
    ADRS-LINE9         " 10."     "
    Umsatzdaten
      C-KUMUM                              " Umsatz
    C-BABZG          " Berechtigt. Abzuege
    C-UABZG          " Unberechtigt. Abzuege
    C-KZINS          " Zinszahlungen
    C-KUMAG          " Kum. Jahresausgleich
    Obligos
      C-SALDO                              " Saldo ohne SHB-Vorgänge
      C-UMKZ1                              "SHBKZ 1
      C-SUMS1                              "Sonderumsatz 1
      C-UMKZ2                              "SHBKZ 2
      C-SUMS2                              "Sonderumsatz 2
      C-UMKZ3                              "SHBKZ 3
      C-SUMS3                              "Sonderumsatz 3
      C-UMKZ4                              "SHBKZ 4
      C-SUMS4                              "Sonderumsatz 4
      C-UMKZ5                              "SHBKZ 5
      C-SUMS5                              "Sonderumsatz 5
      C-UMKZ6                              "SHBKZ 6
      C-SUMS6                              "Sonderumsatz 6
      C-UMKZ7                              "SHBKZ 7
      C-SUMS7                              "Sonderumsatz 7
      C-UMKZ8                              "SHBKZ 8
      C-SUMS8                              "Sonderumsatz 8
      C-UMKZ9                              "SHBKZ 9
      C-SUMS9                              "Sonderumsatz 9
      C-UMKZ10                             "SHBKZ 10
      C-SUMS10                             "Sonderumsatz 10
      C-SONOB                              " Sonst. Obligen
    Limits
      C-AGOBLI                             " Absolutes Gesamtobligo
    Zahlungdaten
      LFB1-ZTERM                           "Zahlungsbedingung
      LFB1-ZAHLS                           "Sperrschlüssel für Zahlung
      LFB1-ZWELS                           "Zahlwege
      LFB1-XVERR                           "Zahlungsverrechnung
      LFB1-WEBTR                           "Wechsellimit
      LFB1-BUSAB                           " Sachbearbeiter
      lfa1-sortl
      lfa1-land1
    INTO STAMMDATEN.
    INSERT
      RTAB-RAART                           "Rasterart
      RTAB-SPERR                           "gesperrte Posten
      RTAB-KUMUM                           "Umsatz
      RTAB-ANZAH                           "Anzahlungen
      RTAB-OPSUM                           "Offene Posten Summe
      RTAB-RAST1                           "Rasterfeld 1
      RTAB-RAST2                           "Rasterfeld 2
      RTAB-RAST3                           "Rasterfeld 3
      RTAB-RAST4                           "Rasterfeld 4
      RTAB-RAST5                           "Rasterfeld 5
      RTAB-RAST6                           "Rasterfeld 6
    INTO OP-RASTER.
    INSERT
      BSIK-BUDAT                           " Buchungsdatum
      BSIK-BLDAT                           " Belegdatum
      BSIK-CPUDT                           " CPU-Datum
    BKPF-USNAM         " User-ID
      BSIK-WAERS                           " Wahrungsschluessel
      BSEGA-NETDT                          " Nettofaelligkeitsdatum
    FAEDE-NETDT        " Nettofaelligkeitsdatum
      BSIK-ZFBDT                           " Zahlungsfristen-Basisdatum
      BSIK-BSCHL                           " Buchungsschluessel
      BSIK-ZLSCH                           " Zahlungsschluessel
    BSIK-MANST         " Mahnstufe
      SHBETRAG                             " Hauswaehrungsbetrag
      BSEGA-DMSHB                          " Hauswaehrungsbetrag
      BSEGA-WRSHB                          " Fremwaehrungsbetrag
    INTO EINZELPOSTEN.
    BEGIN_OF_BLOCK 1.
    *ELECT-OPTIONS:
         GESBER   FOR BSIK-GSBER.
    PARAMETERS:
           MONAT    LIKE RFPDO-DOPRBMON.
    SELECT-OPTIONS:
           KKSALDO2 FOR RFSDO-KOPRSAL2,    "Saldovortrag
           AGOBLIG2 FOR RFSDO-KOPRAGO2.    "Absolutes Obligo
         RGOBLIGO FOR RFSDO-DOPRRGOB.          "Relatives Obligo
    SELECT-OPTIONS:
         LAND     FOR LFA1-LAND1,
         KONTENGR FOR LFA1-KTOKK,
         SACHBEAR FOR LFB1-BUSAB,
           AKONTS   FOR LFB1-AKONT,
           AKONTP   FOR BSIK-HKONT.
    SELECT-OPTIONS:
           BUDAT    FOR BSIK-BUDAT,
           BLDAT    FOR BSIK-BLDAT,
           NETDT    FOR BSEGA-NETDT.
    PARAMETERS:     N_BELEGE    LIKE RFPDO-BPETNBEL
                                       DEFAULT 'X',   "Normale Belege.
                    STAT_BLG    LIKE RFPDO-BPETSBEL.  "Statistische Belege
    END_OF_BLOCK 1.
    *ELECT-OPTIONS:
         BERABZU1 FOR LFC1-BABZG,
         UNBABZU1 FOR LFC1-UABZG,
         ZINSE1   FOR LFC1-KZINS,
         JHRAUSG1 FOR LFC1-KUMAG.
         BERABZUG FOR BEABZUG NO-DISPLAY,       "Berechtigter Abzug
         UNBABZUG FOR UBABZUG NO-DISPLAY,       "Unberechtigter Abzug
         ZINSEN   FOR KUMZINS NO-DISPLAY,       "Kumulierter Zins
         JHRAUSGL FOR JAHRAUG NO-DISPLAY.       "Kumulierter Jahresausgl.
    BEGIN_OF_BLOCK 2.
    PARAMETERS:
           SORTART  LIKE RFPDO1-KOPRSOAR DEFAULT '1',          "Doku
           VERDICHT LIKE RFPDO1-KOPRVERD DEFAULT '1',          "Doku
           RASTVERD LIKE RFPDO1-KOPRRAST DEFAULT '0',          "Doku
           KONZVERS LIKE RFPDO-DOPOKONZ,   "Konzernversion
           XBUKRDAT LIKE RFPDO3-ALLGBUKD DEFAULT 0, "Bukr.daten
           KAUSGABE like rfpdo3-ALLGKAOR.
         SELECTION-SCREEN BEGIN OF LINE.
         SELECTION-SCREEN COMMENT 01(30) TEXT-030.
    PARAMETERS: RART-NET LIKE RFPDO-DOPRRNET DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 33(01) TEXT-028.
    PARAMETERS: RART-SKT LIKE RFPDO-DOPRRSKT DEFAULT 'X'.
         SELECTION-SCREEN COMMENT 35(01) TEXT-028.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: RART-ALT LIKE RFPDO1-KOPRRALT DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 03(28) TEXT-031.
    SELECTION-SCREEN POSITION POS_HIGH.
    PARAMETERS      RBLDAT   LIKE RFPDO2-KORD10BD.
    SELECTION-SCREEN COMMENT 61(12) TEXT-032.
    SELECTION-SCREEN END OF LINE.
         SELECTION-SCREEN COMMENT 37(01) TEXT-028.
    PARAMETERS: RART-UEB LIKE RFPDO-DOPRRUEB DEFAULT 'X'.
         SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-026.
    PARAMETERS: RASTBIS1 LIKE RFPDO1-ALLGROGR DEFAULT '000'.
         SELECTION-SCREEN COMMENT 35(02) TEXT-027.
    PARAMETERS: RASTBIS2 LIKE RFPDO1-ALLGROGR DEFAULT '020'.
         SELECTION-SCREEN COMMENT 41(02) TEXT-027.
    PARAMETERS: RASTBIS3 LIKE RFPDO1-ALLGROGR DEFAULT '040'.
         SELECTION-SCREEN COMMENT 47(02) TEXT-027.
    PARAMETERS: RASTBIS4 LIKE RFPDO1-ALLGROGR DEFAULT '080'.
         SELECTION-SCREEN COMMENT 53(02) TEXT-027.
    PARAMETERS: RASTBIS5 LIKE RFPDO1-ALLGROGR DEFAULT '100'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 01(31) TEXT-029.
    PARAMETERS:  FAKTOR LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN COMMENT 35(1) TEXT-028.
    PARAMETERS:  STELLEN LIKE RFPDO-DOPRFAKT DEFAULT '0'.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: PZUOR    LIKE RFPDO2-DOPRZUOR.
    PARAMETERS: UMSATZKZ LIKE RFPDO1-DOPRSHBO. "DEFAULT 'WSABIMVD'.
    PARAMETERS:
           TITLE       LIKE RFPDO1-ALLGLINE,
           LISTSEP     LIKE RFPDO-ALLGLSEP,
           MIKFICHE    LIKE RFPDO-ALLGMIKF.
    PARAMETERS:
           P_LVAR    LIKE Gs_VARIANT-VARIANT DEFAULT SPACE modif id 508.
    END_OF_BLOCK 2.
    AT SELECTION-SCREEN OUTPUT.
    if acc_mode is initial.
      LOOP AT SCREEN.
        IF SCREEN-GROUP1 = '508'.
          SCREEN-active    = '0'.
          MODIFY SCREEN.
        ENDIF.
    ENDLOOP.
    endif.
    AT SELECTION-SCREEN ON AKONTS.
       Konvertierung der Kontonummer
      LOOP AT AKONTS.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-LOW AKONTS-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTS-HIGH AKONTS-HIGH.
        MODIFY AKONTS.
      ENDLOOP.
    AT SELECTION-SCREEN ON AKONTP.
       Konvertierung der Kontonummer
      LOOP AT AKONTP.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-LOW AKONTP-LOW.
        PERFORM ALPHAFORMAT(SAPFS000)
          USING AKONTP-HIGH AKONTP-HIGH.
        MODIFY AKONTP.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LVAR.
      Gs_VARIANT-REPORT  = SY-REPID.
      Gs_VARIANT-VARIANT = P_LVAR.
      PERFORM F4_FOR_S_LVAR   USING Gs_VARIANT.
      P_LVAR = Gs_VARIANT-VARIANT.
    AT SELECTION-SCREEN.
      IF NOT RASTBIS5 IS INITIAL.
        IF  RASTBIS5 GT RASTBIS4
        AND RASTBIS4 GT RASTBIS3
        AND RASTBIS3 GT RASTBIS2
        AND RASTBIS2 GT RASTBIS1.
        ELSE.
          MESSAGE E379.
        ENDIF.
      ELSE.
        IF NOT RASTBIS4 IS INITIAL.
          IF  RASTBIS4 GT RASTBIS3
          AND RASTBIS3 GT RASTBIS2
          AND RASTBIS2 GT RASTBIS1.
          ELSE.
            MESSAGE E379.
          ENDIF.
        ELSE.
          IF NOT RASTBIS3 IS INITIAL.
            IF  RASTBIS3 GT RASTBIS2
            AND RASTBIS2 GT RASTBIS1.
            ELSE.
              MESSAGE E379.
            ENDIF.
          ELSE.
            IF NOT RASTBIS2 IS INITIAL.
              IF  RASTBIS2 GT RASTBIS1.
              ELSE.
                MESSAGE E379.
              ENDIF.
            ELSE.
            nichts zu tun
            ENDIF.
          ENDIF.
        END

  • NEED ALVGRID  MATERIAL  TO CONVERT STANDARD REPORT

    NEED ALVGRID  MATERIAL  TO CONVERT STANDARD REPORT
    THANKS IN ADVANCED.

    To my Knowledge there is not method for converting a standard report to alv grid.
    U just collect the required data to final internal table and then build field catlog.Use this field catalog in the function module.
    Check the following program it may help u.
    report z_example.
    TYPE-POOLS         slis.
    TABLES : qals.
    DATA : BEGIN OF t_out OCCURS 0,
    matnr LIKE qals-matnr, "MATERIAL
    werk LIKE qals-werk, "PLANT
    art like qals-art, "Inspaction Lot Type
    objnr like qals-objnr, "Object Number
    END OF t_out.
    DATA : i_fieldcat TYPE slis_t_fieldcat_alv,
    i_layout TYPE slis_layout_alv,
    gs_layout TYPE lvc_s_layo,
    g_repid TYPE sy-repid,
    ls_fieldcat TYPE slis_fieldcat_alv.
    SELECT-OPTIONS:s_prflos FOR qals-prueflos.
    INITIALIZATION.
    g_repid = sy-repid.
    i_layout-zebra = 'X'.
    i_layout-colwidth_optimize = 'X'.
    START-OF-SELECTION.
    PERFORM fetch_data.
    END-OF-SELECTION.
    PERFORM fill_fieldcat.
    PERFORM display_alv.
    FORM fetch_data .
    SELECT matnr werk art objnr
    FROM qals
    INTO TABLE t_out
    WHERE prueflos IN s_prflos.
    ENDFORM. " FETCH_DATA
    FORM fill_fieldcat .
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    i_program_name = g_repid
    i_internal_tabname = 'T_OUT'
    i_inclname = g_repid
    CHANGING
    ct_fieldcat = i_fieldcat[]
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    ENDFORM. " FILL_FIELDCAT
    FORM display_alv .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = g_repid
    is_layout = i_layout
    it_fieldcat = i_fieldcat[]
    TABLES
    t_outtab = t_out
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    ENDFORM. " display_alv
    Regards

  • Save changes in alvgrid

    Hi all,
    In my alvgrid I have few columns which are editable, i edit cells, insert  a  new row and modify row and delete.
    All these changes should be stored in internal table. I should save automaticaly when i invoke display button.
    I use this code but i need the modification without tranporting the fields how do i do?
    WHEN 'DISPLAY'.
          PERFORM changed_data.
          PERFORM filter_condpri.
        WHEN 'SAVE'.
          PERFORM save_data.
      ENDCASE.
    ENDMODULE.                    "pai_100 INPUT
    *&      Module  exit_0100  INPUT
    MODULE exit_0100 INPUT.
      CASE ok_code.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " pai_100  INPUT
    *&      Form  changed_data
    FORM changed_data.
      LOOP AT gt_zflp_ttcualcond
      INTO gs_zflp_stcualcond
      WHERE chflg = 'M'.
        MODIFY gt_zflp_ttcualcondpri
        FROM gs_zflp_stcualcond
        TRANSPORTING delkzr_1 delkzr_2
                     delkzd_1 delkzd_2
                     matnr_1  matnr_2
                     maktx_1  maktx_2
        WHERE profil = gs_zflp_stcualcond-profil
        AND alcat    = gs_zflp_stcualcond-alcat
        AND indcopr  = gs_zflp_stcualcond-indcopr
        AND norule   = gs_zflp_stcualcond-norule.
      ENDLOOP.
      LOOP AT gt_zflp_ttcualpri
      INTO gs_zflp_stcualpri
      WHERE chflg = 'M'.
        MODIFY gt_zflp_ttcualcondpri
        FROM gs_zflp_stcualpri
        TRANSPORTING delkzr_1 delkzr_2
                     delkzd_1 delkzd_2
                     matnr_1  matnr_2
                     maktx_1  maktx_2
        WHERE profil = gs_zflp_stcualpri-profil
        AND alcat    = gs_zflp_stcualpri-alcat
        AND indcopr  = gs_zflp_stcualpri-indcopr
        AND norule   = gs_zflp_stcualpri-norule.
      ENDLOOP.
    ENDFORM.                    "changed_data
    Looking forward.
    Regards
    Sap team

    Hi,
    Check the sample code:
    *-- Display Report
    CALL METHOD o_alvgrid->set_table_for_first_display
    EXPORTING
    i_save = c_a
    is_layout = p_layout
    it_toolbar_excluding = i_excl_func
    CHANGING
    it_outtab = p_output[]
    it_fieldcatalog = p_fieldcat[]
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4.
    IF sy-subrc <> 0.
    MESSAGE s001(zesspa) WITH text-029. " Error in Displaying
    LEAVE LIST-PROCESSING.
    ELSE.
    <b>* Register events
    CALL METHOD o_alvgrid->register_edit_event
    EXPORTING
    i_event_id = cl_gui_alv_grid=>mc_evt_enter.
    CALL METHOD o_alvgrid->register_edit_event
    EXPORTING
    i_event_id = cl_gui_alv_grid=>mc_evt_modified.</b>
    This registering event will make the data changes to be automatically update to the internal table.
    Then write the code in the data changed event to modify the global internal table.
    *-- ALV Grid data declaration
    CLASS v_lcl_event_receiver DEFINITION
    CLASS lcl_event_receiver DEFINITION.
    PUBLIC SECTION.
    METHODS:
    handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
    IMPORTING er_data_changed,
    ENDCLASS. "o_lcl_event_receiver DEFINITION
    CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
    CLASS lcl_event_receiver IMPLEMENTATION.
    "handle_data_changed
    METHOD handle_data_changed.
    PERFORM handle_data_changed USING er_data_changed.
    ENDMETHOD. "handle_data_changed
    ENDCLASS. "lcl_event_receiver IMPLEMENTATION
    *& Form f2200_handle_data_changed
    Handle Data Changed in the ALV grid
    FORM handle_data_changed USING ir_data_changed
    TYPE REF TO
    cl_alv_changed_data_protocol.
    DATA : ls_mod_cell TYPE lvc_s_modi,
    lv_value TYPE lvc_value,
    lws_date TYPE scal-date.
    DATA: lws_contrlife LIKE zspa_es_contlife-zzcontrlife,
    lwa_contrlife TYPE zspa_es_contlife,
    lws_mod_eff_code TYPE zspa_es_mod_code-zzmod_eff_code,
    lwa_mod_eff_code TYPE zspa_es_mod_code.
    SORT ir_data_changed->mt_mod_cells BY row_id .
    LOOP AT ir_data_changed->mt_mod_cells
    INTO ls_mod_cell
    WHERE fieldname = text-025 "ZZCONTRLIFE
    OR fieldname = text-026 "ZZMOD_EFF_CODE
    OR fieldname = text-027 "DATE
    OR fieldname = text-028. "CLIENT_AGGR.
    READ TABLE i_final INTO wa_final
    INDEX ls_mod_cell-row_id.
    IF sy-subrc = 0.
    IF ls_mod_cell-fieldname = text-025. "ZZCONTRLIFE
    lws_contrlife = ls_mod_cell-value.
    SELECT SINGLE * FROM zspa_es_contlife
    INTO lwa_contrlife WHERE zzcontrlife = lws_contrlife.
    IF sy-subrc NE 0.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-025
    i_value = ''.
    MESSAGE s001(zesspa) WITH text-035.
    EXIT.
    ELSE.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-025
    i_value = lws_contrlife.
    wa_final-zzcontrlife = lws_contrlife.
    MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
    ENDIF.
    ENDIF.
    IF ls_mod_cell-fieldname = text-026. "ZZMOD_EFF_CODE
    lws_mod_eff_code = ls_mod_cell-value.
    SELECT SINGLE * FROM zspa_es_mod_code
    INTO lwa_mod_eff_code
    WHERE zzmod_eff_code = lws_mod_eff_code.
    IF sy-subrc NE 0.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-026
    i_value = ''.
    MESSAGE s001(zesspa) WITH text-036.
    EXIT.
    ELSE.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-026
    i_value = lws_mod_eff_code.
    wa_final-zzmod_eff_code = lws_mod_eff_code.
    IF wa_final-zzmod_eff_code = 1 OR
    wa_final-zzmod_eff_code = 2.
    wa_final-date = ''.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-027
    i_value = ''.
    ENDIF.
    MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
    **-- No Edit control for Date when mode eff code = '1', '2'.
    PERFORM no_edit_for_date TABLES i_final.
    *This perform Refresh's the ALV list and Set's the Focus to
    *Current Cell and keep the Scroll bar in the same place.
    PERFORM alv_refresh.
    ENDIF.
    ENDIF.
    IF ls_mod_cell-fieldname = text-027. "DATE
    CONCATENATE ls_mod_cell-value+6(4)
    ls_mod_cell-value+3(2)
    ls_mod_cell-value+0(2) INTO lws_date.
    IF lws_date NE ''.
    IF lws_date > sy-datum.
    wa_final-date = lws_date.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-027
    i_value = lws_date.
    MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
    ELSE.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-027
    i_value = ''.
    MESSAGE s001(zesspa) WITH text-037.
    EXIT.
    ENDIF.
    ENDIF.
    ENDIF.
    IF ls_mod_cell-fieldname = text-028. "CLIENT_AGGR
    TRANSLATE ls_mod_cell-value TO UPPER CASE. "#EC SYNTCHAR
    *"#EC TRANSLANG
    IF ls_mod_cell-value EQ c_s OR ls_mod_cell-value EQ c_n.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-028
    i_value = ls_mod_cell-value.
    wa_final-client_aggr = ls_mod_cell-value.
    MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
    ELSE.
    CALL METHOD ir_data_changed->modify_cell
    EXPORTING
    i_row_id = ls_mod_cell-row_id
    i_fieldname = text-028
    i_value = ''.
    MESSAGE s001(zesspa) WITH text-039.
    EXIT.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDLOOP.
    ENDFORM. " handle_data_changed

  • How to make Authority Check for ALVGrid?!

    Hey mates,
    i got the problem which is mentioned in the headline. How can i make an authority check for my ALVGrid? I mean i want to restrict special functions to the matching users ( Display, Edit, Delete mode ).
    Would be cool if someone can help
    Regards Basti

    Hello Bastian
    A simple approach would be to define three different transactions (e.g. Z_MYALV01, Z_MYALV02, Z_MYALV03) for editing/deleting, editing only and displaying only. Add the following coding to the report displaying your ALV grid:
      CASE syst-tcode.
        WHEN gc_tcode_create.    " 01
          " Allow all grid functions
        WHEN gc_tcode_change.  " 02
          " Suppress grid functions for deleting rows
        WHEN gc_tcode_display.  " 03
          " Suppress grid functions for editing/deleting
        WHEN others.
          RETURN.
       ENDCASE.
    Regards
      Uwe

  • How to set column width in alvgrid

    hi
    how to set column width in alvgrid.
    thanks.

    Hi,
    Check this,
    REPORT  ztest.
    DATA: BEGIN OF i_scarr_tab OCCURS 0.
            INCLUDE STRUCTURE  scarr.
    DATA: END OF i_scarr_tab.
    DATA: i_scarr LIKE TABLE OF i_scarr_tab WITH HEADER LINE,
          w_scarr LIKE LINE OF i_scarr_tab.
    DATA: o_grid      TYPE REF TO cl_gui_alv_grid,
          o_container TYPE REF TO cl_gui_custom_container.
    DATA: lt_fcat     TYPE lvc_t_fcat,
          ls_layo     TYPE lvc_s_layo,
          ls_sort     TYPE lvc_s_sort,
          lt_sort     TYPE lvc_t_sort,
          ls_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    START-OF-SELECTION.
      CALL SCREEN 9000.
    *&      Module  status_9000  OUTPUT
          text
    MODULE status_9000 OUTPUT.
      SET PF-STATUS '9000'.
      SET TITLEBAR '9000'.
    ENDMODULE.                 " status_9000  OUTPUT
    *&      Module  user_command_9000  INPUT
          text
    MODULE user_command_9000 INPUT.
      CASE sy-ucomm .
        WHEN 'BACK' OR 'EXIT'.
          SET SCREEN 0.
          LEAVE SCREEN.
      ENDCASE.
    ENDMODULE.                 " user_command_9000  INPUT
    *&      Module  init_9000  OUTPUT
          text
    MODULE init_9000 OUTPUT.
      IF o_container IS INITIAL.
        SELECT * FROM scarr INTO CORRESPONDING FIELDS OF TABLE
           i_scarr UP TO 100 ROWS.
        IF cl_gui_alv_grid=>offline( ) IS INITIAL.
    Create a custom container control for ALV Control
          CREATE OBJECT o_container
              EXPORTING
                  container_name = 'CONTROL'.
    Create a ALV Control
          CREATE OBJECT o_grid
              EXPORTING i_parent = o_container.
          PERFORM build_field_catalgue.
          ls_layo-sel_mode = 'A'.
          CALL METHOD o_grid->set_table_for_first_display
            EXPORTING
              i_save          = 'A'
              i_default       = 'X'
              is_layout       = ls_layo
            CHANGING
              it_outtab       = i_scarr[]
              it_fieldcatalog = lt_fcat
              it_sort         = lt_sort[].
        ENDIF.
      ENDIF.
    ENDMODULE.                 " init_9000  OUTPUT
    *&      Form  build_field_catalgue
          text
    -->  p1        text
    <--  p2        text
    FORM build_field_catalgue .
      DATA: ls_fcat TYPE lvc_s_fcat.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name         = sy-cprog
          i_internal_tabname     = 'I_SCARR_TAB'
          i_structure_name       = 'SCARR'
         i_client_never_display = 'X'
        CHANGING
          ct_fieldcat            = ls_fieldcat[]
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.
      IF sy-subrc <> 0.
        MESSAGE 'FCAT Error' TYPE 'I'.
        EXIT.
      ENDIF.
      LOOP AT  ls_fieldcat.
        CLEAR ls_fcat.
        ls_fcat-fieldname = ls_fieldcat-fieldname.     "Fieldname
        ls_fcat-ref_table = ls_fieldcat-tabname.       "DDIC ref struct
        ls_fcat-inttype   = ls_fieldcat-inttype.       "Data type
        ls_fcat-outputlen = ls_fieldcat-outputlen.     "Column width
        ls_fcat-coltext   = ls_fieldcat-seltext_m.     "Column Header
        ls_fcat-seltext   = ls_fieldcat-seltext_m.     "Column Desc
        ls_fcat-ref_field = ls_fieldcat-ref_fieldname. "Reference field
        ls_fcat-ref_table = ls_fieldcat-ref_tabname.   "Reference table
        CASE  ls_fieldcat-fieldname.
          WHEN 'LUGGWEIGHT' OR 'FORCURAM'.
            ls_fcat-edit      = 'X'.
            ls_fcat-do_sum    = 'X'.
          WHEN 'URL'.
            ls_fcat-no_out = 'X'.
          WHEN OTHERS.
            ls_fcat-edit      = ' '.
            ls_fcat-do_sum    = ' '.
        ENDCASE.
        APPEND ls_fcat TO lt_fcat.
      ENDLOOP.
    ENDFORM.                    " build_field_catalgue
    check the programs bcalv_grid*.
    check this link for more detailed example.
    http://www.supinfo-projects.com/fr/2005/alv_display_fr/2/
    Regards
    Sruthi

  • ABAP : Running total in alvgrid

    Dear ABAP Experts,
    How can I add running sum in alvgrid.? I have developed a code but when user sorts on anycolumn then the total becomes wrong because it has been calculated in the code. Is there any auto feature in alvgrid.?
    Regards
    Aneel

    You could try this event, but can we take it for granted that the sub-totals have already been recalculated by ALV at this step and that our changes will not be overwritten?
    This is why I prefer the event after_refresh which (AFAIK) is the last one before re-display of grid.
    Regards,
    Raymond

  • Save changes automatically in alvgrid

    Hello all,
    How do i save changes automatically in alvgrid. I display data with fields which can be editable & some which are not.
    The fields which are editable should be saved automatically. These fields should be saved in global internal table.
    I have save button, but I invoke only when the changed data is saved in database table via global internal table.
    Looking forward for your reply.
    regards
    Madhavi.

    Hi
    Check the sample code:
    *-- Display Report
      CALL METHOD o_alvgrid->set_table_for_first_display
        EXPORTING
          i_save                        = c_a
          is_layout                     = p_layout
          it_toolbar_excluding          = i_excl_func
        CHANGING
          it_outtab                     = p_output[]
          it_fieldcatalog               = p_fieldcat[]
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
      IF sy-subrc <> 0.
        MESSAGE s001(zesspa) WITH text-029.    " Error in Displaying
        LEAVE LIST-PROCESSING.
      ELSE.
    <b>* Register events
        CALL METHOD o_alvgrid->register_edit_event
          EXPORTING
            i_event_id = cl_gui_alv_grid=>mc_evt_enter.
        CALL METHOD o_alvgrid->register_edit_event
          EXPORTING
            i_event_id = cl_gui_alv_grid=>mc_evt_modified.
    This registering event will make the data changes to be automatically update to the internal table.
    Then write the code in the data changed event to modify the global internal table.
    </b>
    *-- ALV Grid data declaration
          CLASS v_lcl_event_receiver DEFINITION
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
        handle_data_changed      FOR EVENT data_changed OF cl_gui_alv_grid
                                 IMPORTING er_data_changed,
    ENDCLASS.                    "o_lcl_event_receiver DEFINITION
          CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
    CLASS lcl_event_receiver IMPLEMENTATION.
    "handle_data_changed
      METHOD handle_data_changed.
          PERFORM handle_data_changed USING er_data_changed.
      ENDMETHOD.                    "handle_data_changed
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    *&      Form  f2200_handle_data_changed
          Handle Data Changed in the ALV grid
    FORM handle_data_changed  USING    ir_data_changed
                                             TYPE REF TO
                                             cl_alv_changed_data_protocol.
      DATA : ls_mod_cell TYPE lvc_s_modi,
            lv_value TYPE lvc_value,
             lws_date TYPE scal-date.
      DATA: lws_contrlife LIKE zspa_es_contlife-zzcontrlife,
            lwa_contrlife TYPE zspa_es_contlife,
            lws_mod_eff_code TYPE zspa_es_mod_code-zzmod_eff_code,
            lwa_mod_eff_code TYPE zspa_es_mod_code.
      SORT ir_data_changed->mt_mod_cells BY row_id .
      LOOP AT ir_data_changed->mt_mod_cells
                         INTO ls_mod_cell
                         WHERE fieldname = text-025   "ZZCONTRLIFE
                         OR    fieldname = text-026   "ZZMOD_EFF_CODE
                         OR    fieldname = text-027   "DATE
                         OR    fieldname = text-028.  "CLIENT_AGGR.
        READ TABLE i_final INTO wa_final
                           INDEX ls_mod_cell-row_id.
        IF sy-subrc = 0.
          IF ls_mod_cell-fieldname = text-025.     "ZZCONTRLIFE
            lws_contrlife = ls_mod_cell-value.
            SELECT SINGLE * FROM zspa_es_contlife
                   INTO lwa_contrlife WHERE zzcontrlife = lws_contrlife.
            IF sy-subrc NE 0.
              CALL METHOD ir_data_changed->modify_cell
                EXPORTING
                  i_row_id    = ls_mod_cell-row_id
                  i_fieldname = text-025
                  i_value     = ''.
              MESSAGE s001(zesspa) WITH text-035.
              EXIT.
            ELSE.
              CALL METHOD ir_data_changed->modify_cell
                EXPORTING
                  i_row_id    = ls_mod_cell-row_id
                  i_fieldname = text-025
                  i_value     = lws_contrlife.
              wa_final-zzcontrlife = lws_contrlife.
              MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
            ENDIF.
          ENDIF.
          IF ls_mod_cell-fieldname = text-026.     "ZZMOD_EFF_CODE
            lws_mod_eff_code = ls_mod_cell-value.
            SELECT SINGLE * FROM zspa_es_mod_code
                   INTO lwa_mod_eff_code
                   WHERE zzmod_eff_code = lws_mod_eff_code.
            IF sy-subrc NE 0.
              CALL METHOD ir_data_changed->modify_cell
                EXPORTING
                  i_row_id    = ls_mod_cell-row_id
                  i_fieldname = text-026
                  i_value     = ''.
              MESSAGE s001(zesspa) WITH text-036.
              EXIT.
            ELSE.
              CALL METHOD ir_data_changed->modify_cell
                EXPORTING
                  i_row_id    = ls_mod_cell-row_id
                  i_fieldname = text-026
                  i_value     = lws_mod_eff_code.
              wa_final-zzmod_eff_code = lws_mod_eff_code.
              IF wa_final-zzmod_eff_code = 1 OR
                 wa_final-zzmod_eff_code = 2.
                wa_final-date = ''.
                CALL METHOD ir_data_changed->modify_cell
                  EXPORTING
                    i_row_id    = ls_mod_cell-row_id
                    i_fieldname = text-027
                    i_value     = ''.
              ENDIF.
              MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
    **-- No Edit control for Date when mode eff code = '1', '2'.
              PERFORM no_edit_for_date TABLES i_final.
    *This perform Refresh's the ALV list and Set's the Focus to
    *Current Cell and keep the Scroll bar in the same place.
              PERFORM alv_refresh.
            ENDIF.
          ENDIF.
          IF ls_mod_cell-fieldname = text-027.     "DATE
            CONCATENATE ls_mod_cell-value+6(4)
                        ls_mod_cell-value+3(2)
                        ls_mod_cell-value+0(2) INTO lws_date.
            IF lws_date NE ''.
              IF lws_date > sy-datum.
                wa_final-date = lws_date.
                CALL METHOD ir_data_changed->modify_cell
                  EXPORTING
                    i_row_id    = ls_mod_cell-row_id
                    i_fieldname = text-027
                    i_value     = lws_date.
                MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
              ELSE.
                CALL METHOD ir_data_changed->modify_cell
                  EXPORTING
                    i_row_id    = ls_mod_cell-row_id
                    i_fieldname = text-027
                    i_value     = ''.
                MESSAGE s001(zesspa) WITH text-037.
                EXIT.
              ENDIF.
            ENDIF.
          ENDIF.
          IF ls_mod_cell-fieldname = text-028.     "CLIENT_AGGR
            TRANSLATE ls_mod_cell-value TO UPPER CASE.        "#EC SYNTCHAR
    *"#EC TRANSLANG
            IF ls_mod_cell-value EQ c_s OR ls_mod_cell-value EQ c_n.
              CALL METHOD ir_data_changed->modify_cell
                EXPORTING
                  i_row_id    = ls_mod_cell-row_id
                  i_fieldname = text-028
                  i_value     = ls_mod_cell-value.
              wa_final-client_aggr = ls_mod_cell-value.
              MODIFY i_final FROM wa_final INDEX ls_mod_cell-row_id.
            ELSE.
              CALL METHOD ir_data_changed->modify_cell
                EXPORTING
                  i_row_id    = ls_mod_cell-row_id
                  i_fieldname = text-028
                  i_value     = ''.
              MESSAGE s001(zesspa) WITH text-039.
              EXIT.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " handle_data_changed

  • Requrred screenshots for alvgrid display

    hi,
    i am the beginner  to ABA/4,
    i want to learn how to create alv reports .
    can u people help me?

    Hi Sravanthi
    WELCOME TO SDN COMMUNITY
    ALV is ABAP LIST VIEWER.
    To have more functionalities like totals, subtotals,logos,etc we choose ALVs compared to reports.
    Check this:
    Documentation on alv:
    you can check out:
    http://www.****************/Tutorials/ALV/ALVMainPage.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    ABAP List Viewer
    The common features of report are column alignment, sorting, filtering, subtotals, totals etc. To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).
    This helps us to implement all the features mentioned very effectively.
    Using ALV, We can have three types of reports:
    1. Simple Report
    2. Block Report
    3. Hierarchical Sequential Report
    There are some function modules which will enable to produce the above reports without much effort.
    All the definitions of internal tables, structures and constants are declared in a type-pool called SLIS.
    1. SIMPLE REPORT.
    The important function modules are
    a. Reuse_alv_list_display
    b. Reuse_alv_fieldcatalog_merge
    c. Reuse_alv_events_get
    d. Reuse_alv_commentary_write
    e. Reuse_alv_grid_display
    A. REUSE_ALV_LIST_DISPLAY : This is the function module which prints the data.
    The important parameters are :
    I. Export :
    i. I_callback_program : report id
    ii. I_callback_pf_status_set : routine where a user can set his own pf status or change the functionality of the existing pf status
    iii. I_callback_user_command : routine where the function codes are handled
    iv. I_structure name : name of the dictionary table
    v. Is_layout : structure to set the layout of the report
    vi. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed (this table can be populated automatically by the function module REUSE_ALV_FIELDCATALOG_MERGE
    vii. It_events : internal table with a list of all possible events of ALV and their corresponding form names.
    II. Tables :
    i. t_outtab : internal table with the data to be output
    B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to
    populate a fieldcatalog which is essential to display the data in ALV.
    If the output data is from a single dictionary table and all the
    columns are selected, then we need not exclusively create the field cat
    alog. Its enough to mention the table name as a parameter
    (I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases
    we need to create it.
    The Important Parameters are :
    I. Export :
    i. I_program_name : report id
    ii. I_internal_tabname : the internal output table
    iii. I_inclname : include or the report name where all the dynamic forms are handled.
    II Changing
    ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is
    declared in the type pool SLIS.
    C. REUSE_ALV_EVENTS_GET : Returns table of possible events for a list type
    Parameters :
    I. Import :
    Et_Events : The event table is returned with all possible CALLBACK events
    for the specified list type (column 'NAME'). For events to be processed by Callback, their 'FORM' field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field 'FORM' filled and the entry modified using constants from the type pool SALV.
    II. Export :
    I_List_type :
    0 = simple list REUSE_ALV_LIST_DISPLAY
    1 = hierarchcal-sequential list REUSE_ALV_HIERSEQ_LIST_DISPLAY
    2 = simple block list REUSE_ALV_BLOCK_LIST_APPEND
    3 = hierarchical-sequential block list
    REUSE_ALV_BLOCK_LIST_HS_APPEND
    D. REUSE_ALV_COMMENTARY_WRITE : This is used in the Top-of-page event to print the headings and other comments for the list.
    Parameters :
    I. it_list_commentary : internal table with the headings of the type slis_t_listheader.
    This internal table has three fields :
    Typ : ‘H’ – header, ‘S’ – selection , ‘A’ - action
    Key : only when typ is ‘S’.
    Info : the text to be printed
    E. REUSE_ALV_GRID_DISPLAY : A new function in 4.6 version, to display the results in grid rather than as a preview.
    Parameters : same as reuse_alv_list_display
    This is an example for simple list.
    2. BLOCK REPORT
    This is used to have multiple lists continuously.
    The important functions used in this report are:
    A. REUSE_ALV_BLOCK_LIST_INIT
    B. REUSE_ALV_BLOCK_LIST_APPEND
    C. REUSE_ALV_BLOCK_LIST_HS_APPEND
    D. REUSE_ALV_BLOCK_LIST_DISPLAY
    A. REUSE_ALV_BLOCK_LIST_INIT
    Parameters:
    I. I_CALLBACK_PROGRAM
    II. I_CALLBACK_PF_STATUS_SET
    III. I_CALLBACK_USER_COMMAND
    This function module is used to set the default gui status etc.
    B. REUSE_ALV_BLOCK_LIST_APPEND
    Parameters :
    Export :
    I. is_layout : layout settings for block
    II. it_fieldcat : field catalog
    III. i_tabname : internal table name with output data
    IV. it_events : internal table with all possible events
    Tables :
    i. t_outtab : internal table with output data.
    This function module adds the data to the block.
    Repeat this function for all the different blocks to be displayed one after the other.
    C. REUSE_ALV_BLOCK_LIST_HS_APPEND
    This function module is used for hierarchical sequential blocks.
    D. REUSE_ALV_BLOCK_LIST_DISPLAY
    Parameters : All the parameters are optional.
    This function module display the list with data appended by the above function.
    Here the functions REUSE_ALV_FIELDCATALOG_MERGE, REUSE_ALV_EVENTS_GET, REUSE_ALV_COMMENTARY_WRITE can be used.
    3. Hierarchical reports :
    Hierarchical sequential list output.
    The function module is
    A. REUSE_ALV_HIERSEQ_LIST_DISPLAY
    Parameters:
    I. Export:
    i. I_CALLBACK_PROGRAM
    ii. I_CALLBACK_PF_STATUS_SET
    iii. I_CALLBACK_USER_COMMAND
    iv. IS_LAYOUT
    v. IT_FIELDCAT
    vi. IT_EVENTS
    vii. i_tabname_header : Name of the internal table in the program containing the
    output data of the highest hierarchy level.
    viii. i_tabname_item : Name of the internal table in the program containing the
    output data of the lowest hierarchy level.
    ix. is_keyinfo : This structure contains the header and item table field
    names which link the two tables (shared key).
    II. Tables
    i. t_outtab_header : Header table with data to be output
    ii. t_outtab_item : Name of the internal table in the program containing the
    output data of the lowest hierarchy level.
    slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.
    Important Attributes :
    A. col_pos : position of the column
    B. fieldname : internal fieldname
    C. tabname : internal table name
    D. ref_fieldname : fieldname (dictionary)
    E. ref_tabname : table (dictionary)
    F. key(1) : column with key-color
    G. icon(1) : icon
    H. symbol(1) : symbol
    I. checkbox(1) : checkbox
    J. just(1) : (R)ight (L)eft (C)ent.
    K. do_sum(1) : sum up
    L. no_out(1) : (O)blig.(X)no out
    M. outputlen : output length
    N. seltext_l : long key word
    O. seltext_m : middle key word
    P. seltext_s : short key word
    Q. reptext_ddic : heading (ddic)
    R. ddictxt(1) : (S)hort (M)iddle (L)ong
    S. datatype : datatype
    T. hotspot(1) : hotspot
    some theory regarding alv:
    This table tells ALV which events are processed by the caller by CALLBACK.
    The table of possible events per list type can be initialized using the module REUSE_ALV_EVENTS_GET.
    You can display the names of the constants in the type pools SLIS which represent the individual events using the individual test function in the function module
    REUSE_ALV_EVENT_NAMES_GET. Only events with a form routine name are processed.
    The table structure contains the fields:
    • IT_EVENTS-NAME
    Name of the Callback event.
    Possible Callback events:
    • Action
    USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD
    Process actions on the list
    As this is a frequently-used Callback event, the form routine can also be passed directly in the interface in the IMPORTING parameter I_CALLBACK_USER_COMMAND.
    PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB
    If a user list status is to be set, it must be done in the form routine assigned to this event. The ALV function codes, which must not be active, are in the Parameter RT_EXTAB. This table must be passed with the SET PF-STATUS command (with inactive user function codes as well, if necessary).
    The STANDARD status of the function group SALV should be used as a template for a user-specific status.
    As this is a frequently-used Callback event, its form routine can also be passed directly in the interface in the IMPORTING parameter I_CALLBACK_PF_STATUS_SET.
    ITEM_DATA_EXPAND USING RS_SELFIELD TYPE SLIS_SELFIELD RFLG_ALL TYPE C
    Only relevant for hierarchical-sequential lists using the layout parameter IS_LAYOUT-EXPAND_FIELDNAME of the structure IS_LAYOUT.
    Exit for passing item entries (ITEM table) for a header record which was expanded interactively by the user.
    RS_SELFIELD-TABINDEX contains the header table index for which the item entries are to be put in the global item output table (T_OUTTAB_SLAVE). The Callback is only called if ALV has no items for a header which is to be expanded.
    RFLG_ALL is passed with 'X' if the user shows all items. The application must ensure that entries are not repeated in the item table. RS_SELFIELD is initial in this case.
    CALLER_EXIT USING RS_DATA Is called at the beginning of the function module to make special settings. It is not usually used.
    • List processing events
    IMPORTANT: The application Callback routine must not manipulate the internal output table and/or its header record. This restriction applies to all Callbacks which are called in the list output and run under the 'List processing events'.
    TOP_OF_LIST no USING parameter. Information output at the start of the list
    END_OF_LIST no USING parameter. Information output at the end of the list
    TOP_OF_PAGE no USING parameter
    Equivalent to the list processing TOP-OF-PAGE event
    END_OF_PAGE no USING parameter. Not available for hierarchical-sequential lists.
    Information output at the end of a page. This is only called for printing.
    TOP_OF_COVERPAGE no USING parameter
    The selection information and list status are output together (if they exist) on a separate page by default. See also the documentation of the parameters:
    IS_PRINT-NO_COVERPAGE
    IS_PRINT-NO_PRINT_SELINFOS
    IS_PRINT-NO_PRINT_LISTINFOS
    IS_LAYOUT-GET_SELINFOS
    The user can format the header area of the 'cover page' himself or herself by specifying a Callback routine for this event.
    END_OF_COVERPAGE no USING parameter
    Analogously to TOP_OF_COVERPAGE the user can add other information to the information output by ALV (selection information, list status) at this event.
    FOREIGN_TOP_OF_PAGE no USING parameter
    The Top-of-page event is always processed in ALV and is only passed to the caller via the Callback mechanism. This is still the case if the caller, e.g. by a user action, processes a branch list which was not formatted by ALV (e.g. a popup with additional information about the list record selected and displayed by ALV).
    In this case, top-of-page cannot be formatted by ALV analogously to the basic list, it must be handled completely by the caller. The event top-of-page still occurs in ALV. When ALV notices a top-of-page which was not caused by an ALV output, the form routine in FOREIGN_TOP_OF_PAGE is called.
    FOREIGN_END_OF_PAGE no USING parameter
    The event end-of-page is always processed in ALV and only passed to the caller via callback. This is still the case, e.g. when the caller processes a details list which was not formatted by ALV (e.g. a popup with further information about selected list records which were displayed by ALV).
    In this case, end-of-page cannot be formatted by ALV analogously to the basic list, it must be handled completely by the caller. The event end-of-page still occurs in ALV. When ALV notices an end-of-page that was not caused by an ALV output, the form routine in FOREIGN_END_OF_PAGE is called.
    BEFORE_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO
    Output information before each output line. Should only be used in justified cases because it costs a lot of performance.
    AFTER_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO
    Output information after each output line. Should only be used in justified cases because it costs a lot of performance.
    • Internal use only
    LIST_MODIFY USING R_TABNAME TYPE SLIS_TABNAME
    R_INDEX LIKE SY-TABIX
    R_INDEX_ITEM LIKE SY-TABIX
    R_INDEX_SUM LIKE SY-TABIX
    • IT_EVENTS-FORM
    Name of the form routine which should be called in the calling program at the event.
    Field_catalog:
    Field catalog with field descriptions
    2.7.1. Description
    Field catalog containing descriptions of the list output fields (usually a subset of the internal output table fields). A field catalog is required for every ALV list output.
    The field catalog for the output table is built-up in the caller's coding. The build-up can be completely or partially automated by calling the REUSE_ALV_FIELDCATALOG_MERGE module
    See also the documentation of the function module REUSE_ALV_FIELDCATALOG_MERGE.
    The minimal field catalog is documented under 'default'. The caller can use the other optional parameters to assign output attributes to a field which differ from the default.
    A field catalog need not be built-up and passed explicitly only under the following conditions:
    • The internal table to be output has the same structure as a Data Dictionary structure which is referred to in the internal table declaration using LIKE or INCLUDE STRUCTURE.
    • all fields in this structure are to be output
    • the structure name is passed to ALV in the parameter I_STRUCTURE_NAME.
    See also the documentation of the IMPORTING paramter I_STRUCTURE_NAME.
    Positioning
    • row_pos (row position)
    value set: 0, 1 - 3
    Only relevant if the list output is to be multi-line (two or three lines) by default.
    A multi-line list can also be defined by the user interactively if the default list is one-line.
    The parameter specifies the relative output line of the column in a multi-line list.
    • col_pos (column position)
    value set: 0, 1 - 60
    only relevant when the default relative column positions differ from the field catalog field sequence. The parameter specifies the relative column position of the field in the list output. The column order can be changed interactively by the user. If this parameter is initial for all field catalog entries, columns appear in the field catalog field sequence.
    Identification
    • fieldname (field name)
    value set: internal output table field name (required parameter)
    Name of the internal output table field which is described by this field catalog entry
    • tabname (internal output table)
    value set: SPACE, internal output table name
    This parameter is used in 'manual' field catalog build-up only for hierarchical-sequential lists.
    Name of the internal output table which contains the field FIELDCAT-FIELDNAME.
    Data Dictionary reference
    • ref_fieldname (reference field name)
    value set: SPACE, Data Dictionary field name
    Name of the Data Dictionary field referred to.
    This parameter is only used when the internal output table field described by the current field catalog entry has a reference to the Data Dictionary (not a program field), and the field name in the internal output table is different from the name of the field in the Data Dictionary. If the field names are identical, naming the Data Dictionary structure or table in the FIELDCAT-REF_TABNAME parameter is sufficient.
    • ref_tabname (reference table/structure field name)
    value set: SPACE, name of a Data Dictionary structure or table
    Structure or table name of the referred Data Dictionary field.
    This parameter is only used when the internal output table field described by the current field catalog entry has a Data Dictionary reference (not a program field).
    Reference to fields with currency/measurement unit
    Each internal output table sum or quantity field whose decimal places are to be formatted appropriately for the unit in the list must follow the convention:
    • the field is of data type QUAN or CURR (internal type P) (the field must really have this physical data type. Overwriting the physical data type with the parameter FIELDCAT-DATATYPE has no effect)
    • There is a field in the internal output table which contains the associated unit.
    • There is also an entry in the field catalog for the unit field.
    (If the unit is not to appear as a column in the list, and cannot be interactively displayed as a column, e.g. because it is always unambiguous and is therefore explicitly output by the caller in the list header, the field catalog units field entry can take the parameter FIELDCAT-TECH = 'X'.
    The association of a value field to a unit affects the output as follows:
    • appropriate decimal places display for the unit
    • an initialized field with a link to a non-initial unit is output as '0' for the unit (if FIELDCAT-NO_ZERO is initial). When this field is summed, this unit affects whether the units are homogeneous.
    • an initialized field with a link to an initial unit is output as SPACE. When this field is summed, the unit SPACE does not affect the homogeneity of the units.
    • When non-initial fields with an initial unit are summed, the unit SPACE is considered to be a unit.
    Link to currency unit
    • cfieldname (currency unit field name)
    value set: SPACE, output table field name
    Only relevant for amount columns with associated unit.
    Name of the internal output table field containing the currency unit associated with the amount field FIELDCAT-FIELDNAME. The field in FIELDCAT-CFIELDNAME must have its own field catalog entry.
    • ctabname (internal currency unit field output table)
    value set: SPACE, output table field name
    only relevant for hierarchical-sequential lists
    Name of the internal output table containing the FIELDCAT-CFIELDNAME field.
    Link to measurement unit
    • qfieldname (measurement unit field name)
    value set: SPACE, output table field name
    only relevant for quantity columns with unit link.
    Name of the internal output table field containing the measurement unit associated with the quantity field FIELDCAT-FIELDNAME.
    The field in FIELDCAT-QFIELDNAME must have its own field catalog entry.
    • qtabname (internal measurement unit field output table)
    value set: SPACE, output table field name
    only relevant for hierarchical-sequential lists
    Name of the internal output table containing the FIELDCAT-QFIELDNAME field.
    Column output options
    • outputlen (column width)
    value set: 0 (initial), n
    For fields with a Data Dictionary link this parameter can be left initial.
    For fields without a Data Dictionary link (program field) the parameter must be given the value of the desired field list output length (column width).
    initial = column width is the output length of the referred Data Dictionary field (domain).
    n = column width is n characters
    • key (key column)
    value set: SPACE, 'X' 'X' = kex field (key field output in color)
    Key fields can not be interactively hidden. Parameter FIELDCAT-NO_OUT must be left initial.
    For exceptions see the documentation of the FIELDCAT-KEY_SEL parameter.
    • key_sel (hideable key column)
    value set: SPACE, 'X'
    only relevant when FIELDCAT-KEY = 'X'
    Key field which can be hidden interactively.
    The key column sequence cannot be changed interactively by the user.
    The output is controlled by the FIELDCAT-NO_OUT parameter analogously to non-key fields.
    • no_out (field in field list)
    value set: SPACE, 'X' 'X' = field is not displayed in the current list.
    The user can interactively choose the field for output from the field list.
    The user can display the contents of these fields at line level using the 'Detail' function.
    See also the 'Detail screen' documentation of the parameter IS_LAYOUT.
    • tech (technical field)
    value set: SPACE, 'X' 'X' = technical field
    Field cannot be output in the list and cannot be displayed interactively.
    Field can only be used in the field catalog (not in IT_SORT, ...).
    • emphasize (highlight columns in color)
    value set: SPACE, 'X' or 'Cxyz' (x:'1'-'9'; y,z: '0'=off '1'=on)
    'X' = column is colored with the default column highlight color.
    'Cxyz' = column is colored with a coded color:
    • C: Color (coding must begin with C)
    • x: color number
    • y: bold
    • z: inverse
    • hotspot (column as hotspot)
    value set: SPACE, 'X'
    'X' = column cells are output as hotspots
    • fix_column (fix column)
    value set: SPACE, 'X'
    Not relevant for block lists (output of several lists consecutively)
    'X' = column fixed (does not scroll horizontally)
    All columns to be fixed must have this flag, starting from the left. If a column without this flag is output, only the columns to the left of this column are fixed. The user can change the column fixing interactively. See also the documentation of the Layout parameter
    IS_LAYOUT-NO_KEYFIX of the IMPORTING paramter IS_LAYOUT.
    • do_sum (sum over column)
    value set: SPACE, 'X' 'X' = a sum is to be calculated over this internal output table field.
    This function can also be called by the user interactively.
    • no_sum (sums forbidden)
    value set: SPACE, 'X' 'X' = no sum can be calculated over this field, although the data type of the field would allow summing.
    • input (column ready for input)
    Function not available
    Format column contents
    • icon
    value set: SPACE, 'X' 'X' = column contents to be output as an icon.
    The caller must consider the printability of icons.
    • symbol
    value set: SPACE, 'X' 'X' = column contents are to be output as a symbol.
    The internal output table column must be a valid symbol character.
    The caller must consider the printability of symbols.
    Symbols can usually be printed, but may not always be output correctly, depending on the printer configuration.
    • just (justification)
    value set: SPACE, 'R', 'L', 'C'
    Only relevant for fields of data type CHAR or NUMC
    ' ' = default justification for this data type
    'R' = right-justified output
    'L' = left-justified output
    'C' = centered output
    The justification of the column header always follows the justification of the columns. Independent justification of the column neader is not possible.
    • lzero (leading zeros)
    value set: SPACE, 'X'
    Only relevant for fields of data type NUMC
    ALV outputs NUMC fields right-justified without leading zeros by default.
    'X' = output with leading zeros
    Note: If a NUMC field is output left-justified or centered by FIELDCAT-JUST, leading zeros are output. If the output of leading zeros is suppressed by a Data Dictionary reference ALPHA conversion exit, the output is always left-justified.
    • no_sign (no +/- sign) Only relevant for value fields
    value set: SPACE, 'X' 'X' = value output without +/ sign
    • no_zero (suppress zeros) Only relevant for value fields
    value set: SPACE, 'X' 'X' = suppress zeros
    • edit_mask (field formatting)
    value set: SPACE, template
    template = see documentation of WRITE formatting option USING EDIT MASK template
    The output conversion conv can be made by template = '== conv'.
    Texts
    The following text parameters should be specified for program fields without a Data Dictionary reference. The texts are taken from the Data Dictionary for fields with a Data Dictionary reference. If this is not desired, the text parameters can also be specified. The Data Dictionary texts are then ignored. If the user changes the column width interactively, the column header text with the appropriate length is always used. The interactive function 'Optimize column width' takes account of both the field contents and the column headers: if all field contents are shorter than the shortest column header, the column width depends on the column header.
    The 'long field label' is also used in display variant definition, sort, etc. popups.
    • seltext_l (long field label)
    • seltext_m (medium field label)
    • seltext_s (short field label)
    • reptext_ddic (header)
    analogous to the Data element maintenance 'Header'
    The specified text is not necessarily output in the list, an optimum among all texts is sought.
    • ddictxt (specify text)
    value set: SPACE, 'L', 'M', 'S'
    You can specify with values 'L', 'M', and 'S', the keyword that should always be used as column header. If the column width changes, no attempt is made in this case to find an appropriate header for the new output width.
    Parameters for program fields without Data Dictionary reference
    see also 'Text' parameters
    • datatype (data type)
    value set: SPACE, Data Dictionary data type (CHAR, NUMC,...)
    Only relevant for fields without Data Dictionary reference
    Program field data type
    • ddic_outputlen (external output length)
    value set: 0 (initial), n
    Only relevant for fields without Data Dictionary reference whose output is nevertheless to be modified by a conversion exit.
    Prerequisites:
    • FIELDCAT-EDIT_MASK = '==conv'
    see also the documentation of the parameter FIELDCAT-EDIT_MASK
    • FIELDCAT-INTLEN = n
    see also the documentation of the parameter FIELDCAT-INTLEN
    n = external format field output length
    The column width FIELDCAT-OUTPUTLEN need not be the same as the external format output length (FIELDCAT-DDIC_OUTPUTLEN).
    • intlen (internal output length)
    value set: 0 (initial), n
    Only relevant for fields without Data Dictionary reference whose output is nevertheless to be modified by a conversion exit.
    Prerequisites:
    • FIELDCAT-EDIT_MASK = '==conv'
    see also the documentation of the parameter FIELDCAT-EDIT_MASK
    • FIELDCAT-DDIC_OUTPUTLEN = n
    see also the documentation of the parameter FIELDCAT-DDIC_OUTPUTLEN
    n = internal format field output length
    • rollname (data element)
    value set: SPACE, Data Dictionary data element name
    F1 help can be provided for a program field without a Data Dictionary reference, or F1 help which differs from the Data Dictionary help can be provided for a field with a Data Dictionary reference, using this parameter.
    When F1 help is called for this field, the documentation of the specified data element is displayed.
    If the FIELDCAT-ROLLNAME is initial for fields with a Data Dictionary reference, the documentation of the data element of the referred Data Dictionary field is output.
    Others
    • sp_group (field group key)
    value set: SPACE, CHAR(1)
    Field group key.
    Keys are assigned to group names in the IT_SPECIAL_GROUPS parameter (see also the documentation of the parameter IT_SPECIAL_GROUPS).
    When such an assignment is made in the field catalog and in IT_SPECIAL_GROUPS, the fields are grouped correspondingly in the display variant popup.
    • reprep (Report/Report interface selection criterion)
    value set: SPACE, 'X'
    Prerequisites:
    • The system contains the Report/Report interface (function group RSTI, table TRSTI)
    • Parameter LAYOUT-REPREP = 'X'
    (see also the documentation of the parameter LAYOUT-REPREP of the IMPORTING parameter IS_LAYOUT )
    'X' = When the Report/Report interface is called, the value of this field is passed in the selected interface start record as a selection criterion.
    2.7.2. Default
    • The following entries are usually sufficient for internal table fields with a reference to a field defined in the Data Dictionary :
    • fieldname
    • ref_tabname
    Notes:
    ALV gets the remaining information from the Data Dictionary.
    If no relative column position (COL_POS) is specified, the fields are output in the list in the order in which they were added to the field catalog.
    REF_FIELDNAME need only be specifid when the name of the internal table field differs from the name of the referred Data Dictionary field.
    Information which is explicitly entered in the field catalog is not overwritten by information from the Data Dictionary.
    Priority rule:
    Entries in the field catalog have priority over differing entries in the Data Dictionary.
    • The following entries are usually sufficient for internal table fields without a reference to the Data Dictionary (program fields):
    • fieldname
    • outputlen
    • datatype
    • seltext_s
    • seltext_m
    • seltext_l
    Notes:
    F1 help can be provided for program fields by assigning a data element to the parameter ROLLNAME.
    If the parameters SELTEXT_S, SELTEXT_M, SELTEXT_L, and REPTEXT_DDIC contain appropriate field labels, the program field column headers are also adjusted appropriately when the column width changes
    Simple ALV report
    http://www.sapgenie.com/abap/controls/alvgrid.htm
    http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
    ALV
    1. Please give me general info on ALV.
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    2. How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    3. How do I add subtotals (I have problem to add them)...
    http://www.sapfans.com/forums/viewtopic.php?t=20386
    http://www.sapfans.com/forums/viewtopic.php?t=85191
    http://www.sapfans.com/forums/viewtopic.php?t=88401
    http://www.sapfans.com/forums/viewtopic.php?t=17335
    4. How to add list heading like top-of-page in ABAP lists?
    http://www.sapfans.com/forums/viewtopic.php?t=58775
    http://www.sapfans.com/forums/viewtopic.php?t=60550
    http://www.sapfans.com/forums/viewtopic.php?t=16629
    5. How to print page number / total number of pages X/XX in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
    6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
    http://www.sapfans.com/forums/viewtopic.php?t=64320
    http://www.sapfans.com/forums/viewtopic.php?t=44477
    7. How can I set the cell color in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    8. How do I print a logo/graphics in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=81149
    http://www.sapfans.com/forums/viewtopic.php?t=35498
    http://www.sapfans.com/forums/viewtopic.php?t=5013
    9. How do I create and use input-enabled fields in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=84933
    http://www.sapfans.com/forums/viewtopic.php?t=69878
    10. How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    11. How can I display an icon in ALV? (Common requirement is traffic light icon).
    http://www.sapfans.com/forums/viewtopic.php?t=79424
    http://www.sapfans.com/forums/viewtopic.php?t=24512
    12. How can I display a checkbox in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=88376
    http://www.sapfans.com/forums/viewtopic.php?t=40968
    http://www.sapfans.com/forums/viewtopic.php?t=6919
    13. Top-of-page in ALV
    14. ALV Group Heading
    http://www.sap-img.com/fu037.htm
    How to add list heading like top-of-page in ABAP lists?
    http://www.sapfans.com/forums/viewtopic.php?t=58775
    http://www.sapfans.com/forums/viewtopic.php?t=60550
    http://www.sapfans.com/forums/viewtopic.php?t=16629
    Go thru these programs they may help u to try on some hands on
    ALV Demo program
    BCALV_DEMO_HTML
    BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode
    BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode
    BCALV_GRID_DEMO Simple ALV Control Call Demo Program
    BCALV_TREE_DEMO Demo for ALV tree control
    BCALV_TREE_SIMPLE_DEMO
    BC_ALV_DEMO_HTML_D0100
    For beginners
    if u have got access to R/3 system.. check transaction ABAPDOCU..
    Go for Siemens material. Check the following link:
    http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/ABAP_tutorial.html
    http://sapabap.iespana.es/sapabap/manuales/learnabap/
    Use function module ABAP_DOCU_DOWNLOAD..
    This will download 1100 documents to your local drive .
    Please check also the foll links to start learning ABAP.
    http://help.sap.com/
    http://www.sapgenie.com/abap/
    http://www.sappoint.com/abap.html
    http://cma.zdnet.com/book/abap/index.htm
    http://www.sap-img.com
    http://www.sappoint.com
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://sap.ittoolbox.com
    U can also get help from below links
    Please chk the below links
    This is link from SAP about ABAP certification
    http://www50.sap.com/useducation/certification/curriculum.asp?rid=351
    http://www.sapteched.com/india/confactivities/certexam.htm
    http://www50.sap.com/useducation/certification/curriculum.asp?rid=351
    There is a pdf called ABAP certification.
    http://www.esnips.com/web/SAP-ABAP?
    You can try www.sapdoamin.com
    They provide Certification simulation questions which are very useful and a must try site.
    Have a look at below link for mySAP Technology - ABAP Workbench
    https://websmp206.sap-ag.de/~sapidp/011000358700000746472003E
    Have a look at below link for SAP NetWeaver - ABAP Workbench
    http://www30.sap.com/hk/services/education/pdf/cert/ABAPWB.pdf
    http://www.sap-img.com/ab040.htm
    http://www.sapdomain.com/
    this is link from SAP about ABAP certification
    http://www50.sap.com/useducation/certification/curriculum.asp?rid=351
    ABAP Materials
    http://sapabap.iespana.es/sapabap/manuales/learnabap/
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://sap.niraj.tripod.com/
    http://www.geocities.com/victorav15/sapr3/abapfun.html
    http://www.sapgenie.com/abap/index.htm
    http://www.sap-img.com/abap.htm
    http://www.sapdevelopment.co.uk/tips/tipshome.htm
    http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
    http://sap.ittoolbox.com/nav/t.asp?t=322&p=322&h1=322
    http://sap.ittoolbox.com/nav/t.asp?t=448&p=448&h1=448
    http://www.thespot4sap.com/
    http://www.kabai.com/abaps/q.htm
    http://www.geocities.com/mpioud/Abap_programs.html
    http://www.sapgenie.com/abap/tips_and_tricks.htm
    www.sapbrain.com
    http://www.sapassist.com/code/d.asp?whichpage=1&pagesize=10&i=10&a=c&o=&t=&q=&qt=
    In this link You can find Step by Step Scren Shot document :
    http://www.201interviewquestions.com/docs/User%20exits.ppt
    http://erpgenie.com/abaptips/component/option,com_docman/task,doc_details/gid,27/
    Reprots
    http://www.sapgenie.com/abap/reports.htm
    http://www.allsaplinks.com/material.html
    http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
    Dictionary
    http://sapabap.iespana.es/sapabap/manuales/learnabap/
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eb6e446011d189700000e8322d00/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/cf/21ea31446011d189700000e8322d00/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCDWBDIC/BCDWBDIC.pdf
    ABAP objects
    Please check this online document (starting page 1291).
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf
    Also check this links as well.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.futureobjects.de/content/intro_oo_e.html
    http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
    /people/ravikumar.allampallam/blog/2005/02/11/abap-oo-in-action
    SAPScripts
    http://esnips.com/doc/1ff9f8e8-0a4c-42a7-8819-6e3ff9e7ab44/sapscripts.pdf
    http://esnips.com/doc/1e487f0c-8009-4ae1-9f9c-c07bd953dbfa/script-command.pdf
    http://esnips.com/doc/64d4eccb-e09b-48e1-9be9-e2818d73f074/faqss.pdf
    http://esnips.com/doc/cb7e39b4-3161-437f-bfc6-21e6a50e1b39/sscript.pdf
    http://esnips.com/doc/fced4d36-ba52-4df9-ab35-b3d194830bbf/symbols-in-scripts.pdf
    http://esnips.com/doc/b57e8989-ccf0-40d0-8992-8183be831030/sapscript-how-to-calculate-totals-and-subtotals.htm
    SAP SCRIPT FIELDS
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/d1/8033ea454211d189710000e8322d00/content.htm
    scripts easy material
    http://www.allsaplinks.com/sap_script_made_easy.html
    Check these step-by-step links
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/ccab6730-0501-0010-ee84-de050a6cc287
    https://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/8fd773b3-0301-0010-eabe-82149bcc292e
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/3c5d9ae3-0501-0010-0090-bdfb2d458985
    for Smartforms material
    http://www.sap-basis-abap.com/sapsf001.htm
    http://www.sap-press.com/downloads/h955_preview.pdf
    http://www.ossincorp.com/Black_Box/Black_Box_2.htm
    http://www.sap-img.com/smartforms/sap-smart-forms.htm
    http://www.sap-img.com/smartforms/smartform-tutorial.htm
    http://www.sapgenie.com/abap/smartforms.htm
    How to trace smartform
    http://help.sap.com/saphelp_47x200/helpdata/en/49/c3d8a4a05b11d5b6ef006094192fe3/frameset.htm
    http://www.help.sap.com/bp_presmartformsv1500/DOCU/OVIEW_EN.PDF
    http://www.sap-img.com/smartforms/smart-006.htm
    http://www.sap-img.com/smartforms/smartforms-faq-part-two.htm
    check most imp link
    http://www.sapbrain.com/ARTICLES/TECHNICAL/SMARTFORMS/smartforms.html
    step by step good ex link is....
    http://smoschid.tripod.com/How_to_do_things_in_SAP/How_To_Build_SMARTFORMS/How_To_Build_SMARTFORMS.html
    BAPI
    http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    Checkout !!
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    http://techrepublic.com.com/5100-6329-1051160.html#
    http://www.sap-img.com/bapi.htm
    http://www.sap-img.com/abap/bapi-conventions.htm
    http://www.sappoint.com/abap/bapiintro.pdf
    http://www.sapgenie.com/abap/bapi/example.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
    List of all BAPIs
    http://www.planetsap.com/LIST_ALL_BAPIs.htm
    http://www.sappoint.com/abap/bapiintro.pdf
    http://www.sappoint.com/abap/bapiprg.pdf
    http://www.sappoint.com/abap/bapiactx.pdf
    http://www.sappoint.com/abap/bapilst.pdf
    http://www.sappoint.com/abap/bapiexer.pdf
    http://service.sap.com/ale
    http://service.sap.com/bapi
    http://www.planetsap.com/Bapi_main_page.htm
    http://www.topxml.com/sap/sap_idoc_xml.asp
    http://www.sapdevelopment.co.uk/
    http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
    ALV programs.
    http://www.geocities.com/mpioud/Abap_programs.html
    . How do I program double click in ALV?
    http://www.sapfans.com/forums/viewtopic.php?t=11601
    http://www.sapfans.com/forums/viewtopic.php?t=23010
    How can I use ALV for reports that are going to be run in background?
    http://www.sapfans.com/forums/viewtopic.php?t=83243
    http://www.sapfans.com/forums/viewtopic.php?t=19224
    ALV
    http://www.sapfans.com/forums/viewtopic.php?t=58286
    http://www.sapfans.com/forums/viewtopic.php?t=76490
    http://www.sapfans.com/forums/viewtopic.php?t=20591
    http://www.sapfans.com/forums/viewtopic.php?t=66305 - http://www.sapgenie.com/abap/reports.htm
    http://www.allsaplinks.com/material.html
    http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
    Top-of-page in ALV
    ALV Group Heading
    http://www.sap-img.com/fu037.htm
    ALV
    http://www.geocities.com/mpioud/Abap_programs.html
    RFC Destination
    ALE/ IDOC
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.sappoint.com/abap/ale.pdf
    http://www.sappoint.com/abap/ale2.pdf
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sappoint.com/abap.html
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.allsaplinks.com/idoc_sample.html
    Table Control

  • How to get data from table to pass into alvgrid function module

    i want to get some data from below table to pass into function module of alvgrid
    how can i get data please help.
    thanks in advanced.
    form get_data.
    select * into corresponding fields of table itab
             from  J_1IEXCHDR
                     inner join  J_1IEXCDTL
                        on  J_1IEXCDTLlifnr =  J_1IEXCHDRlifnr
                     where  J_1IEXCHDr~status = 'P'.
       append itab.
    endform.

    Pass your final table(internal table which you want to display) along with fieldcatalog to FM reuse_alv_grid_display.:\
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = i_repid
       IT_SORT               = gt_sort
          it_fieldcat        = lt_fieldcat[]
        TABLES
          t_outtab           = lt_final
        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.

  • How to convert report into alvgrid please hepl

    how to convert report into alvgrid please hepl

    BALVSD01 check this program u will know r see below code
    sample prog
    REPORT  ZMAT11                                  .
    TYPE-POOLS : slis.
    TABLES : mkpf,
             mseg,
             t001w,
             t001l.
    TYPES : BEGIN OF ty_t001w,
              werks TYPE t001w-werks,
              name1 TYPE t001w-name1,
            END OF ty_t001w,
            BEGIN OF ty_makt,
              matnr TYPE makt-matnr,
              maktx TYPE makt-maktx,
            END OF ty_makt,
            BEGIN OF ty_t001l,
              lgort TYPE t001l-lgort,
              lgobe TYPE t001l-lgobe,
            END OF ty_t001l.
    DATA :  BEGIN OF it_mat OCCURS 0,
            mblnr LIKE mseg-mblnr,
            zeile LIKE mseg-zeile,
            mjahr LIKE mseg-mjahr,
            bldat LIKE mkpf-bldat,
            budat LIKE mkpf-budat,
            bwart LIKE mseg-bwart,
            matnr LIKE mseg-matnr,
            maktx LIKE makt-maktx,
            erfmg LIKE mseg-erfmg,
            erfme LIKE mseg-erfme,
            werks LIKE mseg-werks,
            name1 LIKE t001w-name1,
            lgort LIKE mseg-lgort,
            lgobe LIKE t001l-lgobe,
            umwrk LIKE mseg-umwrk,
            name2 LIKE t001w-name1,
            umlgo LIKE mseg-umlgo,
            lgobe1 LIKE t001l-lgobe,
            END OF it_mat.
    DATA : it_t001w TYPE TABLE OF ty_t001w
                     WITH HEADER LINE,
           it_makt TYPE TABLE OF ty_makt
                   WITH HEADER LINE,
           it_t001l TYPE TABLE OF ty_t001l
                    WITH HEADER LINE.
    DATA : ls_layout TYPE slis_layout_alv,
           it_fcat TYPE slis_t_fieldcat_alv ,
           wa_fcat TYPE slis_fieldcat_alv,
           lh TYPE slis_t_listheader,
           ls TYPE slis_listheader,
           it_events TYPE slis_t_event  ,
           ls_event TYPE slis_alv_event ,
           w_var TYPE i.
    DATA : l_date(10).
    DATA : l_date1(20),
           ztabix LIKE sy-tabix.
    DATA : l_repid LIKE trdir-name.
    l_repid = 'ZMAT11'.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_werks FOR mseg-werks,
                     s_lgort FOR mseg-lgort,
                     s_umwrk FOR mseg-umwrk,
                     s_umlgo FOR mseg-umlgo,
                     s_bwart FOR mseg-bwart,
                     s_budat FOR mkpf-budat,
                     s_mjahr FOR mkpf-mjahr.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN.
      SELECT SINGLE * FROM t001w INTO t001w
                              WHERE werks IN s_werks.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Supplying Plant'.
      ENDIF.
      SELECT SINGLE * FROM t001w INTO t001w
                              WHERE werks IN s_umwrk.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Receiving Plant'.
      ENDIF.
      SELECT SINGLE * FROM t001l INTO t001l
                              WHERE lgort IN s_lgort.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Supplying St.Loc'.
      ENDIF.
      SELECT SINGLE * FROM t001l INTO t001l
                              WHERE lgort IN s_umlgo.
      IF sy-subrc <> 0.
        MESSAGE e000(8i) WITH 'Enter a Valid Receiving St.Loc'.
      ENDIF.
    START-OF-SELECTION.
      ls-typ = 'H'.
      ls-info = 'Material Document List'.
      APPEND ls TO lh.
      ls-typ = 'S'.
      WRITE: sy-datum TO l_date USING EDIT MASK '__/__/____'.
      CONCATENATE 'DATE :' l_date INTO l_date1 SEPARATED BY space.
      ls-info = l_date1.
      APPEND ls TO lh.
      PERFORM field_cat.
      PERFORM f001_get_data.
    END-OF-SELECTION.
      IF it_mat[] IS INITIAL.
        MESSAGE i000(8i) WITH 'No data Found'(m01).
        EXIT.
      ENDIF.
      PERFORM process_data.
      PERFORM display_data.
    *&      Form  f001_get_data
          text
    -->  p1        text
    <--  p2        text
    FORM f001_get_data .
      SELECT amblnr azeile amjahr abwart a~matnr
               aerfmg aerfme awerks algort aumwrk aumlgo
               b~budat
               b~bldat INTO CORRESPONDING FIELDS OF TABLE it_mat
                       FROM mseg AS a
                 INNER JOIN mkpf AS b
                    ON amblnr = bmblnr
                   AND amjahr = bmjahr
                 CLIENT SPECIFIED
              WHERE a~mandt EQ sy-mandt
                AND a~werks IN s_werks
                AND a~lgort IN s_lgort
                AND a~umwrk IN s_umwrk
                AND a~umlgo IN s_umlgo
                AND a~bwart IN s_bwart
                AND b~budat IN s_budat
                AND b~mjahr IN s_mjahr.
      IF sy-subrc = 0.
        SELECT matnr maktx INTO TABLE it_makt FROM makt
        CLIENT SPECIFIED
        FOR ALL ENTRIES IN it_mat
        WHERE mandt EQ sy-mandt
          AND matnr = it_mat-matnr.
      ENDIF.
      SELECT werks name1 INTO TABLE it_t001w FROM t001w
      CLIENT SPECIFIED
      WHERE mandt EQ sy-mandt.
      IF sy-subrc <> 0.
        MESSAGE i000(8i) WITH 'No Plant Found'(m02).
      ENDIF.
      SELECT lgort lgobe INTO TABLE it_t001l FROM t001l
      CLIENT SPECIFIED
      WHERE mandt EQ sy-mandt.
      IF sy-subrc <> 0.
        MESSAGE i000(8i) WITH 'No Storage Location Found'(m03).
      ENDIF.
    ENDFORM.                    " f001_get_data
    *&      Form  field_cat
          text
    -->  p1        text
    <--  p2        text
    FORM field_cat .
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'MBLNR'.
      wa_fcat-key = 'X'.
      wa_fcat-hotspot = 'X'.
      wa_fcat-ref_fieldname = 'MBLNR'.
      wa_fcat-ref_tabname = 'MSEG'.
      wa_fcat-seltext_m = 'Material Doc'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'ZEILE'.
      wa_fcat-ref_fieldname = 'ZEILE'.
      wa_fcat-ref_tabname = 'MSEG'.
      wa_fcat-seltext_m = 'Item No'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'MJAHR'.
      wa_fcat-ref_fieldname = 'MJAHR'.
      wa_fcat-ref_tabname = 'MSEG'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'BWART'.
      wa_fcat-ref_fieldname = 'BWART'.
      wa_fcat-ref_tabname = 'MSEG'.
      wa_fcat-seltext_m = 'Mvmt Type'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'BLDAT'.
      wa_fcat-ref_fieldname = 'BLDAT'.
      wa_fcat-ref_tabname = 'MKPF'.
      wa_fcat-seltext_m = 'Document Date'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'BUDAT'.
      wa_fcat-ref_fieldname = 'BUDAT'.
      wa_fcat-ref_tabname = 'MKPF'.
      wa_fcat-seltext_m = 'Posting Date'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-ref_fieldname = 'MATNR'.
      wa_fcat-ref_tabname = 'MSEG'.
      wa_fcat-seltext_m = 'Material No'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'MAKTX'.
      wa_fcat-ref_fieldname = 'MAKTX'.
      wa_fcat-ref_tabname = 'MAKT'.
      wa_fcat-seltext_m = 'Material Description'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'ERFMG'.
      wa_fcat-ref_fieldname = 'ERFMG'.
      wa_fcat-ref_tabname = 'MSEG'.
      wa_fcat-seltext_m = 'Quantity'.
      wa_fcat-do_sum = 'X'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'ERFME'.
      wa_fcat-ref_fieldname = 'ERFME'.
      wa_fcat-ref_tabname = 'MSEG'.
      wa_fcat-seltext_m = 'Uom'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'WERKS'.
      wa_fcat-seltext_m = 'Supplying Plant'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'NAME1'.
      wa_fcat-seltext_m = 'S.Plnt Desc.'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'LGORT'.
      wa_fcat-seltext_m = 'Supplying St.Loc'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'LGOBE'.
      wa_fcat-seltext_m = 'Su.St.Loc Desc.'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'UMWRK'.
      wa_fcat-seltext_m = 'Receiving Plant'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'NAME2'.
      wa_fcat-seltext_m = 'R.Plnt Desc.'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'UMLGO'.
      wa_fcat-seltext_m = 'Receiving St.Loc'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
      wa_fcat-col_pos = w_var.
      wa_fcat-tabname = 'IT_MAT'.
      wa_fcat-fieldname = 'LGOBE1'.
      wa_fcat-seltext_m = 'Re.St.Loc Desc.'.
      APPEND wa_fcat TO it_fcat.
      CLEAR wa_fcat.
      ADD 1 TO w_var.
    ENDFORM.                    " field_cat
    *&      Form  process_data
          text
    -->  p1        text
    <--  p2        text
    FORM process_data .
      LOOP AT it_mat.
        ztabix = sy-tabix.
        READ TABLE it_makt WITH KEY matnr = it_mat-matnr.
        IF sy-subrc = 0.
          it_mat-maktx = it_makt-maktx.
        ENDIF.
        IF it_mat-bwart+2(1) = '2'.
          it_mat-erfmg = - ( it_mat-erfmg ).
        ENDIF.
        READ TABLE it_t001w WITH KEY werks = it_mat-werks.
        IF sy-subrc = 0.
          it_mat-name1 = it_t001w-name1.
        ENDIF.
        READ TABLE it_t001w WITH KEY werks = it_mat-umwrk.
        IF sy-subrc = 0.
          it_mat-name2 = it_t001w-name1.
        ENDIF.
        READ TABLE it_t001l WITH KEY lgort = it_mat-lgort.
        IF sy-subrc = 0.
          it_mat-lgobe = it_t001l-lgobe.
        ENDIF.
        READ TABLE it_t001l WITH KEY lgort = it_mat-umlgo.
        IF sy-subrc = 0.
          it_mat-lgobe1 = it_t001l-lgobe.
        ENDIF.
        MODIFY it_mat INDEX ztabix .
      ENDLOOP.
    ENDFORM.                    " process_data
    *&      Form  display_data
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
              I_INTERFACE_CHECK                 = ' '
              I_BYPASSING_BUFFER                = ' '
              I_BUFFER_ACTIVE                   = ' '
               i_callback_program                = l_repid
              I_CALLBACK_PF_STATUS_SET          = ' '
               i_callback_user_command           = 'LINE'
               i_callback_top_of_page            = 'TOP'
              I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
              I_CALLBACK_HTML_END_OF_LIST       = ' '
              I_STRUCTURE_NAME                  =
              I_BACKGROUND_ID                   = ' '
              I_GRID_TITLE                      =
              I_GRID_SETTINGS                   =
              IS_LAYOUT                         =
               it_fieldcat                       = it_fcat
              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
              IT_ALV_GRAPHICS                   =
              IT_HYPERLINK                      =
              IT_ADD_FIELDCAT                   =
              IT_EXCEPT_QINFO                   =
              I_HTML_HEIGHT_TOP                 =
              I_HTML_HEIGHT_END                 =
            IMPORTING
              E_EXIT_CAUSED_BY_CALLER           =
              ES_EXIT_CAUSED_BY_USER            =
              TABLES
                t_outtab                          = it_mat
            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
    *&      Form  TOP
          text
    FORM top.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = lh
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    ENDFORM.                    "TOP

  • ALVGRID TO LOTUS NOTES

    HI,
    IF I CLICK THE EMAIL-ID IN ALV GRID , I WANT TO OPEN THE LOTUS NOTES.
    PLZ HELP ME.

    Hi ,
    Please refer the below thread,
    ALVGRID TO LOTUS NOTES
    hope it helps.
    Reward points if it is useful,
    Regards,
    Keerthi

Maybe you are looking for

  • Having problem installing CS6 on Windows 7

    I have just purchased a new windows 7 professional machine and want to load  my stand alone Photoshop CS6 - when loading it is asking me to choose a product from a drop down menu however CS6 is not a choice, how do I load my CS6 on my new machine?

  • How to update data according to row_number in sql

    hi, after deleting an item I need to update data according to row_number. in oracle database I have a code like this... working perfectly.. update regitem set line_sn= LPAD(ROWNUM,2,'0') where doc_no='" & mydocno & "' how it will work in sql server..

  • Setting cell color in ALV

    Hi All I would be greatful if someone could please help... I am still attempting to get cells painted within a WDA ALV grid display. I have tried to use the method stated in the WDA sap press book - but this method is for use with TABLE element and I

  • Help req in Seeburger SFTP adapter

    Hi All,             I have a scenario where i need to send a file to SFTP server. I used Seeburger SFTP adapter to connect to SFTP.           This is a pass through interface and i havent used any party at the confiuration( normal configuration witho

  • How to pass dat to BAPI_ACC_DOCUMENT_POST

    hi, i'm working with BAPI_ACC_DOCUMENT_POST.in my program i need to adjust the account document ...so i pass the document number in the  document header of import parameters...and i need to pass the credit and debit data in the accountgl table..here