CL_GUI_ALV_TREE: Zellenrahmen anzeigen

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

CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von Anne_A (ForumUser / 20 / 2 / 0 ) »
Hallo zusammen,

ich habe einen Tree (CL_GUI_ALV_TREE) programmiert, der inzwischen ziemlich viele Spalten enthält.
Dadurch ist es schwierig, die Übersicht zu behalten, wenn man in einer Zeile weiter nach rechts geht.
Deshalb kam die Frage auf, ob es nicht möglich wäre, analog zum CL_GUI_ALV_GRID auch für den Tree um jede einzelne Zelle einen Rahmen zu ziehen. Beim ALV-Grid ist das ja sogar standardmäßig so.

Ich habe bei meinen Recherchen schon einiges dazu gefunden, wie man die Rahmen beim ALV-Grid entfernen kann, aber umgekehrt noch nichts dazu, wie man die Rahmen im Tree einfügen kann.
Vermutlich muss ich ja über die Layoutstruktur in Methode CL_GUI_ALV_TREE->ADD_NODE gehen (darüber färbe ich auch bereits Zellen ein), aber ich bin wirklich ratlos, welcher Parameter dann welchen Wert bekommen muss.
Dieser Thread klang vielversprechend, hat mir aber am Ende auch nicht weitergeholfen: https://answers.sap.com/questions/12692 ... lines.html

Alternativ würde mir auch ein Zebra-Layout für den Tree helfen, wenn es dafür eine Möglichkeit gibt.

Danke und viele Grüße!
Anne


Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von ewx (Top Expert / 4383 / 214 / 486 ) »
Ich glaube, es geht nicht.
Beim ALV gibt es in LVC_S_STYL das Feld STYLE2. Hier kann man die Styles aus INCLUDE <cl_alv_control> setzen, die mit alv_style2_ beginnen.
Das geht beim Tree leider nicht.

Im Feldkatalog, das auch im Tree verwendet wird, gibt es auch STYLE2, aber auch hier funktioniert das setzen der STYLE2-Konstanten nicht.

Ein Zeba-Layout würdest du bedingt bekommen, wenn du im ITEM_STYLE die Farbe setzt. Aber da man die Knoten auf- und zuklappen kann, wird es mit dem Zebra-Style nicht durchgängig funktionieren.

Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von ewx (Top Expert / 4383 / 214 / 486 ) »
Beispiel Zebra Programm BCALV_TREE_01

Code: Alles auswählen.

FORM add_complete_line USING   ps_sflight TYPE sflight
                               p_relat_key TYPE lvc_nkey
                     CHANGING  p_node_key TYPE lvc_nkey.

  DATA: l_node_text TYPE lvc_value.
  STATICS current_color TYPE i.

  WRITE ps_sflight-fldate TO l_node_text MM/DD/YYYY.

  IF current_color = alv_style_color_int_group.
    current_color = alv_style_color_int_heading.
  ELSE.
    current_color = alv_style_color_int_group.
  ENDIF.

  DATA(lt_items) = VALUE lvc_t_layi(
     ( fieldname = 'PRICE' style = current_color )
     ( fieldname = 'CURRENCY' style = current_color )
     ( fieldname = 'FLDATE' style = current_color )
     ( fieldname = 'PLANETYPE' style = current_color )
     ).

  CALL METHOD g_alv_tree->add_node
    EXPORTING
      i_relat_node_key = p_relat_key
      i_relationship   = cl_gui_column_tree=>relat_last_child
      is_outtab_line   = ps_sflight
      i_node_text      = l_node_text
      it_item_layout   = lt_items
    IMPORTING
      e_new_node_key   = p_node_key.

ENDFORM.                               " add_complete_line

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


Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von black_adept (Top Expert / 3521 / 71 / 696 ) »
Vielleicht könnte man ja die Spalten abwechselnd färben, so dass wir quasi ein vertikales Zebramuster erhalten. Damit sind die Zellen dann durch den Hintergrund statt eines Rahmens visuell voneinander getrennt.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von ewx (Top Expert / 4383 / 214 / 486 ) »
Könnte gehen.

Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von Anne_A (ForumUser / 20 / 2 / 0 ) »
Super, vielen Dank euch beiden für den Input! Das hilft mir sehr weiter - man muss dann nur über alle Spalten loopen, um wirklich jede Zelle der jeweiligen Zeile einzufärben.
Es ist eher das horizontale Zebramuster, das ich brauche, weil es um die Übersichtlichkeit bei langen Zeilen geht.
Danke nochmal!

Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von Anne_A (ForumUser / 20 / 2 / 0 ) »
Bild1.jpg
Hmmm, so ganz zufrieden bin ich noch nicht, weil offensichtlich bei Character-Feldern nur der Teil, der auch tatsächlich Text enthält, gefärbt wird und somit Lücken in der gefärbten Zeile entstehen.
Hat jemand dazu spontan einen Tipp?

Re: CL_GUI_ALV_TREE: Zellenrahmen anzeigen

Beitrag von Anne_A (ForumUser / 20 / 2 / 0 ) »
Ich habe die Lösung schon selbst gefunden: man sollte nicht die einzelnen Zellen einfärben, also über den Style in Tabelle it_item_layout, sondern einfach den Knoten (is_node_layout-style), dann wird die gesamte Zeile gefärbt.

Seite 1 von 1

Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

SmartForms show table...
vor 2 Tagen von Lucyalison 2 / 2249
Wie groß ist mein DynPro?
vor 2 Tagen von JanR gelöst 3 / 1126

Vergleichbare Themen

Doku über ALV Tree / SAP Tree
von SkyHobbit » 14.06.2005 11:56
ALV Tree / List Tree?
von wega83 » 02.04.2012 16:06
tree
von kleinerj » 02.05.2005 13:12
ALV tree
von HZK » 01.04.2005 10:31
Tree
von Gast » 19.12.2005 15:44