ALV markierte Zelle auslesen und Aktion

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

ALV markierte Zelle auslesen und Aktion

Beitrag von Mark33 (ForumUser / 60 / 1 / 0 ) »
Hallo zusammen,

wie funktioniert denn folgendes:

Der Benutzer klickt doppelt auf eine Zelle des ALVs. (hab hier schon was gefunden, aber ich wollte meine Fragen nicht in ein bestehendes Thema schreiben http://www.abapforum.com/forum/viewtopi ... iew=unread )

Anschließend soll abhängig von der Spalte, auf die gelickt wurde, eine Transaktion aufgerufen werden (z.B. MM03, VA03...)
Also wenn der Benutzer in dem ALV auf eine Zelle der Spalte "Materialnr" klickt => Aufruf der Transaktion MM03.

Den Wert kann ich mir mit der Instanzmethode get_current_cell der Klasse CL_GUI_ALV_GRID ermitteln. Aber wie weiß ich, wenn ich z.B. den wert "24578" erhalte, ob es sich um eine Materialnr. oder um eine Auftragsnr. handelt?

Ich hätte jetzt einfach einen "test - Select" nacheinander auf die entsprechenden Tabellen gemacht und wenn der Sy-subrc = 0 ergibt, dann rufe ich die entsprechende Transaktion auf. (Blöd nur, wenn 24578 auch eine Materialnummer ist und gleichzeitig eine Auftragsnummer...)



ODER:
Einfach den Zeilenindex lesen und dann in einen Arbeitsbereich setzen und mit Zugriff auf das entsprechende Feld z.B. -matnr den Wert auslesen und die mm03 aufrufen. (so ist es auch in dem Link beschrieben)
Was ist aber, wenn z.B. die Interne Tabelle so aufgebaut ist: |BELEGNR1|BELEGRN2|MATNR1|MATNR2| also in einer Zeile zwei Spalten vorkommen, die vom gleichen Typ sind. (Macht zwar nicht so viel Sinn, aber mich interessiert das Prinzip)
Dann bring mir der Zeilenindex nicht wirklich was.

Wie kann man denn so etwas am besten erledigen?
Man müsste vielleicht festestellen können, zu welchem Feldkatalogelement der entsprechende Eintrag gehört?

Danke!

Viele Grüße

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


Re: ALV markierte Zelle auslesen und Aktion

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Ich habe gerade kein System zur Hand, weil ich gleich einen Vortrag halte. Aber dafür gibt es eine Methode. "get_selfield" oder so ähnlich. Debugge mal die SE16, wenn du ein User Command ausführst, da fällst du über die Methode.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: ALV markierte Zelle auslesen und Aktion

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

also du musst einen Event Handler auf das Ereignis - on double click registrieren und dann bekommst du dort ja alle Informationen übergeben - auch welche Spalte / Celle syelektiert wurde.Das ist alles !

Gruss Jens
thanks Jens

Re: ALV markierte Zelle auslesen und Aktion

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
hi!

Ich versteh jetzt nicht wo hier das Problem liegt.
Beim DOUBLE_CLICK werden doch schon alle Informationen übergeben E_ROW und E_COLUMN.
Damit kann man dann entweder in der internen Tabelle direkt lesen oder eben den Inhalt mit GET_CURRENT_CELL auslesen.
Dann muss man halt überlegen anhand welcher Kriterien man welche Transaktion aufruft.

Wie schon erwähnt hat der Ansatz über den Feldkatalog gewisse Nachteile, da man "per Name" alles abfragen muss, aber er bleibt meines erachtens trotzdem die einzige Möglichkeit um in einem "generischen" Programm abghängig vom Feldtyp bestimmte Funktionen aufzurufen. Einzige andere Möglichkeit wäre RegEx zu verwenden aber das ist nur dann sinnvoll, wenn die Nummern unterschiedliche Formate haben (z.b. ISBN vs. KFZ-Kennzeichen usw.)

Ich gehe mal davon aus, dass du eine allgemeine Funktion schreiben möchtest die auf unterschiedlichste ALV-Darstellungen anwendbar ist und je nach Feldtyp die zugehörigen Funktionen aufruft.

lg ADT

EDIT: Hoppla, jetzt weiß ich was hier fehlt! Beim Event-Handler kann man eine Variable angeben die SENDER heißt. Sobald der Event vom ALV aufgerufen wird, erhält man darüber die aktuelle ALV Instanz und jetzt reicht es aus die Methode GET_FRONTEND_FIELDCATALOG aufzurufen um den Feldkatalog zu erhalten.
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

4
Antw.
5531
Views
ALV markierte Zeilen auslesen
von bob_sheknowdas » 13.09.2014 21:15 • Verfasst in Web-Dynpro, BSP + BHTML
10
Antw.
4073
Views
markierte Zeile in N1PATORG auslesen
von sapdepp » 11.10.2018 09:22 • Verfasst in ABAP Objects®
4
Antw.
11173
Views
ALV / CL_SALV TABLE / Markierte Zeilen auslesen
von Michael71 » 24.11.2011 09:04 • Verfasst in ABAP Objects®
1
Antw.
1991
Views
Aktion in WebDynpro auslösen
von sapnewbee » 22.11.2015 11:41 • Verfasst in ABAP® für Anfänger
0
Antw.
7315
Views
Aktion in Aktivitätenleiste berechtigen
von matse » 11.11.2021 10:05 • Verfasst in Sonstige Module

Aktuelle Forenbeiträge

Regex in where
vor 7 Stunden von tar 8 / 207
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 / 207
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