Code: Alles auswählen.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = lr_salv
CHANGING
t_table = lt_data.
lr_salv->display( ).
SALV kann nicht zum editieren genutzt werden (ok mit Tricks geht das dann doch) und man hat weniger Arbeit mit dem Fieldcat da dieser per RTTS automatisch ermittelt wird und auch die Bufferung des Fcat ist besser gelöst.zer0 hat geschrieben:Jetzt habe ich die Klasse CL_SALV_TABLE entdeckt, für die man nicht extra ein Dynpro braucht. Meine Frage ist, welche die bessere Lösung oder welche mehr Vorteile hat? Welche sollte man eher verwenden und warum?
In dem von dir genannten Beispiel muss trotzdem noch ein leerer Dynpro angelegt werden! Durch den Trick kommt man nur um den CustomContainer herum.ewx hat geschrieben:Deine Aussage "man müsse immer ein Dynpro anlegen" stimmt nicht!:
http://www.tricktresor.de/content/index ... 25&aID=561
Meine ganz persönlichen Vorlieben:zer0 hat geschrieben: Meine Frage ist, welche die bessere Lösung oder welche mehr Vorteile hat? Welche sollte man eher verwenden und warum?
Das kann auch der SALV sowie der CL_GUI_ALV_GRIDblack_adept hat geschrieben:1.) REUSE - Bausteine
... Der hat auch den Vorteil, dass er im Hintergrund lauffähig ist und dann automatisch auf den LIST-Display umschaltet und somit einen brauchbaren Spool erzeugen kann ...
Meinst du direkt auf die Instanz vom verwendeten CL_GUI_ALV_GRID, oder die Instanz des SALV? Normalerweise wird die Instanz welche den Event ausgelöst hat ja über den SENDER (einfach in der Parameterliste so reinschreiben) zurückübergeben. Theoretisch, wenn man mehrere Instanzen verwendet müsste man sich halt eine Art "Identifikation" einfallen lassen. z.B. Ist die Event-Instanz des SALV gleich dem Sender des Events, dann ist der Auslöser des Events in Wahrheit der gesuchte SALV.black_adept hat geschrieben:2.) SALV
...das Einzige wo ich momentan noch nicht genug geschaut habe und was mich stört ist dass ich beim EVENT-Handling keine Referenz auf meinen SENDER-Alv bekomme...
Amen!black_adept hat geschrieben:3.) cl_gui_alv_grid
... Aber ich bin kein allzu großer Freund von eingabebereiten Grids, so dass ich das i.A. versuche zu vermeiden und auf die gute alte DYNPRO-Eingabe zurückgreife. Zur Not auch mit Table-Controls. Grund hierbei ist, dass sich im Laufe eines (größeren) Projekts doch mal hier und da der Wunsch aufkommt irgendwelche Prozesse zu automatisieren. Und das geht dann mit dem guten alten BI oder CT recht einfach, wenn man keine Enjoy-Controls verwendet...
Finde ich jetzt nicht. Man kann auch mit den normalen Dynpros recht ansprechende Bildschirmmasken zaubern.black_adept hat geschrieben:...Sieht aber leider dann so aus wie oft im SAP - recht altbacken...
Code: Alles auswählen.
'@01\QInfo@ Text
Code: Alles auswählen.
* Row Selection
lo_selections = go_salv->get_selections( ).
lo_selections->set_selection_mode( cl_salv_selections=>row_column ).
Ich habe gerade genau dieses Problem, ich habe mehrere SALVs und kriege über den Parameter "sender" meines Eventhandlers keinen Hinweis darauf, welche Instanz meines Grid das Event ausgelöst hat, sondern eine Instanz von CL_SALV_EVENTS_TABLE. Und so sieht das dann im Debugger aus (Parameter SENDER in meiner Eventhandlermethode):a-dead-trousers hat geschrieben:Meinst du direkt auf die Instanz vom verwendeten CL_GUI_ALV_GRID, oder die Instanz des SALV? Normalerweise wird die Instanz welche den Event ausgelöst hat ja über den SENDER (einfach in der Parameterliste so reinschreiben) zurückübergeben. Theoretisch, wenn man mehrere Instanzen verwendet müsste man sich halt eine Art "Identifikation" einfallen lassen. z.B. Ist die Event-Instanz des SALV gleich dem Sender des Events, dann ist der Auslöser des Events in Wahrheit der gesuchte SALV.black_adept hat geschrieben:2.) SALV
...das Einzige wo ich momentan noch nicht genug geschaut habe und was mich stört ist dass ich beim EVENT-Handling keine Referenz auf meinen SENDER-Alv bekomme...