Ansicht ALV passt nicht zu DB-Inhalten

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Ansicht ALV passt nicht zu DB-Inhalten

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Hallo zusammen,

ich habe ein Programm mit Selektionsbild 1000. Darauf gibt es einen Button XY.
Wenn ich den Button drücke, wird ein Dynpro mit CustomControl für den ALV-OO aufgerufen. Im PBO setze ich den Status, mache die Datenbeschaffung, erstelle den Feldkatalog (ein Feld der Struktur wird dadurch auf EDIT = X gesetzt) und registriere die Events für mc_evt_enter und mc_evt_modified.

Wenn ich jetzt den Feldinhalt im ALV ändere und Enter drücke, oder per Tab in ein anderes Feld wechsle, wird die Ansicht geändert. Wenn ich dann auf meinen eigenen Sichernbutton drücke, wird die Änderung auf die DB-Tab zurückgeschrieben.
Wenn ich eine Änderung im ALV mache, das Feld per Tab verlasse und dann über F3 den ALV verlasse, gleiche ich über den FuBa CTVB_COMPARE_TABLES ab, ob eine Veränderung vorgenommen wurde. Falls ja, kommt ein Popup mit der Frage, ob gesichert werden soll. Dann werden die Daten auf die DB geschrieben.

Jetzt der Problemfall: Wenn ich im ALV die Änderung mache, NICHT Enter drücke und auch NICTH mit TAB in ein anderes Feld springe und jetzt mit F3 den ALV verlasse und auf dem Selektionsbild ankomme, wird keine Änderung festgestellt (Sollte doch eigentlich :? ). Wenn ich vom Selektionsbild dann wieder den Button XY drücke bekomme ich im ALV meine Änderung angezeigt, obwohl diese nicht von der DB kommen kann. Irgenwie muss das Programm noch etwas im Speicher haben. Ich komme aber nicht dahinter. :cry:
Die Ansicht passt erst wieder, wenn ich das Programm komplett neu aufrufe.

Hat jemand eine Idee?

Gruß
Mrs. Hilflos
peace and long life

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


Re: Ansicht ALV passt nicht zu DB-Inhalten

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Mrs. Hilflos hat geschrieben:Jetzt der Problemfall: Wenn ich im ALV die Änderung mache, NICHT Enter drücke und auch NICTH mit TAB in ein anderes Feld springe und jetzt mit F3 den ALV verlasse und auf dem Selektionsbild ankomme, wird keine Änderung festgestellt (Sollte doch eigentlich :? ).
Wenn du das F3 abfängst, dann ruf mal als erstes die Methode check_changed_data deines Alv´s auf.

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Hallo DeathGuardian,

das mache ich schon:

Code: Alles auswählen.

  case sy-ucomm.
    when 'BACK'.
        perform data_changed.
      leave to screen 0.

    when 'END' or 'CANC'.
      leave to screen 0.
    when 'SAVE'.
      perform save_values.
  endcase.
....

*&---------------------------------------------------------------------*
*&      Form  data_changed
*&---------------------------------------------------------------------*
form data_changed .

  data: l_valid type c.

  call method re_alv_reorg->check_changed_data
    importing
      e_valid = l_valid.

  if l_valid is initial.
    call function 'POPUP_TO_INFORM'
      exporting
        titel = text-t04      "Eingabefehler
        txt1  = text-t05    "Die Eingaben sind noch nicht konsistent.
        txt2  = text-t06    "Überprüfen Sie die Eingaben
        txt3  = text-t07.  "anhand des Fehlerprotokolls.

  else.

    data:   lt_del type table of ty_reorg
          , lt_add type table of ty_reorg
          , lt_mod type table of ty_reorg
          , l_flag type flag
          .


    call function 'CTVB_COMPARE_TABLES'
      exporting
        table_old  = gt_reorg_alt[]
        table_new  = gt_reorg[]
        key_length = 254
      importing
        table_del  = lt_del[]
        table_add  = lt_add[]
        table_mod  = lt_mod[]
        no_changes = l_flag.

    if l_flag is initial.
* --> Daten wurden geändert
      data: l_answer(1) type c.

      call function 'POPUP_TO_CONFIRM'
        exporting
          text_question               = 'veränderte Daten sichern?'
         text_button_1               = 'Ja'(001)
         text_button_2               = 'Nein'(002)
       importing
         answer                      = l_answer
      exceptions
         text_not_found              = 1
         others                      = 2
                .
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.

     if l_answer = '1'.
* Ja
        perform save_values.
      elseif l_answer = '2'.
* Nein
      endif.
    endif.
  endif.

 
Gruß
Mrs. Hilflos
peace and long life

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Hallo zusammen,

zur Info, falls jemand auch das Problem haben sollte. Ich habe den Befehl

Code: Alles auswählen.

LEAVE TO SCREEN 0
durch diesen ersetzt

Code: Alles auswählen.

LEAVE TO TRANSACTION 'XY'
jetzt funktionierts. :-)

Gruß
Mrs. Hilflos
peace and long life

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1019
Views
Ausgabe von Inhalten
von debianfan » 09.05.2017 13:12 • Verfasst in ABAP® für Anfänger
2
Antw.
2116
Views
Report: Wertehilfe mit Inhalten des Selektionsbildschirms fü
von Herb » 17.02.2006 15:41 • Verfasst in ABAP® Core
5
Antw.
2441
Views
Tabellen / Datenbanken - Ansicht der Verknüpfungen?
von Nourie » 19.01.2005 15:20 • Verfasst in ABAP® für Anfänger
1
Antw.
592
Views
Frage SE80 UI - Einstellungen zur Ansicht?
von newone » 18.02.2019 10:02 • Verfasst in ABAP® für Anfänger
1
Antw.
2365
Views
Ansicht kompletter Source-Code von Modulpool
von Maerkl » 11.04.2005 09:51 • 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

Regex in where
vor 7 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 20 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 7 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 20 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822