ALV Meldung: Feldkatalog kann nicht ermittelt werden

Getting started ... Alles für einen gelungenen Start.
17 Beiträge • Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

ALV Meldung: Feldkatalog kann nicht ermittelt werden

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo Zusammen!

Bitte um Hilfe bei meinem ALV Coding.

Wenn ich mein Programm Ausführe bekomme ich ein Popup mit dem Text: "Feldkatalog kann nicht ermittelt werden".

Hoffe daß Ihr mir helfen könnt.

Danke

Robin

Code: Alles auswählen.

TYPE-POOLS slis.

DATA: my_fieldcat TYPE slis_t_fieldcat_alv,
      wa_layout   TYPE slis_layout_alv,
      wa_fieldcat LIKE LINE OF my_fieldcat,
      repid type repid.

repid = repid.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name         = repid
            i_internal_tabname     = 'itab_sumla'
            i_inclname             = 'repid'
       CHANGING
            ct_fieldcat            = my_fieldcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout     = wa_layout
            it_fieldcat   = my_fieldcat
       TABLES
            t_outtab      = itab_sumla
       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.

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


Beitrag von Thomas R. (Expert / 760 / 79 / 35 ) »
Hallo Robin,
versuche doch einmal den Includenamen analog zum reportnamen zu übergeben.

MfG
Thomas R.

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo Thomas!

Brachte leider nicht den gewünschten Erfolg. :cry:

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
HI!

Versuch mals, wenn du bei der Zeile "i_internal_tabname = 'itab_sumla' das in Hochkomma alles Gross schreibst.
SAP achtet da mal ausnahmsweise auf die Grossschreibung!

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hi DeathGuardian!

Habe ich auch probiert, macht aber leider auch keinen Unterschied.

Stelle Euch mal mein ganzes Coding rein. Vielleicht findet Ihr ja einen Fehler. Mit der Write Anweisung funktioniert es.

Danke

Robin

Code: Alles auswählen.

REPORT zsumla.

* INCLUDE ZSUMLAO01                               .                    *
* INCLUDE ZSUMLAI01                               .                    *
* INCLUDE ZSUMLAF01                                                    *

TYPE-POOLS slis.

TABLES: lfa1, bseg, bkpf, bsik, bsak, zdlkz_t.  "BSEG, BKPF für so

DATA: wa_lfa1 TYPE lfa1,
      wa_zdlkz_t TYPE zdlkz_t,
      wa_bkpf TYPE bkpf,
      wa_bsak TYPE bsak,
      wa_bsik TYPE bsik.

DATA: BEGIN OF wa_res,
        lifnr TYPE lfa1-lifnr,
        land1 TYPE lfa1-land1,
        diekz TYPE bsak-diekz,
        belnr TYPE bsak-belnr,
        zuonr TYPE bsak-zuonr,
        blart TYPE bsak-blart,
        bukrs TYPE bsak-bukrs,
        monat TYPE bsak-monat,
        gjahr TYPE bsak-gjahr,
        zdlkz TYPE zdlkz_t-zdlkz,
        bezeichnung TYPE zdlkz_t-bezeichnung,
      END OF wa_res,

itab_sumla LIKE wa_res OCCURS 10 WITH HEADER LINE.

DATA: my_fieldcat TYPE slis_t_fieldcat_alv,
      wa_layout   TYPE slis_layout_alv,
      wa_fieldcat LIKE LINE OF my_fieldcat,
      repid type repid.

SELECT-OPTIONS: so_land FOR lfa1-land1,
                so_perio FOR bkpf-monat.

PARAMETERS pa_gj LIKE bseg-gjahr.

SELECT-OPTIONS: so_dlkz FOR zdlkz_t-zdlkz.

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

  SELECT lifnr land1
  FROM lfa1 INTO CORRESPONDING FIELDS OF wa_lfa1
  WHERE land1 IN so_land.
    MOVE-CORRESPONDING wa_lfa1 TO itab_sumla.
    SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs
    FROM bsak INTO CORRESPONDING FIELDS OF wa_bsak
    WHERE lifnr = wa_lfa1-lifnr.
      MOVE-CORRESPONDING wa_bsak TO itab_sumla.
      SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs
      FROM bsik INTO CORRESPONDING FIELDS OF wa_bsik
      WHERE lifnr = wa_lfa1-lifnr
      AND   bukrs = wa_bsak-bukrs
      AND   monat IN so_perio
      AND   gjahr = pa_gj.
        MOVE-CORRESPONDING wa_bsik TO itab_sumla.
        SELECT zdlkz bezeichnung
        FROM zdlkz_t INTO CORRESPONDING FIELDS OF wa_zdlkz_t
        WHERE zdlkz IN so_dlkz.
          MOVE-CORRESPONDING wa_zdlkz_t TO itab_sumla.
        ENDSELECT.
      ENDSELECT.
    ENDSELECT.
    APPEND itab_sumla.
    CLEAR itab_sumla.
  ENDSELECT.

  IF sy-subrc <> 0.
    MESSAGE e180(/bdl/d-).
*   Notwendige Eingabe fehlt
  ENDIF.

repid = repid.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name         = repid
            i_internal_tabname     = 'ITAB_SUMLA'
            i_inclname             = 'REPID'
       CHANGING
            ct_fieldcat            = my_fieldcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

DELETE my_fieldcat WHERE NOT ( fieldname = 'LAND1'
                              OR  fieldname = 'BELNR'
                              OR  fieldname = 'MONAT'
                              OR  fieldname = 'ZDLKZ').

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout     = wa_layout
            it_fieldcat   = my_fieldcat
       TABLES
            t_outtab      = itab_sumla
       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.

Beitrag von PatrickJ (ForumUser / 75 / 0 / 0 ) »
Hallo,

wenn ich mich richtig erinnere hatte ich das Problem auch, bei mir glaub ich lag es an der Definition der
Tabelle.

Nicht mit header-line sondern mit occurs definieren.

Patrick
Patrick

Beitrag von Gast ( / / 0 / 3 ) »
Habe an deinem Code einwenig rum gefummelt. Weiß jetzt nicht ob's läuft, habs nicht ausprobiert.

Der FuBa REUSE_ALV_FIELDCATALOG_MERGE kann nur interne Tabellen auswerten, die mit INCLUDE STRUCTURE bzw. LIKE angelegt wurden. Ich habe die Tabellendefinition umgebaut.

Dann noch Fehler kommentiert.

Gruß Hendrik


Gruß Hendrik

Code: Alles auswählen.

REPORT zsumla.

TYPE-POOLS slis.

TABLES: lfa1, bseg, bkpf, bsik, bsak, zdlkz_t.  "BSEG, BKPF für so

DATA: wa_lfa1 TYPE lfa1,
      wa_zdlkz_t TYPE zdlkz_t,
      wa_bkpf TYPE bkpf,
      wa_bsak TYPE bsak,
      wa_bsik TYPE bsik.

DATA: BEGIN OF wa_res,
        lifnr TYPE lfa1-lifnr,
        land1 TYPE lfa1-land1,
        diekz TYPE bsak-diekz,
        belnr TYPE bsak-belnr,
        zuonr TYPE bsak-zuonr,
        blart TYPE bsak-blart,
        bukrs TYPE bsak-bukrs,
        monat TYPE bsak-monat,
        gjahr TYPE bsak-gjahr,
        zdlkz TYPE zdlkz_t-zdlkz,
        bezeichnung TYPE zdlkz_t-bezeichnung,
      END OF wa_res.

*** Änderung der Datendefinition
DATA: BEGIN OF itab_sumla OCCURS 10,
        lifnr       LIKE lfa1-lifnr,
        land1       LIKE lfa1-land1,
        diekz       LIKE bsak-diekz,
        belnr       LIKE bsak-belnr,
        zuonr       LIKE bsak-zuonr,
        blart       LIKE bsak-blart,
        bukrs       LIKE bsak-bukrs,
        monat       LIKE bsak-monat,
        gjahr       LIKE bsak-gjahr,
        zdlkz       LIKE zdlkz_t-zdlkz,
        bezeichnung LIKE zdlkz_t-bezeichnung,
      END   OF itab_sumla.

DATA: my_fieldcat TYPE slis_t_fieldcat_alv,
      wa_layout   TYPE slis_layout_alv,
      wa_fieldcat LIKE LINE OF my_fieldcat,
      repid type repid.

SELECT-OPTIONS: so_land FOR lfa1-land1,
                so_perio FOR bkpf-monat.

PARAMETERS pa_gj LIKE bseg-gjahr.

SELECT-OPTIONS: so_dlkz FOR zdlkz_t-zdlkz.

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

  SELECT lifnr land1
  FROM lfa1 INTO CORRESPONDING FIELDS OF wa_lfa1
  WHERE land1 IN so_land.
    MOVE-CORRESPONDING wa_lfa1 TO itab_sumla.
    SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs
    FROM bsak INTO CORRESPONDING FIELDS OF wa_bsak
    WHERE lifnr = wa_lfa1-lifnr.
      MOVE-CORRESPONDING wa_bsak TO itab_sumla.
      SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs
      FROM bsik INTO CORRESPONDING FIELDS OF wa_bsik
      WHERE lifnr = wa_lfa1-lifnr
      AND   bukrs = wa_bsak-bukrs
      AND   monat IN so_perio
      AND   gjahr = pa_gj.
        MOVE-CORRESPONDING wa_bsik TO itab_sumla.
        SELECT zdlkz bezeichnung
        FROM zdlkz_t INTO CORRESPONDING FIELDS OF wa_zdlkz_t
        WHERE zdlkz IN so_dlkz.
          MOVE-CORRESPONDING wa_zdlkz_t TO itab_sumla.
*** s.u.
APPEND itab_sumla.       
 ENDSELECT.
      ENDSELECT.
    ENDSELECT.
***    Hier ist mir beim letzten Mal ein kleiner Fehler unterlaufen. 
*** die Anweisung muss drei Zeilen weiter nach oben.
***    APPEND itab_sumla.
    CLEAR itab_sumla.
  ENDSELECT.

  IF sy-subrc <> 0.
    MESSAGE e180(/bdl/d-).
*   Notwendige Eingabe fehlt
  ENDIF.

*** Was machst du hier? Du kopierst Variable1 in Variable1!
***repid = repid.
*** So bekommst den aktuellen Programmnamen
repid = sy-repid.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name         = repid
            i_internal_tabname     = 'ITAB_SUMLA'
***      Was machst du hier? Du übergibst einen VariablenNAMEN. 
***Du brauchst aber den Inhalt!
***            i_inclname             = 'REPID'
***            i_inclname             = 'REPID'     
       CHANGING
            ct_fieldcat            = my_fieldcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
*** Entweder du wertest den Fehler aus, oder du schmeißt den IF-Block weg.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

DELETE my_fieldcat WHERE NOT ( fieldname = 'LAND1'
                              OR  fieldname = 'BELNR'
                              OR  fieldname = 'MONAT'
                              OR  fieldname = 'ZDLKZ').

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout     = wa_layout
            it_fieldcat   = my_fieldcat
       TABLES
            t_outtab      = itab_sumla
       EXCEPTIONS
            program_error = 1
            OTHERS        = 2.
*** s.o.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Danke Hendrik und Patrick!

Hendrick vielen Dank für Deine Hilfe. Hab in der Zwischenzeit selber einige Fehler entdeckt, und werde mir Dein Coding morgen gleich mal genau ansehen.

Vielen vielen Dank für EURE Hilfe!!!

Falls ich noch Hilfe brauche, wäre es toll wenn ich mich nochmals an Dich wenden durfte.

Schöne Abend noch ...

Robin

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo Hendrik!

Erstmals danke für Dein Coding!

Auf einige Fehler bin ich dann gestern auch noch drauf gekommen.

Ich glaube das Problem das ich habe, hängt mit dem i_structure_name im FuBa REUSE_ALV_FIELDCATALOG_MERGE.

Denn wenn ich hier einen Nameneintrage z.B. BSEG, macht er zumindest den ALV.

Nur leider zeigt er mir nicht die Daten die ich sehen will. Es ist dem Programm auch ziemlich egal welche Daten ich in die Eingabemaske eingebe.

Bei BSEG z.B. zeigt der ALV nur BUKRS, JAHR, Kreditor.

Ich weis im Moment nicht welche i_structure_name ich übergeben sollte.

Auf dem ALV sollten dann folgende Spalten zu sehen sein.

LAND1, ZDLKZ, BEZEICHNUNG, BLART, MONAT, GJAHR.

Hoffe Ihr könnt mir weiterhelfen.

Danke

Robin

Hier noch mein Coding ....


Code: Alles auswählen.

TYPE-POOLS slis.

TABLES: lfa1, bseg, bkpf, bsik, bsak, zdlkz_t.  "BSEG, BKPF für so

DATA: wa_lfa1 TYPE lfa1,
      wa_zdlkz_t TYPE zdlkz_t,
      wa_bkpf TYPE bkpf,
      wa_bsak TYPE bsak,
      wa_bsik TYPE bsik.

DATA: BEGIN OF wa_res,
        lifnr TYPE lfa1-lifnr,
        land1 TYPE lfa1-land1,
        diekz TYPE bsak-diekz,
        belnr TYPE bsak-belnr,
        zuonr TYPE bsak-zuonr,
        blart TYPE bsak-blart,
        bukrs TYPE bsak-bukrs,
        monat TYPE bsak-monat,
        gjahr TYPE bsak-gjahr,
        zdlkz TYPE zdlkz_t-zdlkz,
        bezeichnung TYPE zdlkz_t-bezeichnung,
      END OF wa_res,

BEGIN OF itab_sumla OCCURS 10,
        lifnr LIKE lfa1-lifnr,
        land1 LIKE lfa1-land1,
        diekz LIKE bsak-diekz,
        belnr LIKE bsak-belnr,
        zuonr LIKE bsak-zuonr,
        blart LIKE bsak-blart,
        bukrs LIKE bsak-bukrs,
        monat LIKE bsak-monat,
        gjahr LIKE bsak-gjahr,
        zdlkz LIKE zdlkz_t-zdlkz,
        bezeichnung LIKE zdlkz_t-bezeichnung,
END OF itab_sumla.

DATA: my_fieldcat TYPE slis_t_fieldcat_alv,
      wa_layout   TYPE slis_layout_alv,
      wa_fieldcat LIKE LINE OF my_fieldcat,
      repid TYPE sy-repid.

SELECT-OPTIONS: so_land FOR lfa1-land1,
                so_perio FOR bkpf-monat.

PARAMETERS pa_gj LIKE bseg-gjahr.

SELECT-OPTIONS: so_dlkz FOR zdlkz_t-zdlkz.

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

  SELECT lifnr land1
  FROM lfa1 INTO CORRESPONDING FIELDS OF wa_lfa1
  WHERE land1 IN so_land.
    MOVE-CORRESPONDING wa_lfa1 TO itab_sumla.
    SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs
    FROM bsak INTO CORRESPONDING FIELDS OF wa_bsak
    WHERE lifnr = wa_lfa1-lifnr.
      MOVE-CORRESPONDING wa_bsak TO itab_sumla.
      SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs
      FROM bsik INTO CORRESPONDING FIELDS OF wa_bsik
      WHERE lifnr = wa_lfa1-lifnr
      AND   bukrs = wa_bsak-bukrs
      AND   monat IN so_perio
      AND   gjahr = pa_gj.
        MOVE-CORRESPONDING wa_bsik TO itab_sumla.
        SELECT zdlkz bezeichnung
        FROM zdlkz_t INTO CORRESPONDING FIELDS OF wa_zdlkz_t
        WHERE zdlkz IN so_dlkz.
          MOVE-CORRESPONDING wa_zdlkz_t TO itab_sumla.
          APPEND itab_sumla.
        ENDSELECT.
      ENDSELECT.
    ENDSELECT.
    CLEAR itab_sumla.
  ENDSELECT.

  IF sy-subrc <> 0.
    MESSAGE e180(/bdl/d-).
*   Notwendige Eingabe fehlt
  ENDIF.

repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
 EXPORTING
   I_PROGRAM_NAME               = sy-repid
   i_structure_name             = 'BSEG'
   I_INTERNAL_TABNAME           = 'ITAB_SUMLA'
  CHANGING
    ct_fieldcat                  = my_fieldcat
 EXCEPTIONS
   INCONSISTENT_INTERFACE       = 1
   PROGRAM_ERROR                = 2
   OTHERS                       = 3
          .

DELETE my_fieldcat WHERE NOT ( fieldname = 'BLART'
                             OR  fieldname = 'ZDLKZ'
                             OR  fieldname = 'LAND1'
                             OR  fieldname = 'LIFNR'
                             OR  fieldname = 'GJAHR'
                             OR  fieldname = 'MONAT'
                             OR  fieldname = 'DIEKZ'
                             OR  fieldname = 'BUKRS').


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
   IS_LAYOUT                         = wa_layout
   IT_FIELDCAT                       = my_fieldcat
  TABLES
    t_outtab                          = itab_sumla
 EXCEPTIONS
   PROGRAM_ERROR                     = 1
   OTHERS                            = 2

Beitrag von Gast ( / / 0 / 3 ) »
robin1at hat geschrieben:Ich weis im Moment nicht welche i_structure_name ich übergeben sollte.
Der Parameter i_structure_name ist im FuBa als Optional gekennzeichnet. Dass heißt du kannst ihn auch leer lassen. Der FuBa kann entweder eine Dict-Struktur (Tabelle/Structur) ODER eine interne Tabelle in einen Feldkatalog umwandeln. Wenn du den Parameter i_structure_name füllst ignoriert er deine interne Tabelle.

Gruß Hendrik

Code: Alles auswählen.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
 EXPORTING
   I_PROGRAM_NAME               = sy-repid
*** Den Parameter brauchst du nicht übergeben
*   i_structure_name             = 'BSEG'
   I_INTERNAL_TABNAME           = 'ITAB_SUMLA'
  CHANGING
    ct_fieldcat                  = my_fieldcat
 EXCEPTIONS
   INCONSISTENT_INTERFACE       = 1
   PROGRAM_ERROR                = 2
   OTHERS                       = 3
          .
                      = 2

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo Hendrik!

Ja, das weis ich schon, aber dann bekomme ich wieder die Meldung Feldkatalog kann nicht ermittelt werden.

Ich glaube, daß ich mir da eine Struktur anlegen muß.

Nochmals danke für Deine Hilfe!

Schöne Grüße

Robin

Beitrag von Gast ( / / 0 / 3 ) »
robin1at hat geschrieben: Ja, das weis ich schon, aber dann bekomme ich wieder die Meldung Feldkatalog kann nicht ermittelt werden.
Habe einen Testreport geschrieben, der bis auf die Z-Tabellen-Felder funktioniert.

Gruß Hendrik

Code: Alles auswählen.

REPORT  z_test_alv_merge.

TYPE-POOLS slis.

DATA: BEGIN OF itab_sumla OCCURS 10,
        lifnr LIKE lfa1-lifnr,
        land1 LIKE lfa1-land1,
        diekz LIKE bsak-diekz,
        belnr LIKE bsak-belnr,
        zuonr LIKE bsak-zuonr,
        blart LIKE bsak-blart,
        bukrs LIKE bsak-bukrs,
        monat LIKE bsak-monat,
        gjahr LIKE bsak-gjahr,
*        zdlkz LIKE zdlkz_t-zdlkz,
*        bezeichnung LIKE zdlkz_t-bezeichnung,
      END OF itab_sumla.

DATA: gw_fieldcat TYPE slis_fieldcat_alv,
      gt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: g_repid TYPE sy-repid.

START-OF-SELECTION.
  g_repid = sy-repid.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name     = g_repid
      i_internal_tabname = 'ITAB_SUMLA'
      i_inclname         = g_repid
    CHANGING
      ct_fieldcat        = gt_fieldcat.

* Fieldcat ausgeben
  LOOP AT gt_fieldcat INTO gw_fieldcat.
    WRITE: / gw_fieldcat-fieldname,
             gw_fieldcat-tabname,
             gw_fieldcat-ref_fieldname,
             gw_fieldcat-ref_tabname.
  ENDLOOP.

Beitrag von Moriz ( / / 0 / 3 ) »
Hi @all,
hat dieses Problem hier zufälligerweise in der zwischenzeit irgendjemand gelöst? Stehe nämlich vor dem selben Problem.
Mit der WRITE Anweisung geht's, aber das ist ja nicht der Sinn der Sache.

mfg Moriz

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo Moritz!

Ich habe mir mit der SE11 eine Struktur angelegt, und dann in mein Coding eingebettet.

Nun sieht die Lösung folgendermaßen aus. (Auszug aus meinem Coding)

Schöne Grüße

Robin

Code: Alles auswählen.

REPORT  zsumla.

TYPE-POOLS slis.

TABLES: lfa1, bseg, bkpf, bsik, bsak, zdlkz_t.

DATA: BEGIN OF itab_sumla OCCURS 10,
        lifnr LIKE lfa1-lifnr,
        land1 LIKE lfa1-land1,
        diekz LIKE bsak-diekz,
        belnr LIKE bsak-belnr,
        zuonr LIKE bsak-zuonr,
        blart LIKE bsak-blart,
        bukrs LIKE bsak-bukrs,
        monat LIKE bsak-monat,
        gjahr LIKE bsak-gjahr,
        shkzg LIKE bsak-shkzg,
        bschl LIKE bsak-bschl,
        dmbtr LIKE bsak-dmbtr,
        wrbtr LIKE bsak-wrbtr,
        zdlkz LIKE zdlkz_t-zdlkz,
        bezeichnung LIKE zdlkz_t-bezeichnung,
        soha TYPE p DECIMALS 2,
        soll TYPE p DECIMALS 2,
        haben TYPE p DECIMALS 2,
        zahler TYPE i,
      END OF itab_sumla.

DATA: my_fieldcat TYPE slis_t_fieldcat_alv,
      wa_layout   TYPE slis_layout_alv,
      wa_fieldcat LIKE LINE OF my_fieldcat,
      repid TYPE sy-repid.

SELECT-OPTIONS: so_land FOR lfa1-land1,
                so_perio FOR bkpf-monat.

PARAMETERS pa_gj LIKE bseg-gjahr.

SELECT-OPTIONS: so_dlkz FOR zdlkz_t-zdlkz.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name         = sy-repid
            i_structure_name       = 'ZMYSTRUKTUR'
       CHANGING
            ct_fieldcat            = my_fieldcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.

  IF sy-subrc <> 0.
    MESSAGE e707(69).
*   Lesefehler
  ENDIF.

  DELETE my_fieldcat WHERE NOT ( fieldname = 'BLART'
                               OR  fieldname = 'ZDLKZ'
                               OR  fieldname = 'LAND1'
                               OR  fieldname = 'GJAHR'
*                              OR  fieldname = 'ZUONR'
                               OR  fieldname = 'BEZEICHNUNG'
*                              OR  fieldname = 'SHKZG'
*                              OR  fieldname = 'DMBTR'
*                              OR  fieldname = 'WRBTR'
                               OR  fieldname = 'BELNR'
                               OR  fieldname = 'SOLL'
                               OR  fieldname = 'HABEN'
                               OR  fieldname = 'SOHA'
                               OR  fieldname = 'ZAHLER'
                               OR  fieldname = 'MONAT' ).

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout     = wa_layout
            it_fieldcat   = my_fieldcat
       TABLES
            t_outtab      = itab_sumla
       EXCEPTIONS
            program_error = 1
            OTHERS        = 2.

  IF sy-subrc <> 0.
    MESSAGE e707(69).
*   Lesefehler
  ENDIF.

Beitrag von Gast ( / / 0 / 3 ) »
Hi robin1at,
klar kann man über die SE11 eine Struktur anlegen, aber dann brauchst du auch den FuBa 'REUSE_ALV_FIELDCATALOG_MERGE' nicht mehr, sondern gibst direkt im FuBa 'REUSE_ALV_GRID_DISPLAY' statt IT_FIELDCAT den I_STRUCTURE_NAME mit.

mfg Moriz

Vergleichbare Themen

3
Antw.
3657
Views
Feldkatalog kann nicht ermittelt werden
von dyv » 23.09.2014 15:45 • Verfasst in ABAP® für Anfänger
2
Antw.
2116
Views
Über Substitutionsregeln wird Profit-Center ermittelt
von vwaadenm » 28.07.2008 17:41 • Verfasst in Financials
1
Antw.
5704
Views
Faktura aus VA01/02 anstoßen, wie wird Fakturaart ermittelt?
von RIG » 01.02.2024 08:50 • Verfasst in Sales and Distribution
1
Antw.
2309
Views
SD Faktura noch ohne commit wenn COPA ermittelt werden soll
von Cubitus » 26.02.2021 22:40 • Verfasst in ABAP® für Anfänger
17
Antw.
22883
Views
Feldkatalog für ALV
von Kerstin » 17.08.2007 10:03 • Verfasst in ABAP Objects®

Aktuelle Forenbeiträge

SELECT SUM CUST
vor 15 Stunden von black_adept 2 / 783
TABSTRIP oder Subscreen
vor 17 Stunden von Rabea1103 1 / 742
Banf anlegen
vor 22 Stunden von IHe 3 / 12128
FS-CD schnellstmöglich lernen
vor 2 Tagen von waltersen 3 / 4824
Banf anlegen
vor einer Woche von wreichelt 2 / 12481

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.

Aktuelle Forenbeiträge

SELECT SUM CUST
vor 15 Stunden von black_adept 2 / 783
TABSTRIP oder Subscreen
vor 17 Stunden von Rabea1103 1 / 742
Banf anlegen
vor 22 Stunden von IHe 3 / 12128
FS-CD schnellstmöglich lernen
vor 2 Tagen von waltersen 3 / 4824
Banf anlegen
vor einer Woche von wreichelt 2 / 12481

Unbeantwortete Forenbeiträge

TABSTRIP oder Subscreen
vor 17 Stunden von Rabea1103 1 / 742
GUIXT Tabellen in Container ansprechen
vor 3 Wochen von Denaris 1 / 17180
Speichern Popup in MM42 verhindern
vor 3 Wochen von Noodl 1 / 17940
Meine Inbox
letzen Monat von Rabea1103 1 / 33073