Parameter in Container

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

Parameter in Container

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
Hi, ich habe meinen Screen in 3 horizontale Teile gesplittet.In dem obersten möchte ich nun einfache Ausgabewerte stehen haben.

Durch den Split habe ich nun zwar einen Container, weiß aber nicht wie ich meine Ausgabeparameter ausgeben kann ^^. Eine Tabelle oder ein Alv-Grid sollen es nicht sein. Nur einfache Ausgabefelder.

Danke im Voraus.
mfg dawns

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


Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Wenn es wirklich ein Container sein soll, kannst du dynamische Dokumente (eigentlich HTML) verwenden.
In der Entwicklungsklasse "SDYNAMICDOCUMENTS" gibt es auch Beispiel-Reports.

Gruß BlackMail.

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
naja.... "wenn es wirklich ein Container sein soll"
soll es zwar nicht, aber ist es zwangsläufig durch den Split ^^

aber danke, das genau das was ich gesucht habe :)

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
ich musste leider feststellen das mir das doch nicht weiterhilft :(
der grund, wenn ich Splitte dann sieht da so aus:

data: gref_container_statistic TYPE REF TO cl_gui_container.

* STANDARD SPLIT (HORIZONTAL + VERTICAL)
**************************************************
* set container for horizontal split
CREATE OBJECT gref_splitter_1
EXPORTING
parent = gref_container_output
rows = 2
columns = 1.

* create container
CALL METHOD gref_splitter_1->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = gref_container_statistic.


In deinen Beispielen hätte gref_container_statistic auf cl_dd_document referenziert werden müssen. Aber dann kann ich über die Methode "get_container" den Container nicht mehr zuweisen, es heißt: "Der Typ von "GREF_CONTAINER_STATISTIC" ist nicht in den Typ von "CONTAINER" konvertierbar

habt ihr sonst noch ideen wie ich eine einfache Textausgabe hinbekomme?
thx im voraus

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Das Problem habe ich nicht verstanden. Du bekommst vom Splitter eine Referenz auf einen cl_gui_container und diesen musst du dann bei display_document als parent übergeben.

Gruß BlackMail.

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Ah, verstehe!
Du hast also die Container-Referenz dem Parameter "Container" (=CHAR 250) von der Methode "display_document" zugewiesen.
Das wird nicht so gut funktionieren :wink:

Gruß Heiko.

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
naja, mein Problem ist, das ich nicht weiß wie ich das umsetzen soll.
Du bekommst vom Splitter eine Referenz auf einen cl_gui_container und diesen musst du dann bei display_document als parent übergeben.
wie denn?

laut deinen Beispielen geht das so:

Code: Alles auswählen.

* display document
    CALL METHOD do->display_document
                       EXPORTING container    = 'HTML'
                       EXCEPTIONS html_display_error = 1.
                                       " do some exception handling ...
und nun habe ich ja nicht selbst ein Container angelegt und somit auch keinen -Containername- (hier: HTML), sondern nur eine referenz auf einen Container. Wie geht das, kannst du mir da wieterhelfen bitte? danke im voraus

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »

Code: Alles auswählen.

display document
    CALL METHOD do->display_document
                       EXPORTING parent = gref_container_statistic
                       EXCEPTIONS html_display_error = 1.
                                       " do some exception handling ... 
So sollte es laufen.

Gruß BlackMail.l

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
hi, das hatte ich doch schon ganz oben geschrieben das das nicht geht, es kommt folgende Fehlermeldung: "Der Typ von "GREF_CONTAINER_STATISTIC" ist nicht in den Typ von "CONTAINER" konvertierbar "

iss ja auch logisch, der Splitter gibt einen Container der Klasse cl_gui_container zurück und das HTML-Objekt besteht aber aus der Klasse cl_dd_document. Deshalb ist das inkompatibel...

weißt du weiter? thx im voraus

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
dawns hat geschrieben: hi, das hatte ich doch schon ganz oben geschrieben das das nicht geht, es kommt folgende Fehlermeldung: "Der Typ von "GREF_CONTAINER_STATISTIC" ist nicht in den Typ von "CONTAINER" konvertierbar "
Deswegen musst Du ja auch die Referenzvariable des Containers nicht an den Parameter "container" übergeben sondern an den Parameter "parent".
Der Parameter "container" ist vom Typ CHAR(250), der Parameter "parent" vom Typ "cl_gui_container".

Gruß BlackMail.

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
ahhhh ok danke :)

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
und wie kann ich ich dann das Objekt aktualisieren? Weil ich hab nix in der Klasse CL_DD_DOCUMENT gefunden.

Eine Möglichkeit wäre den ganzen Spaß neu aufzubauen, aber gibts nich so was wie beim ALV-Grid um die Standardtabellen zu aktualisieren?

thx im voraus

Beitrag von dawns (ForumUser / 99 / 0 / 0 ) »
hi,
ich stehe immer noch vor dem selben Problem :P ^^
ich bekomme das Dokument (durch klasse cl_dd_document) immer noch nicht aktualisiert.
Weiß das einer?

Oder weiß einer wie ich allgemein eine Textausgabe machen kann in einem Container, die sich aktualisieren lässt?

danke im voraus
mfg dawns

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

da gibt es doch das Text-Edit-Control.

Dafür macht man einen Container auf und "sagt dem Control", daß es sich dort anzeigen soll ...

Code: Alles auswählen.

data: AR_DC	Type Ref To	CL_GUI_DIALOGBOX_CONTAINER.
data: AR_ED	Type Ref To	CL_GUI_TEXTEDIT.

  data: L_STRING type STRING.
  L_STRING = .....irgendein Textinhalt.

  if AR_DC is initial.
    create object AR_DC
      exporting
        TOP      = 150
        LEFT     = 150
        LIFETIME = CNTL_LIFETIME_DYNPRO
        CAPTION  = 'Überschrift'(312)
        WIDTH    = 1024
        HEIGHT   = 100.
  endif.
* TextEdit Control
  if AR_ED is initial.
    create object AR_ED
          exporting
             PARENT = AR_DC
*           WORDWRAP_MODE =
*               CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
*           WORDWRAP_POSITION = 72
*           WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
    .
  endif.
* Close-Ereignis
  set handler H_CLOSE for AR_DC.

* set status text of control
  call method AR_ED->SET_STATUS_TEXT
    exporting
      STATUS_TEXT = TEXT-311.

  call method AR_ED->SET_TEXTSTREAM
    exporting
      TEXT                   = L_STRING
    exceptions
      ERROR_CNTL_CALL_METHOD = 1
      NOT_SUPPORTED_BY_GUI   = 2
      others                 = 3.
  if SY-SUBRC <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  endif.
* set the new readonly_mode
  call method AR_ED->SET_READONLY_MODE
    exporting
      READONLY_MODE = AR_ED->TRUE.

  call method AR_DC->SET_VISIBLE
    exporting
      VISIBLE = 'X'.

  call method AR_DC->SET_FOCUS
    exporting
      CONTROL = AR_ED.

  call method CL_GUI_CFW=>FLUSH.l
Hiermit zeige ich jedenfalls unformatierten Text an.

Gruß
babap
P.S. in der REUSE gibt es prima Beispielcodings

Re:

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) »
dawns hat geschrieben:und wie kann ich ich dann das Objekt aktualisieren? Weil ich hab nix in der Klasse CL_DD_DOCUMENT gefunden.

Eine Möglichkeit wäre den ganzen Spaß neu aufzubauen, aber gibts nich so was wie beim ALV-Grid um die Standardtabellen zu aktualisieren?

thx im voraus
Der Beitrag ist zwar schon ziemlich alt... aber da ich selber gerade ne ganze Weile gesucht habte, dachte ich mir dass ich das Ergebnis auch hier bekannt geben könnte ;-)

Also wenn das Dokument neu aufgebaut werden soll, dann als erstes die Methode INITIALIZE_DOCUMENT aufrufen. Anschließend dann ganz normal das Dokument aufbauen und mit der Methode MERGE_DOCUMENT zur Ausgabe aufbereiten.

Zum Schluss muss der Aufruf fürs Anzeigen dann aber etwas anders aussehen um das bestehende Dokument einfach zu aktualisieren:

Code: Alles auswählen.

  CALL METHOD go_dd_document->display_document
    EXPORTING
      reuse_control      = 'X'
      reuse_registration = 'X'
    EXCEPTIONS
      html_display_error = 1.
Vielleicht hilfts ja irgendwann mal jemanden :-)

Grüße
Chris

PS: Die Lösung habe ich im Beispielreport DD_ADD_FORM_BUTTON gefunden...

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3139
Views
Scrollbalken bei ALV-Container
von Barney » 12.10.2016 08:18 • Verfasst in ABAP® für Anfänger
3
Antw.
3413
Views
Docking Container im Docking Container
von GreatEMU » 25.04.2013 11:54 • Verfasst in ABAP Objects®
23
Antw.
7639
Views
Container ein und ausblenden
von Studi » 16.02.2017 11:13 • Verfasst in ABAP® für Anfänger
14
Antw.
15852
Views
PDF im Container öffnen
von Barney » 24.04.2017 10:19 • Verfasst in ABAP® Core
1
Antw.
1893
Views
Container 'wandert' mit
von sebo » 24.04.2015 11:22 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 4 Stunden von msfox 18 / 10898
Dialog-Container mit Toolbar/Status
vor 6 Stunden von black_adept gelöst 27 / 4013
IT0024 Qualifikationen CP-ID
vor 8 Stunden von ArjenR 1 / 67

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

Trennen Strasse und Hausnummer
vor 4 Stunden von msfox 18 / 10898
Dialog-Container mit Toolbar/Status
vor 6 Stunden von black_adept gelöst 27 / 4013
IT0024 Qualifikationen CP-ID
vor 8 Stunden von ArjenR 1 / 67

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 8 Stunden von ArjenR 1 / 67
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3002
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9591