SALV ALV zeigt alles an - CL_GUI_ALV_GRID aber nicht

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

SALV ALV zeigt alles an - CL_GUI_ALV_GRID aber nicht

Beitrag von peripe (ForumUser / 16 / 9 / 0 ) »
Hallo zusammen,

ich "spiele" beruflich ein wenig mit ALVs herrum. Jetzt habe ich einen ALV mit SALV gebaut und der hat einwandfrei funktioniert. Angespront durch den Erfolg, habe ich mir das Buch zum BC405 genommen und ein wenig mit Träger-Dynpro und dem CL_GUI_ALV_GRID herrumprobiert. Leider habe ich dieses nicht so ans Laufen bekommen wie den ersten ALV. Die Quellen sind bei beiden die selben Tabellen und auch der Join ist der gleiche. Leider werden in dem ALV mit Träger-Dynpro die Daten nicht vollständig bzw. falsch angezeit.

Kann mir jemand verraten waran es liegt..?

Hier der Code für den ALV der funktioniert:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  Z_PM_TT_MUSTER_4
*&---------------------------------------------------------------------*

REPORT  Z_PM_TT_MUSTER_4.

TYPES: BEGIN OF ERFAMA_JOIN,
        MANDT TYPE AUFK-MANDT,
        AUFNR TYPE AUFK-AUFNR,
        VAPLZ TYPE AUFK-VAPLZ,
        STORT TYPE AUFK-STORT,
        VORNR TYPE AFRU-VORNR,
        KTEXT TYPE AUFK-KTEXT,
        ISMNW TYPE AFRU-ISMNW,
        ISMNE TYPE AFRU-ISMNE,
        LTXA1 TYPE AFRU-LTXA1,
        GSTRP TYPE AFKO-GSTRP,
        GSUZP TYPE AFKO-GSUZP,
        GLTRP TYPE AFKO-GLTRP,
        GLUZP TYPE AFKO-GLUZP,
        BUDAT TYPE AFRU-BUDAT,
END OF ERFAMA_JOIN.

DATA:  IT_ERFAMA TYPE TABLE OF ERFAMA_JOIN,
         WA_ERFAMA TYPE          ERFAMA_JOIN.

DATA: OK_CODE LIKE SY-UCOMM.

DATA: GO_ALV_GRID TYPE REF TO CL_SALV_TABLE.

SELECT-OPTIONS:  S_AUFNR FOR WA_ERFAMA-AUFNR.

*****************************************************
START-OF-SELECTION.

  SELECT K~MANDT
         K~AUFNR
         K~VAPLZ
           STORT
           VORNR
           KTEXT
           ISMNW
           ISMNE
           LTXA1
           GSTRP
           GSUZP
           GLTRP
           GLUZP
           BUDAT

      INTO CORRESPONDING FIELDS OF TABLE IT_ERFAMA
      FROM AUFK AS K LEFT OUTER JOIN AFRU AS U
      ON K~AUFNR = U~AUFNR
      INNER JOIN AFKO AS O
      ON K~AUFNR = O~AUFNR

        WHERE: K~AUFNR IN S_AUFNR.

  SORT IT_ERFAMA BY AUFNR DESCENDING.  "absteigend Sortieren

*  create ALV
  CL_SALV_TABLE=>FACTORY(
   IMPORTING
  R_SALV_TABLE  =  GO_ALV_GRID
  CHANGING
  T_TABLE	=  IT_ERFAMA ).

*  display data
  GO_ALV_GRID->DISPLAY( ).
Hier der Code zu meinem Problemkind:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  Z_PM_TT_MUSTER_5
*&---------------------------------------------------------------------*

REPORT  Z_PM_TT_MUSTER_5.

TYPES: BEGIN OF ERFAMA_JOIN,
        MANDT TYPE AUFK-MANDT,
        AUFNR TYPE AUFK-AUFNR,
        VAPLZ TYPE AUFK-VAPLZ,
        STORT TYPE AUFK-STORT,
        VORNR TYPE AFRU-VORNR,
        KTEXT TYPE AUFK-KTEXT,
        ISMNW TYPE AFRU-ISMNW,
        ISMNE TYPE AFRU-ISMNE,
        LTXA1 TYPE AFRU-LTXA1,
        GSTRP TYPE AFKO-GSTRP,
        GSUZP TYPE AFKO-GSUZP,
        GLTRP TYPE AFKO-GLTRP,
        GLUZP TYPE AFKO-GLUZP,
        BUDAT TYPE AFRU-BUDAT,
END OF ERFAMA_JOIN.

DATA:  IT_ERFAMA TYPE TABLE OF ERFAMA_JOIN,
         WA_ERFAMA TYPE          ERFAMA_JOIN.

DATA:  OK_CODE LIKE SY-UCOMM.

DATA:  GO_ALV_GRID  TYPE REF TO CL_GUI_ALV_GRID,
           GO_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

SELECT-OPTIONS:  S_AUFNR FOR WA_ERFAMA-AUFNR.

*****************************************************
START-OF-SELECTION.

  SELECT K~MANDT
         K~AUFNR
         K~VAPLZ
           STORT
           VORNR
           KTEXT
           ISMNW
           ISMNE
           LTXA1
           GSTRP
           GSUZP
           GLTRP
           GLUZP
           BUDAT

      INTO CORRESPONDING FIELDS OF TABLE IT_ERFAMA
      FROM AUFK AS K LEFT OUTER JOIN AFRU AS U
      ON K~AUFNR = U~AUFNR
      INNER JOIN AFKO AS O
      ON K~AUFNR = O~AUFNR

        WHERE: K~AUFNR IN S_AUFNR.

  SORT IT_ERFAMA BY AUFNR DESCENDING.  "absteigend Sortieren

  CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'STATUS_100'.
  SET TITLEBAR 'DYNPRO 100'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  CLEAR_OK_CODE  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CLEAR_OK_CODE OUTPUT.
  CLEAR OK_CODE.
ENDMODULE.                 " CLEAR_OK_CODE  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  CREATE_AND_TRANSFER  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CREATE_AND_TRANSFER OUTPUT.
  IF GO_CONTAINER IS INITIAL.
    CREATE OBJECT GO_CONTAINER
      EXPORTING
        CONTAINER_NAME = 'TRAEGER_DYNPRO'
      EXCEPTIONS
        OTHERS         = 1.
    IF SY-SUBRC <> 0.
      MESSAGE A010(BC405_408).
    ENDIF.

    CREATE OBJECT GO_ALV_GRID
      EXPORTING
        I_PARENT = GO_CONTAINER
      EXCEPTIONS
        OTHERS   = 1.
    IF SY-SUBRC <> 0.
      MESSAGE A010(BC405_408).
    ENDIF.

    GO_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY( EXPORTING
    I_STRUCTURE_NAME = 'ZPM_ERFAMA'
     CHANGING
    IT_OUTTAB	= IT_ERFAMA
    EXCEPTIONS
    OTHERS  = 1 ).
    IF SY-SUBRC <> 0.
      MESSAGE A012(BC405_408).
    ENDIF.

  ENDIF.

ENDMODULE.                 " CREATE_AND_TRANSFER  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE  USER_COMMAND_0100  INPUT.
  CASE OK_CODE.
    WHEN   'BACK'  OR 'EXIT' OR 'CANCEL'.
      SET  SCREEN 0.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
Hier noch ein kleiner Screenshot zum funktionierenden ALV:

Bild

und zum nicht funktionierenden:

Bild

Nochmals vielen Dank

Liebe Grüße
Peter

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: SALV ALV zeigt alles an - CL_GUI_ALV_GRID aber nicht

Beitrag von JHM (Top Expert / 1189 / 1 / 195 ) »
peripe hat geschrieben:Kann mir jemand verraten waran es liegt..?
Beim SALV wird der Feldkatalog automatisch zur Laufzeit aus der internen Tabelle ermittelt (funktioniert aber auch nicht 100%, sind aber Sonderfälle).
Beim OO-ALV muss der Feldkatalog manuell aufgebaut werden, die automatische Ermittlung ist da nicht wirklich gut. Oder man legt die Ausgabestruktur im DDIC ab, dann funktioniert die Automatik wieder recht gut. Gibt aber auch noch andere Wege die den Feldkatalog zum. halb automatisch aufbauen.

Du kannst mal die Inline-Prüfung des ALVs für die beiden Programme ausführen: Dafür in der ALV Anzeige auf dem grauen Hintergrund SHIFT+Doppelklick rechte Maustaste. Sollten dort Fehlermeldungen auftauchen müssen die auf jeden Fall behoben werden. Dort kann man sich auch den aktuellen Feldkatalog anschauen.

In der TA SE83 kann man sich die Doku zum OO-ALV aufrufen (SAP-Technologie->Controls->ALV Grid Control -> Reiter Dokumentation), dort ist unteranderem beschrieben welche Felder zwingend vorbelegt werden müssen.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
peripe

Gruß Hendrik

Re: SALV ALV zeigt alles an - CL_GUI_ALV_GRID aber nicht

Beitrag von PeterPaletti (Specialist / 336 / 29 / 96 ) »
Entspricht denn die DDIC-Struktur ZPM_ERFAMA dem Typen ERFAMA_JOIN, sind die Felder dieselben und in derselben Anordnung?

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
peripe


Re: SALV ALV zeigt alles an - CL_GUI_ALV_GRID aber nicht

Beitrag von peripe (ForumUser / 16 / 9 / 0 ) »
Dank Euch,
@JHM
ich werde es mir mal anschauen...
@PeterPaletti
ja die DDIC-Struktur ist die gleiche.
Der Konsistenzcheck hat aber Fehler angezeigt. Ich werde diese mal versuchen zu beheben und mich dann nocheinmal melden.
Danke erstmal :up:
Peter

Re: SALV ALV zeigt alles an - CL_GUI_ALV_GRID aber nicht

Beitrag von peripe (ForumUser / 16 / 9 / 0 ) »
Hallo zusammen,

der Tip mit der Inline-Prüfung des ALVs war Gold wert :) Da hatte ich doch tatsächlich einen Fehler drin - und damit stimmte auch die DDIC-Struktur nicht mehr richtig.
Also nochmals vielen Dank für eure Hilfe...

Viele Grüße
Peter

Seite 1 von 1

Vergleichbare Themen

7
Antw.
12652
Views
ALV-Grid zeigt neu hinzugefügte Werte nicht an
von Kollektor » 23.02.2011 11:26 • Verfasst in ABAP Objects®
15
Antw.
490
Views
ALV zeigt nicht ab id=1 an
von HH_ABAP » 04.05.2023 12:41 • Verfasst in ABAP® für Anfänger
1
Antw.
5122
Views
2
Antw.
2045
Views
ALV-Tabelle zeigt zu viele Spalten
von bob_sheknowdas » 08.09.2014 15:31 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
4555
Views
BEx Analyzer zeigt keine Daten an
von kaim77 » 14.06.2012 00:01 • Verfasst in Sonstige Module

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 168