ALV-Grid verarbeiten mit REUSE_ALV_GRID_DISPLAY

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

ALV-Grid verarbeiten mit REUSE_ALV_GRID_DISPLAY

Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Hallo Zusammen,

ich habe mit dem FuBau REUSE_ALV_GRID_DISPLAY eine ALV-Liste mit Boxen zum Markieren der Zeilen erstellt.
Nun möchte ich, dass die Inhalte der markierten Zeilen weiterverarbeitet werden.

Ich habe schon viel in diesem Zusammenhang recherchiert, bin aber meistens auf Anwendungen gestoßen, bei denen über Methodenaufrufe objektorientiert gearbeitet wird. Da ich etwas unter Zeitdruck bin, möchte ich nun nicht alles umschmeißen, sondern gerne mit dem Code weiterarbeiten, den ich schon erstellt habe.

Kann mir jemand auf die Sprünge helfen, wie ich in diesem Zusammenhang markierte Zeilen weiterverarbeiten kann? Wie kann mein Programm erkennen, welche Zeilen markiert sind und wie komme ich dann an die entsprechenden Inhalte?

Die wichtigsten Codesequenzen poste ich:

Code: Alles auswählen.

*Die wichtigsten Deklarationen in diesem Zusammenhang
  Data: wa_alv type satz,
  itab_alv type table of satz.
  DATA: 	g_repid   LIKE   sy-repid.
  DATA:	itab_feldkatalog   TYPE   slis_t_fieldcat_alv,
  	wa_feldkatalog     TYPE   line of slis_t_fieldcat_alv,
  	gs_layout	   TYPE   slis_layout_alv,
  	wa_aktuelle_zeile  like line of itab_alv.

Code: Alles auswählen.

* FuBau zum Erstellen des ALVs
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
	EXPORTING
		i_callback_program = g_repid
		i_callback_user_command = 'DOPPELKLICK'
		I_GRID_TITLE = 'Ausgabe Fakturen'
		IT_FIELDCAT = itab_feldkatalog
		is_layout = gs_layout
	TABLES
		T_OUTTAB = itab_alv
Nicht verwirren lassen vom Doppelklick. Im Moment soll da noch gar nichts gemacht werden!

Code: Alles auswählen.

*Kleine Unterroutine, um Parameter für is_layout zu füllen
form layout_allg_build USING ls_layout TYPE slis_layout_alv.
  ls_layout-zebra  = 'X'.
  ls_layout-colwidth_optimize = 'X'.
  ls_layout-box_fieldname = 'MARKIERUNG'.
  endform.                    "layout_allg_build

Code: Alles auswählen.

* Auf diese Art und Weise fülle ich die interne Tabelle für den Feldkatalog
* Natürlich wiederholt sich diese Codesequenz entsprechend der Anzahl der Spalten 
clear wa_Feldkatalog.
  	wa_feldkatalog-fieldname	= 'KUNRG'.
  	wa_feldkatalog-seltext_l	= 'DEBITOR'.
  APPEND wa_Feldkatalog TO itab_feldkatalog.
Ich würde mich sehr über Eure Vorschläge freuen :idea:
Nimm die Menschen wie sie sind, es gibt keine anderen.

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


Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Ok, jetzt bin ich soweit, dass ich weiß, dass ich über mein Markierungsfeld in der internen Tabelle abfragen kann, welche Zeilen markiert wurden.

Ich habe dies mal ausprobiert, in dem ich einfach die Inhalte der markierten Zeilen per write-Befehl als Liste ausgegeben habe. Das Ganze funktioniert bei mir jetz so:
ich rufe das Programm soweit auf, dass ich die ALV-Grid-Ausgabe erhalte. Dann markiere ich Zeilen aus dem ALV. Über den grünen Zurück-Pfeil komme ich dann zur 'normalen' Listausgabe.
Genau an diesem Punkt weiß ich augenblicklich nicht weiter: wie kann ich die Inhalte der markierten Zeilen ohne Drücken des Zurück-Buttons weiterverarbeiten?
Gibt es da Standards, die man benutzen kann?

Ich würde mich sehr über eine Antwort von Euch freuen!
Nimm die Menschen wie sie sind, es gibt keine anderen.

Beitrag von ralf.wenzel (Top Expert / 4004 / 208 / 282 ) »
Auf welche Weise willst du die Sätze denn weiterverarbeiten? Üblicherweise markiert man was und dann macht man eine Aktion (Klick auf einen Button oder so) und dann wird weiterverarbeitet.

Zuständig wäre dann das Unterprogramm, dass du in der Zeile

i_callback_user_command = 'DOPPELKLICK'

benennst.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Hallo Ralf,

ja, also das mit dem Doppelklick ist quasi nur Copy'n'Paste aus einer Vorlage.

Ich würde gerne durch den Klick auf ein Symbol/Drucktaste die markierten Zeilen weiterverarbeiten.

Kannst Du mir dazu Tips geben? :)
Nimm die Menschen wie sie sind, es gibt keine anderen.

Beitrag von ralf.wenzel (Top Expert / 4004 / 208 / 282 ) »
Was meinst du denn mit weiterverarbeiten?

Hast du schonmal die Hilfe zum ALV-FuBau gelesen? Da ist das eigentlich so einfach beschrieben, dass sogar ich es verstanden habe. Insbesondere in der Hilfe zu dem von mir zitierten Parameter.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von uh (Specialist / 158 / 0 / 1 ) »
Hallo,

schaue dir das Programm BCALV_TEST_FULLSCREEN_EDIT an. Da siehst du, wie man das macht. Deinen Button pinselst du einfach in den Status des Ausgabeschirms.

Wenn du weitere Fragen hast....


Grüße

uh

Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Hallo,

eigentlich wollte ich es ja so machen, dass ich mit diesem kleinen Lupensymbol, welches schon vorhanden ist, arbeite. Mit Weiterverarbeiten meine ich, dass ich noch weitere Daten zu den markierten Zeilen in einer weiteren Liste (diesmal aber eine 'stinknormale' Liste) ausgeben möchte.
Wenn ich nun aber auf das Lupensymbol klicke, kommt so eine etwas nichtssagende Detailansicht zu einer der markierten Zeilen.

Ich habe mir mittlerweile die Doku zu 'i_callback_user_command' und überhaupt zum Funktionsbaustein angetan. Wenn ich aber ehrlich bin, verstehe ich da nicht viel. :cry: Z.B. woher ich weiß, welchen Funktionscode z.B. das Lupensymbol benutzt oder wie ich da meinen eigenen setzen kann. Oder was man alles unter den Standardfunktionscodes versteht.

Ich werde mich weiter durchwühlen und freue mich natürlich trotzdem über Hinweise von Euch. Auch weitere Links zum Thema sind mir willkommen (ich habe dazu bisher wenig wirklich konkretes gefunden).

Danke schön! :)
Nimm die Menschen wie sie sind, es gibt keine anderen.

Beitrag von ralf.wenzel (Top Expert / 4004 / 208 / 282 ) »
KleinerEisbaer hat geschrieben:Ich habe mir mittlerweile die Doku zu 'i_callback_user_command' und überhaupt zum Funktionsbaustein angetan. Wenn ich aber ehrlich bin, verstehe ich da nicht viel. :cry: Z.B. woher ich weiß, welchen Funktionscode z.B. das Lupensymbol benutzt oder wie ich da meinen eigenen setzen kann. Oder was man alles unter den Standardfunktionscodes versteht.
Viel mehr als die Hilfe hier umformuliert zu posten, kann man hier aber auch nicht.... Also ehrlich, ich bin im Verstehen von sowas nicht der Schnellste, aber DAS kann sogar ICH. Also, nur Mut.



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Na gut. So schnell will ich nicht aufgeben :!:

Vielleicht mal eine einfachere Frage:
wie kopiert man den Standardstatus STANDARD_FULLSCREEN und baut ihn in ein ABAP-Programm ein?
Nimm die Menschen wie sie sind, es gibt keine anderen.

Beitrag von ralf.wenzel (Top Expert / 4004 / 208 / 282 ) »
KleinerEisbaer hat geschrieben:Na gut. So schnell will ich nicht aufgeben :!:

Vielleicht mal eine einfachere Frage:
wie kopiert man den Standardstatus STANDARD_FULLSCREEN und baut ihn in ein ABAP-Programm ein?
Am einfachsten: Status aufrufen, Verwendungsnachweis, in eines der dort genannten Programme und dann "Kopieren"-Funktion der rechten Maustaste.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Na, ich weiß doch nicht einmal, wie ich den Status aufrufe.
Also, wenn ich mein Programm bis in den ALV-Grid laufen lasse und dann über System --> Status gehe, wird Programm(Dynpro): SAPLSLVC_FULLSCREEN, Dynpronummer: 500 und Programm(GUI): SAPMSSY0 angegeben. Das Feld zu Oberflächenstatus ist leer.

Ich hatte jetzt schon mal folgendes gemacht: Ich habe mir unter der SE41 zum Programm SAPLSLVC_FULLSCREEN den Status STANDARD_FULLSCREEN in mein Programm kopiert. Wenn ich nun aber in mein Programm gehe, sehe ich dort wie gesagt unter Oberflächenstatus gar nichts.

Ich meine ja auch, dass ich noch vor kurzem eine Drucktastenleiste auf meinem ALV-Grid hatte. Da ist jetzt alles weg. Auch der Zurück-Button ist nicht mehr aktiv, so dass ich nun komplett das Programm beenden muss, um es wieder neu über die SE38 aufrufen zu können. Supernervig!!

:(
Nimm die Menschen wie sie sind, es gibt keine anderen.

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
KleinerEisbaer hat geschrieben: Ich hatte jetzt schon mal folgendes gemacht: Ich habe mir unter der SE41 zum Programm SAPLSLVC_FULLSCREEN den Status STANDARD_FULLSCREEN in mein Programm kopiert. Wenn ich nun aber in mein Programm gehe, sehe ich dort wie gesagt unter Oberflächenstatus gar nichts.
das könnte daran liegen, daß Du den Status noch nicht aktiviert hast. wenn du diesen richtig kopiert und aktiviert hast erscheint er auch im Programm.

gruss
Alexander

Beitrag von ralf.wenzel (Top Expert / 4004 / 208 / 282 ) »
Alexander D. hat geschrieben:das könnte daran liegen, daß Du den Status noch nicht aktiviert hast. wenn du diesen richtig kopiert und aktiviert hast erscheint er auch im Programm.
Ansonsten aktualisier mal in der SE80 den Navigationsindex.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von KleinerEisbaer (Specialist / 123 / 3 / 0 ) »
Mittlerweile funktioniert alles!

Um diesen Thread sinnvoll abzuschließen:
zunächst musste ich den Parameter i_callback_pf_status_set des FuBaus REUSE_ALV_GRID_DISPLAY aktivieren. Den dort in Hochkommata angegebenen Namen ist der Name der Form-Routine, die dann entsprechend der Dokumentation des FuBaus/Parameters anzulegen ist. In dieser Routine muss dann noch einmal ausdrücklich mit set pf-status der Dialogstatus angelegt werden.

Der Funktionsbaustein sieht jetzt so aus:

Code: Alles auswählen.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    	EXPORTING
* Name dieses Programms      
    		i_callback_program = g_repid
* Status wird in entsprechendem Form gesetzt
              i_callback_pf_status = 'STATUS'
* Entsprechendes Form reagiert auf zusätzl. Benutzeraktionen
    		i_callback_user_command = 'REAKTION'
* Titel des ALV-Grids, der angezeigt wird
    		I_GRID_TITLE = 'Ausgabe Fakturen'
* Feldkatalog wird übergeben
    		IT_FIELDCAT = itab_feldkatalog
* Layoutinformationen werden übergeben
    		is_layout = gs_layout
    	TABLES
* Interne Tabelle mit auszugebenden Daten wird übergeben
    		T_OUTTAB = itab_alv
Die zum i_callback_pf_status-Parameter gehörende Routine:

Code: Alles auswählen.

FORM STATUS USING rt_extab TYPE slis_t_extab.
  Set Pf-Status 'STANDARD_FULLSCREEN1'.
endform.                    "set_pf_status
Den Status STANDARD_FULLSCREEN1 hatte ich übrigens zuvor mit Hilfe der SE80 vom STANDARD_FULLSCREEN des Programms SLVC_FULLSCREEN kopiert. Dazu einfach in der SE80 den Programmnamen eingeben und unter GUI-Status den entsprechenden Status per Kontextmenü (rechte Maustaste) kopieren.

Vielen Dank an alle, die mir hier versucht haben zu helfen und an meinen Kollegen, der mich auf die entscheidenden Details gebracht hat. :D [/code]
Nimm die Menschen wie sie sind, es gibt keine anderen.

Seite 1 von 1

Vergleichbare Themen

6
Antw.
8059
Views
Checkbox-Inhalt bei REUSE-ALV-GRID-DISPLAY-LVC
von Ucke » 19.11.2006 21:18 • Verfasst in ABAP® Core
1
Antw.
4440
Views
Page up and down im REUSE-ALV-Grid
von sapdepp » 24.08.2011 12:11 • Verfasst in ABAP® Core
4
Antw.
8420
Views
ALV Grid Sortierung aktualisieren im grid 1 und grid 2
von c oco » 06.02.2012 10:09 • Verfasst in ABAP Objects®
5
Antw.
8238
Views
4
Antw.
3432
Views
ALV Grid
von daf » 27.01.2019 15:23 • Verfasst in ABAP Objects®

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

Benutzerdefinierte Felder PSP
letzen Monat von Rabea1103 1 / 46484
Spool vereinen OTF und PDF
letzen Monat von anna2205 1 / 62818
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 71960
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 91020