Daten im ALV zum PAI ändern Thema ist als GELÖST markiert

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

Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 16.10.2020 16:31
Hallo zusammen,

ein eigentlich altes und oft behandeltes Thema, trotzdem immer wieder nervig.

Ich habe ein Grid vom Typ cl_gui_alv_grid auf einem Dynpro. Das Dynpro hat eine Checkbox und je nach Zustand dieser Checkbox sind die Daten in dem ALV gegen andere Werte zu prüfen.
Stellt nun jemand an der Checkbox möchte ich im PAI gern das alle zu prüfenden Zellen so behandelt werden als hätte man sie gelöscht und neu eingefügt bzw. alle geändert.

Da ich keine Daten ändere ist auch das Objekt er_data_changed in Data_changed leer.
Das dies durchlaufen wird erreiche ich übrigens mit dem Befehl

mx_grid->if_cached_prop~set_prop( exporting propname = 'GridModified' propvalue = '1' ).

Schön wäre es es würde irgendwie funktionieren das er alle von mir gewünschten Zellen als GEÄNDERT betrachtet. Geht das? Ich finde nicht die geeignete Methode dafür.


Andere Herangehensweise:
Ich prüfe im data_changed einfach die Outtab und nutze bei Fehlern das Fehlerprot des ALV´s - soweit, so gut. Nur habe ich dann im Anschluss die Fehlerhaften Zellen nicht rot markiert. Scheint wohl daran zu liegen das nichts geändert wurde und somit keine Daten in Bad_Cells geschaufelt werden... diese aber wohl zum Markieren der Zellen genutzt werden.

Wenn jemand eine Idee für die eine oder andere Variante hat wäre ich echt Dankbar... Viele Grüße


Re: Daten im ALV zum PAI ändern

Beitrag von ewx (Top Expert / 4279 / 202 / 460 ) » 16.10.2020 17:13
bei er_data_changed sind zwar die Feldänderungen leer (da es ja keine gibt), aber du kannst trotzdem am Ende irgendwelche Prüfungen durchführen und mit add_protocol antsprechende Meldungen ausgeben.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
RIG


Re: Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 16.10.2020 17:32
ewx hat geschrieben:
16.10.2020 17:13
bei er_data_changed sind zwar die Feldänderungen leer (da es ja keine gibt), aber du kannst trotzdem am Ende irgendwelche Prüfungen durchführen und mit add_protocol antsprechende Meldungen ausgeben.
Danke für Deine Antwort.
Ja, die Methode add_protocol_entry nutze ich auch, aber dann kommt es zum oben beschriebenen Verhalten das die entsprechenden Fehlerzellen nicht markiert sind.

Re: Daten im ALV zum PAI ändern

Beitrag von ewx (Top Expert / 4279 / 202 / 460 ) » 16.10.2020 17:36
du musst das Feld und die Zeile ja explizit mitgeben. Tust du das?

Re: Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 16.10.2020 17:49
der genaue Aufruf:

Code: Alles auswählen.

      ir_data_changed->add_protocol_entry(
       EXPORTING
          i_msgid = '0K' i_msgno = '000'  i_msgty = 'E'
          i_msgv1 = 'Ich war im vorher ok aber jetzt nicht mehr'
          i_fieldname = 'USER'
          i_row_id = lv_tabix ).

Re: Daten im ALV zum PAI ändern

Beitrag von ewx (Top Expert / 4279 / 202 / 460 ) » 16.10.2020 17:52
oh.
das hätte ich nicht erwartet... Denn weiß ich auch nicht.

Re: Daten im ALV zum PAI ändern

Beitrag von a-dead-trousers (Top Expert / 3558 / 118 / 926 ) » 16.10.2020 18:24
In einer ersten Reaktion hätt ich gesagt, dass du sowohl das Protokoll in MT_PROTOCOL als auch den entsprechenden Eintrag in MT_MOD_CELLS brauchst.

BAD_CELLS kenn ich jetzt nämlich nicht, aber dafür MT_MOD_CELLS und das Attribut ist sogar Public änderbar bzw. über die Methode MODIFY_CELL (vermutlich) änderbar:
https://www.sapdatasheet.org/abap/clas/ ... tocol.html

Nach einem kurzen Check gibt mir das Internet sogar recht:
https://answers.sap.com/questions/19266 ... alv-g.html
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.07
Basis: 7.40

Re: Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 16.10.2020 18:42
Geht leider auch nicht. Ich habe jetzt die MT_MOD_CELLS noch beschrieben und das Protokoll gefüllt, leider bleiben die roten Linien um die schlechten Zellen weg.

BAD_CELLS habe ich intern irgendwann beim debuggen entdeckt... das ist mir aber auch schon viel zu tief unter der Haube um es irgendwie zu füllen.

Im Grunde hab ich ja 2 Ansätze und fühle mich wie kurz davor (gescheitert) :-)

Re: Daten im ALV zum PAI ändern

Beitrag von ewx (Top Expert / 4279 / 202 / 460 ) » 16.10.2020 19:27
Also bei mir funktioniert's! Zusammen mit deinem GridModified-Trick.

im Handle_data_Changed:

Code: Alles auswählen.

er_data_changed->add_protocol_entry( ... ).
und im PAI

Code: Alles auswählen.

mx_grid->if_cached_prop~set_prop( propname = 'GridModified' propvalue = '1' ).
mc_grid->check_changed_data( ).

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
RIG


Re: Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 17.10.2020 12:43
Das überprüfe ich dann nochmal, hab es eigentlich so gemacht.
Werd mir das nochmal in eine Testprogramm runterschreiben....

schon strange das es bei mir nicht geht... auf nach der Suche im Heuhaufen

Re: Daten im ALV zum PAI ändern

Beitrag von Tron (Top Expert / 1200 / 22 / 283 ) » 18.10.2020 16:06
Moin.
Probier doch mal CL_GUI_CFW=>SET_NEW_OK_CODE

e.g. /BOBF/CL_CONF_UI_MANAGER->HANDLE_DOUBLE_CLICK_DETAIL

Code: Alles auswählen.

  CASE ls_tree_node-tree.
    WHEN cs_tree-where_used_objects.
      cl_gui_cfw=>set_new_ok_code( 'DUMMY' ).
      find_element( iv_key = ls_tree_node-element_key ).

    WHEN cs_tree-where_used_list.
      cl_gui_cfw=>set_new_ok_code( 'DUMMY' ).
      push_detail_object_int(
        iv_tree_element   = ls_tree_e-tree_element
        iv_key            = ls_tree_node-element_key
        iv_ensure_visible = abap_true
        iv_pending        = abap_true ).
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 19.10.2020 10:36
RIG hat geschrieben:
17.10.2020 12:43
Das überprüfe ich dann nochmal, hab es eigentlich so gemacht.
Ich habe mir mal das BCALV_EDIT_03 umgebaut, und siehe da - es geht tatsächlich.

Dann habe ich geschaut was bei mir anders ist. -> meine Tabelle ist Dynamisch, ich übergebe also ans Grid ein Feldsymbol type Standard Table <lt_outtab>.

Nun habe ich das BCALV_EDIT_03 auch so angepasst, und siehe da - gleiches verhalten wie bei mir. Zellen werden nicht mehr Markiert.

Tron hat geschrieben:
18.10.2020 16:06
Moin.
Probier doch mal CL_GUI_CFW=>SET_NEW_OK_CODE

e.g. /BOBF/CL_CONF_UI_MANAGER->HANDLE_DOUBLE_CLICK_DETAIL
Liegt es am Montag morgen? Irgendwie erwischst Du mich damit auf dem falschen Fuß, weiß gerade überhaupt nicht wozu ich ein neuen FCODE setzen soll.

Durch das PAI des Dynpro laufe ich doch schon bei Änderung meiner Checkbox.

Re: Daten im ALV zum PAI ändern

Beitrag von Tron (Top Expert / 1200 / 22 / 283 ) » 19.10.2020 10:41
Moin.
Sorry, ich war wohl zu fixiert auf die Überschrift "Daten im ALV zum PAI ändern"..

gruß Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
RIG

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Daten im ALV zum PAI ändern

Beitrag von RIG (Specialist / 103 / 28 / 0 ) » 19.10.2020 10:46
RIG hat geschrieben:
19.10.2020 10:36

Ich habe mir mal das BCALV_EDIT_03 umgebaut, und siehe da - es geht tatsächlich.

Dann habe ich geschaut was bei mir anders ist. -> meine Tabelle ist Dynamisch, ich übergebe also ans Grid ein Feldsymbol type Standard Table <lt_outtab>.

Nun habe ich das BCALV_EDIT_03 auch so angepasst, und siehe da - gleiches verhalten wie bei mir. Zellen werden nicht mehr Markiert.

Ich habe den "Fehler" gefunden, oder besser die Ursache. Ich darf anschließend kein Refresh und kein set_table_for_first_display durchführen... dann geht es.

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Last erzeugen im SAPGui?
vor 4 Stunden von tm987456 14 / 133
IDoc-Segmente löschen
vor 20 Stunden von littleJohn 2 / 71
Shortdump wegen Speicherüberlauf
vor 23 Stunden von chhe001 8 / 134

Vergleichbare Themen

ALV-liste-Daten mit der DB-Tabelle-Daten vergleichen
von Nadine_2706 » 31.08.2011 11:57
Daten aus 2 Tabellen + Vergleich von Daten
von dv88 » 06.10.2009 12:26
Daten von SAP R/3 ins BW
von bronstein » 28.03.2006 13:27
Daten-Cluster
von dimes » 31.03.2006 12:21