Code: Alles auswählen.
class lcl_event_handler definition.
public section.
class-methods:
on_double_click
for event double_click of cl_salv_events_table
importing
row " type salv_de_row
column.
endclass. "LCL_EVENT_HANDLER
"-- Ausgabe Erste Ergebnisstabelle --------------------------------
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = gx_alv
CHANGING
t_table = gt_erg1.
gx_layout = gx_alv->get_layout( ).
gs_key-report = sy-repid.
gx_layout->set_key( gs_key ).
gx_functions = gx_alv->get_functions( ).
gx_functions->set_all( abap_true ).
gx_functions->set_group_aggregation( abap_true ).
gx_layout->set_initial_layout( gv_variant ).
gx_layout->set_save_restriction( if_salv_c_layout=>restrict_user_dependant ). "restrict_none
gx_layout->set_default( abap_true ).
gx_columns->set_optimize( ).
gx_event = gx_alv->get_event( ).
CREATE OBJECT gx_handler.
SET HANDLER:
gx_handler->on_double_click FOR gx_event.
gx_alv->display( ).
Code: Alles auswählen.
REPORT ZTEST_IMP_EXP_MEMORY.
Data: MEMID(5) value 'MEMID',
gv_carrid type S_CARR_ID,
gv_connid type S_CONN_ID,
gt_range_carrid TYPE RANGE OF S_CARR_ID,
gt_range_connid TYPE RANGE OF S_CONN_ID.
SELECTION-SCREEN BEGIN OF BLOCK b1
WITH FRAME TITLE text-001. "Test mit so
SELECT-OPTIONS: so_CARID FOR gv_CARRID.
SELECT-OPTIONS: so_CONID FOR gv_connid NO INTERVALS .
SELECTION-SCREEN END OF BLOCK b1.
EXPORT so_CARID to MEMORY ID MEMID.
skip.
IMPORT gt_range_carrid from MEMORY ID MEMID.
skip.
FREE MEMORY ID MEMID.
EXPORT so_CONID to MEMORY ID MEMID.
skip.
IMPORT gt_range_connid from MEMORY ID MEMID.
skip.
FREE MEMORY ID MEMID.
clear gt_range_carrid.
clear gt_range_connid.
IMPORT gt_range_carrid from MEMORY ID MEMID.
IMPORT gt_range_connid from MEMORY ID MEMID.
skip.
Das sehe ich etwas anders. Immerhin kannst du mit EXPORT TO MEMORY keine Programmvariablen ändern. Mit dem Dirty-Assign sehr wohl.jensschladitz hat geschrieben:Sali,
nun das stimmt wohl soweit - aber es ist ja im Grunde nichts anderes als Daten ins Memory zu schreiben und dort auch wieder abzuholen
Dafür müssten aber schon einige "Zufälle" aufeinander treffen. Klar, wenn ein Programm von SAP den EXPORT/ IMPORT benutzt, kann ich den überschreiben. Aber mit dem Dirty-Assign kann ich unter bestimmten Umständen immer einen Fehler oder "abnormes Verhalten" provozieren, weil ich auf Daten oder Referenzen im SAP-Programm zugreifen und diese ändern kann.jensschladitz hat geschrieben:Sali,
okay - ist wichtig und zu beachten - aber wenn der Exort to Memory z.Bsp. keine ID dabei hat - dann könnte ich "zufällig" wenn ich dieselbe Struktur hätte und diese ins Memory stelle das auch bewerkstelligen oder ?!
Wenn der DA mir hilft, ein Problem unkompliziert und mit wenig Aufwand zu lösen, dann setze ich ihn auch ein...! Aber da sind wir dann wieder bei den Glaubensfragen...jensschladitz hat geschrieben:Na ja sind aber irgendwie dann ab einem Punkt - Glaubensfragen -auf jeden Fall finde ich den DA dann unter bestimmten Bedingungen doch "ganz okay "
Hruss Jens
Dies war ja mein erster Ansatz.black_adept hat geschrieben:Wenn dein Eventhandler programmlokal definiert ist spricht doch nichts dagegen die global definierten SO zu verwenden. Alles andere wäre doch unnötiger Aufwand bloß um OO-sauber zu sein.
Im "echten" Einsatz sollte man immer den Aufwand zum Nutzen in Relation stellen - und hier wäre das in meinem Augen dann nicht mehr gegeben.