REUSE_ALV_GRID_DISPLAY mit variabler Spaltenanzahlausgabe

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

REUSE_ALV_GRID_DISPLAY mit variabler Spaltenanzahlausgabe

Beitrag von schwar01 (ForumUser / 20 / 0 / 0 ) »
Hallo liebe ABAP'ler,

vielleicht kann mir jemand weiter helfen.
Ich verwendet den FuBa REUSE_ALV_GRID_DISPLAY und möchte die ALV-Ausgabe mit variabler Spaltenanzahl gestalten, die mir erst zur Laufzeit bekannt ist.
Wäre echt super, wenn das klappen sollte.

Viele Grüße

Andreas

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


REUSE_ALV_GRID_DISPLAY mit variabler Spaltenanzahlausgabe

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,
ich habe es nur mal für den REUSE_ALV_LIST_DISPLAY gemacht, sollte aber vom Prinzip das gleiche sein.

1.) Beim Aufbau des Feldkataloges
gs_fieldcat-no_out = gc_x. "Feld ausblenden gc_x = 'X.
damit werden die Spalten auf nicht ausgeben gesetzt
2.) In 4.6x wir der ALV-Buffer gespreichert, dafür war es notwenig
den Buffer immer vor der Ausgabe des ALV's zurückzusetzen
submit BALVBUFDEL and return.
"siehe Hinweis 643330 Buffer ist nicht "zurückgesetzt

Hoffentlich konnte ich helfen
Gruß Wolfgang

Leider ist es etwas komplizierter

Beitrag von schwar01 (ForumUser / 20 / 0 / 0 ) »
Hallo Wolfgang,

vielen Dank für Deine Antwort. Leider ist das Thema etwas komplexer. Die Spaltenanzahl kann zwischen 100 und 200 liegen. Jetzt suche ich nach einer Möglichkeit eine variable Struktur z.B. mit ASSIGN zur Laufzeit zu erweitern. Meinst Du so etwas wäre möglich?

Gruß

Andreas

REUSE_ALV_GRID_DISPLAY mit variabler Spaltenanzahlausgabe

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo Andreas,
mit ASSIGN kenne ich mich nicht so aus.
In meinem Beispiel habe ich das aber auch für über 50 Spalten
so ausgeführt (hatte auch keine andere Idee wie das gehen könnte).

Wenn Du eine geschickte Lösung findest, würde ich mich über einen Tip
freuen.

Gruß Wolfgangi

Hallo Wolfgang

Beitrag von schwar01 (ForumUser / 20 / 0 / 0 ) »
Hallo Wolfgang,

klar informiere ich Dich. Nochmals vielen Dank.

Gruß

Andreas

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo Andreas,

ist dein Problem eigentlich die ALV-Ausgabe oder das Anlegen einer variablen Struktur?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Hallo Stefan

Beitrag von schwar01 (ForumUser / 20 / 0 / 0 ) »
Hallo Stefan,

nett, dass Du dich eingeklingt hast. Es liegt nicht am ALV sondern beim Anlegen der variablen Struktur.

Gruß

Andreas

Re: Hallo Stefan

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
schwar01 hat geschrieben:Es liegt nicht am ALV sondern beim Anlegen der variablen Struktur.
Wie bekommst du denn die Angaben wieviele Felder von welchem Typ du in der Tabelle haben willst?

Wenn du alle Daten hast um einen Feldkatalog zu erstellen, dann kannst du mit der Klasse/Methode CL_ALV_TABLE_CREATE->CREATE_DYNAMIC_TABLE eine Tabelle anlegen. (ACHTUNG: das ganze wird über den OO-ALV-Feldkatalog TYPE LVC_T_FCAT realisiert.)

Eine andere Möglichkeit wird hier beschrieben: http://www.abapforum.com/viewtopic.php?t=7447
Gruß Hendrik

Beitrag von schwar01 (ForumUser / 20 / 0 / 0 ) »
Hallo Hendrik,

Typ und Länge der Strukturfelder wären immer gleich und somit vor Programmstart schon bekannt. Nur die Anzahl wäre verschieden. Es geht darum, dass zu jeder Stückliste eine Spalte im ALV erzeugt wird iin dem das Material 4711 steckt. Also eine Zeile je Materialnummer und X Spalten je dazugehöriger Stückliste.

Viele Grüße

Andreas

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo Andreas,

schau dir mal an, ob ein solches Programm dir gerecht wird. ( Evtl. im Debugger schauen, was da passiert ).

Code: Alles auswählen.

REPORT LINE-SIZE 200.

FIELD-SYMBOLS: <tab> TYPE table,
               <line> type any.
DATA: g_subrc TYPE sysubrc.


END-OF-SELECTION.
  DO 5 TIMES.
    PERFORM create_var_struct USING    sy-index
                              CHANGING g_subrc.
    IF g_subrc = 0.
      WRITE:/ 'Struktur erzeugt'.
      append initial line to <tab>.
      loop at <tab> assigning <line>.
        clear <line> with 'X'.
        write:/ <line>.
      endloop.
    ENDIF.
  ENDDO.

*---------------------------------------------------------------------*
*       FORM create_var_struct                                        *
*---------------------------------------------------------------------*
FORM create_var_struct USING    value(i_anzahl) TYPE syindex
                                CHANGING e_subrc         TYPE sysubrc.

  CONSTANTS: formname TYPE syrepid VALUE 'CREATE_VAR_STRUCT_FROM'.

  DATA: t_source  TYPE STANDARD TABLE OF abapsource
                  WITH NON-UNIQUE DEFAULT KEY,
        wa_source LIKE LINE OF t_source,
        progname  TYPE syrepid.

  DATA: err_line         TYPE sytabix,
        err_message      TYPE text120,
        n4(4)            TYPE n.

* worst case assumption
  e_subrc = 4.

  FORMAT COLOR OFF INTENSIFIED ON.
  WRITE:/ 'Erzeuge Struktur mit Länge',i_anzahl.

* Aufbau des Subroutinepools.
  DEFINE as.
    wa_source = &1.
    append wa_source to t_source.
  END-OF-DEFINITION.
  as 'REPORT.'.
  as 'TYPES: BEGIN OF TY,'.
* Variabler Anteil
  DO i_anzahl TIMES.
    n4 = sy-index.
    CONCATENATE 'FELD' n4 INTO wa_source.
    CONCATENATE wa_source 'TYPE TEXT20,'
        INTO wa_source SEPARATED BY space.
    APPEND wa_source TO t_source.
  ENDDO.
  as '      END OF TY.'.
* Tabelle mit variabler Struktur
  as 'DATA tab TYPE STANDARD TABLE OF ty WITH NON-UNIQUE DEFAULT KEY.'.
  as space.
  as space.
  CONCATENATE 'FORM' formname 'USING VALUE(i_anzahl) TYPE syindex.'
      INTO wa_source SEPARATED BY space.
  APPEND wa_source TO t_source.
* Callback mit variable Struktur
  as 'PERFORM receive_structure in program (sy-cprog) using tab.'.
  as 'ENDFORM.'.



* Erzeugen des Subroutinepools ( evtl. Fehler abfangen )
  GENERATE SUBROUTINE POOL t_source NAME progname
     MESSAGE err_message
     LINE    err_line.
  IF progname IS INITIAL.
    FORMAT COLOR 6 INTENSIFIED OFF.
    WRITE: 'Zeile',err_line,
           ': Message',err_message.
    EXIT.
  ELSE.
    FORMAT COLOR 5 INTENSIFIED OFF.
    WRITE: 'Name',progname.
  ENDIF.

* holen der Struktur
  PERFORM (formname) IN PROGRAM (progname) USING i_anzahl.
* Alles zurückgeben
  CLEAR e_subrc.
ENDFORM.

*---------------------------------------------------------------------*
*       FORM receive_structure                                        *
*---------------------------------------------------------------------*
*  Wird aus Subroutinepool gerufen um Tabelle assignen zu können      *
*---------------------------------------------------------------------*
FORM receive_structure USING tab TYPE table.
  ASSIGN tab TO <tab>.
ENDFORM.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Hallo Stefan

Beitrag von schwar01 (ForumUser / 20 / 0 / 0 ) »
Hallo Stefan,

das ist ja Klasse. Ich denke, dass dies die passende Lösung ist. Baue das Teil gleich morgen in meinen ABAP ein. Gebe Dir dann Bescheid wenn's funktioniert.
Nochmals vielen Dank.

Gruß

Andreas

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5565
Views
Checkbox-Inhalt bei REUSE-ALV-GRID-DISPLAY-LVC
von Ucke » 19.11.2006 21:18 • Verfasst in ABAP® Core
2
Antw.
3157
Views
REUSE _ ALV _ LIST _ DISPLAY - Zeile nicht markieren
von Gast » 12.09.2005 08:42 • Verfasst in ABAP® Core
1
Antw.
2743
Views
Page up and down im REUSE-ALV-Grid
von sapdepp » 24.08.2011 12:11 • Verfasst in ABAP® Core
4
Antw.
2527
Views
suche fieldcatalog - Name für Spaltenkopf bei REUSE-ALV-GRID
von jogi » 20.04.2005 15:23 • Verfasst in Dialogprogrammierung
2
Antw.
1269
Views
variabler Termschlüssel
von Gast » 05.04.2005 11:56 • Verfasst in Financials

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 7 Stunden von tar 8 / 198
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1502
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 381

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

Regex in where
vor 7 Stunden von tar 8 / 198
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1502
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 381

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3269
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9828