Daten aus ALV - Zeile in Dynpro anzeigen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Daten aus ALV - Zeile in Dynpro anzeigen

Beitrag von annaarnst (ForumUser / 54 / 0 / 0 ) »
Hallo profis,

ich versuche ein Problemchen zu lösen, und zwar:

in ALV wähle ich eine Zeile aus,
per Knopfdruck möchte ich, dass bestimmte werte aus dieser Zeile
in einem Dynpro angezeigt werden,
in Dynpro werden dann die Daten geändert und zurück
an ALV (in diese Zeile) geschickt).

Nun habe ich es versucht folgendes zu lösen:
- ich habe eine globale Structure erstellt (gs_allocate).
- die verwende ich auch in Dynpro.
- bevor ich Dynpro aufrufe setze ich (hier nur ein Wert) in structure
- dann rufe ich Dynpro (bzw. Funktion, die diesn Dynpro aufrufr) auf.

Hier:

In der Klasse:
" gs_allocate-CUR_LANDSCAPE = ls_assign_landscapes.
PERFORM plan_reallocation IN PROGRAM saplzdssis_fg__view."

Im Funktionsbaustein:

"FORM plan_reallocation .
CALL SCREEN 101 STARTING AT 5 5.
ENDFORM. " Plan_reallocation"

Im Anhang ist noch mal genauer dargestellt.

Bitte bitte, gibt mir einen Tip oder Beispiel wie man das macht.
Das würde mir wirlich sehr weiter helfen :-(

Viele Grüße,
Anna

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


Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

mach doch einfach die Zeile oder die Felder zum editieren auf.

Lies mal in der Doku nach, (Data Changed etc.).

Da steht genau drin wie man Felder aufmacht, zumacht und die geänderten Felddaten prüft und in die "echte" Tabelle stellt.

z.B.
Vorher Edit-Button in Buttonleiste einfügen,
User-command-Prozedur einrichten,
Zeile rausfinden, die geändert werden soll (wo ist der Cursor)
Felder aufmachen,
Data Changed abfangen
Daten prüfen und "rüberstellen".


Gruß
babap

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) »
Hallo Anna,

wo sind jetzt Deine genauen Probleme?
Ich vermute, Du benutzt den ALV-Aufruf via 'set_table_for_first_display'.

Dann kannst Du den Doppelklick beispielsweise so setzen:

DATA: go_receiver TYPE REF TO lcl_event_receiver.
* Event double_click initialisieren (direkt nach dem 'set_table_for_first_display')

CREATE OBJECT go_receiver.
SET HANDLER go_receiver->handle_double_click FOR go_grid.


wobei

*===============================================================
* class lcl_event_receiver: local class to handle event DOUBLE_CLICK
CLASS lcl_event_receiver DEFINITION.

PUBLIC SECTION.
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column,
get_row EXPORTING ex_row TYPE lvc_s_row,
put_row IMPORTING im_row TYPE lvc_s_row.

PRIVATE SECTION.
DATA: kl_row TYPE lvc_s_row.
ENDCLASS. "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.

METHOD handle_double_click.
kl_row = e_row.
CALL SCREEN 200.
ENDMETHOD. "handle_double_click

METHOD get_row.
ex_row = kl_row.
ENDMETHOD. "get_row

METHOD put_row.
kl_row = im_row.
ENDMETHOD. "put row

ENDCLASS. "lcl_event_receiver IMPLEMENTATION


In den nachsten Dynpro (200) kannst Du mit

CALL METHOD go_receiver->get_row
IMPORTING
ex_row = lv_line.
* Zeile für Kopfdaten ermitteln
READ TABLE gt_outtab INTO gs_outtab INDEX lv_line.

...


weiterarbeiten

Viel Erfolg
Matthias

Beitrag von annaarnst (ForumUser / 54 / 0 / 0 ) »
Hallo,

mein Problem ist... ich weiss nicht wie ich dem Dynpro, der ensptrechenden Felder enthält sagen kann, dass er die Werte von ALV nimmt...
Also welche Werte aus ALV er nehmen soll das weiss ich.

Wie ich sie aber dem Dnpro zuordne, das weiss ich nicht.

In der Klasse rufe ich ja Dynpro nur auf...

PERFORM allocate IN PROGRAM saplzdssis_fg__view.

.....
FORM allocate .
CALL SCREEN 102 STARTING AT 5 5.
ENDFORM.

Und die Felder Namen im screen sind:
AF_ISDSSSETUP,
AF_GoLIVE usw.

Also muss ich irgendwie in meiner Klasse sagen,
ruf mir diesen Dynpro auf und zeige dort die Werte aus ALV (<fs_systemset_data> = Aktuelle Zeile).

z.B. so in der Art: AF_ISDSSSETUP = <fs_systemset_data>-isdsssetup.

Nun so geht es nicht.

das fehlt was... nun die Frage ist was? :(

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) »
Hallo Anna,

Vor dem Aufruf des ALV hast Du Deine Daten doch in einer internen Tabelle z.B. gt_outtab.

in dem Screen 102 hast du jetzt Dein PB-Modul.
In dem kannst Du Deine Form datenlesen_102 einbauen.

Und dann hilft
CALL METHOD go_receiver->get_row
IMPORTING
ex_row = lv_line.
* Zeile für Kopfdaten ermitteln
READ TABLE gt_outtab INTO gs_outtab INDEX lv_line.

Damit hast Du die Daten, die Du ausgeben willst in der Struktur gs_outtab.
Es fehlen nur noch die Zuweisung zu den Feldern des Dynpros.

Viele Grüße
Matthias

Beitrag von annaarnst (ForumUser / 54 / 0 / 0 ) »
Das Problem ist, ich arbeite mit Klassen... (Objectorientiert).
Dynpro habe ich extra in Funktionsbaustein gebaut.

Wenn ich eine globale Struktur in der Klasse erzeuge,
sieht der Funktionsbaustein sie nicht....

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) »
Hallo Anna,
Wenn ich eine globale Struktur in der Klasse erzeuge,
sieht der Funktionsbaustein sie nicht....


Du kannst aber eine Methode implementieren, die die Klassenwerte ausgibt.
Und die kannst Du im Funktionsbaustein aufrufen. So ähnlich habe ich es mit get_row in meinem Beispiel auch gemacht.

Viele Grüße
Matthias

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

nach einem Doppelklick rufst Du einen Funktionsbaustein auf. Dem gibtst Du die Daten mit. (Changing-Parameter!)
Der Funktionsbaustein stellt sie in globale Felder und ruft das Dynpro auf.
Nach der Rückkehr in den Funktionsbaustein stellt er die veränderten Werte in die Übergabefelder und gibt sie der aufrufenden Prozedur zurück.

Die kann sie dann in der ALV-Tabelle ändern.

Gruß
babap
P.S. ich persönlich würde ja die ALV-Felder zum Editieren öffnen ...

Beitrag von annaarnst (ForumUser / 54 / 0 / 0 ) »
Hallo,

es hat geklappt! :)
Danke!!!

VG,
Anna

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo Anna,
annaarnst hat geschrieben:...
es hat geklappt! :)
Danke!!!
freut mich, daß es geklappt hat.

Aber mich würde jetzt noch interessieren WAS geklappt hat.

Wie hast Du die ursprüngliche Anforderung umgesetzt???

Danke schon mal für Deine Zusatzinfos.
Gruß
babap

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1524
Views
ausgewählte Zeile anzeigen
von khb » 16.02.2015 11:20 • Verfasst in ABAP Objects®
13
Antw.
3885
Views
Degugger - Inhalte der aktuellen Zeile anzeigen
von macler » 17.08.2006 11:03 • Verfasst in ABAP® für Anfänger
2
Antw.
2781
Views
Zeile auf ALV-Grid selektieren Daten auslesen
von crustycheesewithextrachee » 26.04.2006 11:12 • Verfasst in ABAP Objects®
0
Antw.
937
Views
Steuerprüfer GDPDU - Daten rutschen um eine Zeile
von missforgotten » 25.04.2019 14:10 • Verfasst in Human Resources
0
Antw.
1142
Views
Leere Zeile von Dynpro wegoptimiert
von SwordMaster » 04.08.2006 08:38 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 13 Stunden von msfox 18 / 11049
Dialog-Container mit Toolbar/Status
vor 15 Stunden von black_adept gelöst 27 / 4155
IT0024 Qualifikationen CP-ID
vor 17 Stunden von ArjenR 1 / 134

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

Trennen Strasse und Hausnummer
vor 13 Stunden von msfox 18 / 11049
Dialog-Container mit Toolbar/Status
vor 15 Stunden von black_adept gelöst 27 / 4155
IT0024 Qualifikationen CP-ID
vor 17 Stunden von ArjenR 1 / 134

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 17 Stunden von ArjenR 1 / 134
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3070
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9667