Problem ALV-GRID Ausgabe

Getting started ... Alles für einen gelungenen Start.
13 Beiträge • Seite 1 von 1
13 Beiträge Seite 1 von 1

Problem ALV-GRID Ausgabe

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
hallo zusammen,


ich hab ein kleines problem mit der ausgabe vom ALV Grid einer internen tabelle.

ich hab meine interne tabelle itab über data deklariert und auch einen feldkatalog dazu erstellt.
die ausgabe des feldkatalogs is kein problem des macht er ohne zu murren nur füllt er die ausgabe nich mit den daten der itab.

er zeigt mit nur den feldkatalog und die anzahl der zeilen an, nur den inhalt halt net.
hab auch schon alle möglichen beiträge dazu hier im forum durchgelesen komm aber net weiter. :x

mein alv code is folgender:

Code: Alles auswählen.

*ALV-Grid

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
        i_program_name        = sy-repid
*        i_internal_tabname    = 'itab'
      i_structure_name = 'itab'
*      i_client_never_display
     i_inclname            = sy-repid
     CHANGING
        ct_fieldcat            = feldkatalog_itab
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.

*ALV aufruf

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       i_callback_program = sy-repid
            it_fieldcat   = feldkatalog_itab
            i_structure_name = 'itab'
*            it_events     = event_itab
       TABLES
            t_outtab      = itab[]
       EXCEPTIONS
            program_error = 1
            OTHERS        = 2.

beim debuggen is itab gefüllt, nur die ausgabe macht er halt nich.
hoff mal hier hat einer ne idee woran des liegen kann.

gruß
tobi

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


Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Hi Tobi,

mach mal einen Stern vor
i_structure_name = 'itab'
...
Gruß,

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
vor wellem is ja 2 mal drin und die struktur der itab muss ich ja über geben

meinst also des beim fieldcatalog oder beim grid-display?

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hallo,

probier es mal so:
nimm beim REUSE_ALV_FIELDCATALOG_MERGE das * bei "i_internal_tabname = 'itab'" weg und setze es bei "i_structure_name = 'itab'"

sterne bei 'REUSE_ALV_GRID_DISPLAY' bitte die Zeile i_structure_name = 'itab' aus.

Gruss
Alexander

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
hallo,

hat sich leider nix geändert :cry:

die ausgabe is immernoch leer (siehe attachment)
und langsam weiß ich echt nimmer weiter.

hoffe hier hat noch einer ne gute idee.
gruß tobi


Wer fehler Findet, darf se behalten :D

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hallo tobi,

kannst du bitte deinen kompletten quellcode entweder hier posten, oder mir über private Nachricht zukommen lassen?

gruss
alexander

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
ich kann es leider nicht testen, weil mir die Tabelle dimaiobpar fehlt. Probier aber in dem Aufruf

Code: Alles auswählen.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
        i_program_name        = sy-repid
        i_internal_tabname    = 'itab'
*      i_structure_name = 'itab'
*      i_client_never_display
     i_inclname            = sy-repid
     CHANGING
        ct_fieldcat            = feldkatalog_itab
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.
mit der Zeile i_internal_tabname = 'ITAB'. Den Tabellennamen also gross schreiben.

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
des hat leider auch nix gebracht
die ausgabetabelle is immernoch leer

irgendwie is des komisch

ich weiß wenn ich die tabelle im DDIC deklalier dass es dann geht aber des will ich net, da ich sonst die tablle immer neu anlegen muss wenn ich des proggi vom testserver transportier
und des kann es ja nun ehct net sein
gruß tobi


Wer fehler Findet, darf se behalten :D

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
in der Tat, sehr komisch.
ich weiß wenn ich die tabelle im DDIC deklalier dass es dann geht aber des will ich net
was meinst du damit?

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
ich kann ja tabellen im dictionary (se11) anlegen und dann über set-table-for-first-display ausgaben wie im demo-proggi BCALV_GRID_DEMO der entwicklungklasse SLIS

des mein ich damit
gruß tobi


Wer fehler Findet, darf se behalten :D

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
so ich poste mal den kompelletn code
vllt kann mir ja dann jmd weiterhelfen

Code: Alles auswählen.

REPORT z_test_auswertung.



*--------------------------------------------------------------------
* G L O B A L   I N T E R N  A L   T A B L E S
*--------------------------------------------------------------------

DATA: BEGIN OF itab OCCURS 100,
      status TYPE dimaiobpar-zstatus,
      rtyp TYPE  dimaiobpar-zrtyp,
      zahlweg TYPE dimaiobpar-ezawe_x,
      a_status TYPE i,
      a_rtyp TYPE i,
      a_partner TYPE i,
      a_vertraege TYPE i,


      END OF itab .



*--------------------------------------------------------------------
* G L O B A L   D A T A
*--------------------------------------------------------------------

DATA: ok_code LIKE sy-ucomm,
      wa_test_tab LIKE dimaiobpar,
      my_title TYPE lvc_title.


TYPE-POOLS: slis.

DATA:	feldkatalog_itab   TYPE   slis_t_fieldcat_alv,
	wa_feldkatalog     TYPE   slis_fieldcat_alv,
       event_itab         TYPE   slis_t_event,
       header_itab        TYPE   slis_t_listheader,
       wa_header          TYPE   slis_listheader.



DATA:
  mycontainer TYPE scrfname VALUE 'BCALV_VARIANTS_0100_C1',
  my_grid             TYPE REF TO cl_gui_alv_grid,
  my_custom_container TYPE REF TO cl_gui_custom_container.

DATA: t_tab LIKE dimaiobpar.

*selection-screen

SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test WITH FRAME TITLE text-010.
SELECT-OPTIONS: partner FOR  t_tab-partner,
                astatus FOR  t_tab-zstatus.

SELECTION-SCREEN END OF BLOCK test.


*Radiobutton

SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test2 WITH FRAME TITLE text-020.
PARAMETERS: radio1 RADIOBUTTON GROUP test DEFAULT 'X',
            radio2 RADIOBUTTON GROUP test,
            radio3 RADIOBUTTON GROUP test,
            radio4 RADIOBUTTON GROUP test,
            rafio5 RADIOBUTTON GROUP test.
SELECTION-SCREEN END OF BLOCK test2.



*--------------------------------------------------------------------
* S T A R T - O F - S E L E C T I O N.
*--------------------------------------------------------------------
START-OF-SELECTION.
  PERFORM select_data.


*  CALL SCREEN 100.

  DATA ttab LIKE itab.
  MOVE itab TO ttab.

* Feldkatalog fuellen.
  PERFORM feldkatalog_fuellen .
* Feldkatalog übergeben
  PERFORM alv_feldkatalog.
* ALV mit daten füllen
  PERFORM alv_füllen.

END-OF-SELECTION.



  SORT itab.

  my_title = 'Auswertung Dimaiobpar'.


  PERFORM exit_program.

*---------------------------------------------------------------------*
*       FORM alv_feldkatalog                                          *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM alv_feldkatalog.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
              i_program_name        = sy-repid
        i_internal_tabname    = 'ITAB[]'
*     i_structure_name = 'TTAB'
*     i_client_never_display
     i_inclname            = 'ITAB[]'
     i_bypassing_buffer = 'X'
     CHANGING
        ct_fieldcat            = FELDKATALOG_ITAB
        EXCEPTIONS
        program_error          = 1
        OTHERS                 = 2.

ENDFORM.




*---------------------------------------------------------------------*
*       FORM alv_füllen                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM alv_füllen .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       i_callback_program = sy-repid
       i_grid_title = my_title
            it_fieldcat   = FELDKATALOG_ITAB
*            i_structure_name = 'ITAB'
*            it_events     = event_itab
       TABLES
            t_outtab      = itab
       EXCEPTIONS
            program_error = 1
            OTHERS        = 2.
ENDFORM.

*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM exit_program.
*  CALL METHOD G_CUSTOM_CONTAINER->FREE.
*  CALL METHOD CL_GUI_CFW=>FLUSH.
  LEAVE PROGRAM.
ENDFORM.


*---------------------------------------------------------------------*
*       FORM feldkatalog_fuellen                                      *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM feldkatalog_fuellen.

  IF radio1 = 'X'.


    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'status'.
    	wa_feldkatalog-seltext_m	= 'Status'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'rtyp'.
    	wa_feldkatalog-seltext_m	= 'RTyp'.
    APPEND wa_feldkatalog TO feldkatalog_itab.


    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'a_rtyp'.
    	wa_feldkatalog-seltext_m	= 'Anzahl RTyp'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

  ELSEIF radio2 = 'X'.


    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'rtyp'.
    	wa_feldkatalog-seltext_m	= 'RTyp'.
    APPEND wa_feldkatalog TO feldkatalog_itab.


    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'a_status'.
    	wa_feldkatalog-seltext_m	= 'Anzahl Status'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

  ELSEIF radio3 = 'X'.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'status'.
    	wa_feldkatalog-seltext_m	= 'Status'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'rtyp'.
    	wa_feldkatalog-seltext_m	= 'RTyp'.
    APPEND wa_feldkatalog TO feldkatalog_itab.


    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'a_vertraege'.
    	wa_feldkatalog-seltext_m	= 'Anzahl Vertraege'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

  ELSEIF radio4 = 'X'.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'status'.
    	wa_feldkatalog-seltext_m	= 'Status'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'rtyp'.
    	wa_feldkatalog-seltext_m	= 'RTyp'.
    APPEND wa_feldkatalog TO feldkatalog_itab.


    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'a_gpartner'.
    	wa_feldkatalog-seltext_m	= 'Anzahl GPartner'.
    APPEND wa_feldkatalog TO feldkatalog_itab.


  ELSE.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'status'.
    	wa_feldkatalog-seltext_m	= 'Status'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'rtyp'.
    	wa_feldkatalog-seltext_m	= 'RTyp'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'zahlweg'.
    	wa_feldkatalog-seltext_m	= 'Zahlweg'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

    CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'a_gpartner'.
    	wa_feldkatalog-seltext_m	= 'Anzahl GPartner'.
    APPEND wa_feldkatalog TO feldkatalog_itab.

  ENDIF.



ENDFORM.

*---------------------------------------------------------------------*
*       FORM select_data                                              *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM select_data.

  IF radio1 = 'X' .

*    WRITE / 'Radiobutton1: Rechungstypen je Satus'.
*   WRITE / 'Status, Rtyp, Anzahl-Rtyp'.
*    ULINE.

    SELECT
       zstatus AS status
       zrtyp AS rtyp
       COUNT( DISTINCT zrtyp ) AS a_rtyp
       INTO CORRESPONDING FIELDS OF itab
       FROM dimaiobpar
       WHERE
       insobject LIKE 'V%' AND
       partner IN partner AND
       zstatus IN astatus
       GROUP BY ZSTATUS zrtyp
       ORDER BY zstatus.

      APPEND itab.

*      WRITE:  / itab.

    ENDSELECT.


  ELSEIF radio2 = 'X'.

*    WRITE / 'Radiobutton2: Status je Rechungstyp'.
*    WRITE /.

    SELECT
           zrtyp AS rtyp
           COUNT( DISTINCT zstatus ) AS a_status
           INTO CORRESPONDING FIELDS OF itab
           FROM dimaiobpar
           WHERE
           insobject LIKE 'V%' AND
           partner IN partner AND
           zstatus IN astatus
           GROUP BY  ZRTYP
           ORDER BY zrtyp.

      APPEND itab.

*      WRITE:    / itab-rtyp, itab-a_status.

    ENDSELECT.

  ELSEIF radio3 = 'X'.
*    WRITE / 'Radiobutton3: Anzahl Verträge je Status und Rtyp'.
*    WRITE /.

    SELECT
         zstatus AS status
         zrtyp AS rtyp
         COUNT( DISTINCT insobject ) AS a_vertraege
         INTO CORRESPONDING FIELDS OF itab
         FROM dimaiobpar
         WHERE
         insobject LIKE 'V%' AND
         partner IN partner AND
         zstatus IN astatus
         GROUP BY ZSTATUS zrtyp
         ORDER BY zstatus.

      APPEND itab.

*      WRITE: / itab-status, itab-rtyp, itab-a_vertraege.


    ENDSELECT.

  ELSEIF radio4 ='X'.

*    WRITE: / 'Radiobutton4: Anzahl GPartner je Status und RTyp'.
*    WRITE: /.

    SELECT
           zstatus AS status
           zrtyp AS rtyp
           COUNT( DISTINCT partner ) AS a_partner
           INTO CORRESPONDING FIELDS OF itab
           FROM dimaiobpar
           WHERE
           insobject LIKE 'V%' AND
           partner IN partner AND
           zstatus IN astatus
           GROUP BY ZSTATUS zrtyp
           ORDER BY zstatus zrtyp.

      APPEND itab.

*     WRITE: / itab-status, itab-rtyp, itab-a_partner.

    ENDSELECT.

  ELSE.

*    WRITE / 'Radiobutton5: Anzahl Kunden nach Zahlweg'.
*    WRITE /.


    SELECT
         zstatus AS status
         zrtyp AS rtyp
         ezawe_x AS zahlweg
         COUNT( DISTINCT partner ) AS a_partner
         INTO CORRESPONDING FIELDS OF itab
         FROM dimaiobpar
         WHERE
         insobject LIKE 'V%' AND
         partner IN partner AND
         zstatus IN astatus AND
         ezawe_x IN ('E', 'F', space)
         GROUP BY ZSTATUS zrtyp EZAWE_X
         ORDER BY zstatus zrtyp.

      APPEND itab.

*      WRITE: / itab-status, itab-rtyp, itab-zahlweg, itab-a_partner
      .

    ENDSELECT.

  ENDIF.
*  APPEND itab.
ENDFORM
gruß tobi


Wer fehler Findet, darf se behalten :D

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
mir fällt an Deinem Code in REUSE_ALV_FIELDCATALOG_MERGE noch was auf:

i_internal_tabname = 'ITAB[]' <-- die eckigen Klammern sind überflüssig
i_inclname = 'ITAB[]' <-- statt 'ITAB[]' sollte hier sy-repid stehen. Ohne Hochkommas.

etwa so sieht mein funktionierender Aufruf des FB aus:

Code: Alles auswählen.

 CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     i_program_name         = sy-repid
     i_internal_tabname     = 'ITAB'
     i_inclname                   = sy-repid
   CHANGING
     ct_fieldcat                   = 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.

Beitrag von TobiB (ForumUser / 38 / 0 / 0 ) »
danke alex die klammern hatte ich eh schon wieder weg
hab aber jetzt ne lösung für mein problem gefunden.

es lag einfach daran dass ich die felder beim zusammenbau des feldkatalogs hät groß schreiben müssen :?

so also..

Code: Alles auswählen.

CLEAR wa_feldkatalog.
    	wa_feldkatalog-fieldname	= 'STATUS'.
    	wa_feldkatalog-seltext_m	= 'Status'.
    APPEND wa_feldkatalog TO feldkatalog_itab.


.....
gruß tobi


Wer fehler Findet, darf se behalten :D

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1629
Views
Problem mit Feldkatalog zur Ausgabe im ALV-Grid
von Gast » 22.11.2004 11:53 • Verfasst in ABAP® Core
7
Antw.
1775
Views
Write-Ausgabe vor Alv-Grid Ausgabe
von L0w-RiDer » 14.08.2019 14:09 • Verfasst in ABAP® für Anfänger
2
Antw.
686
Views
Problem bei ALV-Ausgabe
von Patrick1982 » 15.01.2021 13:23 • Verfasst in ABAP® für Anfänger
0
Antw.
1034
Views
erl. ABAP2xlsx - Problem mit der Ausgabe
von Thomas17 » 05.12.2012 15:47 • Verfasst in ABAP® Core
9
Antw.
3245
Views
ALV Ausgabe Zeilen Problem
von erzoo24 » 10.07.2015 09:58 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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.