cl_salv_table - Werte ändern

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

cl_salv_table - Werte ändern

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Moin,

irgendwie hakt es bei mir immer wieder an den kleinen Problemen....

Ich habe einen SALV, der eine ITAB anzeigt. Ich habe einen Button, der ein bestimmtes Feld der selektierten Zeile cleart und durchlaufe dann die Methode REFRESH( ). Die ITAB wird auch geändert (das ist auch einfach).

Aber egal mit welchen Parametern ich die Methode REFRESH( ) durchlaufe: Die Anzeige wird nicht aktualisiert. Ich kann auch sehen, dass R_TABLE in CL_SALV_TABLE nicht geändert wird.

Was mache ich falsch?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: cl_salv_table - Werte ändern

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Moin Ralf,
die Tabelle, die du änderst, ist wahrscheinlich nicht diejenige, welche angezeigt wird.
Teste bitte im Debugger, ob bei veränderter Sortierung der Tabelle auch die korrekte Zeile selektiert und gecleart wird, welche du sichtbar ausgewählt hast.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: cl_salv_table - Werte ändern

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Es gibt nur eine Tabelle - die ITAB, die ich dem CL_SALV_TABLE übergebe. Die hole ich mit im User-Command und ändere sie. Die Änderung ist in der ITAB auch korrekt - aber R_TABLE wird nicht geändert (das ist das Problem).

Das hab ich aber alles schon geschrieben ;)


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_salv_table - Werte ändern

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Moin Ralf,
folgende 2 Variablen im Debugger gleichzeitig anzeigen lassen.
  • MO_SALV->R_TABLE->*[1]-MANDT
  • itab[1]-mandt
bzw. wenn du kein Mandantenfeld hast irgend ein anderes.
Dann im Debugger den Wert einer der beiden Variablen ändern und schauen, ob sich der Wert der anderen mit ändert.
Wenn das nicht der Fall ist, dann siehe mein vorheriges Posting und dann bitte noch folgende Variable anzeigen und posten, was da drin steht: MO_SALV->R_CONTAINER->CHILDREN.
Wenn das doch der Fall ist: So geht's mit dem Refresh ( aber das ist trivial )

Code: Alles auswählen.

REPORT.

END-OF-SELECTION.
  SELECT * FROM t005 ORDER BY land1 INTO TABLE @DATA(gt_t005).

  cl_salv_table=>factory(
    EXPORTING
      r_container = NEW cl_gui_docking_container( no_autodef_progid_dynnr = 'X'
                                                  ratio                   = 50 )
    IMPORTING
      r_salv_table   = DATA(mo_salv)
    CHANGING
      t_table        = gt_t005  ).
  mo_salv->display( ).
  WRITE 'Double click here'.

AT LINE-SELECTION.
  MODIFY gt_t005 FROM VALUE t005( landk = '' ) TRANSPORTING landk WHERE landk <> ''.
  mo_salv->refresh( s_stable = VALUE #( row = 'X' col = 'X' ) ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: cl_salv_table - Werte ändern

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Also, der Wert in R_TABLE ändert sich NICHT mit, wie schon geschrieben. SALV->R:_CONTAINER->CHILDREN ist ein Objekt vom Typ ->CL_GUI_ALV_GRID. Also in meinem Programm, nicht in deinem.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_salv_table - Werte ändern

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Moin Ralf,
das kann gar nicht sein, da das CHILDREN eine Tabelle ist. Aber ich interpretiere das mal so, dass diese nur einen einzigen Eintrag hat, der auf einen ALV-Grid hinweist.

Aber so wie du es beschreibst ist der Grid, den du siehst, nicht derjenige, der mit deiner Tabelle verknüpft ist.
Daher bitte direkt nach dem SALV->DISPLAY( ) die Objektnummern der folgenden Objekte im Debugger aufschreiben: SALV, Grid, ( Container, in dem du den SALV anzeigst ), ( Container in dem der Grid angezeigt wird = PARENT des Grid <-- sollte hoffentlich der selber sein wie der Container davor ) sowie rekursiv aufwärts alle PARENTs des Containers und jeweils die Nummern aller Children all dieser Container. Hört sich viel an, aber das sollten am Ende etwa 5 unterschiedliche Objektnummern sein.
Das Gleiche dann machen, wenn du in deiner Refreshroutine bist. Irgend eins der Dinger muss jetzt anders sein oder einer der Container hat mehrere Children.
Zuletzt geändert von black_adept am 01.11.2021 19:57, insgesamt 1-mal geändert.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: cl_salv_table - Werte ändern

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Doppelpost
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: cl_salv_table - Werte ändern

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Habe ich alles gemacht, die Nummern der Instanzen unterscheiden sich in keinem der Punkte.

Mit der Tabelle hast du natürlich recht, es ist eine Tabelle mit einem Eintrag.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_salv_table - Werte ändern

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
Ist die Tabelle, die an das SALV übergeben wird "global" verfügbar?
Sprich ist sichergestellt, dass die Tabelle, die in der Factory als CHANGING übergeben wird, auch tatsächlich mit der ITAB übereinstimmt die du veränderst?
(Kein VALUE-Parameter, Keine Methoden-lokale Definition, usw. )
Das SALV erzeugt intern, wenn die als CHANGING übergebene Tabelle nicht wirklich "global änderbar" ist, eine Kopie und arbeitet mit dieser weiter.
Im Debugger erkennt man das schön, wenn in der Detailanzeige zur jeweiligen Variablen das Kennzeichen "Read-Only" gesetzt ist.
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: cl_salv_table - Werte ändern

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Ja, das ist sichergestellt.

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_salv_table - Werte ändern

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Fullscreen , custom oder docking container?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: cl_salv_table - Werte ändern

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Custom Container.

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3861
Views
Salv Table - Layouts speichern
von JohnLocklay » 14.06.2019 11:33 • Verfasst in ABAP Objects®
3
Antw.
1930
Views
GUI Status verhindert on click Event des SALV Table
von Pinguincommander » 05.02.2019 09:51 • Verfasst in ABAP® Core
2
Antw.
2076
Views
Table Control: Listbox und eigene Werte?
von Spaulding » 13.05.2005 12:46 • Verfasst in Dialogprogrammierung
4
Antw.
2931
Views
Table Control erlaubt keine negativen Werte ??
von CrazyProg » 02.05.2005 17:58 • Verfasst in Dialogprogrammierung
1
Antw.
2062
Views
Nochmal: Anzeige negativer Werte in Table auf Dynpro
von gast » 31.05.2005 12:10 • Verfasst in Dialogprogrammierung

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.