REUSE_ALV_GRID_DISPLAY_LVC

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

REUSE_ALV_GRID_DISPLAY_LVC

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo miteinander.

Weil noch nie im Forum darüber zu lesen war!!

Eine Alternative zum
REUSE_ALV_GRID_DISPLAY
ist der
REUSE_ALV_GRID_DISPLAY_LVC.

Oder anders gesagt: REUSE_ALV_GRID_DISPLAY ist OUT -
REUSE_ALV_GRID_DISPLAY_LVC ist IN :wink:

Der Einbau ist gleich dem 'normalen' ALV.
Er unterscheidet sich lediglich geringfügig in den Namen der Parameter (zB it_fieldcat = it_fieldcat_lvc) und in den Namen in den Strukturen.
Es ist aber leicht nachzuvollziehen, welcher Name des REUSE_ALV_GRID_DISPLAY dem des REUSE_ALV_GRID_DISPLAY_LVC entspricht.


Der REUSE_ALV_GRID_DISPLAY_LVC kann aber einige Sachen mehr (welche hier im Forum bereits (auch von mir) gefragt wurden, und es dazu keine Lösung gab).
Er kommt dem OO-Alv von der Funktionalität wesentlich näher.

*) im Feldkatalog besitz er zusätzlich:
SELTEXT = Spaltenbezeichner für Dialogfunktionen
Damit kann man die Text im Dialog 'Layout ändern..' einstellen.

*) er kennt das Ereignis: DATA_CHANGED
allerdings darf man es nicht über den FuBau REUSE_ALV_EVENTS_GET ermitteln, sondern es ihm sozusagen auf's Auge drücken.

Code: Alles auswählen.

* Event 'DATA_CHANGED' registrieren
  wa_events_lvc-name = 'DATA_CHANGED'.
  wa_events_lvc-form = 'DO_DATA_CHANGED'.
  APPEND wa_events_lvc TO it_events_lvc.
Damit reagiert er (wie der OO-Alv) auf verlassen der Zelle mit ENTER.
Wird noch der Parameter

Code: Alles auswählen.

* Grid-Settings einstellen
  wa_grid_settings_lvc-edt_cll_cb = 'X'.
gesetzt, reagiert er auf das verlassen der Zelle

Die registrierte FORM für's Event muß folgendermaßen ausschauen

Code: Alles auswählen.

FORM do_data_changed USING data_changed TYPE REF TO
                                        cl_alv_changed_data_protocol.
hier lassen sich Zellwerte lesen und ändern.
zB. Zelle in Spalte 1 wird gändert. Zelle in Spalte 3 ist: Spalte 1 * Spalte 2.
Spalte 1 lesen, Spalte2 lesen, rechen und in Spalte 3 schreiben. Das Ergebnis steht nach verlassen der Zelle 1 automatisch in Zelle 3



Wenn sich jemand mal damit beschäftigen will, beantworte ich gerne (soweit mir möglich) konkrete Fragen dazu.

mfg
Richard

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


Beitrag von MichaelNord (ForumUser / 1 / 0 / 0 ) »
Hallo RiffRaff,
habe gerade deinen Tipp bez. REUSE_ALV_GRIDDISPLAY_LVC und dem EVENT
DATA_CHANGED ausprobiert.
Es ist in der Tat so, dass bei der Veränderung eines Feldes die FORM ROUTINE DO_DATA_CHANGED angesprungen wird.
Wenn ich jedoch mit einem LOOP über die gesamte ALV-Tabelle gehe, sind die Änderungen noch nicht in dieser abgespeichert.
Wie komme ich an dieser Stelle zu dem geänderten Feldinhalt ?

Hoffe du kannst mir helfen, bin bez. ALV blutiger Anfänger !

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
hallo,

ist ein Auszug aus einem ABAP von mir:

Code: Alles auswählen.

*----------------------------------------------------------------------*
*       FORM DO_DATA_CHANGED
*----------------------------------------------------------------------*
*       Auf Dateneingabe reagieren
*       !!! Dynamischer Aufruf vom ALV. Keine Parameterübergabe
*       !!! ==> direkter Zugriff auf benötigte Werte des Hauptprogramms
*----------------------------------------------------------------------*
*  -->
*  <--
*----------------------------------------------------------------------*
FORM do_data_changed USING data_changed TYPE REF TO
                                        cl_alv_changed_data_protocol.

  DATA: wa_alv TYPE          lin_output_alv_lvc.

  DATA: wa_mod_cell TYPE lvc_s_modi.
  DATA: h_check_int TYPE i.                               

* wenn keine Datenänderung => FORM verlassen
  CHECK NOT data_changed->mt_mod_cells IS INITIAL.

* Eingabe auf Integer prüfen                               
  READ TABLE data_changed->mt_mod_cells INTO wa_mod_cell   
                           INDEX 1 TRANSPORTING value.     
  CATCH SYSTEM-EXCEPTIONS convt_no_number = 901.           
    COMPUTE h_check_int = wa_mod_cell-value.              
  ENDCATCH.                                                 
  IF sy-subrc <> 0.                                       
    EXIT.                                                  
  ENDIF.                                                  

* geänderte Zeile ermitteln
  READ TABLE data_changed->mt_mod_cells INTO wa_mod_cell
                                        INDEX 1 TRANSPORTING row_id.

* Werte der einzelnen Spalten holen
  CALL METHOD data_changed->get_cell_value
               EXPORTING i_row_id    = wa_mod_cell-row_id
                         i_fieldname = 'EKORG'
               IMPORTING e_value     = wa_alv-ekorg.
  CALL METHOD data_changed->get_cell_value
               EXPORTING i_row_id    = wa_mod_cell-row_id
                         i_fieldname = 'PVERH'
               IMPORTING e_value     = wa_alv-pverh.
  CALL METHOD data_changed->get_cell_value
               EXPORTING i_row_id    = wa_mod_cell-row_id
                         i_fieldname = 'PROQU'
               IMPORTING e_value     = wa_alv-proqu.
  CALL METHOD data_changed->get_cell_value
               EXPORTING i_row_id    = wa_mod_cell-row_id
                         i_fieldname = 'LIETR'
               IMPORTING e_value     = wa_alv-lietr.
  CALL METHOD data_changed->get_cell_value
               EXPORTING i_row_id    = wa_mod_cell-row_id
                         i_fieldname = 'SERVI'
               IMPORTING e_value     = wa_alv-servi.

* Berechnung
  PERFORM set_ges_pkt CHANGING wa_alv.

* neuen Wert in die Zeile schreiben
  CALL METHOD data_changed->modify_cell
              EXPORTING i_row_id    = wa_mod_cell-row_id
                        i_fieldname = 'GESPKT'
                        i_value     = wa_alv-gespkt.

ENDFORM.                                                "DO_DATA_CHANGED
mfg
richard

Beitrag von s.maerz (ForumUser / 14 / 0 / 0 ) »
Hi RiffRaff,

ich habs bei dem "alten" ALV auch gebraucht, um mitzubekommen, ob etwas geändert wurde. Habs im User_command-event wie folgt gelöst:
***************************
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.

DATA: ref1 TYPE REF TO cl_gui_alv_grid.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.

CALL METHOD ref1->check_changed_data.

CASE r_ucomm.
when '...'.

endcase.
***************************
somit wird die aktuelle Anzeigetabelle mit den neuen Eingabewerten refreshed und ich habe alle neuen Werte im Zugriff.

Grüsse
Stefan

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5585
Views
Checkbox-Inhalt bei REUSE-ALV-GRID-DISPLAY-LVC
von Ucke » 19.11.2006 21:18 • Verfasst in ABAP® Core
2
Antw.
3168
Views
REUSE _ ALV _ LIST _ DISPLAY - Zeile nicht markieren
von Gast » 12.09.2005 08:42 • Verfasst in ABAP® Core
1
Antw.
2749
Views
Page up and down im REUSE-ALV-Grid
von sapdepp » 24.08.2011 12:11 • Verfasst in ABAP® Core
4
Antw.
2533
Views
suche fieldcatalog - Name für Spaltenkopf bei REUSE-ALV-GRID
von jogi » 20.04.2005 15:23 • Verfasst in Dialogprogrammierung
4
Antw.
5155
Views
Set table for first display
von pippi1710 » 27.10.2011 10:34 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

SM30 Kundenfunktion
vor einer Stunde von black_adept 2 / 96
Customizing-Transportauftrag schreiben
vor 11 Stunden von msfox 5 / 581
Daten an Tabelle binden
vor 2 Tagen von Lukas Sanders 4 / 2751

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

SM30 Kundenfunktion
vor einer Stunde von black_adept 2 / 96
Customizing-Transportauftrag schreiben
vor 11 Stunden von msfox 5 / 581
Daten an Tabelle binden
vor 2 Tagen von Lukas Sanders 4 / 2751

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 6 Tagen von snooga87 1 / 1131
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 4329
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 10707