Spalten einer int. Tabelle auf Einträge überprüfen

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

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

Spalten einer int. Tabelle auf Einträge überprüfen

Beitrag von Wolke (ForumUser / 3 / 1 / 0 ) »
Hallo zusammen,

da ich noch nicht so lange mit SAP arbeite oder mit ABAP programmiert habe, stehe ich vor folgendem Problem:

aus einer internen Tabelle soll ich nur die Spalten ausgeben, die mind. einen Eintrag enthalten. Falls kein Eintrag vorhanden ist, soll die Spalte nicht ausgegeben werden.
Mein Plan war es, über die Spalte zu loopen und mithilfe eines Zählers die Einträge pro Spalte zu zählen.
Wahrscheinlich müsste ich auch mit Feldsymbolen arbeiten, doch bis jetzt verstehe ich das alles noch nicht so ganz und hoffe, dass ihr mir weiterhelfen könnt :-)

LG Wolke

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


Re: Spalten einer int. Tabelle auf Einträge überprüfen

Beitrag von Pyro (Specialist / 121 / 14 / 18 ) »
Guten Morgen,

ich weiß gerade nicht genau, was du mit "Spalte ausgeben" bzw "Spalte nicht ausgeben" meinst, aber deiner Fragestellung nach zu Urteilen wäre es ca sowas, was du brauchst:

Code: Alles auswählen.

LOOP AT itab INTO wa.
    DO n TIMES.
         ASSIGN COMPONENT sy-index OF STRUCTURE wa TO <fs>.
         IF <fs> IS INITIAL.
              "DO ANYTHING
         ENDIF.
    ENDDO.
ENDLOOP.
n ist dabei die Anzahl deiner Spalten

EDIT: Ist natürlich Perfomancetechnisch nicht zwingend das beste sowas zu machen:P

Re: Spalten einer int. Tabelle auf Einträge überprüfen

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Ich vermute mal, dass es darum geht, dass bei einer tabellarischen Ausgabe nur die Spalten ausgegeben werden sollen, die in irgendeiner Zeile min. einen Wert haben.

Das Coding von Pyro ist dahingehend schon mal brauchbar und muss nur noch ein wenig adaptiert werden:

Code: Alles auswählen.

data: lt_index type INT4_TABLE.
field-symbols: <la_line> type any.
LOOP AT itab ASSIGNINg <la_line>.
    DO.
         ASSIGN COMPONENT sy-index OF STRUCTURE <la_line> TO <fs>.
         IF sy-subrc NE 0.
           exit. "Abbruchbedingung (Ende der Struktur erreicht)
         ELSEIF <fs> IS NOT INITIAL.     
           append sy-index to lt_index. "Die befüllten Spaltenindizes merken
         ENDIF.
    ENDDO.
ENDLOOP.
SORT lt_index.
delete adjacent duplicates from lt_index. "Verdichten
LOOP AT itab ASSIGNINg <la_line>.
    DO.
         ASSIGN COMPONENT sy-index OF STRUCTURE <la_line> TO <fs>.  
         IF sy-subrc NE 0.
           exit. "Abbruchbedingung (Ende der Struktur erreicht)
         ELSE.
           READ TABLE lt_index TRANSPORTING no fields binary search 
             with key table_line = sy-index. "Soll die Spalte ausgegeben werden?
           IF sy-subrc EQ 0.
* Spalte ausgeben
           ENDIF.
         ENDIF.
    ENDDO.
ENDLOOP.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4318
Views
doppelte Einträge löschen Distinct über mehrere Spalten
von tmxx » 03.03.2008 13:53 • Verfasst in ABAP® für Anfänger
13
Antw.
5629
Views
Einträge zählen interne Tabelle
von L0w-RiDer » 08.11.2018 18:58 • Verfasst in ABAP® für Anfänger
1
Antw.
1807
Views
Einträge in interner Tabelle prüfen
von mamba » 21.11.2005 10:25 • Verfasst in ABAP® für Anfänger
4
Antw.
3776
Views
Prüfung vorhandener Einträge in Tabelle
von Stahle71 » 11.05.2016 10:00 • Verfasst in ABAP® für Anfänger
2
Antw.
2371
Views
Einträge aus DB-Tabelle paketweise selektieren
von euro2008 » 28.08.2008 17:00 • Verfasst in ABAP® für Anfänger

Ü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.