TableControl: einzelne Zeilen der Ausgabe löschen?

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

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

TableControl: einzelne Zeilen der Ausgabe löschen?

Beitrag von ChrizB ( / / 0 / 3 ) »
Hallo,
ich habe ne Ausgabe mit nem Tablecontrol. ich möchte nun einzelne Zeilen der Ausgabe makieren und bei Drück auf Button sollen die makierten Einträge aus der DB gelöscht werden...

Danke im Voraus :)

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


Beitrag von ChrizB ( / / 0 / 3 ) »
Also bisher rausgefunden habe ich, wie ich EINE Markierung finde...


IF markierung = 'X'.
position = tc_top_line + sy-stepl - 1.
ENDIF.


Damit hab ich jetz die Info, WELCHE Zeile markiert ist... und ob sie markiert ist..
aber wie geht das mit mehreren? Und wie kann ich dann auch wirklich die z.B. 6. Zeile löschen?


Danke

Beitrag von Gast ( / / 0 / 3 ) »
so... das ich mit sy-stepl und nem loop usw. rauskriege welche zeile markiert is schaffe ich nun auch.. jetz nur noch die delete frage :) Danke

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Chris,

schau Dir mal die Hilfe zu DELETE an.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
Hi... also wie ich delete is klar....aber der zusammenhang zu der aktuellen zeile halt nicht...

also mein delete lautet:

DELETE FROM /bhw/tb_fehlertx WHERE guid = feld_tb_fehlertx-guid
AND datum = feld_tb_fehlertx-datum
AND zeit = feld_tb_fehlertx-zeit.


aber in die Abfrage muss i jetz noch irgendwie reinbringen,dass halt NUR die markierte zeile gelöscht wird?!?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Chris,

Scheinbar kennst Du aber doch nicht alle Varianten von DELETE.
Es gibt eine Variante, die für das Löschen einer expliziten Zeile genutzt wird:
DELETE /bhw/tb_fehlertx INDEX position.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
mmh ok.. aber hab irgendwie gerade ne "Denk-Blockade"...

also wenn ich auf 'DEL' drücke soll das ganze passieren...

Tabellenname: /bhw/tb_fehlertx
Interne Tabelle: feld_tb_fehlertx
markierung (wenn ja steht nen x drin)
sy-stepl müsste markierte Zeile stehen..

kannst mir mit syntax evtl. helfen?? werde gleich wahnsinnig, hehe :)

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Chris,

genaugenommen gibt es 2 typische Möglichkeiten:
  1. Löschen über Index
    Hierzu musst Du, wie oben angegeben, Dir den Index der markierten Zeile, z.b. in Variable 'position' besorgen und anschließend mit folgendem Code löschen:

    Code: Alles auswählen.

    DELETE feld_tb_fehlertx INDEX position. "_ohne_ FROM (sonst will's auf die DB)
  2. Löschen mittels Markierung
    Vorbedingung: in der int. Tabelle 'feld_tb_fehlertx' existiert eine Spalte 'mark', das auch als Markierungsfeld im TC benannt ist.
    Hiermit können mehrere markierte Zeile gleichzeitig gelöscht:

    Code: Alles auswählen.

    DELETE feld_tb_fehlertx WHERE mark EQ 'X'.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
so.. noch ne kurze frage zu meinem delete..
(dem ersten)
ich will dort nur EINEN Eintrag löschen... nicht die ganze db... welchen delete muss i dafür nehmen? beim zweiten delete aus der internen tabelle isses mir klar, wie es geht. thx im voraus.

FORM tablecontrol_auswertung USING tc_top_line.

MODIFY TABLE tab_tb_fehlertx FROM /bhw/tb_fehlertx.
tc_zeilen = sy-loopc.
IF markierung = 'X'.
position = tc_top_line + sy-stepl - 1.
IF OK_CODE = 'DELE'.
DELETE /bhw/tb_fehlertx. //wie muss dieser delete ergänzt werden?
DELETE tab_tb_fehlertx INDEX position.


ENDIF.

ENDIF.

ENDFORM. " TableControl_Auswertung

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Chris,

beim Löschen eines einzelnen Satzes von der DB muss immer der vollständige Schlüssel angegeben werden, hier der

Code: Alles auswählen.

DELETE FROM /bhw/tb_fehlertx WHERE guid = feld_tb_fehlertx-guid.
benutzt werden muss.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
danke für deine AW.... habs jetz folgendermaßen gelöst...

Code: Alles auswählen.

      READ table tab_tb_fehlertx index position INTO feld_tb_fehlertx.

        DELETE /bhw/tb_fehlertx from feld_tb_fehlertx.

Und nun läufts endlich *hehe* vielen dank für deine hilfe...

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2467
Views
ALV: Einzelne Zeilen nicht löschbar
von Verzettelt » 08.06.2006 08:47 • Verfasst in ABAP Objects®
2
Antw.
5387
Views
Einzelne Zeilen im ALV auf nicht editierbar setzen nur wie?
von GAST » 07.12.2004 15:26 • Verfasst in ABAP Objects®
2
Antw.
3509
Views
Tablecontrol -> Mehr Zeilen markieren trotz Einstellung
von nopp » 06.12.2006 08:35 • Verfasst in Dialogprogrammierung
8
Antw.
6056
Views
ALV-Liste: Einzelne Summen-Felder (bzw. Zeilen) ausgeben
von S.D.E.F. » 12.12.2005 12:19 • Verfasst in ABAP® Core
4
Antw.
3604
Views
Table Control: Einzelne Zeilen sperren? Eilt etwas... :(
von Spaulding » 27.04.2005 12:56 • Verfasst in Dialogprogrammierung

Ü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

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2416
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9006