Generisch interne Tabelle löschen mit IndexNummer

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

Generisch interne Tabelle löschen mit IndexNummer

Beitrag von retsch (ForumUser / 48 / 5 / 1 ) »
Hi,

ich habe eine interne Tabelle, welche dynamisch erstellt wurde.

Ich gebe die Tabelle in einem ALV aus und möchte die selektierte Zeilen entfernen (CL_SALV_TABLE)

Mit create data ref_data type ref to data wurde die Datenreferenz erstellt.
und dann ASSIGN ref_data to field-symbole(<fs>).

Dadurch habe ich alle Daten im Feldsymbol.

Wie kann ich im Feldsymbole die n.te Zeile entfernen?

Danke

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


Re: Generisch interne Tabelle löschen mit IndexNummer

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Du musst dein Feldsymbol als "STANDARD TABLE" oder "SORTED TABLE" definieren, je nachdem welchen Tabellentyp du bei CREATE DATA verwendet hast. Alternativ geht auch "INDEX TABLE", das umfasst sowohl standard als auch sortierte Tabellen.
Damit funktionieren dann alle Tabellenoperationen (READ, LOOP, DELETE usw.) auch mit der Angabe eines INDEX.

Wenn du eine hashed Tabelle verwendest, geht das natürlich nicht und du musst immer mit dem Tabellenschlüssel arbeiten.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
retsch

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

Re: Generisch interne Tabelle löschen mit IndexNummer

Beitrag von Lukas Sanders (ForumUser / 68 / 7 / 34 ) »
Hallo,

wenn das Feldsymbol auf eine interne Tabelle zeigt, kann man auch damit arbeiten wie mit einer internen Tabelle:

Code: Alles auswählen.

DELETE <fs> INDEX lv_index.
Die Syntaxprüfung meckert nur, wenn das Feldsymbol völlig generisch typisiert ist (dann ist ja nicht sichergestellt, dass es auch wirklich auf eine Tabelle zeigt) oder wenn es durch die generische Typisierung "TYPE ANY TABLE" möglich wäre, dass das Feldsymbol auf eine Hashtabelle zeigt (dort sind ja keine Indexangaben erlaubt).

Man muss das Feldsymbol also vorab mit "TYPE STANDARD/SORTED TABLE" deklarieren, dann funktioniert es:

Code: Alles auswählen.

DATA: gr_table TYPE REF TO data,
      gv_int   TYPE i.

FIELD-SYMBOLS: <fs> TYPE STANDARD TABLE.

START-OF-SELECTION.

  CREATE DATA gr_table TYPE TABLE OF i.
  ASSIGN gr_table->* TO <fs>.

  DO 10 TIMES.
    gv_int = gv_int + 1.
    APPEND gv_int TO <fs>.
  ENDDO.

  " --> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

  DELETE <fs> INDEX 5.

  " --> 1, 2, 3, 4, 6, 7, 8, 9, 10

Folgende Benutzer bedankten sich beim Autor Lukas Sanders für den Beitrag:
retsch


Seite 1 von 1

Vergleichbare Themen

4
Antw.
14916
Views
interne Tabelle löschen
von lisa » 17.09.2008 11:19 • Verfasst in ABAP® für Anfänger
19
Antw.
8598
Views
Interne Tabelle: Einen Eintrag löschen
von Gast » 21.06.2005 09:23 • Verfasst in ABAP® für Anfänger
1
Antw.
1015
Views
4
Antw.
3466
Views
Interne Tabelle Duplikate löschen Zähler Inkrementieren
von SamyB » 19.03.2012 16:52 • Verfasst in ABAP® für Anfänger
4
Antw.
1060
Views

Ü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

Daten an Tabelle binden
Gestern von Bright4.5 1 / 533
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2162
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8757