REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
28 Beiträge • Vorherige Seite 2 von 2 (current)
28 Beiträge Vorherige Seite 2 von 2 (current)

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ewx (Top Expert / 4889 / 321 / 644 ) »
Dein Angebot übergehe ich lieber und präsentiere dir stattdessen meinen Quellcode der in der gewünschten Weise funktioniert.

Code: Alles auswählen.

REPORT.

DATA gt_data TYPE STANDARD TABLE OF t005t.
DATA gr_grid TYPE REF TO cl_gui_alv_grid.

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.
    class-METHODS:
      handle_data_changed
            FOR EVENT data_changed  OF  cl_gui_alv_grid
            IMPORTING er_data_changed sender.

ENDCLASS.                    "lcl_event_receiver DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_data_changed.
    FIELD-SYMBOLS <data> type t005t.
    data ls_stable type LVC_S_STBL.
    ls_stable = 'XX'.

    if 1 = 1.
       read table gt_data index 1 ASSIGNING <data>.
       if sy-subrc = 0.
         <data>-landx = 'XXXX'.
       endif.
       sender->refresh_table_display( is_stable = ls_stable ).
    endif.

  ENDMETHOD.                    "handle_data_changed

ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM display.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
FORM get_data.

  SELECT * FROM t005t
    INTO TABLE gt_data UP TO 100 ROWS
   WHERE spras = sy-langu.

ENDFORM.                    "get_data

*&---------------------------------------------------------------------*
*&      Form  display
*&---------------------------------------------------------------------*
FORM display.

  DATA lt_events  TYPE slis_t_event.
  DATA lt_fcat    TYPE slis_t_fieldcat_alv.
  DATA lt_fcatlvc TYPE lvc_t_fcat.

  FIELD-SYMBOLS <fcat> TYPE slis_fieldcat_alv.
  FIELD-SYMBOLS <fcatlvc> TYPE LVC_s_FCAT.

  PERFORM set_events CHANGING lt_events.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
 EXPORTING
   I_STRUCTURE_NAME             = 'T005T'
  CHANGING
    ct_fieldcat                  = lt_fcatlvc
 EXCEPTIONS
   OTHERS                       = 3.

*  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
*    EXPORTING
*      i_structure_name       = 'T005T'
*      i_client_never_display = 'X'
*    CHANGING
*      ct_fieldcat            = lt_fcat
*    EXCEPTIONS
*      OTHERS                 = 3.


  LOOP AT lt_fcatlvc ASSIGNING <fcatlvc>.
    CASE <fcatlvc>-fieldname.
      WHEN 'LANDX'.
        <fcatlvc>-edit = 'X'.
    ENDCASE.
  ENDLOOP.



  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program = sy-cprog
*      i_structure_name   = 'T005T'
      it_events          = lt_events
*      it_fieldcat_lvc        = lt_fcat
      it_fieldcat_lvc        = lt_fcatlvc
    TABLES
      t_outtab           = gt_data
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.

ENDFORM.                    "display

*&---------------------------------------------------------------------*
*&      Form  set_events
*&---------------------------------------------------------------------*
FORM set_events CHANGING ct_events TYPE slis_t_event.

  FIELD-SYMBOLS: <ls_event> TYPE slis_alv_event.

  DATA: l_event  TYPE lvc_fname.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type     = 4
    IMPORTING
      et_events       = ct_events
    EXCEPTIONS
      list_type_wrong = 1
      OTHERS          = 2.
  IF sy-subrc = 0.
    READ TABLE ct_events ASSIGNING <ls_event>
               WITH KEY name = 'CALLER_EXIT'.
    IF sy-subrc EQ 0.
      CONCATENATE 'ALV_EVENT_' <ls_event>-name
             INTO <ls_event>-form.
    ENDIF.
  ENDIF.

ENDFORM.                    "set_events

*&---------------------------------------------------------------------*
*&      Form  alv_event_caller_exit
*&---------------------------------------------------------------------*
FORM alv_event_caller_exit USING cs_data TYPE slis_data_caller_exit..

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = gr_grid.


*  gr_grid->set_ready_for_input( 1 ).
  gr_grid->register_edit_event( cl_gui_alv_grid=>mc_evt_modified ).

  SET HANDLER lcl_event_receiver=>handle_data_changed FOR gr_grid.

ENDFORM.                    "alv_event_caller_exit

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


Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Jo, das war's. Ich weiß schon, warum ich SALV bevorzuge.....

Danke.

Interessant ist übrigens, dass an der Stelle (ls_stable = ....) die im Programm gespeicherte Tabelle von der angezeigten abweicht. Mal gucken wie ich das in den Griff kriege, das führt im Moment zu einem etwas schrägen Handling....
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Das (letzte Posting) war mit der Frage verbunden, wie ich das abstellen kann ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
hi!

Soviel ich weiß musst du beim ALV bzw. auch beim REUSE_ALV sicherstellen, dass die Datentabelle GLOBAL im Programm definiert ist.
Der ALV behällt nämlich eine Referenz auf die Datenquelle und speichert sofern diese "änderbar" ist, alle Daten die sich in der Anzeige geändert haben wieder in die Quelle zurück (Methode CHECK_CHANGED_DATA).

Änderbar heißt auch, dass die interne Tabelle im Verlauf des Programms nie als IMPORTING/EXPORTING/USING(?) übergeben werden darf, sondern wenn nötig immer als CHANGING.
Am Besten erkennt man das im Debugger bei den Details zu einer Variablen. Da steht der Zusatz "read-only" dabei und sobald eine Speicherbereich durch eine "Read-Only-Schranke" hereinkommt, erkennt man es daran. Ich galub ich hab mal sogar was entdeckt, mit dem man diesen Zustand zur Laufzeit ermitteln kann, aber bei einer kurze Suche in meinen bisherigen Programmen, hab ichs leider nicht wiedergefunden.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Meine ALV-Ausgabetabelle ist eine globale Tabelle. Das wäre alles schön einfach, wenn ENTER einen Funktionscode auslösen würde.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
hi!

Hab mir mal kurz die Form-Routine PBO vom REUSE_ALV_GRID_DISPLAY_LVC angeschaut (Inlude LSLVC_FULLSCREENF01)

Da wird beim Constructor des ALV Grid der Parameter I_APPL_EVENTS versorgt. Dieser wird bei REGISTER_EDIT_EVENT als APPL_EVENT übernommen.
Damit sollte bei einer Datenänderung PBO und PAI durchlaufen werden.
Wenn das Grid im Layout auf EDIT geschalten ist oder im Popup angezeigt, wird der cl_gui_alv_grid=>mc_evt_enter registriert.
--> Zumindest schauts auf unserem System so aus

Von daher sollte es eigentlich funktionieren.

lg ADT

EDIT: Hinweis: In den bisherigen Codings hier wurde immer nur der MC_EVT_MODIFIED registriert. :!:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Richtig, die Form PAI wird auch aufgerufen, verreckt aber durch das "check l_okcode ne space". Und Enter einen Funktionscode im Status zuweisen?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
ralf.wenzel hat geschrieben:Und Enter einen Funktionscode im Status zuweisen?
Kannst ja mal versuchen!
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Wie soll denn das gehen? Dem Funktionscode SPACE einen Funktionscode zuzuweisen, auf den ich reagieren kann.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von a-dead-trousers (Top Expert / 4457 / 227 / 1198 ) »
GUI Status? PFNO = '00' (= Enter-Taste)
Bei einem Normalen Gui-Status unter "Symbolleiste" der Grüne Hacken ganz links.
Bei einem Dialog-Status unter "Empfohlene Funktionstastenbelegungen"

Und frag jetzt bitte nicht nach wie der Gui-Status beim REUSE_ALV_GRID_DISPLAY_LVC verändert werden kann :P
Das geht aus den Aufrufparametern hervor.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Ich muss dich enttäuschen. Mir war das alles vor Deinem Posting klar. Aber der Funktionscode ist und bleibt SPACE.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ewx (Top Expert / 4889 / 321 / 644 ) »
ralf.wenzel hat geschrieben:Aber der Funktionscode ist und bleibt SPACE.
Wenn du da nichts dran änderst, wird es wohl auch so bleiben.
Ansonsten könntest du im Event-Handler den FB

Code: Alles auswählen.

      CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
       EXPORTING
         FUNCTIONCODE = 'OK'.
aufrufen und so auf "Enter" reagieren. Natürlich musst du dafür den GUI-Status entsprechend ändern.

Laut deines Postings hast du das ja auch schon bereits getan:
ralf.wenzel hat geschrieben:Ich hab auch schon versucht, ENTER einen solchen Funktionscode zu geben, das fruchtet aber nicht.

Re: REUSE_ALV_GRID_DISPLAY_LVC - automatisch sichern

Beitrag von ralf.wenzel (Top Expert / 3956 / 204 / 281 ) »
Oh >>SPAM<<. Ich bin echt urlaubsreif. Danke Enno, nu weiß ich, was fehlt.

Ralf *noch zwei Tage dann isssssss URLAUB!!!
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing
Neuer Artikel über BRF+ in der neuen iX 05/25!

Vergleichbare Themen

6
Antw.
7046
Views
Checkbox-Inhalt bei REUSE-ALV-GRID-DISPLAY-LVC
von Ucke » 19.11.2006 21:18 • Verfasst in ABAP® Core
2
Antw.
4399
Views
REUSE _ ALV _ LIST _ DISPLAY - Zeile nicht markieren
von Gast » 12.09.2005 08:42 • Verfasst in ABAP® Core
1
Antw.
3791
Views
Page up and down im REUSE-ALV-Grid
von sapdepp » 24.08.2011 12:11 • Verfasst in ABAP® Core
0
Antw.
2011
Views
ALV-Grid Excel-inplace sichern
von hugo.data » 26.02.2010 13:27 • Verfasst in ABAP® Core
1
Antw.
2078
Views
alv grid automatisch refresh
von norty » 20.07.2009 16:40 • Verfasst in ABAP® für Anfänger

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.