ALV markieren und auslesen

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

ALV markieren und auslesen

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
hallo Forum.

ich hab schon überall gesucht und auch schon die ein oder andere Antwort gefunden aber irgendwie hat das nicht so geklappt.
Ich habe ein ALV Grid:

Code: Alles auswählen.

CALL METHOD alv->set_table_for_first_display
    EXPORTING
      i_structure_name = 'zsd_analyse'  
      is_layout        = pt_layout
    CHANGING
      it_outtab        = alv_it_analyse
      it_fieldcatalog  = gt_fieldcat.
Für das Layout habe ich sel_mode = 'A'.

jetzt möchte ich EINE Zeile im Grid markieren und dann auf Knopfdruck diese eine markierte Zeile auslesen und weiterverarbeiten:

Code: Alles auswählen.

FORM get_alv_rows.
 DATA:    lt_rows TYPE lvc_t_row.

    CALL METHOD alv->GET_SELECTED_ROWS
      IMPORTING
        ET_INDEX_ROWS = lt_rows.

ENDFORM. "get_alv_rows
so bekomme ich aber in lt_rows nur den Index und nicht die Werte in der Zeile.
für eine kurze Hilfestellung wäre ich SEHR dankbar!
Gruß, Alex

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Du hast dadurch doch den INDEX.
In dieser Index des Grids ist auch der Index deiner Internen Tabelle.
Also einfach mal ein READ TABLE alv_it_analyse INDEX das_aus_lt_rows.

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Hallo und Danke.

Das hab ich auch schon probiert. Ungefähr so:

Code: Alles auswählen.

READ TABLE alv_it_analyse INTO wa INDEX lt_rows-index.
Da bekomme ich aber den Fehler das lt_rows keinen Header hat und nicht auf das Feld INDEX zugegriffen werden kann. (oder so ähnlich)

Gruß, ALex

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
SAPAlex hat geschrieben:Hallo und Danke.

Das hab ich auch schon probiert. Ungefähr so:

Code: Alles auswählen.

READ TABLE alv_it_analyse INTO wa INDEX lt_rows-index.
Da bekomme ich aber den Fehler das lt_rows keinen Header hat und nicht auf das Feld INDEX zugegriffen werden kann. (oder so ähnlich)

Gruß, ALex
Stimmt!
lt_rows ist nämlcih auch eine Tabelle, da man ja mehrere Zeilen markieren kann.
Probier mal folgendes:

Code: Alles auswählen.

FORM get_alv_rows. 
 DATA:    lt_rows TYPE lvc_t_row,
               wa_rows TYPE lvc_s_row. 

    CALL METHOD alv->GET_SELECTED_ROWS 
      IMPORTING 
        ET_INDEX_ROWS = lt_rows. 

LOOP AT lt_rows INTO wa_rows.
READ TABLE alv_it_analyse INTO wa INDEX wa_rows-index.
...........

ENDLOOP:

ENDFORM. "get_alv_rows

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
DeathGuardian hat geschrieben:lt_rows ist nämlcih auch eine Tabelle, da man ja mehrere Zeilen markieren kann.
Hmm, macht Sinn! ;-)

Nochmal ne blöde Frage (aber darum bin ich ja im Anfänger Forum :lol:)
Was ist denn der Unterschied zwischen lvc_t_row und lvc_s_row?

Der LOOP sollte bei mir dann nur einmal laufen, da ich auch in meinem Grid nur eine Zeile markieren kann, oder?!

Was ist denn, wenn der User das Grid anders sortiert? Wird dann die interne Tabelle alv_it_analyse auch umsortiert, so dass ich dann über den Index auch auf den richtigen Inhalt zugreife?

Danke für deine Geduld!
Alex

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

wenn Du mal einen Doppelklich auf LVC_T_ROW machst, wirst Du feststellen, dass es sich um einen Tabellentyp mit dem Zeilentyp LVC_S_ROW handelt...

Die Methode GET_SELECTED_ROWS interessiert es nicht, ob Du nur eine oder viele Zeilen auswählen darfst. Damit ist sie für alle Selektionsvarianten verwendbar.
Gruß
Ereglam


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

Beitrag von SAPAlex (ForumUser / 87 / 0 / 0 ) »
Super danke. so funktioniert es! :D

eine letzte Frage: Ich hab jetzt in meinem Layout sel_mode ='A' damit ich die Buttons auf der linken Seite bekomme. Jetzt kann ich aber auch mehrere Zeilen selektieren. Gibt es diese Variante mit den Buttons auch so, dass nur EINE Zeile selektiert werden kann?

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
SAPAlex hat geschrieben:Was ist denn, wenn der User das Grid anders sortiert? Wird dann die interne Tabelle alv_it_analyse auch umsortiert, so dass ich dann über den Index auch auf den richtigen Inhalt zugreife?
Genau!
SAPAlex hat geschrieben:eine letzte Frage: Ich hab jetzt in meinem Layout sel_mode ='A' damit ich die Buttons auf der linken Seite bekomme. Jetzt kann ich aber auch mehrere Zeilen selektieren. Gibt es diese Variante mit den Buttons auch so, dass nur EINE Zeile selektiert werden kann?
So wie es scheint nicht.

Naja, zur Not nachschauen wieviele Zeilen in der lt_rows steht und wenns mehr als 1 ist ne Doffe Meldung ausgeben. ;)

Seite 1 von 1

Vergleichbare Themen

4
Antw.
26883
Views
alv-grid: zeilen markieren und auslesen
von abap-strizi » 24.11.2005 08:50 • Verfasst in ABAP Objects®
3
Antw.
3107
Views
Wie in Sichtenauswahl Markieren?
von samson » 19.08.2005 09:33 • Verfasst in ABAP® für Anfänger
3
Antw.
1808
Views
ALV: ausblenden und markieren
von RiffRaff » 07.09.2004 13:59 • Verfasst in ABAP® Core
2
Antw.
4866
Views
Zeile markieren ALV Grid
von MichaelK » 27.06.2015 16:30 • Verfasst in ABAP® Core
10
Antw.
10513
Views
markieren im Picture Control
von Kaiwalker » 23.04.2007 15:57 • Verfasst in Dialogprogrammierung

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