cl_gui_textedit->set_textstream funktioniert nicht?

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

cl_gui_textedit->set_textstream funktioniert nicht?

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

ich würde gern einen Text in ein Text-Edit-Control schreiben, ehe ich es dem Anwender anzeige. Folgender Effekt anhand eines Coding-Ausschnittes: Variable TEXT gefüllt, set_textstream aufgerufen, zur Kontrolle get_textstream aufgerufen - TEXT leer.

Was habe ich vergessen?

Code: Alles auswählen.

DATA: text_editor      TYPE REF TO cl_gui_textedit,
      text             TYPE string,
      text_2             TYPE string.

  CALL METHOD text_editor->set_textstream
    EXPORTING
      text                   = text.  " GEFÜLLT!

  CALL METHOD text_editor->get_textstream
    IMPORTING
      text = text_2.  " LEER!
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_gui_textedit->set_textstream funktioniert nicht?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
CREATE OBJECT text_editor .....

Re: cl_gui_textedit->set_textstream funktioniert nicht?

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

würde das Objekt nicht existieren, würde der auf einen ganz anderen Fehler laufen.


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

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Das war auch mehr ein Wink mit dem Zaunpfahl.

Du stellst uns lediglich Ausschnitte Deines Coding zur Verfuegung und erwartest dann Antworten.

Du koenntest genauso gut schreiben: Ich verwende die Klasse cl_gui_textedit und es funktioniert nicht. Was mach ich falsch.

Wie erstellst Du denn die Instanz? Wo ist der Rest des Coding?

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
So viele Möglichkeiten gibt es da ja nicht...

Code: Alles auswählen.

  CREATE OBJECT editor_container
    EXPORTING
      container_name              = 'TEXTEDITOR'
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5.

  CREATE OBJECT text_editor
    EXPORTING
      parent                     = editor_container
      wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
      wordwrap_position          = line_length
      wordwrap_to_linebreak_mode = cl_gui_textedit=>true.

  CALL METHOD text_editor->set_toolbar_mode
    EXPORTING
      toolbar_mode = cl_gui_textedit=>false.

  CALL METHOD text_editor->set_statusbar_mode
    EXPORTING
      statusbar_mode = cl_gui_textedit=>false.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Passiert was, wenn Du textedit->set_focus( textedit ) hinter set_textstream setzt?

Code: Alles auswählen.

CALL METHOD text_editor->set_textstream
    EXPORTING
      text                   = text.  " GEFÜLLT!

 textedit->set_focus( textedit ).


  CALL METHOD text_editor->get_textstream
    IMPORTING
      text = text_2.  " LEER!

Code: Alles auswählen.

CREATE OBJECT editor_container
    EXPORTING
      container_name              = 'TEXTEDITOR'
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5.
Was machst Du meiner einer EXCEPTION???

Dann doch lieber so aufrufen:

Code: Alles auswählen.

CREATE OBJECT editor_container
    EXPORTING
      container_name              = 'TEXTEDITOR'.
*    EXCEPTIONS
*      cntl_error                  = 1
*      cntl_system_error           = 2
*      create_error                = 3
*      lifetime_error              = 4
*      lifetime_dynpro_dynpro_link = 5.
Entweder ich, der Entwickler, behandelt Exeptions oder ich lass es das System machen. Aber Exeptions zurueckgeben lassen und nicht behandeln ist irgend wie 'indisch'.

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Kein Effekt.

Zu den Ausnahmen: Ich habe einen Prototyp - warum soll ich da Exceptions behandeln? Wenn ich weiß, dass es grundsätzlich funktioniert, kann ich das immer noch machen. Jetzt wäre es nur Zeitverschwendung, wo ich wissen will, ob es funktioniert.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Du brauchst Deine Zeit ja gar nicht verschwenden, aber dann lass es doch das System machen.

Du bist immer 100% der Meinung, dass etwas geht oder etwas nicht geht. Meine Erfahrung hat mich da eines besseren belehrt.

Kleine Anekdote: Selbst wenn ich einen Materialkurztext zu einem Material selektiere und man davon ausgehen sollte, das es immer einen Materialkurztext geben MUSS, trotzdem behandele ich den Sy-Subrc und lasse es auf einen Kurzdump laufen. Und siehe da, es gibt doch Materialen, die KEINEN einzigen Materialkurztext beinhalten, obwohl das Feld beim anlegen gefuellt werden muss.

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Hat vielleicht jemand einen konstruktiven Tipp, warum GET.... nicht das zurückliefert, was SET.... speichern soll?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich haette noch einen: Fuba SHOW_TABLE_BY_TEXTEDIT wollte ich mir bis zuletzt aufbewahren.

Uebrigens waren alle meine Tipps konstruktiv, ob Du es nun 100% nicht glaubst, ist wohl wieder Deine einseitige Meinung.

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
cl_gui_cfw=>flush( ). nach GET

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ralf.wenzel

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
black_adept hat geschrieben:cl_gui_cfw=>flush( ). nach GET
Bingo - jetzt ist die Variable gefüllt. Bleibt die Frage, warum der Text nicht durch SET.... im Control landet.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: cl_gui_textedit->set_textstream funktioniert nicht?

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
black_adept hat geschrieben:cl_gui_cfw=>flush( ). nach GET
Schließe mich dem an.
FLUSH hilft bei den (meisten) GUI-Control-Problemen weiter.
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_gui_textedit->set_textstream funktioniert nicht?

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
ralf.wenzel hat geschrieben:Bingo - jetzt ist die Variable gefüllt. Bleibt die Frage, warum der Text nicht durch SET.... im Control landet.
Vielleicht landet der Text ja im Control, nur halt in einer nicht sichtbaren/verdeckten Instanz.
1) Prüfung auf IS BOUND vor dem CREATE OBJECT für Container/Textedit
2) Vergessenes FREE eines vorherigen Dynpro-/Programmaufrufes (Zu Erkennen an den registrierten GUI-Controls in CL_GUI_CFW=>CFW_SUBSCRIBERLIST)
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_gui_textedit->set_textstream funktioniert nicht?

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
ralf.wenzel hat geschrieben:
black_adept hat geschrieben:cl_gui_cfw=>flush( ). nach GET
Bingo - jetzt ist die Variable gefüllt. Bleibt die Frage, warum der Text nicht durch SET.... im Control landet.
Der landet im Control - wahrscheinlich siehst du es nur nicht.
Schau mal nach, ob in der Childliste des "editor_container" auch wirklich nur genau ein Texteditcontrol hängt - und zwar das was du eben erzeugt hast.
Und schau im Parent des "editor_container", ob in dessen Childliste auch nur genau ein CustomContainer hängt.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Vergleichbare Themen

2
Antw.
1256
Views
TextEdit Verwaltung
von Miss » 17.04.2014 14:55 • Verfasst in ABAP® für Anfänger
0
Antw.
1716
Views
Toolbar im Textedit-Control?
von ewx » 30.08.2007 15:42 • Verfasst in ABAP Objects®
3
Antw.
3706
Views
Dynpro Textedit-Control
von gazzle » 19.01.2010 12:00 • Verfasst in Dialogprogrammierung
7
Antw.
3955
Views
drag&drop von alv_list ----> textedit
von abap-strizi » 05.08.2005 09:35 • Verfasst in ABAP Objects®
7
Antw.
7732
Views
Textedit-Control in modalem Dialogfenster
von PatrickMA » 20.04.2006 13:34 • 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.