517
SAP Tree und Tree Model (BC-CI) Release 4.6C HELP.BCCITREE

SAP Tree und Tree Model (BC- - download.consolut.com

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI)

Release 4 .6C

HE

LP

.BC

CIT

RE

E

Page 2: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

2 April 2001

Copyright

© Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchemZweck und in welcher Formauch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. Indieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändertwerden.

Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte können Software-Komponenten auch anderer Software-Hersteller enthalten.

Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® und SQL Server® sind eingetrageneMarken derMicrosoft Corporation.

IBM®, DB2®, OS/2®, DB2/6000®, Parallel Sysplex®, MVS/ESA®, RS/6000®, AIX®, S/390®,AS/400®, OS/390® und OS/400® sind eingetragene Marken der IBM Corporation.

ORACLE® ist eine eingetragene Marke der ORACLE Corporation.

INFORMIX®-OnLine for SAP und Informix® Dynamic ServerTM

sind eingetragene Marken derInformix Software Incorporated.

UNIX®, X/Open®, OSF/1® und Motif® sind eingetragene Marken der Open Group.

HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C®, World WideWeb Consortium,Massachusetts Institute of Technology.

JAVA® ist eine eingetragene Marke der Sun Microsystems, Inc.

JAVASCRIPT® ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter derLizenz der von Netscape entwickelten und implementierten Technologie.

SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow, WebFlow,SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo und mySAP.comsind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen Ländernweltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen.

Page 3: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

April 2001 3

Symbole

Symbol Bedeutung

Achtung

Beispiel

Empfehlung

Hinweis

Syntax

Tip

Page 4: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

4 April 2001

Inhalt

SAP Tree und Tree Model (BC-CI) .............................................................................. 12Die Tree Controls im SAP GUI for HTML................................................................................................. 14SAP Tree..................................................................................................................................................... 15Programmieren des Tree .......................................................................................................................... 17Übersicht über die Klassen des SAP Tree.............................................................................................. 18Die Vererbungshierarchie ......................................................................................................................... 22Fehlersuche................................................................................................................................................ 24Wichtige Hinweise ..................................................................................................................................... 25Beispielprogramme ................................................................................................................................... 26Verwendung von Controls im WAN ......................................................................................................... 27

Spezielle Hinweise für den SAP Tree .................................................................................................... 29Inkrementeller Baumaufbau ................................................................................................................... 31

Der Simple Tree ......................................................................................................................................... 32Anlegen eines Controls am Beispiel des SAP Picture ........................................................................... 33Arbeiten mit dem Simple Tree................................................................................................................ 35

Eigenschaften des Controls ändern .................................................................................................. 37Eigenschaften des Controls abfragen ............................................................................................... 39

Registrieren und Verarbeiten von Ereignissen....................................................................................... 40Ereignisse des Simple Tree .............................................................................................................. 42Drag&Drop ........................................................................................................................................ 45

Ablauf einer Drag&Drop Operation .............................................................................................. 47Ereignisse bei Drag&Drop............................................................................................................ 49Definition von Ereignissen bei Drag&Drop im SAP Tree............................................................. 51Beispiel für Drag&Drop-Programmierung .................................................................................... 54

Der Column Tree........................................................................................................................................ 59Anlegen eines Controls am Beispiel des SAP Picture ........................................................................... 60Arbeiten mit dem Column Tree .............................................................................................................. 62

Eigenschaften des Controls ändern .................................................................................................. 65Eigenschaften des Controls abfragen ............................................................................................... 69

Registrieren und Verarbeiten von Ereignissen....................................................................................... 70Ereignisse des Column Tree und des List Tree................................................................................ 72Drag&Drop ........................................................................................................................................ 77

Ablauf einer Drag&Drop Operation .............................................................................................. 79Ereignisse bei Drag&Drop............................................................................................................ 81Definition von Ereignissen bei Drag&Drop im SAP Tree............................................................. 83Beispiel für Drag&Drop-Programmierung .................................................................................... 86

Der List Tree............................................................................................................................................... 91Anlegen eines Controls am Beispiel des SAP Picture ........................................................................... 92Arbeiten mit dem List Tree ..................................................................................................................... 94

Eigenschaften des Controls ändern .................................................................................................. 97Eigenschaften des Controls abfragen ............................................................................................. 100

Registrieren und Verarbeiten von Ereignissen..................................................................................... 101Ereignisse des Column Tree und des List Tree.............................................................................. 103

Page 5: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

April 2001 5

Drag&Drop ...................................................................................................................................... 108Ablauf einer Drag&Drop Operation ............................................................................................ 110Ereignisse bei Drag&Drop.......................................................................................................... 112Definition von Ereignissen bei Drag&Drop im SAP Tree........................................................... 114Beispiel für Drag&Drop-Programmierung .................................................................................. 117

Methoden der Klasse CL_TREE_CONTROL_BASE ............................................................................. 122add_key_stroke .................................................................................................................................... 123collapse_all_nodes ............................................................................................................................... 124collapse_nodes..................................................................................................................................... 125collapse_subtree .................................................................................................................................. 126delete_all_nodes .................................................................................................................................. 127delete_node.......................................................................................................................................... 128delete_nodes ........................................................................................................................................ 129ensure_visible....................................................................................................................................... 130expand_node........................................................................................................................................ 131expand_nodes ...................................................................................................................................... 132expand_root_nodes.............................................................................................................................. 133get_expanded_nodes ........................................................................................................................... 134get_selected_node ............................................................................................................................... 135get_selected_nodes ............................................................................................................................. 136get_top_node........................................................................................................................................ 137move_node........................................................................................................................................... 138node_set_disabled ............................................................................................................................... 139node_set_dragdropid............................................................................................................................ 140node_set_expander.............................................................................................................................. 141node_set_exp_image ........................................................................................................................... 142node_set_hidden .................................................................................................................................. 143node_set_is_folder ............................................................................................................................... 144node_set_no_branch............................................................................................................................ 145node_set_n_image ............................................................................................................................... 146node_set_style ..................................................................................................................................... 147remove_all_key_strokes....................................................................................................................... 148scroll ..................................................................................................................................................... 149select_nodes ........................................................................................................................................ 150set_default_drop................................................................................................................................... 151set_folder_show_exp_image................................................................................................................ 152set_has_3d_frame................................................................................................................................ 153set_screen_update ............................................................................................................................... 154set_selected_node ............................................................................................................................... 155set_top_node........................................................................................................................................ 156unselect_all........................................................................................................................................... 157unselect_nodes .................................................................................................................................... 158set_ctx_menu_select_event_appl ........................................................................................................ 159

Methoden der Klasse CL_ITEM_TREE_CONTROL .............................................................................. 160add_nodes_and_items ......................................................................................................................... 161delete_all_items_of_nodes................................................................................................................... 165delete_items ......................................................................................................................................... 166get_selected_item ................................................................................................................................ 167item_set_chosen .................................................................................................................................. 168item_set_disabled................................................................................................................................. 169item_set_editable ................................................................................................................................. 170

Page 6: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

6 April 2001

item_set_font ........................................................................................................................................ 171item_set_hidden ................................................................................................................................... 172item_set_style....................................................................................................................................... 173item_set_text ........................................................................................................................................ 174item_set_t_image ................................................................................................................................. 175select_item ........................................................................................................................................... 176set_min_node_height ........................................................................................................................... 177update_nodes_and_items .................................................................................................................... 178

Methoden der Klasse CL_GUI_SIMPLE_TREE ..................................................................................... 183constructor............................................................................................................................................ 184add_nodes............................................................................................................................................ 185node_set_text ....................................................................................................................................... 188update_nodes....................................................................................................................................... 189

Methoden der Klasse CL_GUI_LIST_TREE........................................................................................... 192constructor............................................................................................................................................ 193node_set_last_hierarchy_item ............................................................................................................. 195hierarchy_header_set_t_image............................................................................................................ 196list_header_set_t_image ...................................................................................................................... 197hierarchy_header_set_text ................................................................................................................... 198list_header_set_text ............................................................................................................................. 199hierarchy_header_set_width ................................................................................................................ 200hiearchy_header_get_width ................................................................................................................. 201hierarchy_header_adjust_width ........................................................................................................... 202item_set_alignment .............................................................................................................................. 203item_set_length .................................................................................................................................... 204hierarchy_header_set_tooltip ............................................................................................................... 205list_header_set_tooltip.......................................................................................................................... 206

Methoden der Klasse CL_GUI_COLUMN_TREE................................................................................... 207constructor............................................................................................................................................ 208add_column .......................................................................................................................................... 210add_hierarchy_column ......................................................................................................................... 212adjust_column_width ............................................................................................................................ 213column_get_width................................................................................................................................. 214column_set_disabled............................................................................................................................ 215column_set_heading_image ................................................................................................................ 216column_set_heading_text..................................................................................................................... 217column_set_heading_tooltip................................................................................................................. 218column_set_hidden .............................................................................................................................. 219column_set_width................................................................................................................................. 220delete_column ...................................................................................................................................... 221get_column_order................................................................................................................................. 222hierarchy_header_adjust_width ........................................................................................................... 223hierarchy_header_get_width ................................................................................................................ 224hierarchy_header_set_text ................................................................................................................... 225hierarchy_header_set_tooltip ............................................................................................................... 226hierarchy_header_set_t_image............................................................................................................ 227hierarchy_header_set_width ................................................................................................................ 228insert_column ....................................................................................................................................... 229insert_hierarchy_column ...................................................................................................................... 231set_column_order................................................................................................................................. 232update_column..................................................................................................................................... 233

SAP Tree Model ....................................................................................................................................... 235

Page 7: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

April 2001 7

Übersicht über die Klassen des SAP Tree Model ................................................................................ 236Die Vererbungshierarchie ....................................................................................................................... 240Fehlersuche.............................................................................................................................................. 241Wichtige Hinweise ................................................................................................................................... 242Beispielprogramme ................................................................................................................................. 243Verwendung von Controls im WAN ....................................................................................................... 244Das Simple Tree Model ........................................................................................................................... 246

Arbeiten mit dem Simple Tree Model ................................................................................................... 247Suchen im Simple Tree Model ............................................................................................................. 251

Das Column Tree Model.......................................................................................................................... 252Arbeiten mit dem Column Tree Model.................................................................................................. 253Einträge auf Anforderung laden ........................................................................................................... 256

Das List Tree Model................................................................................................................................. 258Arbeiten mit dem List Tree Model ........................................................................................................ 259Einträge auf Anforderung laden ........................................................................................................... 262

Ereignisverarbeitung im Tree Model ..................................................................................................... 264Methoden der Klasse CL_TREE_MODEL.............................................................................................. 265

create_tree_control............................................................................................................................... 266set_has_3d_frame................................................................................................................................ 267update_view ......................................................................................................................................... 268add_key_stroke .................................................................................................................................... 269remove_all_key_strokes....................................................................................................................... 270get_key_strokes ................................................................................................................................... 271set_selected_node ............................................................................................................................... 272select_nodes ........................................................................................................................................ 273unselect_all........................................................................................................................................... 274unselect_nodes .................................................................................................................................... 275get_selected_node ............................................................................................................................... 276get_selected_nodes ............................................................................................................................. 277get_node_selection_mode ................................................................................................................... 278get_hide_selection................................................................................................................................ 279node_keys_in_tree ............................................................................................................................... 280node_key_in_tree ................................................................................................................................. 281expand_node........................................................................................................................................ 282expand_nodes ...................................................................................................................................... 283expand_root_nodes.............................................................................................................................. 284save_expand_all_nodes....................................................................................................................... 285save_expand_subtree .......................................................................................................................... 286expand_node_predecessors ................................................................................................................ 287get_expanded_nodes ........................................................................................................................... 288collapse_all_nodes ............................................................................................................................... 289collapse_node ...................................................................................................................................... 290get_first_root_node............................................................................................................................... 291get_last_root_node............................................................................................................................... 292get_nr_of_root_nodes .......................................................................................................................... 293get_root_nodes..................................................................................................................................... 294delete_all_nodes .................................................................................................................................. 295delete_node.......................................................................................................................................... 296delete_nodes ........................................................................................................................................ 297node_set_disabled ............................................................................................................................... 298node_set_dragdropid............................................................................................................................ 299

Page 8: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

8 April 2001

node_set_expander.............................................................................................................................. 300node_set_expanded_image ................................................................................................................. 301node_set_hidden .................................................................................................................................. 302node_set_is_folder ............................................................................................................................... 303node_set_no_branch............................................................................................................................ 304node_set_image ................................................................................................................................... 305node_set_style ..................................................................................................................................... 306node_set_user_object .......................................................................................................................... 307node_get_children ................................................................................................................................ 308node_get_first_child ............................................................................................................................. 309node_get_last_child.............................................................................................................................. 310node_get_next_sibling.......................................................................................................................... 311node_get_nr_of_children...................................................................................................................... 312node_get_parent .................................................................................................................................. 313node_get_prev_sibling ......................................................................................................................... 314node_get_user_object .......................................................................................................................... 315print_tree............................................................................................................................................... 316get_nr_of_nodes................................................................................................................................... 317ensure_visible....................................................................................................................................... 318move_node........................................................................................................................................... 319scroll ..................................................................................................................................................... 321set_ctx_menu_select_event_appl ........................................................................................................ 322get_ctx_menu_select_event_appl........................................................................................................ 323set_default_drop................................................................................................................................... 324get_default_drop................................................................................................................................... 325set_folder_show_exp_image................................................................................................................ 326get_folder_show_exp_image ............................................................................................................... 327set_top_node........................................................................................................................................ 328get_top_node........................................................................................................................................ 329get_first_root_node............................................................................................................................... 330get_last_root_node............................................................................................................................... 331

Methoden der Klasse CL_SIMPLE_TREE_MODEL .............................................................................. 332constructor............................................................................................................................................ 333add_node.............................................................................................................................................. 334add_nodes............................................................................................................................................ 337update_nodes....................................................................................................................................... 338set_registered_events .......................................................................................................................... 339get_registered_events .......................................................................................................................... 341node_set_text ....................................................................................................................................... 342node_get_text....................................................................................................................................... 343node_get_properties............................................................................................................................. 344get_tree................................................................................................................................................. 345find ........................................................................................................................................................ 346find_first ................................................................................................................................................ 347find_next ............................................................................................................................................... 349find_all .................................................................................................................................................. 350find_all_continue................................................................................................................................... 352

Methoden der Klasse CL_ITEM_TREE_MODEL ................................................................................... 353set_registered_events .......................................................................................................................... 354get_registered_events .......................................................................................................................... 356find ........................................................................................................................................................ 357find_first ................................................................................................................................................ 358

Page 9: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

April 2001 9

find_next ............................................................................................................................................... 360find_all .................................................................................................................................................. 361find_all_continue................................................................................................................................... 363select_item ........................................................................................................................................... 364get_selected_item ................................................................................................................................ 365get_item_selection................................................................................................................................ 366delete_items ......................................................................................................................................... 367delete_all_items_of_nodes................................................................................................................... 368item_set_chosen .................................................................................................................................. 369item_set_disabled................................................................................................................................. 370item_set_editable ................................................................................................................................. 371item_set_font ........................................................................................................................................ 372item_set_hidden ................................................................................................................................... 373item_set_style....................................................................................................................................... 374item_set_text ........................................................................................................................................ 375item_get_text ........................................................................................................................................ 376item_set_image .................................................................................................................................... 377

Methoden der Klasse CL_LIST_TREE_MODEL .................................................................................... 378constructor............................................................................................................................................ 379add_node.............................................................................................................................................. 381add_nodes............................................................................................................................................ 384update_nodes....................................................................................................................................... 385add_items ............................................................................................................................................. 386update_items ........................................................................................................................................ 387hierarchy_header_set_t_image............................................................................................................ 388hierarchy_header_set_width ................................................................................................................ 389hierarchy_header_set_text ................................................................................................................... 390hierarchy_header_set_tooltip ............................................................................................................... 391hierarchy_header_adjust_width ........................................................................................................... 392hierarchy_header_get_width ................................................................................................................ 393hierarchy_header_get_props ............................................................................................................... 394list_header_set_t_image ...................................................................................................................... 395list_header_set_text ............................................................................................................................. 396list_header_set_tooltip.......................................................................................................................... 397list_header_get_properties ................................................................................................................... 398node_set_last_hierarchy_item ............................................................................................................. 399node_get_properties............................................................................................................................. 400node_get_item...................................................................................................................................... 401node_get_items.................................................................................................................................... 402item_set_alignment .............................................................................................................................. 403item_set_length .................................................................................................................................... 404get_tree................................................................................................................................................. 405set_item_provider ................................................................................................................................. 406get_with_headers ................................................................................................................................. 407

Methoden der Klasse CL_COLUMN_TREE_MODEL............................................................................ 408constructor............................................................................................................................................ 409add_node.............................................................................................................................................. 410add_nodes............................................................................................................................................ 413update_nodes....................................................................................................................................... 414add_items ............................................................................................................................................. 415update_items ........................................................................................................................................ 416add_column .......................................................................................................................................... 417

Page 10: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

10 April 2001

add_hierarchy_column ......................................................................................................................... 419insert_column ....................................................................................................................................... 420insert_hierarchy_column ...................................................................................................................... 422delete_column ...................................................................................................................................... 423hierarchy_header_adjust_width ........................................................................................................... 424hierarchy_header_set_text ................................................................................................................... 425hierarchy_header_set_tooltip ............................................................................................................... 426hierarchy_header_set_t_image............................................................................................................ 427hierarchy_header_set_width ................................................................................................................ 428update_hierarchy_header..................................................................................................................... 429hierarchy_header_get_width ................................................................................................................ 430hierarchy_header_get_props ............................................................................................................... 431get_hierarchy_columns ........................................................................................................................ 432get_nr_of_columns ............................................................................................................................... 433get_first_column ................................................................................................................................... 434get_last_column ................................................................................................................................... 435get_widths_of_columns........................................................................................................................ 436get_column_order................................................................................................................................. 437set_column_order................................................................................................................................. 438set_column_order_frozen..................................................................................................................... 439column_set_disabled............................................................................................................................ 440column_set_heading_image ................................................................................................................ 441column_set_heading_text..................................................................................................................... 442column_set_heading_tooltip................................................................................................................. 443column_set_hidden .............................................................................................................................. 444column_set_width................................................................................................................................. 445update_column..................................................................................................................................... 446adjust_column_width ............................................................................................................................ 448column_get_width................................................................................................................................. 449column_get_next_sibling ...................................................................................................................... 450column_get_prev_sibling...................................................................................................................... 451column_get_properties ......................................................................................................................... 452node_get_item...................................................................................................................................... 453node_get_items.................................................................................................................................... 454node_get_properties............................................................................................................................. 455get_table............................................................................................................................................... 456set_print_short_header_width .............................................................................................................. 457set_item_provider ................................................................................................................................. 458

Wichtige Datenstrukturen....................................................................................................................... 459Struktur TREEMSNODT....................................................................................................................... 460Struktur TREEMSUNO......................................................................................................................... 463Strukturen für Überschriften von Item Trees ........................................................................................ 467Struktur TREEMLNODT ....................................................................................................................... 468Struktur TREEMLITEM......................................................................................................................... 471Struktur TREEMCITEM ........................................................................................................................ 474Struktur TREEMCNODT....................................................................................................................... 476Struktur TREEMSNOD......................................................................................................................... 479

Methoden des OO Control Frameworks................................................................................................ 481Methoden der Klasse CL_GUI_CFW ...................................................................................................... 482

dispatch ................................................................................................................................................ 483flush ...................................................................................................................................................... 484get_living_dynpro_controls................................................................................................................... 485

Page 11: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

April 2001 11

set_new_ok_code................................................................................................................................. 486update_view ......................................................................................................................................... 487

Methoden der Klasse CL_GUI_OBJECT................................................................................................ 488is_valid.................................................................................................................................................. 489free........................................................................................................................................................ 490

Methoden der Klasse CL_GUI_CONTROL ............................................................................................ 491finalize................................................................................................................................................... 492set_registered_events .......................................................................................................................... 493get_registered_events .......................................................................................................................... 494is_alive.................................................................................................................................................. 495set_alignment ....................................................................................................................................... 496set_position .......................................................................................................................................... 497set_visible............................................................................................................................................. 498get_focus .............................................................................................................................................. 499set_focus .............................................................................................................................................. 500get_height ............................................................................................................................................. 501get_width .............................................................................................................................................. 502

Methoden der Klasse CL_DRAGDROP.................................................................................................. 503constructor............................................................................................................................................ 504add........................................................................................................................................................ 505clear ...................................................................................................................................................... 507destroy.................................................................................................................................................. 508get......................................................................................................................................................... 509get_handle............................................................................................................................................ 511modify ................................................................................................................................................... 512remove.................................................................................................................................................. 514

Methoden der Klasse CL_DRAGDROPOBJECT................................................................................... 515set_flavor .............................................................................................................................................. 516abort...................................................................................................................................................... 517

Page 12: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

SAP Tree und Tree Model (BC-CI)

12 April 2001

SAP Tree und Tree Model (BC-CI)EinsatzmöglichkeitenBei SAP Tree und SAP Tree Model handelt es sich um Techniken, die auf dem ControlFramework von SAP aufbauen und zur Anzeige von hierarchisch angeordneten Daten in einerBaumstruktur verwendet werden können. Mit dem SAP Tree, der zu Release 4.6A eingeführtwurde, lassen sich Daten am Frontend darstellen. Das SAP Tree Model, das zu Release 4.6Cneu hinzukam, ermöglicht darüber hinaus die Verwaltung der Daten in der Control-Instanz.

In der unten abgebildeten Grafik sind die Unterschiede dargestellt. Der SAP Tree empfängtAnwendungsdaten vom Programm und übergibt sie entweder direkt oder bei der nächstenSynchronisation an die entsprechende Frontend-Komponente. Er kann Daten jedoch nicht selbsthalten, d.h. wenn Sie andere Eigenschaften als den Schlüssel oder Namen eines Knotens oderEintrags ermitteln möchten, müssen Sie diese Anforderung auf der Basis des Knotenschlüsselsselbst programmieren. Das SAP Tree Model hingegen umfaßt einen Datenverwaltungsteil undkapselt außerdem eine normale Tree-Control-Instanz. Alle Daten, die an den Baum übergebenwerden, werden in der Tree-Model-Instanz gehalten und an das Frontend geschickt. Folglichfinden Aktionen wie Suchen im Baum im ABAP-Programm statt und erfordern keinezeitaufwendige Netzwerkkommunikation.

SAP Tree SAP Tree Model

Anzeige amFrontend

Anwendungsdaten Anwendungsdaten

Tree-Control-InstanzTree-Control-Instanz

Datenverwaltung

Tree-Model-Instanz

Anzeige amFrontend

Anwendungsprogramm Anwendungsprogramm

EinführungshinweiseBei der Entscheidung, ob Sie den SAP Tree oder das SAP Tree Model verwenden, sollten Siebedenken, daß das SAP Tree Model einige nützliche Funktionen bietet, die im SAP Tree nichtverfügbar sind. Beim SAP Tree Model können Sie zum Beispiel:

• Knotenschlüssel prüfen, bevor sie ans Frontend geschickt werden (um sicherzustellen, daßkeine Dubletten existieren)

Page 13: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

SAP Tree und Tree Model (BC-CI)

April 2001 13

• Im Baum suchen

• Den Baum drucken

Außerdem bietet das SAP Tree Model:

• Automatische Flush-Handhabung

• Automatische Handhabung der Knotenübergabe an das Frontend

Für den Einsatz des SAP Tree ist das SAP GUI ab Release 4.6A erforderlich. Für den Einsatzdes SAP Tree Model ist das SAP GUI ab Release 4.6C erforderlich.

EinschränkungenEinige Funktionen des SAP Tree und des SAP Tree Model sind im SAP GUI for HTML nichtverfügbar. Nähere Informationen finden Sie unter Die Tree Controls im SAP GUI for HTML [Seite14].

Page 14: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Die Tree Controls im SAP GUI for HTML

14 April 2001

Die Tree Controls im SAP GUI for HTMLEin Ziel der GUI-Strategie von SAP war die Einführung des SAP GUI for HTML, in dem R/3-Transaktionen innerhalb eines Web-Browsers ausgeführt werden können. Jedoch sind einigeFunktionen des SAP Tree und des SAP Tree Model in dieser Umgebung entweder nichtverfügbar oder zeigen ein anderes Verhalten als im SAP GUI for Windows.

Einschränkungen im Simple Tree und Simple Tree Model• Der oberste Knoten des Tree Controls kann nicht gesetzt oder abgefragt werden. Der

oberste Knoten der Anzeige bleibt zwischen Browser-Requests nicht erhalten.

• Drag&Drop ist nicht möglich.

• Für Knoten gibt es keine Kontextmenüs.

Einschränkungen im Column Tree und Column Tree ModelEs gelten alle Einschränkungen des Simple Tree und des Simple Tree Model sowie zusätzlichdie folgenden:

• Die Spaltenbreite kann nicht gesetzt oder geändert werden. DieSpaltenbreite wirdautomatisch an die längste Textbreite in der Spalte angepaßt.

• Durch den Hierarchiebereich des Baums kann nicht separat geblättert werden.

Einschränkungen im List Tree und List Tree ModelEs gelten alle Einschränkungen des Simple Tree und des Simple Tree Model sowie zusätzlichdie folgenden:

• Farben und Formatierung sind noch nicht implementiert.

Page 15: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

SAP Tree

April 2001 15

SAP TreeEinsatzmöglichkeitenDer SAP Tree ist ein Control, das zur Anzeige von Baumstrukturen dient. Der SAP Tree wurdevon SAP entwickelt und erfüllt die Grundanforderungen an ein Tree Control, wobei es aber nichtauf einzelne Anwendungen zugeschnitten ist.

Im System sind die Beispielprogramme SAPCOLUMN_TREE_CONTROL_DEMO,SAPSIMPLE_TREE_CONTROL_DEMO und SAPTLIST_TREE_CONTROL_DEMOhinterlegt.

Das folgende Bild zeigt ein Beispiel. Innerhalb eines R/3-Fensters wird sowohl ein SAP Tree(linke Seite) als auch ein SAP HTML Viewer (rechte Seite) angezeigt:

FunktionsumfangFür SAP Tree existieren drei Ausprägungen [Seite 18]:

• Simple Tree: eine einfache Baumstruktur mit einem Texteintrag pro Knoten

• List Tree: Pro Knoten sind mehrere Einträge möglich. Die Einträge eines Knotens werdenvon links nach rechts ausgegeben.

Page 16: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

SAP Tree

16 April 2001

• Column Tree: Baumstruktur mit frei definierbaren Spalten

Page 17: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Programmieren des Tree

April 2001 17

Programmieren des TreeDatenbehandlung in Ihrem ABAP-Programm:Bei der Programmierung des SAP Tree schicken Sie die anzuzeigenden Daten zusammen mitVerwaltungs- und Formatinformationen an das Control.

Eine Instanz eines SAP Tree hat keinen Datenbestand. Es dient lediglich dazu,Daten zum SAP Tree am Frontend zu übertragen bzw. Daten vom SAP Tree amFrontend zu holen. Eine Anwendung muß ihre eigene Baumdatenstruktur pflegen.

Besonders bei der Ereignisbehandlung benötigen Sie diese Informationen, da dasControl nur Verwaltungsdaten nach dem Auslösen eines Ereignisses bereitstellt (z.B.Name des Knotens, auf dem das Ereignis ausgelöst wurde).

Wichtige Elemente des SAP TreesSofern ein Knoten hierarchisch untergeordnete Knoten besitzt, wird er Ordner genannt. EinKnoten ohne untergeordneten Knoten heißt Blatt.

Vor jedem nicht leeren Ordner wird ein + bzw. - zum Expandieren bzw. Komprimieren desKnotens angezeigt. Weiterhin kann für jeden Knoten ein Bild definiert werden, das dem Knotenvorangestellt wird.

Page 18: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Übersicht über die Klassen des SAP Tree

18 April 2001

Übersicht über die Klassen des SAP TreeSimple TreeDie Klasse CL_GUI_SIMPLE_TREE verschalt den Simple Tree.

Beispielprogramm: SAPSIMPLE_TREE_CONTROL_DEMO:

Eigenschaften

• Ein Knoten besteht aus einem Ordner/Blatt-Symbol und einem Text.

• Ankreuzfelder und zusätzliche Ikonen sind nicht möglich.

• Mehrere Texte pro Knoten sind nicht möglich.

• Überschrift nicht vorhanden.

Column TreeDie Klasse CL_GUI_COLUMN_TREE verschalt den Column Tree.

Beispielprogramm: SAPCOLUMN_TREE_CONTROL_DEMO:

Page 19: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Übersicht über die Klassen des SAP Tree

April 2001 19

Eigenschaften

• Ein Knoten besteht aus einem Ordner/Blatt-Symbol und mehreren Einträgen (Items).

• Die Einträge eines Knotens sind in Spalten angeordnet.

In diesem Beispiel hat der Baum drei Spalten. Diese Spalten haben die logischenNamen 'Column1', 'Column2' und 'Column3'. Der oberste Knoten hat in jeder dieserSpalten einen Eintrag:

'Root Col. 1' in der Spalte 'Column1'

'Root Col. 2' in der Spalte 'Column2'

'Root Col. 3' in der Spalte 'Column3'

• In einem COLUMN_TREE gibt es zwei Arten von Spalten:

− Spalten im Hierarchiebereich: Diese Spalten befinden sich unterhalb derHierarchieüberschrift. Die Hierarchieüberschrift ist die erste Überschrift von links im SAPTree (im Beispiel: 'Hierarchy Header'). Üblicherweise befindet sich genau eine Spalte imHierarchiebereich. Im Beispiel ist es die Spalte mit Namen 'Column1', in der die Einträge'Root Col.1 ', 'Child1 Col. 1' usw. zu finden sind.

− Spalten außerhalb des Hierarchiebereichs: Diese Spalten haben eine eigene Überschrift(Header). Im Beispiel gibt es zwei Spalten außerhalb des Hierarchiebereichs, die dieÜberschriften 'Column2' und 'Column3' haben.

• Es gibt folgende Arten von Einträgen:

− Text: Text mit optionaler Ikone

− Ankreuzfeld: Ankreuzfeld mit optionaler Ikone und mit Text

− Drucktaste: Drucktaste mit Text und Ikone

− Verweis: Wie Text, zusätzlich wird bei einem Klick ein Ereignis ausgelöst

Page 20: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Übersicht über die Klassen des SAP Tree

20 April 2001

List TreeDie Klasse CL_GUI_LIST_TREE verschalt den List Tree.

Beispielprogramm: SAPTLIST_TREE_CONTROL_DEMO:

Eigenschaften

• Ein Knoten besteht aus einem Ordner/Blatt -Symbol und Einträgen.

• Die Einträge eines Knotens werden von links nach rechts ausgegeben.

Aufbau der ersten drei Knoten im Beispiel:

Der oberste Knoten hat einen Eintrag („Objekte“). Bei diesem Eintrag istProportionalschrift eingestellt. Zusätzlich ist „automatische Breite“ eingestellt, d.h.,die Ausgabebreite des Eintrags wird dem Inhalt (dem String „Objekte“) angepaßt.

Der zweite Knoten von oben ist analog zum ersten aufgebaut: ein Eintrag mit Text„Dynpros“.

Der dritte Knoten von oben besitzt vier Einträge:

Haken-Ikone, Breite vier Zeichen

0100, keine Proportionalschrift, Breite vier Zeichen

MUELLER, Breite 11 Zeichen, keine Proportionalschrift

Comment to Dynpro 100, Proportionalschrift, automatische Breite

• Die Verwendung von Einträgen mit nicht proportionaler Schrift und einer vorgegebenenAusgabebreite ermöglicht tabellenartige Formatierungen wie im Beispiel.

• Es gibt folgende Arten von Einträgen:

− Text: Text mit optionaler Ikone

− Ankreuzfeld: Ankreuzfeld mit optionaler Ikone und mit Text

Page 21: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Übersicht über die Klassen des SAP Tree

April 2001 21

− Drucktaste: Drucktaste mit Text und Ikone

− Verweis: Wie Text, zusätzlich wird bei einem Klick ein Ereignis ausgelöst

• Es gibt eine Hierarchieüberschrift und eine Listenüberschrift, unter denen alle Einträgegruppiert werden können. Als Beispiel kann das ProgrammSAPTLIST_TREE_CONTROL_DEMO_HDR verwendet werden:

Page 22: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Die Vererbungshierarchie

22 April 2001

Die VererbungshierarchieDie Linien im Diagramm stellen die Vererbungsbeziehung dar.

cl_gui_control

cl_tree_control_base

cl_gui_simple_tree cl_item_tree_control

cl_gui_column_tree cl_gui_list_tree

Jede Control-Klasse erbt die Klasse cl_gui_control.

Die Schnittstelle eines Controls besteht aus den öffentlichen Methoden der Verschalungsklasseund aus den öffentlichen Methoden der Superklassen der Verschalungsklasse.

Schnittstelle der Klasse cl_gui_column_tree:

Öffentliche Methoden der Klasse cl_gui_column_tree

Öffentliche Methoden der Klasse cl_item_tree_control

Öffentliche Methoden der Klasse cl_tree_control_base

Öffentliche Methoden der Klasse cl_gui_control.

Funktionalität der Klassencl_tree_control_base Methoden aller SAP Trees (Simple Tree, List Tree, Column Tree), z.B.

„Setzen der expandierten Knoten“

cl_gui_simple_tree Simple Tree

cl_item_tree_control Gemeinsamkeiten von List Tree und Column Tree, z.B. „Setze Text einesItems“

cl_gui_column_tree Column Tree

Page 23: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Die Vererbungshierarchie

April 2001 23

cl_gui_list_tree List Tree

Page 24: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Fehlersuche

24 April 2001

FehlersucheFehler bei der Control-Verarbeitung treten häufig erst beim Sychronisieren der AutomationQueue [Extern] auf. Die Synchronisation erfolgt entweder explizit über den Aufruf der MethodeCL_GUI_CFW=>FLUSH [Seite 484] oder implizit nach dem Durchlaufen des letzten PBO-Moduls.

Tritt der Fehler beim expliziten Synchronisieren auf, wird die Ausnahme CNTL_ERROR derMethode CL_GUI_CFW=>FLUSH ausgelöst. Tritt der Fehler beim impliziten Synchronisieren auf,kommt es in der Regel zu einem Kurzdump. Sie können den Kurzdump vermeiden, indem Siespezielle Ereignisse des Control Frameworks verarbeiten.

Das Auslösen der Ausnahme CNTL_ERROR sagt zunächst nur aus, daß ein Methodenaufruf aufeinem Control am Frontend nicht erfolgreich abgesetzt werden konnte. Daher muß nuneingegrenzt werden, welches Control am Frontend zu dieser Ausnahme führte und warum dasControl diese Ausnahme auslöste. Dazu verwenden Sie den Debugger:

1. Führen Sie das Programm erneut im Debugger aus.

2. Verzweigen Sie in die Einstellungen des Debuggers, und markieren Sie das AnkreuzfeldAutomation Controller: Aufträge immer synchron verarbeiten.Diese Einstellung führt dazu, daß nach jedem Methodenaufruf die Automation Queuesynchronisiert wird.

3. Debuggen Sie über die einzelnen Methodenaufrufe hinweg. Beachten Sie, daß derSY-SUBRC nach dem fehlerhaften Methodenaufruf gesetzt wird, sofern Sie dieAusnahmebehandlung der Methode in Ihrem Applikationsprogramm abgefragt haben.Ansonsten erhalten Sie an dieser Stelle wieder einen Kurzdump.

4. Überprüfen Sie, warum der Methodenaufruf fehlerhaft ist.

Im Fehlerfall sollten Sie zuerst die Beispielprogramme zur jeweiligen Control-Verschalung ausführen. Tritt auch hier ein Fehler auf, handelt es sich um einInstallationsproblem des lokalen SAP GUI.

Nach dem Auftreten eines CNTL_ERROR darf mit Controls in der Regel nicht mehrweitergearbeitet werden. Vor allem ist zu beachten, daß Einträge in der AutomationQueue, die nach dem Fehler stehen, nicht mehr durchgeführt wurden.

Sofern der Fehler bei der ersten Synchronisation der Automation Queue aufgetretenist, kann eventuell auch der Automation Controller nicht mehr aktiv sein. Dies führtdazu, daß alle nachfolgenden Control-Aufrufe mit einem CNTL_ERROR abbrechen.

Page 25: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Wichtige Hinweise

April 2001 25

Wichtige HinweiseWerden in einem PBO/PAI-Zyklus zu viele Knoten an den SAP Tree übertragen, kann es zueinem Timeout-Abbruch kommen. Im Kapitel Inkrementeller Baumaufbau [Seite 31] wirdbeschrieben, wie die Übertragungsmenge klein gehalten werden kann.

Sollen viele Teilobjekte geändert werden (z.B. 20 Texte), so sollte aus Performance-Gründeneine Methode mit Tabellenschnittstelle (update_nodes_and_items [Seite 178] bzw.update_nodes [Seite 189]) verwendet werden, statt 20 Einzelmethoden zu rufen. Dieses gilt auchfür andere Operationen, wie das Expandieren usw.

In einem PBO/PAI-Zyklus sollten Methoden mit einer Tabellenschnittstelle nicht mehrfachgerufen werden. Anstatt 20 Methodenaufrufen ADD_NODES_… mit je 5 Knoten sollte ein Aufrufmit allen 100 Knoten verwendet werden.

Die Exceptions der SAP-Tree-Methoden setzen keine Nachrichten.

Die Exceptions der SAP-Tree-Methoden und von Flush-Aufrufen dürfen auf keinen Fall ignoriertwerden. Tritt ein Fehler auf, wird die Abarbeitung der Automation Queue abgebrochen. Hiervonsind sämtliche Controls eines internen Modus betroffen. Nach Auftreten des Fehlers darf eininterner Modus nicht mehr mit Controls weiterarbeiten.

Der SAP Tree ist prinzipiell nicht zur Darstellung von Listen ohne Hierarchie geeignet, da beieinem SAP Tree immer alle Wurzelknoten zum Control übertragen werden müssen. Listen mitvielen Einträgen führen somit zu Performance-Problemen.

FehlersucheLäuft ein bisher korrektes Programm nicht mehr, sollte zunächst überprüft werden, ob die SAP-Tree-Beispiele noch funktionieren.

Fehler bei der Control-Verarbeitung treten meistens erst beim Aufruf der Methode flush [Seite484] auf. Die Ausnahme CNTL_ERROR sagt zunächst nur aus, daß ein Fehler bei den Controlsam Frontend aufgetreten ist. Der Fehler muß nicht beim SAP Tree liegen, sondern kann voneinem anderen Control ausgelöst worden sein.

Für die Fehlersuche sollten Sie das Programm im Debugging erneut starten. Wählen Sie imDebugger das Bild für die Einstellungen. Kreuzen Sie dort das Ankreuzfeld AutomationController: Aufträge immer synchron verarbeiten an (siehe Services rund um die AutomationQueue [Extern]). Jetzt liefern die einzelnen Methoden des SAP Tree genauere Informationenüber die Fehlerursachen.

Page 26: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispielprogramme

26 April 2001

BeispielprogrammeZum Thema SAP Tree werden folgende Beispielprogramme ausgeliefert:

Beispielprogramm Thema

SAPSIMPLE_TREE_CONTROL_DEMO Beispiel für einen Simple Tree

SAPTLIST_TREE_CONTROL_DEMO Beispiel für einen List Tree

SAPCOLUMN_TREE_CONTROL_DEMO Beispiel für einen Column Tree

SAPSIMPLE_TREE_CONTEXT_MEN_DEM Beispiel für Kontextmenüs

SAPTLIST_TREE_CONTROL_DEMO_HDR Beispiel für ein Kontextmenü auf Überschriftendes SAP Tree

SAPSIMPLE_TREE_DRAG_DROP_DEMO Drag&Drop-Beispiel

RSDEMO_DRAG_DROP_TREE_MULTI Drag&Drop-Beispiel mit Mehrfachselektion

RSDEMO_DRAG_DROP_EDIT_TREE Drag&Drop zwischen einem SAP Tree undeinem SAP TextEdit

Page 27: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Verwendung von Controls im WAN

April 2001 27

Verwendung von Controls im WANDie Verwendung von Controls zur Oberflächengestaltung führt in der Regel zu einer Belastungdes Kommunikationskanals zwischen Frontend und Backend. Dies kann schon im LAN-, aberinsbesondere im WAN-Umfeld ein performance-kritischer Aspekt sein.

Puffermechanismen helfen, diese Problematik zu entschärfen (siehe auch Automation Queue[Extern]). Die aufgeführten Punkte sollen als Richtlinien bei der Verwendung von Controls imWAN dienen.

Control-spezifische Hinweise zur Verwendung im WAN finden Sie in der Dokumentation zu demjeweiligen Control.

Verwendung von CL_GUI_CFW=>FLUSHDer Aufruf CL_GUI_CFW=>FLUSH [Seite 484] dient zum Synchronisieren der AutomationQueue und der in der Queue enthaltenen ABAP-Variablen. Dieser Aufruf erzeugt in vielen Fälleneinen synchronen RFC vom Applikationsserver zum Frontend. Um optimale Performance zuerreichen, sollten die Aufrufe dieser Methode minimiert werden.

Es ist in vielen Fällen zu empfehlen, alle Eigenschaften von allen Controls zentral an einer Stelle(z.B. am Anfang des PAI) in einer Automation Queue zu lesen und dann über einen einmaligeSynchronisation zu besorgen. Diese Variante ist auch dann zu bevorzugen, wenn dabeiEigenschaften gelesen werden, die nicht immer für den Ablauf des Ereignisbehandlers bzw. desPAI – PBO Zyklus notwendig sind.

Es ist nicht notwendig, einen „Sicherheits-Flush“ am Ende von PBO zu codieren, damitMethodenaufrufe der Controls garantiert an das Frontend transportiert werden. DieseFunktionalität wird systemseitig garantiert, wenn das nächste Dynpro gesendet wird. Damit ist esauch nicht möglich, eine Automation Queue über mehrere Bildwechsel hinweg aufzubauen.

Es ist nicht garantiert, daß eine Automation Queue durch den Aufruf CL_GUI_CFW=>FLUSHgesendet wird. Die Queue erkennt, ob Returnwerte enthalten sind. Ist dies nicht der Fall,wird das Senden unterdrückt!Für alle Fälle, in denen auch bei einer Queue ohne Returnwert gewünscht wird, daß dieAutomation Queue synchron versendet wird, gibt es im Control Framework die MethodeCL_GUI_CFW=>UPDATE_VIEW [Seite 487]. Diese Methode darf nur dann verwendet werden,wenn es zwingend notwendig ist, ein Update des GUI zu erreichen. Beispiele hierfür sind sehrlange laufende Anwendungen, die in regelmäßigen Abständen dem Benutzer ein Feedback überden Fortschritt der Aktion anzeigen möchten.

Nach dem Lesen von Eigenschaften ist der Inhalt der entsprechenden ABAP-Variablen erst nachdem nächsten FLUSH garantiert. Solange dieser Aufruf nicht erfolgt ist, ist der Inhalt derentsprechenden ABAP-Variablen nicht definiert. In Zukunft wird es Fälle gegeben, in denendieser FLUSH unnötig sein wird. Diese Fälle werden von der Automation Queue erkannt; derentsprechende FLUSH-Call wird dann ignoriert.

Erzeugen von Controls, DatenversorgungDas Erzeugen eines Controls und die Datenversorgung ist in den meisten Fällen ein einmaligerVorgang und im Vergleich zu Dynproelementen sehr teuer. Deshalb sollten Controls nichtunnötig erzeugt bzw. nicht unnötig mit Daten versorgt werden.

Ein typisches Beispiel hierfür sind TabStrips mit mehreren Seiten. Wenn diese Seiten Controlstragen, ist immer abzuwägen, ob man auf lokale Seiten verzichtet und die Controls erst dann

Page 28: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Verwendung von Controls im WAN

28 April 2001

erzeugt, wenn der Benutzer die Seite aktiviert. Das gleiche trifft für die Datenversorgung dieserControls auf TabStrip-Seiten zu.

Muß bei der Datenversorgung eine Unterscheidung zwischen einer WAN- und einer LAN-Anmeldung vorgenommen werden, steht der Funktionsbaustein SAPGUI_GET_WANFLAG zurVerfügung. In manchen Fällen kann es notwendig werden, daß eine Anwendung andereDatenmengen oder ganze Fallbacks für die WAN-Anmeldung zur Verfügung stellen sollte. EinBeispiel, wann die WAN- bzw. LAN- Anmeldung einen Einfluß haben kann, ist die Anzahl vonGeschwistern in einem Tree Control, die ohne künstliche Zwischenebenen übertragen werdenkönnen.

Im Gegensatz zu Dynproelementen werden die Controls nur einmalig erzeugt und mit Datenversorgt. Controls werden unter Performance-Aspekten dann immer preiswerter, je länger dieseleben. In Anwendungen, die ständig neu aufgerufen und damit neu initialisiert werden, kann dieszu einem erheblichen Performance-Nachteil werden; in Anwendungen, die sehr lange auf dengleichen Bildern arbeiten, kann daraus sogar ein Performance-Vorteil entstehen.

Im Einzelfall kann über entsprechende Performance-Werkzeuge [Extern] überprüft werden,welche Nachteile oder Vorteile die Verwendung eines Controls unter dem Aspekt derNetzwerkauslastung bringt.

Ablegen von Dokumenten, Bildern etc.Zum Release 4.6A wird ein Frontend-Cache für Zugriffe auf Dokumente aus dem BDS (BusinessDokument Service) realisiert. Es wird dringend empfohlen, Office-Dokumente, Bilder etc. im BDSund nicht in der R/3-Datenbank abzulegen. Dokumente aus dem BDS können danach imFrontend-Cache abgelegt werden. Sie müssen nur einmalig über das Netz geladen werden.

Page 29: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Spezielle Hinweise für den SAP Tree

April 2001 29

Spezielle Hinweise für den SAP TreeZusätzlich zu den Hinweisen, die für alle Controls gültig sind, müssen Sie folgendes beachten:

Bei der Verwendung des Tree Controls sollte immer, falls möglich, das Nachladen von Kindern[Seite 31] erst beim Expandieren eines Knotens implementiert werden. Für den Fall von sehrvielen Geschwistern auf einer Ebene sollten künstliche Zwischenebenen eingezogen werden.Dies hilft auch dem Benutzer, einen besseren Überblick zu gewinnen.

Das Füllen eines Tree Control kann bei tiefen Hierarchien eine beliebig teuere Operationdarstellen. Das Problem ist nicht nur auf WAN-Anmeldungen begrenzt, sondern kann auch beiLAN-Anmeldungen auftreten. Neben der großen Datenmenge, die bei großen Hierarchienübertragen werden müßte, geht zusätzlich erheblich Zeit beim Einfügen der Daten in das Controlverloren. Das Control selbst kann auf einem 200 MHz Pentium in einem einfachen Baum (keinezusätzlichen Spalten) ca. 700 Knoten / s einfügen.

Da im Tree Control nicht über Zeilen- und Spaltennummern, sondern über Schlüssel adressiertwird und kein allgemeines Datenmodell vorhanden ist, kann hier keine generelle Lösungangeboten werden. Es liegt in der Verantwortung des Verwenders, durch entsprechendeProgrammierung eine ordentliche Performance zu erreichen.

Um das Problem zu umgehen, stehen 3 Möglichkeiten zur Verfügung :

Nachladen von Kinderknoten / Blättern bei BedarfSiehe dazu Inkrementeller Baumaufbau [Seite 31].

Einfügen künstlicher ZwischenhierarchienHat ein Knoten sehr viele Kinder, führt bereits die Übertragung der Kinder des einen Knotenszum Performanceproblem. Darüber hinaus verliert der Benutzer den Überblick, wenn sich dieKinder eines Knotens über viele Seiten erstrecken.

Für den Fall, daß zu viele Geschwister auf einer Ebene vorhanden sind, können künstlicheZwischenebenen eingezogen werden, deren Kinder wiederum bei Bedarf geladen werden. Einevernünftige (aus technischer Sicht) Anzahl Geschwister sind ca. 500 im LAN und ca. 100 imWAN.

Produkt |____ Lieferant1 |____ Lieferant2 |____ Lieferant3 ... |____ Lieferant1000

Das Problem kann durch Einfügen von Zwischenknoten entschärft werden, wennderen Kinder wieder auf Bedarf geladen werden:

Produkt |_____| Lieferant1 – Lieferant100 | |_____ Lieferant1 | |_____ Lieferant2 | |_____ ... | |_____ Lieferant100

Page 30: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Spezielle Hinweise für den SAP Tree

30 April 2001

| |_____ Lieferant101 – Lieferant200usw.

Explorer-artiger AufbauDie Blätter des Baumes werden nicht im Baum selbst angezeigt, sondern beispielsweise ineinem Table Control rechts vom Baum. Damit werden nur noch die Knoten im Tree dargestellt,die großen Datenmengen für die Blätter entfallen.

Page 31: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Inkrementeller Baumaufbau

April 2001 31

Inkrementeller BaumaufbauDas Übertragen von Knoteninformation an den SAP Tree am Frontend ist eine perfomance-kritische Operation. Bei großen Bäumen mit mehr als 500 Knoten sollten daher die Kinder einesKnotens erst dann zum Frontend übertragen werden, wenn der Knoten expandiert wird.

Beim folgenden Baum sollen zunächst nur die Knoten Root und Child1 in den SAPTree eingefügt werden. Erst nach dem Expandieren des Knotens Child1 sollen dieKinder des Knotens eingefügt werden:

Um dieses Szenario zu realisieren, müssen Sie folgende Schritte durchführen:

• Beim Knoten Child1 setzen Sie in der Knotenstruktur (TREEV_NODE) das FeldEXPANDER = 'X'.Durch dieses Vorgehen wird das Ereignis EXPAND_NO_CHILDREN ausgelöst, sobald einBenutzer diesen Knoten expandieren will.

• Registrieren Sie sich auf das Ereignis EXPAND_NO_CHILDREN.

• Implementieren Sie in der Ereignisbehandlermethode eine Routine, welche die Kinder desexpandierten Knotens in den SAP Tree lädt.

Der Report SAPSIMPLE_TREE_CONTROL_DEMO kann als Beispiel für diesesVorgehen dienen.

Page 32: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Der Simple Tree

32 April 2001

Der Simple TreeDefinitionDer Simple Tree wird mit Referenz auf die Klasse cl_gui_simple_tree angelegt:

DATA simple_tree TYPE REF TO cl_gui_simple_tree.

Nach der Vererbungshierarchie haben Sie Zugriff auf die Methoden der Klassen:

• cl_gui_object und cl_gui_control (siehe Methoden des OO Control Frameworks[Seite 481])

• cl_gui_tree_control_base (siehe Methoden der Klasse CL_TREE_CONTROL_BASE[Seite 122])

• cl_gui_simple_tree (siehe Methoden der Klasse CL_GUI_SIMPLE_TREE [Seite 183])

VerwendungDie Verwendung des Simple Tree wird im Report sapsimple_tree_control_demodemonstriert.

Die Eigenschaften des Simple Tree werden in Übersicht über die Tree Klassen [Seite 18]beschrieben.

Page 33: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Anlegen eines Controls am Beispiel des SAP Picture

April 2001 33

Anlegen eines Controls am Beispiel des SAP PictureVoraussetzungenDer folgende Ablauf ist für alle von SAP ausgelieferten Custom Controls anwendbar. In denCode-Beispielen wird immer auf das SAP Picture Control eingegangen. Für andere Controls istaber im Prinzip nur die Klasse des Controls auszutauschen.

Weiterhin geht das Beispiel davon aus, daß das Custom Control in einem Custom Containereingebaut wird. Andere Szenarios werden in der Dokumentation zu den Control Containernbeschrieben.

AblaufInstanz anlegen1. Definieren Sie eine Referenzvariable für den Custom Container, in dem das Custom Control

angezeigt werden soll (Siehe SAP Container [Extern])DATA container TYPE REF TO cl_gui_custom_container.

2. Definieren Sie eine Referenzvariable für das Picture Control:DATA picture TYPE REF TO cl_gui_picture.

3. Erzeugen Sie den Custom Container. Den Bereich 'CUSTOM' für den Custom Containermüssen Sie vorher im Screen Painter angelegt haben. Beim Erzeugen des Containers legenSie auch seine Lebensdauer [Extern] fest (siehe constructor [Extern]).

CREATE OBJECT containerEXPORTING container_name = 'CUSTOM'

lifetime = lifetime.

4. Erzeugen Sie das Picture Control. Für dieses können Sie auch eine Lebensdauer festlegen.Allerdings darf die Lebensdauer nicht größer sein als die seines Containers.

CREATE OBJECT pictureEXPORTING parent = container

lifetime = lifetime.

Ereignis anmelden5. Das Anmelden von Ereignissen gliedert sich in das Registrieren des Ereignisses am Control

Framework, das Definieren einer Behandlermethode und das Anmelden derBehandlermethode. Diese Schritte finden Sie in Registrieren und Verarbeiten vonEreignissen [Seite 101].

Arbeiten mit dem Control6. Diese Schritte sind control-spezifisch und werden hier nicht beschrieben.

Abbau der ControlsIn der Regel übernimmt das Lifetime Management [Extern] den Abbau der verwendetenControls. Wenn Sie die Controls aber in Ihrem Programm selbst abbauen wollen, führen Siefolgende Schritte aus:

Page 34: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Anlegen eines Controls am Beispiel des SAP Picture

34 April 2001

7. Bauen Sie das Custom Control mit der Methode free [Seite 490] am Frontend ab. Sofern Sieden Control Container nicht mehr benötigen, bauen Sie auch diesen ab:

CALL METHOD picture->freeEXCEPTIONS cntl_error = 1

cntl_system_error = 2.CALL METHOD container->free

EXCEPTIONS cntl_error = 1cntl_system_error = 2.

Beachten Sie die Reihenfolge, in der Sie die Controls am Frontend abbauen. WennSie einen Container abbauen, werden nämlich automatisch alle in dem Containereingebundenen Controls auch abgebaut. Der Versuch, ein bereits abgebautesControl erneut abzubauen, führt zu einem Fehler. Mit der Methode is_alive [Seite495] kann nachgeprüft werden, ob das Control schon abgebaut wurde.

8. Löschen Sie die Referenzvariablen des Custom Controls und des Control Containers:FREE PICTURE.FREE CONTAINER.

Page 35: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem Simple Tree

April 2001 35

Arbeiten mit dem Simple TreeIn diesem Abschnitt werden die für den Simple Tree spezifischen Funktionen aufgeführt.

VoraussetzungenDer in diesem Abschnitt beschriebene Prozeß stellt nur eine control-spezifische Ergänzung desallgemeinen Prozesses zur Control-Einbindung [Seite 92] dar und ist isoliert nicht lauffähig.

Ablauf

Die Code-Abschnitte sind Beispiele, die nicht immer den vollen Funktionsumfangausnutzen. Genauere Informationen finden Sie immer im Referenzteil dieserDokumentation.

Instanzieren1. Definieren Sie eine Referenzvariable für den Simple Tree:DATA simple_tree TYPE REF TO cl_gui_simple_tree.

2. Erzeugen Sie eine Instanz [Seite 184] des SAP Tree:CREATE OBJECT simple_tree

EXPORTING parent = containernode_selection_mode = node_selection_modehide_selection = hide_selection

EXCEPTIONS lifetime_error = 1cntl_system_error = 2create_error = 3failed = 4illegal_node_selection_mode = 5.

Ereignisse anmelden3. Melden Sie Ereignisse [Seite 42] für den Simple Tree an. Folgende Ereignisse werden

unterstützt:

Ereignisnamen Bedeutung

NODE_DOUBLE_CLICK Doppelklick auf einem Knoten

EXPAND_NO_CHILDREN Knoten ohne Kinder wurde expandiert

SELECTION_CHANGED Der selektierte Knoten hat sich geändert

NODE_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf einemKnoten

NODE_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

DEFAULT_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf der leerenFläche des Controls

DEFAULT_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

Page 36: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem Simple Tree

36 April 2001

KEYPRESS Es wurde eine vordefinierte Taste gedrückt

Arbeiten mit dem Control4. Fügen Sie Knoten in den Baum ein. Füllen Sie dazu zuerst eine Knotentabelle und

übergeben Sie diese mit der Methode add_nodes [Seite 185]:CALL METHOD simple_tree->add_nodes

EXPORTING table_structure_name = table_structure_namenode_table = node_table

EXCEPTIONS error_in_node_table = 1failed = 2dp_error = 3table_structure_name_not_found = 4.

5. Bearbeiten Sie vorhandene Knoten des Baums, oder verändern Sie die Eigenschaften desBaums (siehe Eigenschaften des Controls ändern [Seite 37]).

6. Bestimmen Sie Eigenschaften des Baums und seiner Knoten (siehe Eigenschaften desControls abfragen [Seite 39]).

Abbau der Controls7. Bauen Sie das Custom Control am Frontend ab. Sofern Sie den Control Container nicht

mehr benötigen, bauen Sie auch diesen ab:CALL METHOD simple_tree->free.

Sofern Sie sorgfältig mit dem Lifetime Management [Extern] arbeiten, brauchen Siesich um das Abbauen des Controls am Frontend nicht selbst zu kümmern. Dies wirddann automatisch vom System vorgenommen.

8. Löschen Sie die Referenzvariablen des Simple Trees und eventuell des Control Containers:FREE simple_tree.

Page 37: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls ändern

April 2001 37

Eigenschaften des Controls ändernIn diesem Abschnitt werden alle Methoden zum Verändern des Simple Tree aufgelistet.

Knoten einfügen und ändern

Methode Bedeutung

add_nodes [Seite 185] Eine Liste von Knoten einfügen

node_set_text [Seite 188] Text eines bestimmten Knotens verändern

update_nodes [Seite 189] Eigenschaften einer Liste von Knoten ändern

Knoten expandieren

Methode Bedeutung

expand_node [Seite 131] Bestimmten Knoten expandieren

expand_nodes [Seite 132] Liste von Knoten expandieren

expand_root_nodes [Seite 133] Alle Wurzelknoten expandieren

Knoten selektieren

Methode Bedeutung

set_selected_node [Seite 155] Bestimmten Knoten selektieren

select_nodes [Seite 150] Liste von Knoten selektieren

unselect_all [Seite 157] Selektion für alle Knoten rückgängig machen

unselect_nodes [Seite 158] Selektion für Liste von Knoten rückgängig machen

Knoten löschen

Methode Bedeutung

delete_all_nodes [Seite 127] Alle Knoten aus Baum löschen

delete_node [Seite 128] bestimmten Knoten aus Baum löschen

delete_nodes [Seite 129] Liste von Knoten aus Baum löschen

Eigenschaften eines Knotens ändern

Methode Bedeutung

node_set_disabled [Seite 139] Knoten inaktivieren

node_set_expander [Seite 141] Eigenschaft expander setzen

node_set_exp_image [Seite 142] Ikone für expandierten Knoten setzen

node_set_hidden [Seite 143] Knoten unsichtbar machen

node_set_is_folder [Seite 144] Eigenschaft is_folder setzen

Page 38: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Eigenschaften des Controls ändern

38 April 2001

node_set_no_branch [Seite 145] Hierarchielinie des Knoten unterdrücken

node_set_n_image [Seite 146] Ikone des nicht expandierten Knotens setzen

node_set_style [Seite 147] Stil des Knotens setzen

node_set_dragdropid [Seite 140] Drag&Drop-Verhalten eines Knotens setzen

Konfiguration von Tastatur Ereignissen

Methode Bedeutung

add_key_stroke [Seite 123] Definition einer Taste der Tastatur, die ein Ereignis auslösensoll

remove_all_key_strokes [Seite148]

Löschen von Definitionen für Tasten

Sonstige Methoden

Methode Bedeutung

ensure_visible [Seite 130] Sichtbarkeit eines bestimmten Knotens gewährleisten

move_node [Seite 138] Knoten verschieben

scroll [Seite 149] Blättern im Baum

set_ctx_menu_select_event_appl [Seite 159]

Entscheidung, ob Ereignis nach Auswahl eines Eintrags auseinem Kontextmenü ein Applikations- oder Systemereignis seinsoll

set_has_3d_frame [Seite153]

3D Rahmen setzen

set_screen_update [Seite154]

Sichtbarkeit von Änderungen regeln

set_top_node [Seite 156] Obersten sichtbaren Knoten definieren

set_default_drop [Seite 151] Setzen des Drag&Drop-Verhaltens für ein Drop in die leereFläche eines SAP Tree

set_folder_show_exp_image[Seite 152]

Einstellen des Ordner-Symbols bei geöffnetem Ordner

Page 39: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls abfragen

April 2001 39

Eigenschaften des Controls abfragenIn diesem Abschnitt werden alle Methoden zum Auslesen von Eigenschaften des Simple Treeaufgelistet.

Methoden zur Abfrage von Controleigenschaften

Methode Bedeutung

get_expanded_nodes [Seite 134] Liste aller expandierten Knoten

get_selected_node [Seite 135] Name des selektierten Knotens

get_selected_nodes [Seite 136] Liste aller selektierten Knoten

get_top_node [Seite 137] Oberster sichtbarer Knoten

Page 40: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Registrieren und Verarbeiten von Ereignissen

40 April 2001

Registrieren und Verarbeiten von EreignissenEinsatzmöglichkeitenÜber den Ereignismechanismus des Control Frameworks können Sie in Ihrem Programm inBehandlermethoden auf Ereignisse reagieren, die auf dem Control ausgelöst wurden (z.B.Doppelklick).

VoraussetzungenDer Ablauf wurde allgemeingültig für alle Custom Controls gehalten. Control-spezifischeInformationen finden Sie in der jeweiligen Dokumentation zu der Control-Verschalung.

Ablauf1. Es wird davon ausgegangen, daß Sie mit einem Custom Control mit der Verschalung

cl_gui_xyz arbeiten:

DATA my_control TYPE REF TO cl_gui_xyz.

Anmelden von Ereignissen beim Control Framework2. Definieren Sie eine interne Tabelle (Typ cntl_simple_events) und einen

dazugehörenden Arbeitsbereich (Typ cntl_simple_event).

DATA events TYPE cntl_simple_events.DATA wa_events TYPE cntl_simple_event.

3. Füllen Sie nun die Ereignistabelle mit den relevanten Ereignissen. Dazu benötigen Sie dieIdentifikation des Ereignisses (event_id). Diese Information finden Sie wiederum in derKlassenbibliothek in den Attributen der Klasse cl_gui_xyz. Weiterhin müssen Sie sichentscheiden, ob das Ereignis als Systemereignis (appl_event = ' ') oder alsApplikationsereignis (appl_event = 'X') definiert werden soll.

wa_events-eventid = event_id.wa_events-appl_event = appl_event.APPEND wa_events TO events.

4. Im nächsten Schritt muß die Ereignistabelle an das Frontend geschickt werden, damit dierelevanten Ereignisse vom Frontend an das Backend weitergeleitet werden.

CALL METHOD my_control->set_registered_eventsevents = events.

Um auf ein Ereignis Ihres Custom Controls eingehen zu können, müssen Sie nun noch eineBehandlermethode angeben. Die Behandlermethode kann eine Instanzmethode oder einestatische Methode sein:

Behandlung des Ereignisses als Instanzmethode5. Definieren Sie die (lokale) Klassendefinition für den Ereignisbehandler. Dabei legen Sie den

Namen der Ereignisbehandlermethode fest (Event_Handler). Als Information müssen Siesich in der Klassenbibliothek für die Klasse des Custom Controls cl_gui_xyz den Namendes Ereignisses (event_name) und die zu diesem Ereignis gehörenden Ereignisparameter(event_parameter) besorgen. Der Ereignisparameter sender wird bei jedem Ereignis zur

Page 41: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Registrieren und Verarbeiten von Ereignissen

April 2001 41

Verfügung gestellt. Der Parameter enthält die Referenz des Controls, das dieses Ereignisausgelöst hat.

CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.METHODS Event_Handler

FOR EVENT event_name OF cl_gui_xyzIMPORTING event_parameter

sender.ENDCLASS.

6. Melden Sie jetzt noch für die registrierten Ereignisse Behandlermethoden beim OO ControlFramework an.

DATA event_receiver TYPE REF TO lcl_event_receiver.CREATE OBJECT event_receiver.SET HANDLER event_receiver->Event_Handler

FOR my_control.

Registrieren als statische Methode7. Definieren Sie die (lokale) Klassendefinition für den Ereignisbehandler. Dabei legen Sie den

Namen der statischen Ereignisbehandlermethode fest (Event_Handler). Als Informationmüssen Sie sich in der Klassenbibliothek für die Klasse des Custom Controls cl_gui_xyzden Namen des Ereignisses (event_name) und die zu diesem Ereignis gehörendenEreignisparameter (event_parameter) besorgen.

CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.CLASS-METHODS Event_Handler

FOR EVENT event_name OF cl_gui_xyzIMPORTING event_parameter

sender.ENDCLASS.

8. Melden Sie jetzt noch für die registrierten Ereignisse Behandlermethoden beim OO ControlFramework an.

SET HANDLER lcl_event_receiver=>Event_HandlerFOR my_control.

Verarbeiten von Control-Ereignissen9. Wie Sie auf ein Ereignis reagieren wollen, legen Sie im Implementierungsteil der

Behandlermethode fest.CLASS lcl_event_receiver IMPLEMENTATION.METHOD Event_Handler.* Abarbeitung des EreignissesENDMETHOD.ENDCLASS.

10. Je nach Art des Ereignisses (System- oder Applikationsereignis) müssen Sie jetzt noch dieMethode CL_GUI_CFW=>DISPATCH aufrufen. Lesen Sie dazu Ereignisbehandlung [Extern].

Page 42: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Simple Tree

42 April 2001

Ereignisse des Simple TreeVerwendungDurch bestimmte Benutzerinteraktionen auf dem Simple Tree werden Ereignisse ausgelöst:

Ereignis Ereignis ID:CL_GUI_SIMPLE_TREE=>

Bedeutung

NODE_DOUBLE_CLICK

EVENTID_NODE_DOUBLE_CLICK Doppelklick auf einen Knoten

EXPAND_NO_CHILDREN

EVENTID_EXPAND_NO_CHILDREN Knoten ohne Kinder wurdeexpandiert. Für den Knotenmuß das EXPANDER = 'X'gesetzt werden.

SELECTION_CHANGED

EVENTID_SELECTION_CHANGED Dieses Ereignis kann nurverwendet werden, wenn beimKonstruktor Knoten-Einfachselektion eingestelltwurde.

Der selektierte Knoten hat sichgeändert. Achtung: Wirddieses Event verwendet, sokann das EventNODE_DOUBLE_CLICKnicht verwendet werden!

NODE_KEYPRESS EVENTID_NODE_KEYPRESS Taste wurde gedrückt, Knotenwar selektiert

NODE_CONTEXT_MENU_REQUEST

EVENTID_NODE_CONTEXT_MENU_REQ

Anforderung einesKontextmenüs auf einemKnoten.

NODE_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisNODE_CONTEXT_MENU_REQUESTregistriert wird.

Eintrag im Kontextmenü füreinen Knoten wurdeausgewählt.

DEFAULT_CONTEXT_MENU_REQUEST

EVENTID_DEF_CONTEXT_MENU_REQ

Anforderung einesKontextmenüs auf demBaumhintergrund

DEFAULT_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisDEFAULT_CONTEXT_MENU_REQUESTregistriert wird.

Eintrag im Kontextmenü aufdem Baumhintergrund wurdeausgewählt.

ON_DROP_GET_FLAVOR

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Zum Drag&Drop-Vorgang gibtes mehere gemeinsameFlavors

Page 43: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse des Simple Tree

April 2001 43

ON_DRAG siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Quellobjekts(Einfachselektion)

ON_DRAG_MULTIPLE siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Quellobjekts(Mehrfachselektion)

ON_DROP siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Kontextes imZielobjekt

ON_DROP_COMPLETE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Letzter Zeitpunkt vor Abschlußdes Drag&Drop-Vorgangs(Einfachselektion)

ON_DROP_COMPLETE_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Letzter Zeitpunkt vor Abschlußdes Drag&Drop-Vorgangs(Mehrfachselektion)

Die Ereignisse liefern eventuell Ereignisparameter mit:

Ereignis Parameter Bedeutung

NODE_DOUBLE_CLICK

NODE_KEY Knoten, auf dem einDoppelklick ausgeführt wurde

EXPAND_NO_CHILDREN

NODE_KEY Knoten, der expandiert wurde,ohne daß Unterknotenvorhanden sind

SELECTION_CHANGED

NODE_KEY Neu selektierter Knoten

NODE_KEY Knoten, auf dem die Tastegedrückt wurde

NODE_KEYPRESS

KEY Taste, die gedrückt wurde

NODE_KEY Knoten, auf dem dasKontextmenü angefordertwurde

NODE_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

NODE_KEY Knoten, auf dem ein Eintragdes Kontextmenüs ausgewähltwurde

NODE_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

DEFAULT_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

DEFAULT_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

Page 44: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Simple Tree

44 April 2001

ON_DROP_GET_FLAVOR

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DRAG siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DRAG_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP_COMPLETE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP_COMPLETE_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Wenn Sie Ereignisse benutzen wollen (z.B. NODE_KEYPRESS), die aufgrund desDrückens von Tasten der Tastatur ausgelöst werden sollen, müssen Sie sie mit derMethode add_key_stroke [Seite 123] definieren. Mit der Methoderemove_all_key_strokes [Seite 148] können Sie diese Definition wieder rückgängigmachen.

IntegrationWenn Sie auf diese Ereignisse in Ihrem ABAP-Programm reagieren müssen, müssen Sie sichauf diese Ereignisse registrieren. Dazu verwenden Sie die Methode set_registered_events [Seite493]. Ereignisse, auf die Sie sich nicht registriert werden, werden schon am Frontend ausgefiltertund gelangen nicht zum Backend. Siehe Ereignisbehandlung [Extern].

AktivitätenLesen Sie den allgemeinen Prozeß [Seite 101] für das Arbeiten mit Ereignissen des ControlFrameworks.

Page 45: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Drag&Drop

April 2001 45

Drag&DropVerwendungMit Drag&Drop kann der Anwender Objekte aus einem Bereich eines Custom Controls (Quelle)markieren und auf einen anderen Bereich eines Custom Controls (Ziel) fallen lassen. Je nachObjekt wird dann im zweiten Bereich eine Aktion ausgeführt. Quelle und Ziel können dabei dasgleiche Control oder zwei unterschiedliche Controls sein.

VoraussetzungenDamit Controls Drag&Drop-fähig sind, muß die Control-Verschalung zusätzliche Drag&Drop-Ereignisse anbieten. Das Anwendungsprogramm muß für diese Ereignisse Behandlerroutinenimplementieren. Die Registrierung auf die Ereignisse erfolgt automatisch über die jeweiligeControl-Verschalung.

FunktionsumfangFür jedes beteiligte Custom Control wird das Drag&Drop-Verhalten festgelegt. Je nach Controlwird das Verhalten auf alle Elemente des Controls bezogen (z.B. Editor), oder man kann fürjedes Teilobjekt ein eigenes Verhalten definieren (z.B. Tree). Jedes Verhalten besteht aus eineroder mehreren Beschreibungen.

Die Beschreibung hat folgende Attribute:

• DragSrc: Objekt ist Quelle eines Drag&Drop-Vorgangs

• DropTarget: Objekt ist Ziel eines Drag&Drop-Vorgangs

• Flavor: Der Flavor beschreibt den Typ einer Drag&Drop-Beschreibung. In einer Drag&Drop-Situation können Objekte nur in andere fallengelassen werden, wenn sie mindestens einegemeinsame Beschreibung besitzen.

• Effect: Beschreibung, ob die Daten beim Drag&Drop-Vorgang kopiert und/oder verschobenwerden können

• Effect_In_Ctrl: Mit welchem Drop-Effekt können Daten innerhalb des gleichen Controlsverschoben oder kopiert werden.

Sobald ein Drag-Ereignis ausgelöst wird, muß die Applikation in der entsprechendenBehandlermethode feststellen, welches Objekt von dem Ereignis betroffen ist.

Weiterhin muß für das Drop-Ereignis implementiert werden, welche Aktionen durchgeführtwerden sollen. Die Aktionen sind dabei in der Regel abhängig von dem Objekt, das in dasControl fallengelassen wurde.

Wurden einem Objekt mehrere Flavors zugeordnet, muß zu einem speziellen Ereignis festgelegtwerden, welcher Flavor benutzt werden soll.

Nachdem das Drop-Ereignis abgeschlossen ist, können in einem zusätzlichen Ereignis weitereAktionen durchgeführt werden. Dieses Ereignis bietet sich insbesondere beim Verschieben desQuellobjekts an, um dieses aus der Quelle zu löschen.

Page 46: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Drag&Drop

46 April 2001

AktivitätenWenn die Drag&Drop-Funktionalität benutzt wird, sollte auf jeden Fall auch eine UNDO-Funktionbereitgestellt werden, sofern die Drag&Drop-Funktion zu einem Verschieben des Objekts führt.Diese muß von der Anwendung implementiert werden.

Page 47: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ablauf einer Drag&Drop Operation

April 2001 47

Ablauf einer Drag&Drop OperationVoraussetzungenIm folgenden wird aufgezeigt, wie die Drag&Drop Operation abläuft. Dabei wird auf die Rolle desApplikationsservers und des Frontends eingegangen. Aus diesem Ablauf leiten sich dann dieeinzelnen Schritte ab, die in einem Anwendungsprogramm durchgeführt werden müssen, damitDrag&Drop genutzt werden kann.

AblaufApplikationsserver1. Sie erzeugen die Custom Controls [Seite 92].

2. Sie registrieren sich auf die Drag&Drop-Ereignisse [Seite 112].

3. Sie definieren das Drag&Drop-Verhalten für die einzelnen Custom Controls bzw. für derenTeilobjekte. Dazu erzeugen Sie eines Instanz [Seite 504] der Klasse CL_DRAGDROP [Seite503]. Dieser Instanz weisen Sie einen oder mehrere Flavors zu [Seite 505], die dasDrag&Drop-Verhalten des entsprechenden Custom Controls beschreiben. Sie können dieseFlavors während des Programmablaufs auch noch verändern [Seite 512], löschen [Seite514], abfragen [Seite 509] oder auch die gesamte Instanz initialisieren [Seite 507] oderzerstören [Seite 508].

4. Die Zuweisung der Flavors an das Custom Control erfolgt über control-spezifischeMethoden. Lesen Sie dazu die jeweilige Control-Dokumentation.

FrontendDie nachfolgenden Schritte führt das System automatisch durch. Sie dienen nur zum Verständnisdes Drag&Drop-Vorgangs.

5. Nachdem der Benutzer mit der linken Maustaste ein Objekt ausgewählt hat, startet derDrag&Drop-Service.

6. Der Drag&Drop-Service überprüft, ob für das Objekt ein Drag&Drop-Verhalten definiertwurde und ob darin die Fähigkeit des Objekts für Drag definiert wurde (Attribut DragSource).

7. Wurde das Attribut DragSource entsprechend gesetzt, wird das Drag&Drop gestartet. DerMauszeiger verändert sich dann automatisch.

8. Während der Benutzer die linke Maustaste gedrückt hält, wird ständig unter dem Mauszeigernachgefragt, ob sich dort ein Objekt in einem Custom Control befindet, das Drop-fähig ist(Attribut DropTarget), und ob der Flavor dieses Objekts mit dem Flavor der Quelleübereinstimmt. Ist dies der Fall, wird dem Benutzer dies über eine Veränderung desMauszeigers signalisiert.

9. Läßt der Benutzer nun das Objekt fallen, wird dies über ein Ereignis an denApplikationsserver gemeldet.

Für das Frontend ist damit die Drag&Drop Operation abgeschlossen. Bisher wurdennoch keinerlei Veränderungen an den Inhalten der Custom Controls vorgenommen.

Page 48: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ablauf einer Drag&Drop Operation

48 April 2001

Applikationsserver10. Der Drag&Drop-Service des Applikationsservers erzeugt eine Instanz der Klasse

CL_DRAGDROPOBJECT [Seite 515]. Diese Instanz (z.B. drag_drop_object) steht Ihnenin allen Ereignissen des Drag&Drop-Vorgangs als Ereignisparameter zur Verfügung unddient zum Übermitteln des Kontexts zwischen den Ereignissen.

11. Der Drag&Drop-Service prüft nach, ob das Drag-Objekt und das Drop-Objekt mehrereFlavors gemeinsam besitzen. Ist dies der Fall, wird das Ereignis ONGETFLAVOR ausgelöst. Inder dazugehörigen Behandlerroutine muß nun die Applikation entscheiden, welcher Flavorverwendet werden soll. Dazu steht die Methode set_flavor [Seite 516] zur Verfügung.

12. Nun wird das Drag&Drop-Ereignis ONDRAG ausgelöst. Über Ereignisparameter erhalten Siedie relevanten Informationen, welches Objekt der Benutzer gezogen hat. Innerhalb derBehandlerroutine müssen Sie jetzt die in 9. angelegte Instanz des Drag&Drop-Datenobjektsmit dem Kontext (Informationen über das Quellobjekt) versorgen:drag_drop_object->object = mydragobject.

13. Als nächstes wird das Ereignis ONDROP ausgelöst. Aufgabe dieser Methode ist dasVerarbeiten des Drag&Drop-Datenobjekts. Hier müssen Sie implementieren, welcheÄnderungen in dem Zielobjekt aufgrund des Drag&Drop-Vorgangs vorgenommen werdensollen.

14. Das letzte Ereignis des Drag&Drop-Vorgangs ist ONDROPCOMPLETE. Hier sollte eventuelleine Nachbearbeitung des Drag&Drop-Datenobjekts erfolgen. Besonders für den Fall einerVerschiebeoperation sollte zu diesem Zeitpunkt das Quellobjekt aus dem DragSourceControl und den entsprechenden Datenstrukturen entfernt werden.

In Beispiel für Drag&Drop-Programmierung [Seite 117] finden Sie ein Beispiel, daseinen Drag&Drop-Vorgang zwischen einem SAP Tree und einem SAP TextEditbeschreibt.

Page 49: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse bei Drag&Drop

April 2001 49

Ereignisse bei Drag&DropIm folgenden Abschnitt werden nur die allgemeingültigen Eigenschaften der Ereignisse beiDrag&Drop beschrieben. Diese können von den einzelnen Control-Verschalungen angereichertwerden. Daher sollten Sie auf jeden Fall auch in der Dokumentation zur jeweiligen Control-Verschalung die Besonderheiten des Controls nachlesen.

VerwendungIm Umfeld des Drag&Drop gibt es vier Standardereignisse, bei denen Sie die Kontrolle in IhremApplikationsprogramm bekommen können. In den Behandlerroutinen zu diesen Ereignissenimplementieren Sie, welche Aktionen bei einem Drag&Drop-Vorgang durchgeführt werden.

Bestimmte Control-Verschalungen können zusätzliche Drag&Drop-Ereignisseanbieten. Hinweise dazu finden Sie in der jeweiligen Dokumentation.

VoraussetzungenUm auf die Ereignisse reagieren zu können, müssen Sie sich auf sie registrieren. Im Gegensatzzu der normalen Ereignisbehandlung werden aber die Ereignisse nicht mit der Methodeset_registered_events [Seite 493] am Control Framework angemeldet. Die Registrierung erfolgtautomatisch über die Verschalung des eingesetzten Custom Controls.

Sie müssen aber weiterhin Behandlermethoden für die Ereignisse angeben:DATA tree TYPE REF TO cl_gui_simple_tree.SET HANDLER dragdrop=>on_drag FOR tree.

Die Ereignisse werden immer als Systemereignisse angemeldet.

FunktionsumfangDas Control Framework reicht beim Drag&Drop erst zum Drop-Zeitpunkt ein Ereignis an denApplikationsserver weiter. Dieses wird dann am Applikationsserver, wie in Ablauf einerDrag&Drop-Operation [Seite 110] beschrieben, innerhalb eines Drag&Drop-Vorgangs in maximalvier Standardereignisse auseinandergesteuert. Alle Ereignisse haben ein Drag&Drop-Datenobjekt als Ereignisparameter. Über diesen Parameter müssen Sie den Kontext desDrag&Drop-Vorgangs verwalten. Weiterhin übergibt Ihnen die jeweilige Control-Verschalungweitere Informationen zu dem Drag&Drop-Kontext. Lesen Sie dazu die Dokumentation derControl-Verschalung.

• ONGETFLAVOR: Dieses Ereignis wird nur dann ausgelöst, wenn das Quellobjekt und dasZielobjekt über mehrere gemeinsame Flavors verfügen. Sie müssen dann in derBehandlermethode einen der gemeinsamen Flavors auswählen. Wenden Sie dazu dieMethode set_flavor [Seite 516] auf das Drag&Drop-Datenobjekt an.Das Ereignis wird von dem Zielobjekt des Drag&Drop-Vorgangs ausgelöst.

• ONDRAG: Dieses Ereignis wird immer dann ausgelöst, wenn der Drag&Drop-Vorgang amFrontend beendet ist. In diesem Ereignis müssen Sie den Kontext des Quellobjektsbestimmen. Diesen Kontext übergeben Sie dann an die als Ereignisparameter übergebeneInstanz der Klasse CL_DRAGDROPOBJECT.Das Ereignis wird von dem Quellobjekt des Drag&Drop-Vorgangs ausgelöst.

Page 50: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse bei Drag&Drop

50 April 2001

• ONDROP: Zu diesem Ereignis definieren Sie die Aktionen, die im Zielobjekt durchgeführtwerden sollen. Dabei nutzen Sie den Ereignisparameter für den Kontext, den Sie zumEreignis ONDRAG gefüllt haben. Bei diesem Ereignis ist folgendes zu beachten:

− Innerhalb des ONDROP-Ereignisses muß ein dynamischer TypeCast durchgeführtwerden. Die mögliche Ausnahme des TypeCast muß auf jeden Fall abgefangen werden.Falls ein nicht passendes Objekt zugewiesen werden sollte, muß in derAusnahmebehandlung die Drag&Drop-Verarbeitung mit der Methode abort [Seite 517]abgebrochen werden.

− Die verwendeten Flavors sollten so gewählt werden, daß eine Zuordnung desDrag&Drop-Objekts zu dem richtigen TypeCast möglich ist.

Das Ereignis wird von dem Zielobjekt des Drag&Drop-Vorgangs ausgelöst.

• ONDROPCOMPLETE: Sofern Sie zum Abschluß des Drag&Drop-Vorgangs noch weitereAktionen durchführen wollen, können Sie dies in diesem Ereignis realisieren. Dies ist z.B. imFalle einer Verschiebeoperation sinnvoll.Das Ereignis wird von dem Quellobjekt des Drag&Drop-Vorgangs ausgelöst.

Page 51: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Definition von Ereignissen bei Drag&Drop im SAP Tree

April 2001 51

Definition von Ereignissen bei Drag&Drop im SAP TreeIn diesem Abschnitt werden die Besonderheiten des SAP Tree bei Drag&Drop-Operationenvorgestellt.

VoraussetzungenUm auf die Ereignisse reagieren zu können, müssen Sie sich auf sie registrieren. Im Gegensatzzu der normalen Ereignisbehandlung werden aber die Ereignisse nicht mit der Methodeset_registered_events [Seite 493] am Control Framework angemeldet. Die Registrierung erfolgtautomatisch über die Verschalung des SAP Tree.

Sie müssen aber weiterhin Behandlermethoden für die Ereignisse angeben:

Die Ereignisse werden immer als Systemereignisse angemeldet.

Weiterhin müssen Sie beim Aufbau der Knotentabelle festlegen, welcher Knoten Drag&Drop-fähig ist und welche Flavors der Knoten haben soll. Dazu versorgen Sie das Feld DRAGDROPIDder Knotentabelle mit dem entsprechenden Drag&Drop-Verhalten (siehe Punkt 3 im KapitelAblauf einer Drag&Drop-Operation [Seite 110]). Dies erfordert folgende Schritte (siehe auchBeispiel für Drag&Drop-Programmierung [Seite 117]):

1. Definieren Sie das Drag&Drop-Verhalten:DATA behaviour_left TYPE REF TO cl_dragdrop.

CREATE OBJECT behaviour_left.CALL METHOD behaviour_left->add

EXPORTINGflavor = 'Tree_move_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

2. Besorgen Sie sich mit der Methode get_handle [Seite 511] ein Handle auf das Drag&Drop-Verhalten:CALL METHOD behaviour_left->get_handle

IMPORTING handle = handle_tree.

3. Weisen Sie dieses Handle dem Feld DRAGDROPID des Eintrags in der Knotentabelle zu:

node-dragdropid = handle_tree. " handle of behaviour

Einträge vom Typ tree->item_class_checkbox (Ankreuzfeld), tree->item_class_button (Drucktaste) und tree->item_class_link (Link)können kein Quellobjekt eines Drag&Drop-Vorgangs sein.

FunktionsumfangIn der folgenden Tabelle sind die für das Drag&Drop relevanten Ereignisse aufgelistet:

Ereignis Bedeutung

ON_DROP_GET_FLAVOR Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONGETFLAVOR

Page 52: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Definition von Ereignissen bei Drag&Drop im SAP Tree

52 April 2001

ON_DRAG Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDRAG

Für Bäume ohne Mehrfachselektion(NODE_SELECTION_MODE = TREE->NODE_SEL_MODE_SINGLE)

ON_DRAG_MULTIPLE Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDRAG

Für Bäume mit Mehrfachselektion (NODE_SELECTION_MODE= TREE->NODE_SEL_MODE_MULTIPLE)

ON_DROP Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROP

ON_DROP_COMPLETE Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROPCOMPLETE

Für Bäume ohne Mehrfachselektion(NODE_SELECTION_MODE = TREE->NODE_SEL_MODE_SINGLE)

ON_DROP_COMPLETE_MULTIPLE

Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROPCOMPLETE

Für Bäume mit Mehrfachselektion (NODE_SELECTION_MODE= TREE->NODE_SEL_MODE_MULTIPLE)

Die einzelnen Ereignisse besitzen folgende Ereignisparameter:

Ereignis Ereignisparameter Bedeutung

NODE_KEY Technischer Name des Knotens, aufden das Quellobjekt gezogen wurde

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

ON_DROP_GET_FLAVOR

FLAVORS Gemeinsame Flavors des Drag&Drop-Vorgangs

NODE_KEY Technischer Name des Knotens, derals Quellobjekt ausgewählt wurde

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DRAG

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY_TABLE Tabelle der Knoten, die alsQuellobjekte ausgewählt wurden

ON_DRAG_MULTIPLE

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

Page 53: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Definition von Ereignissen bei Drag&Drop im SAP Tree

April 2001 53

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY Technischer Name des Knotens, aufden das Quellobjekt gezogen wurde

ON_DROP

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY Technischer Name des Knotens, derals Quellobjekt ausgewählt wurde

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DROP_COMPLETE

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY_TABLE Tabelle der Knoten, die alsQuellobjekte ausgewählt wurden

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DROP_COMPLETE_MULTIPLE

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

Page 54: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

54 April 2001

Beispiel für Drag&Drop-ProgrammierungDas Beispielprogramm geht von einem SAP Simple Tree Control und einem SAP TextEditControl aus. Von dem Tree Control soll eine Verschiebefunktion von Texten in das TextEditControl möglich sein.Sie finden das Beispiel unter dem Namen RSDEMO_DRAG_DROP_EDIT_TREE.

*&-------------------------------------------------------------------**& Report RSDEMO_DRAG_DROP_EDIT_TREE *&*--------------------------------------------------------------------*REPORT rsdemo_drag_drop_edit_tree .DATA ok_code TYPE sy-ucomm.DATA node_itab LIKE node_str OCCURS 0.DATA node LIKE node_str.DATA container TYPE REF TO cl_gui_custom_container.DATA splitter TYPE REF TO cl_gui_easy_splitter_container.DATA right TYPE REF TO cl_gui_container.DATA left TYPE REF TO cl_gui_container.DATA editor TYPE REF TO cl_gui_textedit.DATA tree TYPE REF TO cl_gui_simple_tree.DATA behaviour_left TYPE REF TO cl_dragdrop.DATA behaviour_right TYPE REF TO cl_dragdrop.DATA handle_tree TYPE i.*--------------------------------------------------------------------** CLASS lcl_treeobject DEFINITION* container class for drag object*--------------------------------------------------------------------*CLASS lcl_drag_object DEFINITION.

PUBLIC SECTION.DATA text TYPE mtreesnode-text.

ENDCLASS.*---------------------------------------------------------------------** CLASS dragdrop_receiver DEFINITION* event handler class for drag&drop events*---------------------------------------------------------------------*CLASS lcl_dragdrop_receiver DEFINITION.

PUBLIC SECTION.METHODS:

flavor_select FOR EVENT on_get_flavor OF cl_gui_texteditIMPORTING index line pos flavors dragdrop_object,

left_drag FOR EVENT on_drag OF cl_gui_simple_treeIMPORTING node_key drag_drop_object,

right_drop FOR EVENT ON_DROP OF cl_gui_texteditIMPORTING index line pos dragdrop_object,

drop_complete FOR EVENT on_drop_complete OF cl_gui_simple_treeIMPORTING node_key drag_drop_object.

ENDCLASS.START-OF-SELECTION.

CALL SCREEN 100.*&-------------------------------------------------------------------**& Module START OUTPUT*&-------------------------------------------------------------------*

Page 55: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 55

MODULE start OUTPUT.SET PF-STATUS 'BASE'.IF container is initial.

CREATE OBJECT containerEXPORTING container_name = 'CONTAINER'.

CREATE OBJECT splitterEXPORTING parent = container

orientation = 1.left = splitter->top_left_container.right = splitter->bottom_right_container.CREATE OBJECT editor

EXPORTING parent = right.CREATE OBJECT tree

EXPORTING parent = leftnode_selection_mode = tree->node_sel_mode_single.

* Definition of drag drop behaviour for treeCREATE OBJECT behaviour_left.CALL METHOD behaviour_left->add

EXPORTINGflavor = 'Tree_move_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_left->addEXPORTING

flavor = 'Tree_copy_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_left->get_handleIMPORTING handle = handle_tree.

* Drag Drop behaviour of tree control nodes are defined in the node* structure

PERFORM fill_tree.CALL METHOD tree->add_nodes

EXPORTING node_table = node_itabtable_structure_name = 'NODE_STR'.

* Definition of drag drop behaviour for treeCREATE OBJECT behaviour_right.

CALL METHOD behaviour_right->addEXPORTING

flavor = 'Tree_move_to_Edit'dragsrc = ' 'droptarget = 'X'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_right->addEXPORTING

flavor = 'Tree_copy_to_Edit'dragsrc = ' 'droptarget = 'X'effect = cl_dragdrop=>copy.

CALL METHOD editor->set_dragdropEXPORTING dragdrop = behaviour_right.

Page 56: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

56 April 2001

* registration of drag and drop eventsSET HANDLER dragdrop=>flavor_select FOR editor.SET HANDLER dragdrop=>left_drag FOR tree.SET HANDLER dragdrop=>right_drop FOR editor.SET HANDLER dragdrop=>drop_complete for TREE.

ENDIF.ENDMODULE. " START OUTPUT*&-------------------------------------------------------------------**& Module EXIT INPUT*&-------------------------------------------------------------------*MODULE exit INPUT.

LEAVE PROGRAM.ENDMODULE. " EXIT INPUT*&-------------------------------------------------------------------**& Form fill_tree*&-------------------------------------------------------------------*FORM fill_tree.

DATA: node LIKE mtreesnode.CLEAR node.node-node_key = 'Root'.node-isfolder = 'X'.node-text = 'Text'.node-dragdropid = ' '.APPEND node TO node_itab.CLEAR node.node-node_key = 'Child1'.node-relatkey = 'Root'.node-relatship = cl_gui_simple_tree=>relat_last_child.node-text = 'DragDrop Text 1'.node-dragdropid = handle_tree. " handle of behaviourAPPEND node TO node_itab.CLEAR node.node-node_key = 'Child2'.node-relatkey = 'Root'.node-relatship = cl_gui_simple_tree=>relat_last_child.node-text = 'DragDrop Text 2'.node-dragdropid = handle_tree. " handle of behaviourAPPEND node TO node_itab.

ENDFORM. " fill_tree*&-------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&-------------------------------------------------------------------*MODULE user_command_0100 INPUT.

CALL METHOD cl_gui_cfw=>dispatch.ENDMODULE. " USER_COMMAND_0100 INPUT*--------------------------------------------------------------------** CLASS DRAGDROP_RECEIVER IMPLEMENTATION*--------------------------------------------------------------------*CLASS lcl_dragdrop_receiver IMPLEMENTATION.

METHOD flavor_select. " set the right flavorIF line > 5.

SEARCH flavors FOR 'Tree_move_to_Edit'.IF sy-subrc = 0.

Page 57: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 57

CALL METHOD dragDROP_OBJECT->SET_FLAVOREXPORTING newflavor = 'Tree_move_to_Edit'.

ELSE.CALL METHOD dragdrop_object->abort.

ENDIF.ELSE.

SEARCH flavors FOR 'Tree_copy_to_Edit'.IF sy-subrc = 0.

CALL METHOD dragdrop_object->set_flavorEXPORTING newflavor = 'Tree_copy_to_Edit'.

ELSE.CALL METHOD dragdrop_object->abort.

ENDIF.ENDIF.

ENDMETHOD.METHOD left_drag. " define drag object

DATA drag_object TYPE REF TO lcl_drag_object.READ TABLE node_itab WITH KEY node_key = node_key

INTO node.CREATE OBJECT drag_object.drag_object->text = node-text.drag_drop_object->object = drag_object.

ENDMETHOD.METHOD right_drop. " action in the drop object

DATA textline(256).DATA text_table LIKE STANDARD TABLE OF textline.DATA drag_object TYPE REF TO lcl_drag_object.CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.

drag_object ?= dragdrop_object->object.ENDCATCH.IF sy-subrc = 1.

" data object has unexpected class" => cancel Drag & Drop operation

CALL METHOD dragdrop_object->abort.EXIT.

ENDIF.CALL METHOD editor->get_text_as_stream

IMPORTING text = text_table.* Synchronize Automation Queue after Get Methods

CALL METHOD cl_gui_cfw=>flush.textline = drag_object->text.

* Insert text in internal tableINSERT textline INTO text_table INDEX 1.

* Send modified table to frontendCALL METHOD editor->set_text_as_stream

EXPORTING text = text_tableEXCEPTIONS error_dp = 1

error_dp_create = 2.ENDMETHOD.METHOD drop_complete. " do something after drop

IF drag_drop_object->flavor = 'Tree_move_to_Edit'.CALL METHOD tree->delete_node

EXPORTING node_key = node_key.

Page 58: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

58 April 2001

delete node_itab where node_key = node_key.ENDIF.ENDMETHOD.

ENDCLASS.

Page 59: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Der Column Tree

April 2001 59

Der Column TreeDefinitionDer Column Tree wird mit Referenz auf die Klasse cl_gui_column_tree angelegt:

DATA column_tree TYPE REF TO cl_gui_column_tree.

Nach der Vererbungshierarchie haben Sie Zugriff auf die Methoden der Klassen:

• cl_gui_object und cl_gui_control (siehe Methoden des OO Control Frameworks[Seite 481])

• cl_tree_control_base (siehe Methoden der Klasse CL_TREE_CONTROL_BASE [Seite122])

• cl_item_tree_control (siehe Methoden der Klasse CL_ITEM_TREE_CONTROL [Seite160])

• cl_gui_column_tree (siehe Methoden der Klasse CL_GUI_COLUMN_TREE [Seite 207])

VerwendungDie Verwendung des Column Tree wird im Report sapcolumn_tree_control_demodemonstriert.

Die Eigenschaften des Column Tree werden in Übersicht über die Tree Control Klassen [Seite18] beschrieben.

Page 60: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Anlegen eines Controls am Beispiel des SAP Picture

60 April 2001

Anlegen eines Controls am Beispiel des SAP PictureVoraussetzungenDer folgende Ablauf ist für alle von SAP ausgelieferten Custom Controls anwendbar. In denCode-Beispielen wird immer auf das SAP Picture Control eingegangen. Für andere Controls istaber im Prinzip nur die Klasse des Controls auszutauschen.

Weiterhin geht das Beispiel davon aus, daß das Custom Control in einem Custom Containereingebaut wird. Andere Szenarios werden in der Dokumentation zu den Control Containernbeschrieben.

AblaufInstanz anlegen9. Definieren Sie eine Referenzvariable für den Custom Container, in dem das Custom Control

angezeigt werden soll (Siehe SAP Container [Extern])DATA container TYPE REF TO cl_gui_custom_container.

10. Definieren Sie eine Referenzvariable für das Picture Control:DATA picture TYPE REF TO cl_gui_picture.

11. Erzeugen Sie den Custom Container. Den Bereich 'CUSTOM' für den Custom Containermüssen Sie vorher im Screen Painter angelegt haben. Beim Erzeugen des Containers legenSie auch seine Lebensdauer [Extern] fest (siehe constructor [Extern]).

CREATE OBJECT containerEXPORTING container_name = 'CUSTOM'

lifetime = lifetime.

12. Erzeugen Sie das Picture Control. Für dieses können Sie auch eine Lebensdauer festlegen.Allerdings darf die Lebensdauer nicht größer sein als die seines Containers.

CREATE OBJECT pictureEXPORTING parent = container

lifetime = lifetime.

Ereignis anmelden13. Das Anmelden von Ereignissen gliedert sich in das Registrieren des Ereignisses am Control

Framework, das Definieren einer Behandlermethode und das Anmelden derBehandlermethode. Diese Schritte finden Sie in Registrieren und Verarbeiten vonEreignissen [Seite 101].

Arbeiten mit dem Control14. Diese Schritte sind control-spezifisch und werden hier nicht beschrieben.

Abbau der ControlsIn der Regel übernimmt das Lifetime Management [Extern] den Abbau der verwendetenControls. Wenn Sie die Controls aber in Ihrem Programm selbst abbauen wollen, führen Siefolgende Schritte aus:

Page 61: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Anlegen eines Controls am Beispiel des SAP Picture

April 2001 61

15. Bauen Sie das Custom Control mit der Methode free [Seite 490] am Frontend ab. Sofern Sieden Control Container nicht mehr benötigen, bauen Sie auch diesen ab:

CALL METHOD picture->freeEXCEPTIONS cntl_error = 1

cntl_system_error = 2.CALL METHOD container->free

EXCEPTIONS cntl_error = 1cntl_system_error = 2.

Beachten Sie die Reihenfolge, in der Sie die Controls am Frontend abbauen. WennSie einen Container abbauen, werden nämlich automatisch alle in dem Containereingebundenen Controls auch abgebaut. Der Versuch, ein bereits abgebautesControl erneut abzubauen, führt zu einem Fehler. Mit der Methode is_alive [Seite495] kann nachgeprüft werden, ob das Control schon abgebaut wurde.

16. Löschen Sie die Referenzvariablen des Custom Controls und des Control Containers:FREE PICTURE.FREE CONTAINER.

Page 62: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem Column Tree

62 April 2001

Arbeiten mit dem Column TreeIn diesem Abschnitt werden die für den Column Tree spezifischen Funktionen aufgeführt.

VoraussetzungenDer in diesem Abschnitt beschriebene Prozeß stellt nur eine control-spezifische Ergänzung desallgemeinen Prozesses zur Control-Einbindung [Seite 92] dar und ist isoliert nicht lauffähig.

Ablauf

Die Code-Abschnitte sind Beispiele, die nicht immer den vollen Funktionsumfangausnutzen. Genauere Informationen finden Sie immer im Referenzteil dieserDokumentation.

Instanzieren1. Definieren Sie eine Referenzvariable für den Column Tree:DATA column_tree TYPE REF TO cl_gui_column_tree.

2. Definieren Sie einen Arbeitsbereich für die Hierarchieüberschrift mit Bezug auf die Strukturtreev_hhdr:

DATA hierarchy_header TYPE treev_hhdr.

3. Füllen Sie den Arbeitsbereich für die Hierarchieüberschrift. Dabei können Sie die Breite(width und width_pix), den Text (heading), eine Ikone (t_image) und einen Tooltip(tooltip) einstellen. Zum späteren Verändern dieser Eigenschaften stehen Ihnen auchMethoden zur Verfügung.

hierarchy_header-heading = 'Überschrift'.hierarchy_header-width = 30.

4. Erzeugen Sie eine Instanz [Seite 208] des Tree:CREATE OBJECT column_tree

EXPORTING parent = containernode_selection_mode = node_selection_modehide_selection = hide_selectionitem_selection = item_selectionhierarchy_column_name = hierarchy_column_namehierarchy_header = hierarchy_header

EXCEPTIONS lifetime_error = 1cntl_system_error = 2create_error = 3illegal_node_selection_mode = 4failed = 5illegal_column_name = 6.

Ereignis anmelden5. Melden Sie Ereignisse [Seite 103] für den Column Tree an. Folgende Ereignisse werden

unterstützt:

Page 63: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem Column Tree

April 2001 63

Ereignisnamen Bedeutung

NODE_DOUBLE_CLICK Doppelklick auf einem Knoten

EXPAND_NO_CHILDREN Knoten ohne Kinder wurde expandiert

SELECTION_CHANGED Der selektierte Knoten hat sich geändert

NODE_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs für einen Knoten

NODE_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

DEFAULT_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf der leerenFläche des Controls

DEFAULT_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

HEADER_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf derÜberschrift

HEADER_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

ITEM_KEYPRESS Es wurde eine vordefinierte Taste gedrückt und einEintrag vorher selektiert

NODE_KEYPRESS Es wurde eine vordefinierte Taste gedrückt und einKnoten vorher selektiert

HEADER_CLICK Klick auf eine Überschrift

Sofern Sie beim Erzeugen der Instanz (Punkt 4) den Parameter item_selection = 'X'gesetzt haben, können Sie zusätzlich noch auf folgende Ereignisse reagieren:

Ereignisnamen Bedeutung

BUTTON_CLICK Ein Eintrag der Klasse BUTTON wurde geklickt

LINK_CLICK Ein Eintrag der Klasse LINK wurde geklickt

CHECKBOX_CHANGE Ein Eintrag der Klasse CHECKBOX wurde geklickt.

ITEM_DOUBLE_CLICK Doppelklick auf einem Eintrag

ITEM_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf einem Eintrag

ITEM_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde in Bezug auf einenEintrag ausgewählt

Arbeiten mit dem Control6. Fügen Sie Knoten in den Baum ein. Füllen Sie dazu zuerst eine Knotentabelle und eine

Tabelle der Einträge und übergeben Sie diese mit der Methode add_nodes_and_items [Seite161]:

CALL METHOD column_tree->add_nodes_and_itemsEXPORTING node_table = node_table

item_table = item_tableitem_table_structure_name = item_table_structure_name

EXCEPTIONS failed = 1cntl_system_error = 2error_in_tables = 3

Page 64: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem Column Tree

64 April 2001

dp_error = 4table_structure_name_not_found = 5.

7. Bearbeiten Sie vorhandene Knoten des Baums, oder verändern Sie die Eigenschaften desBaums (siehe Eigenschaften des Controls ändern [Seite 65]).

8. Bestimmen Sie Eigenschaften des Baums und seiner Knoten (siehe Eigenschaften desControls abfragen [Seite 69]).

Abbau der Controls9. Bauen Sie das Custom Control am Frontend ab. Sofern Sie den Control Container nicht

mehr benötigen, bauen Sie auch diesen ab:CALL METHOD column_tree->free.

Sofern Sie sorgfältig mit dem Lifetime Management [Extern] arbeiten, brauchen Siesich um das Abbauen des Controls am Frontend nicht selbst zu kümmern. Dies wirddann automatisch vom System vorgenommen.

10. Löschen Sie die Referenzvariablen des Simple Tree und eventuell des Control Containers:FREE column_tree.

Page 65: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls ändern

April 2001 65

Eigenschaften des Controls ändernIn diesem Abschnitt werden alle Methoden zum Verändern des Column Tree gelistet.

Einträge (mit Knoten) einfügen ändern und löschen

Methode Bedeutung

add_nodes_and_items [Seite161]

Eine Liste mit Einträgen (mit ihren Knoten) einfügen

delete_all_items_of_nodes[Seite 165]

Alle Einträge zu einer Liste von Knoten löschen

delete_items [Seite 166] Löschen einer Liste von Einträgen

update_nodes_and_items[Seite 178]

Einer Liste von Einträgen (und deren Knoten) werden verändert

Einzelnen Eintrag ändern

Methode Bedeutung

item_set_chosen [Seite 168] Ankreuzfeld im Baum ankreuzen

item_set_disabled [Seite 169] Eintrag im Baum inaktivieren

item_set_editable [Seite 170] Änderbarkeit von Ankreuzfeldern verändern

item_set_font [Seite 171] Font den Eintrags setzen

item_set_hidden [Seite 172] Eintrag unsichtbar setzen

item_set_style [Seite 173] Stil eines Eintrags festlegen

item_set_text [Seite 174] Text eines Eintrags verändern

item_set_t_image [Seite 175] Ikone eines Eintrags verändern

Einzelnen Eintrag selektieren

Methode Bedeutung

select_item [Seite 176] Selektion eines einzelnen Eintrags

Knoten expandieren

Methode Bedeutung

expand_node [Seite 131] Bestimmten Knoten expandieren

expand_nodes [Seite 132] Liste von Knoten expandieren

expand_root_nodes [Seite 133] Alle Wurzelknoten expandieren

Knoten selektieren

Methode Bedeutung

set_selected_node [Seite 155] Bestimmten Knoten selektieren

Page 66: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Eigenschaften des Controls ändern

66 April 2001

select_nodes [Seite 150] Liste von Knoten selektieren

unselect_all [Seite 157] Selektion für alle Knoten und Einträge rückgängig machen

unselect_nodes [Seite 158] Selektion für Liste von Knoten rückgängig machen

Knoten löschen

Methode Bedeutung

delete_all_nodes [Seite 127] Alle Knoten aus Baum löschen

delete_node [Seite 128] Bestimmten Knoten aus Baum löschen

delete_nodes [Seite 129] Liste von Knoten aus Baum löschen

Eigenschaften eines Knotens ändern

Methode Bedeutung

node_set_disabled [Seite 139] Knoten inaktivieren

node_set_expander [Seite 141] Eigenschaft expander setzen

node_set_exp_image [Seite 142] Ikone für expandierten Knoten setzen

node_set_hidden [Seite 143] Knoten unsichtbar machen

node_set_is_folder [Seite 144] Eigenschaft is_folder setzen

node_set_no_branch [Seite 145] Hierarchielinie des Knoten setzen

node_set_n_image [Seite 146] Ikone des nicht expandierten Knotens setzen

node_set_style [Seite 147] Stil des Knotens setzen

node_set_dragdropid [Seite 140] Drag&Drop Verhalten eines Knotens setzen

Spalten einfügen, löschen und ändern

Methode Bedeutung

add_column [Seite 210] Spalte hinzufügen

add_hierarchy_column [Seite212]

Spalte unter Hierarchieüberschrift hinzufügen

delete_column [Seite 221] Spalte löschen

insert_column [Seite 229] Spalte an bestimmter Stelle einfügen

insert_hierarchy_column[Seite 231]

Spalte an bestimmter Stelle unter Hierarchieüberschrift einfügen

Eigenschaften von Spalten verändern

Methode Bedeutung

column_set_disabled [Seite 215] Spalte inaktivieren

column_set_heading_image [Seite 216] Ikone der Überschrift verändern

Page 67: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls ändern

April 2001 67

column_set_heading_text [Seite 217] Text der Überschrift verändern

column_set_heading_tooltip [Seite 218] Tooltip der Überschrift verändern

column_set_hidden [Seite 219] Spalte unsichtbar machen

column_set_width [Seite 220] Breite der Spalte verändern

adjust_column_width [Seite 213] Breite von Spalten anpassen

update_column [Seite 233] Verändern mehrerer Eigenschaften einer Spalte

Eigenschaften der Hierarchieüberschrift verändern

Methode Bedeutung

hierarchy_header_set_t_image [Seite 227] Ikone der Hierarchieüberschrift verändern

hierarchy_header_set_text [Seite 225] Text der Hierarchieüberschrift verändern

hierarchy_header_set_tooltip [Seite 226] Tooltip der Hierarchieüberschrift verändern

hierarchy_header_set_width [Seite 228] Breite der Hierarchieüberschrift verändern

hierarchy_header_adjust_width [Seite 223] Breite der Hierarchieüberschrift anpassen

Spaltenreihenfolge setzen

Methode Bedeutung

set_column_order [Seite 232] Spaltenreihenfolge setzen

Konfiguration von Tastatur Ereignissen

Methode Bedeutung

add_key_stroke [Seite 123] Definition einer Taste der Tastatur, die ein Ereignis auslösensoll

remove_all_key_strokes [Seite148]

Löschen von Definitionen für Tasten

Sonstige Methoden

Methode Bedeutung

ensure_visible [Seite 130] Sichtbarkeit eines bestimmten Knotens gewährleisten

move_node [Seite 138] Knoten verschieben

scroll [Seite 149] Blättern im Baum

set_ctx_menu_select_event_appl [Seite 159]

Entscheidung, ob Ereignis nach Auswahl eines Eintrags auseinem Kontextmenü ein Applikations- oder Systemereignis seinsoll

set_has_3d_frame [Seite153]

3D Rahmen setzen

set_screen_update [Seite154]

Sichtbarkeit von Änderungen regeln

Page 68: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Eigenschaften des Controls ändern

68 April 2001

set_top_node [Seite 156] Obersten sichtbaren Knoten definieren

set_min_node_height [Seite177]

Angezeigte Mindesthöhe eines Knotens festlegen

set_default_drop [Seite 151] Setzen des Drag&Drop-Verhaltens für ein Drop in die leereFläche eines SAP Trees

set_folder_show_exp_image[Seite 152]

Einstellen des Ordner-Symbols bei geöffnetem Ordner

Page 69: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls abfragen

April 2001 69

Eigenschaften des Controls abfragenIn diesem Abschnitt werden alle Methoden zum Auslesen von Eigenschaften des Column Treeaufgelistet.

Methoden zur Abfrage von Controleigenschaften

Methode Bedeutung

get_expanded_nodes [Seite 134] Liste aller expandierten Knoten

get_selected_node [Seite 135] Name des selektierten Knotens

get_selected_nodes [Seite 136] Liste aller selektierten Knoten

get_top_node [Seite 137] Name des obersten sichtbaren Knotens

get_selected_item [Seite 167] Name des selektierter Eintrags

hierarchy_header_get_width [Seite 224] Breite der Hierarchieüberschrift

column_get_width [Seite 214] Breite einer Spalte

get_column_order [Seite 222] Reihenfolge der Spalten

Page 70: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Registrieren und Verarbeiten von Ereignissen

70 April 2001

Registrieren und Verarbeiten von EreignissenEinsatzmöglichkeitenÜber den Ereignismechanismus des Control Frameworks können Sie in Ihrem Programm inBehandlermethoden auf Ereignisse reagieren, die auf dem Control ausgelöst wurden (z.B.Doppelklick).

VoraussetzungenDer Ablauf wurde allgemeingültig für alle Custom Controls gehalten. Control-spezifischeInformationen finden Sie in der jeweiligen Dokumentation zu der Control-Verschalung.

Ablauf11. Es wird davon ausgegangen, daß Sie mit einem Custom Control mit der Verschalung

cl_gui_xyz arbeiten:

DATA my_control TYPE REF TO cl_gui_xyz.

Anmelden von Ereignissen beim Control Framework12. Definieren Sie eine interne Tabelle (Typ cntl_simple_events) und einen

dazugehörenden Arbeitsbereich (Typ cntl_simple_event).

DATA events TYPE cntl_simple_events.DATA wa_events TYPE cntl_simple_event.

13. Füllen Sie nun die Ereignistabelle mit den relevanten Ereignissen. Dazu benötigen Sie dieIdentifikation des Ereignisses (event_id). Diese Information finden Sie wiederum in derKlassenbibliothek in den Attributen der Klasse cl_gui_xyz. Weiterhin müssen Sie sichentscheiden, ob das Ereignis als Systemereignis (appl_event = ' ') oder alsApplikationsereignis (appl_event = 'X') definiert werden soll.

wa_events-eventid = event_id.wa_events-appl_event = appl_event.APPEND wa_events TO events.

14. Im nächsten Schritt muß die Ereignistabelle an das Frontend geschickt werden, damit dierelevanten Ereignisse vom Frontend an das Backend weitergeleitet werden.

CALL METHOD my_control->set_registered_eventsevents = events.

Um auf ein Ereignis Ihres Custom Controls eingehen zu können, müssen Sie nun noch eineBehandlermethode angeben. Die Behandlermethode kann eine Instanzmethode oder einestatische Methode sein:

Behandlung des Ereignisses als Instanzmethode15. Definieren Sie die (lokale) Klassendefinition für den Ereignisbehandler. Dabei legen Sie den

Namen der Ereignisbehandlermethode fest (Event_Handler). Als Information müssen Siesich in der Klassenbibliothek für die Klasse des Custom Controls cl_gui_xyz den Namendes Ereignisses (event_name) und die zu diesem Ereignis gehörenden Ereignisparameter(event_parameter) besorgen. Der Ereignisparameter sender wird bei jedem Ereignis zur

Page 71: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Registrieren und Verarbeiten von Ereignissen

April 2001 71

Verfügung gestellt. Der Parameter enthält die Referenz des Controls, das dieses Ereignisausgelöst hat.

CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.METHODS Event_Handler

FOR EVENT event_name OF cl_gui_xyzIMPORTING event_parameter

sender.ENDCLASS.

16. Melden Sie jetzt noch für die registrierten Ereignisse Behandlermethoden beim OO ControlFramework an.

DATA event_receiver TYPE REF TO lcl_event_receiver.CREATE OBJECT event_receiver.SET HANDLER event_receiver->Event_Handler

FOR my_control.

Registrieren als statische Methode17. Definieren Sie die (lokale) Klassendefinition für den Ereignisbehandler. Dabei legen Sie den

Namen der statischen Ereignisbehandlermethode fest (Event_Handler). Als Informationmüssen Sie sich in der Klassenbibliothek für die Klasse des Custom Controls cl_gui_xyzden Namen des Ereignisses (event_name) und die zu diesem Ereignis gehörendenEreignisparameter (event_parameter) besorgen.

CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.CLASS-METHODS Event_Handler

FOR EVENT event_name OF cl_gui_xyzIMPORTING event_parameter

sender.ENDCLASS.

18. Melden Sie jetzt noch für die registrierten Ereignisse Behandlermethoden beim OO ControlFramework an.

SET HANDLER lcl_event_receiver=>Event_HandlerFOR my_control.

Verarbeiten von Control-Ereignissen19. Wie Sie auf ein Ereignis reagieren wollen, legen Sie im Implementierungsteil der

Behandlermethode fest.CLASS lcl_event_receiver IMPLEMENTATION.METHOD Event_Handler.* Abarbeitung des EreignissesENDMETHOD.ENDCLASS.

20. Je nach Art des Ereignisses (System- oder Applikationsereignis) müssen Sie jetzt noch dieMethode CL_GUI_CFW=>DISPATCH aufrufen. Lesen Sie dazu Ereignisbehandlung [Extern].

Page 72: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Column Tree und des List Tree

72 April 2001

Ereignisse des Column Tree und des List TreeVerwendungDurch bestimmte Benutzerinteraktionen auf dem Column Tree bzw. dem List Tree werdenEreignisse ausgelöst:

Ereignis Ereignis-ID:CL_ITEM_TREE_CONTROL=>

Bedeutung

NODE_DOUBLE_CLICK

EVENTID_NODE_DOUBLE_CLICK Doppelklick auf einen Knoten

NODE_KEYPRESS EVENTID_NODE_KEYPRESS Taste wurde gedrückt, Knotenwar selektiert

EXPAND_NO_CHILDREN

EVENTID_EXPAND_NO_CHILDREN Knoten ohne Kinder wurdeexpandiert.

SELECTION_CHANGED

EVENTID_SELECTION_CHANGED Dieses Ereignis kann nurverwendet werden, wenn beimKonstruktor Knoten-Einfachselektion eingestelltwurde und ITEM_SELECTION= ' ' gesetzt wurde.

Der selektierte Knoten hat sichgeändert. Achtung: Wirddieses Event verwendet, sokann das EventNODE_DOUBLE_CLICKnicht verwendet werden!

NODE_CONTEXT_MENU_REQUEST

EVENTID_NODE_CONTEXT_MENU_REQ

Anforderung einesKontextmenüs auf einemKnoten.

NODE_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisNODE_CONTEXT_MENU_REQUESTregistriert wird.

Eintrag im Kontextmenü aufeinem Knoten wurdeausgewählt.

DEFAULT_CONTEXT_MENU_REQUEST

EVENTID_DEF_CONTEXT_MENU_REQ

Anforderung einesKontextmenüs auf demBaumhintergrund

DEFAULT_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisDEFAULT_CONTEXT_MENU_REQUESTregistriert wird.

Eintrag im Kontextmenü aufdem Baumhintergrund wurdeausgewählt.

HEADER_CONTEXT_MENU_REQUEST

EVENTID_HEADER_CONTEXT_MEN_REQ

Anforderung einesKontextmenüs auf einerÜberschrift

Page 73: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse des Column Tree und des List Tree

April 2001 73

HEADER_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisEVENTID_HEADER_CONTEXT_MEN_REQ registriert wird.

Eintrag im Kontextmenü aufder Überschrift wurdeausgewählt

HEADER_CLICK EVENTID_HEADER_CLICK Klick auf eine Überschrift

ON_DROP_GET_FLAVOR

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Zum Drag&Drop-Vorgang gibtes mehere gemeinsameFlavors

ON_DRAG siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Quellobjekts(Einfachselektion)

ON_DRAG_MULTIPLE siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Quellobjekts(Mehrfachselektion)

ON_DROP siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Kontextes imZielobjekt

ON_DROP_COMPLETE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Letzter Zeitpunkt vor Abschlußdes Drag&Drop-Vorgangs(Einfachselektion)

ON_DROP_COMPLETE_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Letzter Zeitpunkt vor Abschlußdes Drag&Drop-Vorgangs(Mehrfachselektion)

Sofern Sie beim Erzeugen der Instanz (Punkt 4) den Parameter item_selection = 'X'gesetzt haben, können Sie zusätzlich noch auf folgende Ereignisse reagieren:

Ereignis Ereignis ID:CL_ITEM_TREE_CONTROL=>

Bedeutung

ITEM_DOUBLE_CLICK EVENTID_ITEM_DOUBLE_CLICK Doppelklick auf einem Eintrag

ITEM_KEYPRESS EVENTID_ITEM_KEYPRESS Taste wurde gedrückt, Eintragwar selektiert

BUTTON_CLICK EVENTID_BUTTON_CLICK Klick auf einen Eintrag vomTyp BUTTON

LINK_CLICK EVENTID_LINK_CLICK Klick auf einen Eintrag vomTyp LINK

CHECKBOX_CHANGE EVENTID_CHECKBOX_CHANGE Klick auf einen Eintrag vomTyp CHECKBOX(Ankreuzfeld)

ITEM_CONTEXT_MENU_REQUEST

EVENTID_ITEM_CONTEXT_MENU_REQUEST

Anforderung einesKontextmenüs auf einemEintrag

ITEM_CONTEXT_MENU_SELECT

Dieses Ereignis wird autmatischregistriert, wenn das EreignisITEM_CONTEXT_MENU_REQUESTregistriert wurde

Eintrag im Kontextmenü wurdeausgewählt

Die Ereignisse liefern eventuell Ereignisparameter mit:

Page 74: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Column Tree und des List Tree

74 April 2001

Ereignis Parameter Bedeutung

NODE_DOUBLE_CLICK

NODE_KEY Knoten, auf dem einDoppelklick ausgeführt wurde

NODE_KEY Knoten, auf dem die Tastegedrückt wurde

NODE_KEYPRESS

KEY Taste, die gedrückt wurde

EXPAND_NO_CHILDREN

NODE_KEY Knoten, der expandiert wurde,ohne daß Unterknotenvorhanden sind

SELECTION_CHANGED

NODE_KEY Neu selektierter Knoten

NODE_KEY Knoten, auf dem dasKontextmenü angefordertwurde

NODE_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

NODE_KEY Knoten, auf dem ein Eintragdes Kontextmenüs ausgewähltwurde

NODE_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

HEADER_CLICK HEADER_NAME Name der Überschrift, auf diegeklickt wurde

HEADER_NAME Überschrift, auf der dasKontextmenü angefordertwurde

HEADER_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

HEADER_NAME Überschrift, auf der dasKontextmenü ausgewähltwurde

HEADER_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

NODE_KEY Name des KnotensCHECKBOX_CHANGE ITEM_NAME Name des Eintrags, auf den

geklickt wurde

Page 75: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse des Column Tree und des List Tree

April 2001 75

CHECKED 'X': Ankreuzfeld angekreuzt' ': Ankreuzfeld nichtangekreuzt

NODE_KEY Name des KnotensITEM_DOUBLE_CLICK ITEM_NAME Name des Eintrags, auf den

geklickt wurde

NODE_KEY Name des Knotens

ITEM_NAME Name des Eintrags, für dendas Kontextmenü angefordertwurde

ITEM_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

NODE_KEY Name des Knotens

ITEM_NAME Name des Eintrags, für dendas Kontextmenü angefordertwurde

ITEM_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

NODE_KEY Name des Knotens

ITEM_NAME Name des Eintrags, in demeine Taste gedrückt wurde

ITEM_KEYPRESS

KEY Taste, die gedrückt wurde

DEFAULT_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

DEFAULT_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

ON_DROP_GET_FLAVOR

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DRAG siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DRAG_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP_COMPLETE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Page 76: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Column Tree und des List Tree

76 April 2001

ON_DROP_COMPLETE_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Wenn Sie Ereignisse benutzen wollen (z.B. NODE_KEYPRESS), die aufgrund desDrückens von Tasten der Tastatur ausgelöst werden sollen, müssen Sie sie mit derMethode add_key_stroke [Seite 123] definieren. Mit der Methoderemove_all_key_strokes [Seite 148] können Sie diese Definition wieder rückgängigmachen.

IntegrationWenn Sie auf diese Ereignisse in Ihrem ABAP-Programm reagieren müssen, müssen Sie sichauf diese Ereignisse registrieren. Dazu verwenden Sie die Methode set_registered_events [Seite493]. Ereignisse, auf die Sie sich nicht registriert werden, werden schon am Frontend ausgefiltertund gelangen nicht zum Backend. Siehe Ereignisbehandlung [Extern].

AktivitätenLesen Sie den allgemeinen Prozeß [Seite 92] für das Arbeiten mit Ereignissen des ControlFrameworks.

Page 77: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Drag&Drop

April 2001 77

Drag&DropVerwendungMit Drag&Drop kann der Anwender Objekte aus einem Bereich eines Custom Controls (Quelle)markieren und auf einen anderen Bereich eines Custom Controls (Ziel) fallen lassen. Je nachObjekt wird dann im zweiten Bereich eine Aktion ausgeführt. Quelle und Ziel können dabei dasgleiche Control oder zwei unterschiedliche Controls sein.

VoraussetzungenDamit Controls Drag&Drop-fähig sind, muß die Control-Verschalung zusätzliche Drag&Drop-Ereignisse anbieten. Das Anwendungsprogramm muß für diese Ereignisse Behandlerroutinenimplementieren. Die Registrierung auf die Ereignisse erfolgt automatisch über die jeweiligeControl-Verschalung.

FunktionsumfangFür jedes beteiligte Custom Control wird das Drag&Drop-Verhalten festgelegt. Je nach Controlwird das Verhalten auf alle Elemente des Controls bezogen (z.B. Editor), oder man kann fürjedes Teilobjekt ein eigenes Verhalten definieren (z.B. Tree). Jedes Verhalten besteht aus eineroder mehreren Beschreibungen.

Die Beschreibung hat folgende Attribute:

• DragSrc: Objekt ist Quelle eines Drag&Drop-Vorgangs

• DropTarget: Objekt ist Ziel eines Drag&Drop-Vorgangs

• Flavor: Der Flavor beschreibt den Typ einer Drag&Drop-Beschreibung. In einer Drag&Drop-Situation können Objekte nur in andere fallengelassen werden, wenn sie mindestens einegemeinsame Beschreibung besitzen.

• Effect: Beschreibung, ob die Daten beim Drag&Drop-Vorgang kopiert und/oder verschobenwerden können

• Effect_In_Ctrl: Mit welchem Drop-Effekt können Daten innerhalb des gleichen Controlsverschoben oder kopiert werden.

Sobald ein Drag-Ereignis ausgelöst wird, muß die Applikation in der entsprechendenBehandlermethode feststellen, welches Objekt von dem Ereignis betroffen ist.

Weiterhin muß für das Drop-Ereignis implementiert werden, welche Aktionen durchgeführtwerden sollen. Die Aktionen sind dabei in der Regel abhängig von dem Objekt, das in dasControl fallengelassen wurde.

Wurden einem Objekt mehrere Flavors zugeordnet, muß zu einem speziellen Ereignis festgelegtwerden, welcher Flavor benutzt werden soll.

Nachdem das Drop-Ereignis abgeschlossen ist, können in einem zusätzlichen Ereignis weitereAktionen durchgeführt werden. Dieses Ereignis bietet sich insbesondere beim Verschieben desQuellobjekts an, um dieses aus der Quelle zu löschen.

Page 78: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Drag&Drop

78 April 2001

AktivitätenWenn die Drag&Drop-Funktionalität benutzt wird, sollte auf jeden Fall auch eine UNDO-Funktionbereitgestellt werden, sofern die Drag&Drop-Funktion zu einem Verschieben des Objekts führt.Diese muß von der Anwendung implementiert werden.

Page 79: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ablauf einer Drag&Drop Operation

April 2001 79

Ablauf einer Drag&Drop OperationVoraussetzungenIm folgenden wird aufgezeigt, wie die Drag&Drop Operation abläuft. Dabei wird auf die Rolle desApplikationsservers und des Frontends eingegangen. Aus diesem Ablauf leiten sich dann dieeinzelnen Schritte ab, die in einem Anwendungsprogramm durchgeführt werden müssen, damitDrag&Drop genutzt werden kann.

AblaufApplikationsserver15. Sie erzeugen die Custom Controls [Seite 92].

16. Sie registrieren sich auf die Drag&Drop-Ereignisse [Seite 112].

17. Sie definieren das Drag&Drop-Verhalten für die einzelnen Custom Controls bzw. für derenTeilobjekte. Dazu erzeugen Sie eines Instanz [Seite 504] der Klasse CL_DRAGDROP [Seite503]. Dieser Instanz weisen Sie einen oder mehrere Flavors zu [Seite 505], die dasDrag&Drop-Verhalten des entsprechenden Custom Controls beschreiben. Sie können dieseFlavors während des Programmablaufs auch noch verändern [Seite 512], löschen [Seite514], abfragen [Seite 509] oder auch die gesamte Instanz initialisieren [Seite 507] oderzerstören [Seite 508].

18. Die Zuweisung der Flavors an das Custom Control erfolgt über control-spezifischeMethoden. Lesen Sie dazu die jeweilige Control-Dokumentation.

FrontendDie nachfolgenden Schritte führt das System automatisch durch. Sie dienen nur zum Verständnisdes Drag&Drop-Vorgangs.

19. Nachdem der Benutzer mit der linken Maustaste ein Objekt ausgewählt hat, startet derDrag&Drop-Service.

20. Der Drag&Drop-Service überprüft, ob für das Objekt ein Drag&Drop-Verhalten definiertwurde und ob darin die Fähigkeit des Objekts für Drag definiert wurde (Attribut DragSource).

21. Wurde das Attribut DragSource entsprechend gesetzt, wird das Drag&Drop gestartet. DerMauszeiger verändert sich dann automatisch.

22. Während der Benutzer die linke Maustaste gedrückt hält, wird ständig unter dem Mauszeigernachgefragt, ob sich dort ein Objekt in einem Custom Control befindet, das Drop-fähig ist(Attribut DropTarget), und ob der Flavor dieses Objekts mit dem Flavor der Quelleübereinstimmt. Ist dies der Fall, wird dem Benutzer dies über eine Veränderung desMauszeigers signalisiert.

23. Läßt der Benutzer nun das Objekt fallen, wird dies über ein Ereignis an denApplikationsserver gemeldet.

Für das Frontend ist damit die Drag&Drop Operation abgeschlossen. Bisher wurdennoch keinerlei Veränderungen an den Inhalten der Custom Controls vorgenommen.

Page 80: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ablauf einer Drag&Drop Operation

80 April 2001

Applikationsserver24. Der Drag&Drop-Service des Applikationsservers erzeugt eine Instanz der Klasse

CL_DRAGDROPOBJECT [Seite 515]. Diese Instanz (z.B. drag_drop_object) steht Ihnenin allen Ereignissen des Drag&Drop-Vorgangs als Ereignisparameter zur Verfügung unddient zum Übermitteln des Kontexts zwischen den Ereignissen.

25. Der Drag&Drop-Service prüft nach, ob das Drag-Objekt und das Drop-Objekt mehrereFlavors gemeinsam besitzen. Ist dies der Fall, wird das Ereignis ONGETFLAVOR ausgelöst. Inder dazugehörigen Behandlerroutine muß nun die Applikation entscheiden, welcher Flavorverwendet werden soll. Dazu steht die Methode set_flavor [Seite 516] zur Verfügung.

26. Nun wird das Drag&Drop-Ereignis ONDRAG ausgelöst. Über Ereignisparameter erhalten Siedie relevanten Informationen, welches Objekt der Benutzer gezogen hat. Innerhalb derBehandlerroutine müssen Sie jetzt die in 9. angelegte Instanz des Drag&Drop-Datenobjektsmit dem Kontext (Informationen über das Quellobjekt) versorgen:drag_drop_object->object = mydragobject.

27. Als nächstes wird das Ereignis ONDROP ausgelöst. Aufgabe dieser Methode ist dasVerarbeiten des Drag&Drop-Datenobjekts. Hier müssen Sie implementieren, welcheÄnderungen in dem Zielobjekt aufgrund des Drag&Drop-Vorgangs vorgenommen werdensollen.

28. Das letzte Ereignis des Drag&Drop-Vorgangs ist ONDROPCOMPLETE. Hier sollte eventuelleine Nachbearbeitung des Drag&Drop-Datenobjekts erfolgen. Besonders für den Fall einerVerschiebeoperation sollte zu diesem Zeitpunkt das Quellobjekt aus dem DragSourceControl und den entsprechenden Datenstrukturen entfernt werden.

In Beispiel für Drag&Drop-Programmierung [Seite 117] finden Sie ein Beispiel, daseinen Drag&Drop-Vorgang zwischen einem SAP Tree und einem SAP TextEditbeschreibt.

Page 81: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse bei Drag&Drop

April 2001 81

Ereignisse bei Drag&DropIm folgenden Abschnitt werden nur die allgemeingültigen Eigenschaften der Ereignisse beiDrag&Drop beschrieben. Diese können von den einzelnen Control-Verschalungen angereichertwerden. Daher sollten Sie auf jeden Fall auch in der Dokumentation zur jeweiligen Control-Verschalung die Besonderheiten des Controls nachlesen.

VerwendungIm Umfeld des Drag&Drop gibt es vier Standardereignisse, bei denen Sie die Kontrolle in IhremApplikationsprogramm bekommen können. In den Behandlerroutinen zu diesen Ereignissenimplementieren Sie, welche Aktionen bei einem Drag&Drop-Vorgang durchgeführt werden.

Bestimmte Control-Verschalungen können zusätzliche Drag&Drop-Ereignisseanbieten. Hinweise dazu finden Sie in der jeweiligen Dokumentation.

VoraussetzungenUm auf die Ereignisse reagieren zu können, müssen Sie sich auf sie registrieren. Im Gegensatzzu der normalen Ereignisbehandlung werden aber die Ereignisse nicht mit der Methodeset_registered_events [Seite 493] am Control Framework angemeldet. Die Registrierung erfolgtautomatisch über die Verschalung des eingesetzten Custom Controls.

Sie müssen aber weiterhin Behandlermethoden für die Ereignisse angeben:DATA tree TYPE REF TO cl_gui_simple_tree.SET HANDLER dragdrop=>on_drag FOR tree.

Die Ereignisse werden immer als Systemereignisse angemeldet.

FunktionsumfangDas Control Framework reicht beim Drag&Drop erst zum Drop-Zeitpunkt ein Ereignis an denApplikationsserver weiter. Dieses wird dann am Applikationsserver, wie in Ablauf einerDrag&Drop-Operation [Seite 110] beschrieben, innerhalb eines Drag&Drop-Vorgangs in maximalvier Standardereignisse auseinandergesteuert. Alle Ereignisse haben ein Drag&Drop-Datenobjekt als Ereignisparameter. Über diesen Parameter müssen Sie den Kontext desDrag&Drop-Vorgangs verwalten. Weiterhin übergibt Ihnen die jeweilige Control-Verschalungweitere Informationen zu dem Drag&Drop-Kontext. Lesen Sie dazu die Dokumentation derControl-Verschalung.

• ONGETFLAVOR: Dieses Ereignis wird nur dann ausgelöst, wenn das Quellobjekt und dasZielobjekt über mehrere gemeinsame Flavors verfügen. Sie müssen dann in derBehandlermethode einen der gemeinsamen Flavors auswählen. Wenden Sie dazu dieMethode set_flavor [Seite 516] auf das Drag&Drop-Datenobjekt an.Das Ereignis wird von dem Zielobjekt des Drag&Drop-Vorgangs ausgelöst.

• ONDRAG: Dieses Ereignis wird immer dann ausgelöst, wenn der Drag&Drop-Vorgang amFrontend beendet ist. In diesem Ereignis müssen Sie den Kontext des Quellobjektsbestimmen. Diesen Kontext übergeben Sie dann an die als Ereignisparameter übergebeneInstanz der Klasse CL_DRAGDROPOBJECT.Das Ereignis wird von dem Quellobjekt des Drag&Drop-Vorgangs ausgelöst.

Page 82: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse bei Drag&Drop

82 April 2001

• ONDROP: Zu diesem Ereignis definieren Sie die Aktionen, die im Zielobjekt durchgeführtwerden sollen. Dabei nutzen Sie den Ereignisparameter für den Kontext, den Sie zumEreignis ONDRAG gefüllt haben. Bei diesem Ereignis ist folgendes zu beachten:

− Innerhalb des ONDROP-Ereignisses muß ein dynamischer TypeCast durchgeführtwerden. Die mögliche Ausnahme des TypeCast muß auf jeden Fall abgefangen werden.Falls ein nicht passendes Objekt zugewiesen werden sollte, muß in derAusnahmebehandlung die Drag&Drop-Verarbeitung mit der Methode abort [Seite 517]abgebrochen werden.

− Die verwendeten Flavors sollten so gewählt werden, daß eine Zuordnung desDrag&Drop-Objekts zu dem richtigen TypeCast möglich ist.

Das Ereignis wird von dem Zielobjekt des Drag&Drop-Vorgangs ausgelöst.

• ONDROPCOMPLETE: Sofern Sie zum Abschluß des Drag&Drop-Vorgangs noch weitereAktionen durchführen wollen, können Sie dies in diesem Ereignis realisieren. Dies ist z.B. imFalle einer Verschiebeoperation sinnvoll.Das Ereignis wird von dem Quellobjekt des Drag&Drop-Vorgangs ausgelöst.

Page 83: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Definition von Ereignissen bei Drag&Drop im SAP Tree

April 2001 83

Definition von Ereignissen bei Drag&Drop im SAP TreeIn diesem Abschnitt werden die Besonderheiten des SAP Tree bei Drag&Drop-Operationenvorgestellt.

VoraussetzungenUm auf die Ereignisse reagieren zu können, müssen Sie sich auf sie registrieren. Im Gegensatzzu der normalen Ereignisbehandlung werden aber die Ereignisse nicht mit der Methodeset_registered_events [Seite 493] am Control Framework angemeldet. Die Registrierung erfolgtautomatisch über die Verschalung des SAP Tree.

Sie müssen aber weiterhin Behandlermethoden für die Ereignisse angeben:

Die Ereignisse werden immer als Systemereignisse angemeldet.

Weiterhin müssen Sie beim Aufbau der Knotentabelle festlegen, welcher Knoten Drag&Drop-fähig ist und welche Flavors der Knoten haben soll. Dazu versorgen Sie das Feld DRAGDROPIDder Knotentabelle mit dem entsprechenden Drag&Drop-Verhalten (siehe Punkt 3 im KapitelAblauf einer Drag&Drop-Operation [Seite 110]). Dies erfordert folgende Schritte (siehe auchBeispiel für Drag&Drop-Programmierung [Seite 117]):

4. Definieren Sie das Drag&Drop-Verhalten:DATA behaviour_left TYPE REF TO cl_dragdrop.

CREATE OBJECT behaviour_left.CALL METHOD behaviour_left->add

EXPORTINGflavor = 'Tree_move_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

5. Besorgen Sie sich mit der Methode get_handle [Seite 511] ein Handle auf das Drag&Drop-Verhalten:CALL METHOD behaviour_left->get_handle

IMPORTING handle = handle_tree.

6. Weisen Sie dieses Handle dem Feld DRAGDROPID des Eintrags in der Knotentabelle zu:

node-dragdropid = handle_tree. " handle of behaviour

Einträge vom Typ tree->item_class_checkbox (Ankreuzfeld), tree->item_class_button (Drucktaste) und tree->item_class_link (Link)können kein Quellobjekt eines Drag&Drop-Vorgangs sein.

FunktionsumfangIn der folgenden Tabelle sind die für das Drag&Drop relevanten Ereignisse aufgelistet:

Ereignis Bedeutung

ON_DROP_GET_FLAVOR Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONGETFLAVOR

Page 84: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Definition von Ereignissen bei Drag&Drop im SAP Tree

84 April 2001

ON_DRAG Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDRAG

Für Bäume ohne Mehrfachselektion(NODE_SELECTION_MODE = TREE->NODE_SEL_MODE_SINGLE)

ON_DRAG_MULTIPLE Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDRAG

Für Bäume mit Mehrfachselektion (NODE_SELECTION_MODE= TREE->NODE_SEL_MODE_MULTIPLE)

ON_DROP Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROP

ON_DROP_COMPLETE Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROPCOMPLETE

Für Bäume ohne Mehrfachselektion(NODE_SELECTION_MODE = TREE->NODE_SEL_MODE_SINGLE)

ON_DROP_COMPLETE_MULTIPLE

Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROPCOMPLETE

Für Bäume mit Mehrfachselektion (NODE_SELECTION_MODE= TREE->NODE_SEL_MODE_MULTIPLE)

Die einzelnen Ereignisse besitzen folgende Ereignisparameter:

Ereignis Ereignisparameter Bedeutung

NODE_KEY Technischer Name des Knotens, aufden das Quellobjekt gezogen wurde

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

ON_DROP_GET_FLAVOR

FLAVORS Gemeinsame Flavors des Drag&Drop-Vorgangs

NODE_KEY Technischer Name des Knotens, derals Quellobjekt ausgewählt wurde

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DRAG

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY_TABLE Tabelle der Knoten, die alsQuellobjekte ausgewählt wurden

ON_DRAG_MULTIPLE

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

Page 85: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Definition von Ereignissen bei Drag&Drop im SAP Tree

April 2001 85

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY Technischer Name des Knotens, aufden das Quellobjekt gezogen wurde

ON_DROP

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY Technischer Name des Knotens, derals Quellobjekt ausgewählt wurde

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DROP_COMPLETE

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY_TABLE Tabelle der Knoten, die alsQuellobjekte ausgewählt wurden

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DROP_COMPLETE_MULTIPLE

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

Page 86: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

86 April 2001

Beispiel für Drag&Drop-ProgrammierungDas Beispielprogramm geht von einem SAP Simple Tree Control und einem SAP TextEditControl aus. Von dem Tree Control soll eine Verschiebefunktion von Texten in das TextEditControl möglich sein.Sie finden das Beispiel unter dem Namen RSDEMO_DRAG_DROP_EDIT_TREE.

*&-------------------------------------------------------------------**& Report RSDEMO_DRAG_DROP_EDIT_TREE *&*--------------------------------------------------------------------*REPORT rsdemo_drag_drop_edit_tree .DATA ok_code TYPE sy-ucomm.DATA node_itab LIKE node_str OCCURS 0.DATA node LIKE node_str.DATA container TYPE REF TO cl_gui_custom_container.DATA splitter TYPE REF TO cl_gui_easy_splitter_container.DATA right TYPE REF TO cl_gui_container.DATA left TYPE REF TO cl_gui_container.DATA editor TYPE REF TO cl_gui_textedit.DATA tree TYPE REF TO cl_gui_simple_tree.DATA behaviour_left TYPE REF TO cl_dragdrop.DATA behaviour_right TYPE REF TO cl_dragdrop.DATA handle_tree TYPE i.*--------------------------------------------------------------------** CLASS lcl_treeobject DEFINITION* container class for drag object*--------------------------------------------------------------------*CLASS lcl_drag_object DEFINITION.

PUBLIC SECTION.DATA text TYPE mtreesnode-text.

ENDCLASS.*---------------------------------------------------------------------** CLASS dragdrop_receiver DEFINITION* event handler class for drag&drop events*---------------------------------------------------------------------*CLASS lcl_dragdrop_receiver DEFINITION.

PUBLIC SECTION.METHODS:

flavor_select FOR EVENT on_get_flavor OF cl_gui_texteditIMPORTING index line pos flavors dragdrop_object,

left_drag FOR EVENT on_drag OF cl_gui_simple_treeIMPORTING node_key drag_drop_object,

right_drop FOR EVENT ON_DROP OF cl_gui_texteditIMPORTING index line pos dragdrop_object,

drop_complete FOR EVENT on_drop_complete OF cl_gui_simple_treeIMPORTING node_key drag_drop_object.

ENDCLASS.START-OF-SELECTION.

CALL SCREEN 100.*&-------------------------------------------------------------------**& Module START OUTPUT*&-------------------------------------------------------------------*

Page 87: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 87

MODULE start OUTPUT.SET PF-STATUS 'BASE'.IF container is initial.

CREATE OBJECT containerEXPORTING container_name = 'CONTAINER'.

CREATE OBJECT splitterEXPORTING parent = container

orientation = 1.left = splitter->top_left_container.right = splitter->bottom_right_container.CREATE OBJECT editor

EXPORTING parent = right.CREATE OBJECT tree

EXPORTING parent = leftnode_selection_mode = tree->node_sel_mode_single.

* Definition of drag drop behaviour for treeCREATE OBJECT behaviour_left.CALL METHOD behaviour_left->add

EXPORTINGflavor = 'Tree_move_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_left->addEXPORTING

flavor = 'Tree_copy_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_left->get_handleIMPORTING handle = handle_tree.

* Drag Drop behaviour of tree control nodes are defined in the node* structure

PERFORM fill_tree.CALL METHOD tree->add_nodes

EXPORTING node_table = node_itabtable_structure_name = 'NODE_STR'.

* Definition of drag drop behaviour for treeCREATE OBJECT behaviour_right.

CALL METHOD behaviour_right->addEXPORTING

flavor = 'Tree_move_to_Edit'dragsrc = ' 'droptarget = 'X'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_right->addEXPORTING

flavor = 'Tree_copy_to_Edit'dragsrc = ' 'droptarget = 'X'effect = cl_dragdrop=>copy.

CALL METHOD editor->set_dragdropEXPORTING dragdrop = behaviour_right.

Page 88: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

88 April 2001

* registration of drag and drop eventsSET HANDLER dragdrop=>flavor_select FOR editor.SET HANDLER dragdrop=>left_drag FOR tree.SET HANDLER dragdrop=>right_drop FOR editor.SET HANDLER dragdrop=>drop_complete for TREE.

ENDIF.ENDMODULE. " START OUTPUT*&-------------------------------------------------------------------**& Module EXIT INPUT*&-------------------------------------------------------------------*MODULE exit INPUT.

LEAVE PROGRAM.ENDMODULE. " EXIT INPUT*&-------------------------------------------------------------------**& Form fill_tree*&-------------------------------------------------------------------*FORM fill_tree.

DATA: node LIKE mtreesnode.CLEAR node.node-node_key = 'Root'.node-isfolder = 'X'.node-text = 'Text'.node-dragdropid = ' '.APPEND node TO node_itab.CLEAR node.node-node_key = 'Child1'.node-relatkey = 'Root'.node-relatship = cl_gui_simple_tree=>relat_last_child.node-text = 'DragDrop Text 1'.node-dragdropid = handle_tree. " handle of behaviourAPPEND node TO node_itab.CLEAR node.node-node_key = 'Child2'.node-relatkey = 'Root'.node-relatship = cl_gui_simple_tree=>relat_last_child.node-text = 'DragDrop Text 2'.node-dragdropid = handle_tree. " handle of behaviourAPPEND node TO node_itab.

ENDFORM. " fill_tree*&-------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&-------------------------------------------------------------------*MODULE user_command_0100 INPUT.

CALL METHOD cl_gui_cfw=>dispatch.ENDMODULE. " USER_COMMAND_0100 INPUT*--------------------------------------------------------------------** CLASS DRAGDROP_RECEIVER IMPLEMENTATION*--------------------------------------------------------------------*CLASS lcl_dragdrop_receiver IMPLEMENTATION.

METHOD flavor_select. " set the right flavorIF line > 5.

SEARCH flavors FOR 'Tree_move_to_Edit'.IF sy-subrc = 0.

Page 89: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 89

CALL METHOD dragDROP_OBJECT->SET_FLAVOREXPORTING newflavor = 'Tree_move_to_Edit'.

ELSE.CALL METHOD dragdrop_object->abort.

ENDIF.ELSE.

SEARCH flavors FOR 'Tree_copy_to_Edit'.IF sy-subrc = 0.

CALL METHOD dragdrop_object->set_flavorEXPORTING newflavor = 'Tree_copy_to_Edit'.

ELSE.CALL METHOD dragdrop_object->abort.

ENDIF.ENDIF.

ENDMETHOD.METHOD left_drag. " define drag object

DATA drag_object TYPE REF TO lcl_drag_object.READ TABLE node_itab WITH KEY node_key = node_key

INTO node.CREATE OBJECT drag_object.drag_object->text = node-text.drag_drop_object->object = drag_object.

ENDMETHOD.METHOD right_drop. " action in the drop object

DATA textline(256).DATA text_table LIKE STANDARD TABLE OF textline.DATA drag_object TYPE REF TO lcl_drag_object.CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.

drag_object ?= dragdrop_object->object.ENDCATCH.IF sy-subrc = 1.

" data object has unexpected class" => cancel Drag & Drop operation

CALL METHOD dragdrop_object->abort.EXIT.

ENDIF.CALL METHOD editor->get_text_as_stream

IMPORTING text = text_table.* Synchronize Automation Queue after Get Methods

CALL METHOD cl_gui_cfw=>flush.textline = drag_object->text.

* Insert text in internal tableINSERT textline INTO text_table INDEX 1.

* Send modified table to frontendCALL METHOD editor->set_text_as_stream

EXPORTING text = text_tableEXCEPTIONS error_dp = 1

error_dp_create = 2.ENDMETHOD.METHOD drop_complete. " do something after drop

IF drag_drop_object->flavor = 'Tree_move_to_Edit'.CALL METHOD tree->delete_node

EXPORTING node_key = node_key.

Page 90: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

90 April 2001

delete node_itab where node_key = node_key.ENDIF.ENDMETHOD.

ENDCLASS.

Page 91: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Der List Tree

April 2001 91

Der List TreeDefinitionDer List Tree wird mit Referenz auf die Klasse cl_gui_list_tree angelegt:

DATA list_tree TYPE REF TO cl_gui_list_tree.

Nach der Vererbungshierarchie haben Sie Zugriff auf die Methoden der Klassen:

• cl_gui_object und cl_gui_control (siehe Methoden des OO Control Frameworks[Seite 481])

• cl_tree_control_base (siehe Methoden der Klasse CL_TREE_CONTROL_BASE [Seite122])

• cl_item_tree_control (siehe Methoden der Klasse CL_ITEM_TREE_CONTROL [Seite160])

• cl_gui_list_tree (sieheMethoden der Klasse CL_GUI_LIST_TREE [Seite 192])

VerwendungDie Verwendung des List Tree wird im Report saptlist_tree_control_demo demonstriert.

Die Eigenschaften des List Tree werden in Übersicht über die Tree Klassen [Seite 18]beschrieben.

Page 92: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Anlegen eines Controls am Beispiel des SAP Picture

92 April 2001

Anlegen eines Controls am Beispiel des SAP PictureVoraussetzungenDer folgende Ablauf ist für alle von SAP ausgelieferten Custom Controls anwendbar. In denCode-Beispielen wird immer auf das SAP Picture Control eingegangen. Für andere Controls istaber im Prinzip nur die Klasse des Controls auszutauschen.

Weiterhin geht das Beispiel davon aus, daß das Custom Control in einem Custom Containereingebaut wird. Andere Szenarios werden in der Dokumentation zu den Control Containernbeschrieben.

AblaufInstanz anlegen17. Definieren Sie eine Referenzvariable für den Custom Container, in dem das Custom Control

angezeigt werden soll (Siehe SAP Container [Extern])DATA container TYPE REF TO cl_gui_custom_container.

18. Definieren Sie eine Referenzvariable für das Picture Control:DATA picture TYPE REF TO cl_gui_picture.

19. Erzeugen Sie den Custom Container. Den Bereich 'CUSTOM' für den Custom Containermüssen Sie vorher im Screen Painter angelegt haben. Beim Erzeugen des Containers legenSie auch seine Lebensdauer [Extern] fest (siehe constructor [Extern]).

CREATE OBJECT containerEXPORTING container_name = 'CUSTOM'

lifetime = lifetime.

20. Erzeugen Sie das Picture Control. Für dieses können Sie auch eine Lebensdauer festlegen.Allerdings darf die Lebensdauer nicht größer sein als die seines Containers.

CREATE OBJECT pictureEXPORTING parent = container

lifetime = lifetime.

Ereignis anmelden21. Das Anmelden von Ereignissen gliedert sich in das Registrieren des Ereignisses am Control

Framework, das Definieren einer Behandlermethode und das Anmelden derBehandlermethode. Diese Schritte finden Sie in Registrieren und Verarbeiten vonEreignissen [Seite 101].

Arbeiten mit dem Control22. Diese Schritte sind control-spezifisch und werden hier nicht beschrieben.

Abbau der ControlsIn der Regel übernimmt das Lifetime Management [Extern] den Abbau der verwendetenControls. Wenn Sie die Controls aber in Ihrem Programm selbst abbauen wollen, führen Siefolgende Schritte aus:

Page 93: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Anlegen eines Controls am Beispiel des SAP Picture

April 2001 93

23. Bauen Sie das Custom Control mit der Methode free [Seite 490] am Frontend ab. Sofern Sieden Control Container nicht mehr benötigen, bauen Sie auch diesen ab:

CALL METHOD picture->freeEXCEPTIONS cntl_error = 1

cntl_system_error = 2.CALL METHOD container->free

EXCEPTIONS cntl_error = 1cntl_system_error = 2.

Beachten Sie die Reihenfolge, in der Sie die Controls am Frontend abbauen. WennSie einen Container abbauen, werden nämlich automatisch alle in dem Containereingebundenen Controls auch abgebaut. Der Versuch, ein bereits abgebautesControl erneut abzubauen, führt zu einem Fehler. Mit der Methode is_alive [Seite495] kann nachgeprüft werden, ob das Control schon abgebaut wurde.

24. Löschen Sie die Referenzvariablen des Custom Controls und des Control Containers:FREE PICTURE.FREE CONTAINER.

Page 94: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem List Tree

94 April 2001

Arbeiten mit dem List TreeIn diesem Abschnitt werden die für den List Tree spezifischen Funktionen aufgeführt.

VoraussetzungenDer in diesem Abschnitt beschriebene Prozeß stellt nur eine control-spezifische Ergänzung desallgemeinen Prozesses zur Control-Einbindung [Seite 92] dar und ist isoliert nicht lauffähig.

Ablauf

Die Code-Abschnitte sind Beispiele, die nicht immer den vollen Funktionsumfangausnutzen. Genauere Informationen finden Sie immer im Referenzteil dieserDokumentation.

Instanzieren1. Definieren Sie eine Referenzvariable für den List Tree:DATA list_tree TYPE REF TO cl_gui_list_tree.

2. Sofern Sie den Baum mit einer Überschrift anlegen wollen, müssen Sie einen Arbeitsbereichfür die Hierarchieüberschrift mit Bezug auf die Struktur treev_hhdr und für dieListüberschrift mit Bezug auf die Struktur treev_lhdr anlegen:

DATA hierarchy_header TYPE treev_hhdr.DATA list_header type treev_lhdr.

3. Füllen Sie den Arbeitsbereich für die Hierarchieüberschrift. Dabei können Sie die Breite(width und width_pix), den Text (heading), eine Ikone (t_image) und einen Tooltip(tooltip) einstellen. Zum späteren Verändern dieser Eigenschaften stehen Ihnen auchMethoden zur Verfügung.

hierarchy_header-heading = 'Überschrift'.hierarchy_header-width = 30.

4. Füllen Sie den Arbeitsbereich für den Listüberschrift. Dabei können Sie den Text (heading),eine Ikone (t_image) und einen Tooltip (tooltip) einstellen:

list_header-heading = 'Listüberschrift'.

5. Erzeugen Sie eine Instanz [Seite 193] des Tree Controls:CREATE OBJECT list_tree

EXPORTING parent = containernode_selection_mode = node_selection_modeitem_selection = item_selectionwith_headers = with_headershierarchy_header = hierarchy_headerlist_header = list_header

EXCEPTIONS lifetime_error = 1cntl_system_error = 2create_error = 3illegal_node_selection_mode = 4failed = 5.

Page 95: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem List Tree

April 2001 95

Ereignis anmelden6. Melden Sie Ereignisse [Seite 103] für den List Tree an. Folgende Ereignisse werden

unterstützt:

Ereignisnamen Bedeutung

NODE_DOUBLE_CLICK Doppelklick auf einem Knoten

EXPAND_NO_CHILDREN Knoten ohne Kinder wurde expandiert

SELECTION_CHANGED Der selektierte Knoten hat sich geändert

NODE_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs für einen Knoten

NODE_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

DEFAULT_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf der leerenFläche des Controls

DEFAULT_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

HEADER_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf derÜberschrift

HEADER_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde ausgewählt

ITEM_KEYPRESS Es wurde eine vordefinierte Taste gedrückt und einEintrag vorher selektiert

NODE_KEYPRESS Es wurde eine vordefinierte Taste gedrückt und einKnoten vorher selektiert

HEADER_CLICK Klick auf eine Überschrift

Sofern Sie beim Erzeugen der Instanz (Punkt 4) den Parameter item_selection = 'X'gesetzt haben, können Sie zusätzlich noch auf folgende Ereignisse reagieren:

Ereignisnamen Bedeutung

BUTTON_CLICK Ein Eintrag der Klasse BUTTON wurde geklickt

LINK_CLICK Ein Eintrag der Klasse LINK wurde geklickt

CHECKBOX_CHANGE Ein Eintrag der Klasse CHECKBOX wurde geklickt.

ITEM_DOUBLE_CLICK Doppelklick auf einem Eintrag

ITEM_CONTEXT_MENU_REQUEST Anforderung eines Kontextmenüs auf einem Eintrag

ITEM_CONTEXT_MENU_SELECT Eintrag im Kontextmenü wurde in Bezug auf einenEintrag ausgewählt

Arbeiten mit dem Control7. Fügen Sie Knoten in den Baum ein. Füllen Sie dazu zuerst eine Knotentabelle und eine

Eintragtabelle und übergeben Sie diese mit der Methode add_nodes_and_items [Seite 161]:CALL METHOD list_tree->add_nodes_and_items

EXPORTING node_table = node_tableitem_table = item_tableitem_table_structure_name = item_table_structure_name

Page 96: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem List Tree

96 April 2001

EXCEPTIONS failed = 1cntl_system_error = 2error_in_tables = 3dp_error = 4table_structure_name_not_found = 5.

Bearbeiten Sie vorhandene Knoten des Baums, oder verändern Sie die Eigenschaften desBaums (Siehe Eigenschaften des Controls ändern [Seite 97]).

Bestimmen Sie Eigenschaften des Baums und seiner Knoten (Siehe Eigenschaften des Controlsabfragen [Seite 100]).

Abbau der Controls8. Bauen Sie das Custom Control am Frontend ab. Sofern Sie den Control Container nicht

mehr benötigen, bauen Sie auch diesen ab:CALL METHOD list_tree->free.

Sofern Sie sorgfältig mit dem Lifetime Management [Extern] arbeiten, brauchen Siesich um das Abbauen des Controls am Frontend nicht selbst zu kümmern. Dies wirddann automatisch vom System vorgenommen.

9. Löschen Sie die Referenzvariablen des Simple Tree und eventuell des Control Conainers:FREE list_tree.

Page 97: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls ändern

April 2001 97

Eigenschaften des Controls ändernIn diesem Abschnitt werden alle Methoden zum Verändern des List Tree aufgelistet.

Einträge (mit Knoten) einfügen ändern und löschen

Methode Bedeutung

add_nodes_and_items [Seite161]

Eine Liste mit Einträgen (mit ihren Knoten) einfügen

delete_all_items_of_nodes[Seite 165]

Alle Einträge zu einer Liste von Knoten löschen

delete_items [Seite 166] Löschen einer Liste von Einträgen

update_nodes_and_items[Seite 178]

Einer Liste von Einträgen (und deren Knoten) werden verändert

Einzelnen Eintrag ändern

Methode Bedeutung

item_set_chosen [Seite 168] Ankreuzfeld im Baum ankreuzen

item_set_disabled [Seite 169] Eintrag im Baum inaktivieren

item_set_editable [Seite 170] Änderbarkeit von Ankreuzfeldern verändern

item_set_font [Seite 171] Font den Eintrags setzen

item_set_hidden [Seite 172] Eintrag unsichtbar setzen

item_set_style [Seite 173] Stil eines Eintrags festlegen

item_set_text [Seite 174] Text eines Eintrags verändern

item_set_t_image [Seite 175] Ikone eines Eintrags verändern

item_set_alignment [Seite 203] Ausrichtung des Eintrags festlegen

item_set_length [Seite 204] Anzuzeigende Länge des Eintrags festlegen

Einzelnen Eintrag selektieren

Methode Bedeutung

select_item [Seite 176] Selektion eines einzelnen Eintrags

Knoten expandieren

Methode Bedeutung

expand_node [Seite 131] Bestimmten Knoten expandieren

expand_nodes [Seite 132] Liste von Knoten expandieren

expand_root_nodes [Seite 133] Alle Wurzelknoten expandieren

Knoten selektieren

Page 98: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Eigenschaften des Controls ändern

98 April 2001

Methode Bedeutung

set_selected_node [Seite 155] Bestimmten Knoten selektieren

select_nodes [Seite 150] Liste von Knoten selektieren

unselect_all [Seite 157] Selektion für alle Knoten und Einträge rückgängig machen

unselect_nodes [Seite 158] Selektion für Liste von Knoten rückgängig machen

Knoten löschen

Methode Bedeutung

delete_all_nodes [Seite 127] Alle Knoten aus Baum löschen

delete_node [Seite 128] bestimmten Knoten aus Baum löschen

delete_nodes [Seite 129] Liste von Knoten aus Baum löschen

Eigenschaften eines Knotens ändern

Methode Bedeutung

node_set_disabled [Seite139]

Knoten inaktivieren

node_set_expander [Seite141]

Eigenschaft expander setzen

node_set_exp_image [Seite142]

Ikone für expandierten Knoten setzen

node_set_hidden [Seite 143] Knoten unsichtbar machen

node_set_is_folder [Seite144]

Eigenschaft is_folder setzen

node_set_no_branch [Seite145]

Hierarchielinie des Knoten setzen

node_set_n_image [Seite146]

Ikone des nicht expandierten Knotens setzen

node_set_style [Seite 147] Stil des Knotens setzen

node_set_last_hierarchy_item[Seite 195]

Legt für einen Knoten den letzten unter der Hierarchieüberschriftstehenden Eintrag fest

node_set_dragdropid [Seite140]

Drag&Drop-Verhalten eines Knotens setzen

Eigenschaften der Hierarchieüberschrift verändern

Methode Bedeutung

hierarchy_header_set_t_image [Seite 196] Ikone der Hierarchieüberschrift verändern

hierarchy_header_set_text [Seite 198] Text der Hierarchieüberschrift verändern

hierarchy_header_set_tooltip [Seite 205] Tooltip der Hierarchieüberschrift verändern

Page 99: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Eigenschaften des Controls ändern

April 2001 99

hierarchy_header_set_width [Seite 200] Breite der Hierarchieüberschrift verändern

hierarchy_header_adjust_width [Seite 202] Breite der Hierarchieüberschrift anpassen

Eigenschaften der Listüberschrift verändern

Methode Bedeutung

list_header_set_t_image [Seite 197] Ikone der Listüberschrift verändern

list_header_set_text [Seite 199] Text der Listüberschrift verändern

list_header_set_tooltip [Seite 206] Tooltip der Listüberschrift verändern

Konfiguration von Tastatur Ereignissen

Methode Bedeutung

add_key_stroke [Seite 123] Definition einer Taste der Tastatur, die ein Ereignis auslösensoll

remove_all_key_strokes [Seite148]

Löschen von Definitionen für Tasten

Sonstige Methoden

Methode Bedeutung

ensure_visible [Seite 130] Sichtbarkeit eines bestimmten Knotens gewährleisten

move_node [Seite 138] Knoten verschieben

scroll [Seite 149] Blättern im Baum

set_ctx_menu_select_event_appl [Seite 159]

Entscheidung, ob Ereignis nach Auswahl eines Eintrags auseinem Kontextmenü ein Applikations- oder Systemereignis seinsoll

set_has_3d_frame [Seite153]

3D Rahmen setzen

set_screen_update [Seite154]

Sichtbarkeit von Änderungen regeln

set_top_node [Seite 156] Obersten sichtbaren Knoten definieren

set_min_node_height [Seite177]

Angezeigte Mindesthöhe eines Knotens festlegen

set_default_drop [Seite 151] Setzen des Drag&Drop Verhaltens für ein Drop in die leereFläche eines SAP Trees

set_folder_show_exp_image[Seite 152]

Einstellen des Ordner-Symbols bei geöffnetem Ordner

Page 100: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Eigenschaften des Controls abfragen

100 April 2001

Eigenschaften des Controls abfragenIn diesem Abschnitt werden alle Methoden zum Auslesen von Eigenschaften des Column Treeaufgelistet.

Methoden zur Abfrage von Controleigenschaften

Methode Bedeutung

get_expanded_nodes [Seite 134] Liste aller expandierten Knoten

get_selected_node [Seite 135] Name des selektierten Knotens

get_selected_nodes [Seite 136] Liste aller selektierten Knoten

get_top_node [Seite 137] Name des obersten sichtbaren Knotens

get_selected_item [Seite 167] Name des selektierter Eintrags

hiearchy_header_get_width [Seite 201] Breite der Hierarchieüberschrift

Page 101: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Registrieren und Verarbeiten von Ereignissen

April 2001 101

Registrieren und Verarbeiten von EreignissenEinsatzmöglichkeitenÜber den Ereignismechanismus des Control Frameworks können Sie in Ihrem Programm inBehandlermethoden auf Ereignisse reagieren, die auf dem Control ausgelöst wurden (z.B.Doppelklick).

VoraussetzungenDer Ablauf wurde allgemeingültig für alle Custom Controls gehalten. Control-spezifischeInformationen finden Sie in der jeweiligen Dokumentation zu der Control-Verschalung.

Ablauf21. Es wird davon ausgegangen, daß Sie mit einem Custom Control mit der Verschalung

cl_gui_xyz arbeiten:

DATA my_control TYPE REF TO cl_gui_xyz.

Anmelden von Ereignissen beim Control Framework22. Definieren Sie eine interne Tabelle (Typ cntl_simple_events) und einen

dazugehörenden Arbeitsbereich (Typ cntl_simple_event).

DATA events TYPE cntl_simple_events.DATA wa_events TYPE cntl_simple_event.

23. Füllen Sie nun die Ereignistabelle mit den relevanten Ereignissen. Dazu benötigen Sie dieIdentifikation des Ereignisses (event_id). Diese Information finden Sie wiederum in derKlassenbibliothek in den Attributen der Klasse cl_gui_xyz. Weiterhin müssen Sie sichentscheiden, ob das Ereignis als Systemereignis (appl_event = ' ') oder alsApplikationsereignis (appl_event = 'X') definiert werden soll.

wa_events-eventid = event_id.wa_events-appl_event = appl_event.APPEND wa_events TO events.

24. Im nächsten Schritt muß die Ereignistabelle an das Frontend geschickt werden, damit dierelevanten Ereignisse vom Frontend an das Backend weitergeleitet werden.

CALL METHOD my_control->set_registered_eventsevents = events.

Um auf ein Ereignis Ihres Custom Controls eingehen zu können, müssen Sie nun noch eineBehandlermethode angeben. Die Behandlermethode kann eine Instanzmethode oder einestatische Methode sein:

Behandlung des Ereignisses als Instanzmethode25. Definieren Sie die (lokale) Klassendefinition für den Ereignisbehandler. Dabei legen Sie den

Namen der Ereignisbehandlermethode fest (Event_Handler). Als Information müssen Siesich in der Klassenbibliothek für die Klasse des Custom Controls cl_gui_xyz den Namendes Ereignisses (event_name) und die zu diesem Ereignis gehörenden Ereignisparameter(event_parameter) besorgen. Der Ereignisparameter sender wird bei jedem Ereignis zur

Page 102: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Registrieren und Verarbeiten von Ereignissen

102 April 2001

Verfügung gestellt. Der Parameter enthält die Referenz des Controls, das dieses Ereignisausgelöst hat.

CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.METHODS Event_Handler

FOR EVENT event_name OF cl_gui_xyzIMPORTING event_parameter

sender.ENDCLASS.

26. Melden Sie jetzt noch für die registrierten Ereignisse Behandlermethoden beim OO ControlFramework an.

DATA event_receiver TYPE REF TO lcl_event_receiver.CREATE OBJECT event_receiver.SET HANDLER event_receiver->Event_Handler

FOR my_control.

Registrieren als statische Methode27. Definieren Sie die (lokale) Klassendefinition für den Ereignisbehandler. Dabei legen Sie den

Namen der statischen Ereignisbehandlermethode fest (Event_Handler). Als Informationmüssen Sie sich in der Klassenbibliothek für die Klasse des Custom Controls cl_gui_xyzden Namen des Ereignisses (event_name) und die zu diesem Ereignis gehörendenEreignisparameter (event_parameter) besorgen.

CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.CLASS-METHODS Event_Handler

FOR EVENT event_name OF cl_gui_xyzIMPORTING event_parameter

sender.ENDCLASS.

28. Melden Sie jetzt noch für die registrierten Ereignisse Behandlermethoden beim OO ControlFramework an.

SET HANDLER lcl_event_receiver=>Event_HandlerFOR my_control.

Verarbeiten von Control-Ereignissen29. Wie Sie auf ein Ereignis reagieren wollen, legen Sie im Implementierungsteil der

Behandlermethode fest.CLASS lcl_event_receiver IMPLEMENTATION.METHOD Event_Handler.* Abarbeitung des EreignissesENDMETHOD.ENDCLASS.

30. Je nach Art des Ereignisses (System- oder Applikationsereignis) müssen Sie jetzt noch dieMethode CL_GUI_CFW=>DISPATCH aufrufen. Lesen Sie dazu Ereignisbehandlung [Extern].

Page 103: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse des Column Tree und des List Tree

April 2001 103

Ereignisse des Column Tree und des List TreeVerwendungDurch bestimmte Benutzerinteraktionen auf dem Column Tree bzw. dem List Tree werdenEreignisse ausgelöst:

Ereignis Ereignis-ID:CL_ITEM_TREE_CONTROL=>

Bedeutung

NODE_DOUBLE_CLICK

EVENTID_NODE_DOUBLE_CLICK Doppelklick auf einen Knoten

NODE_KEYPRESS EVENTID_NODE_KEYPRESS Taste wurde gedrückt, Knotenwar selektiert

EXPAND_NO_CHILDREN

EVENTID_EXPAND_NO_CHILDREN Knoten ohne Kinder wurdeexpandiert.

SELECTION_CHANGED

EVENTID_SELECTION_CHANGED Dieses Ereignis kann nurverwendet werden, wenn beimKonstruktor Knoten-Einfachselektion eingestelltwurde und ITEM_SELECTION= ' ' gesetzt wurde.

Der selektierte Knoten hat sichgeändert. Achtung: Wirddieses Event verwendet, sokann das EventNODE_DOUBLE_CLICKnicht verwendet werden!

NODE_CONTEXT_MENU_REQUEST

EVENTID_NODE_CONTEXT_MENU_REQ

Anforderung einesKontextmenüs auf einemKnoten.

NODE_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisNODE_CONTEXT_MENU_REQUESTregistriert wird.

Eintrag im Kontextmenü aufeinem Knoten wurdeausgewählt.

DEFAULT_CONTEXT_MENU_REQUEST

EVENTID_DEF_CONTEXT_MENU_REQ

Anforderung einesKontextmenüs auf demBaumhintergrund

DEFAULT_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisDEFAULT_CONTEXT_MENU_REQUESTregistriert wird.

Eintrag im Kontextmenü aufdem Baumhintergrund wurdeausgewählt.

HEADER_CONTEXT_MENU_REQUEST

EVENTID_HEADER_CONTEXT_MEN_REQ

Anforderung einesKontextmenüs auf einerÜberschrift

Page 104: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Column Tree und des List Tree

104 April 2001

HEADER_CONTEXT_MENU_SELECT

Dieses Ereignis wird automatischregistriert, wenn das EreignisEVENTID_HEADER_CONTEXT_MEN_REQ registriert wird.

Eintrag im Kontextmenü aufder Überschrift wurdeausgewählt

HEADER_CLICK EVENTID_HEADER_CLICK Klick auf eine Überschrift

ON_DROP_GET_FLAVOR

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Zum Drag&Drop-Vorgang gibtes mehere gemeinsameFlavors

ON_DRAG siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Quellobjekts(Einfachselektion)

ON_DRAG_MULTIPLE siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Quellobjekts(Mehrfachselektion)

ON_DROP siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Bestimmen des Kontextes imZielobjekt

ON_DROP_COMPLETE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Letzter Zeitpunkt vor Abschlußdes Drag&Drop-Vorgangs(Einfachselektion)

ON_DROP_COMPLETE_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Letzter Zeitpunkt vor Abschlußdes Drag&Drop-Vorgangs(Mehrfachselektion)

Sofern Sie beim Erzeugen der Instanz (Punkt 4) den Parameter item_selection = 'X'gesetzt haben, können Sie zusätzlich noch auf folgende Ereignisse reagieren:

Ereignis Ereignis ID:CL_ITEM_TREE_CONTROL=>

Bedeutung

ITEM_DOUBLE_CLICK EVENTID_ITEM_DOUBLE_CLICK Doppelklick auf einem Eintrag

ITEM_KEYPRESS EVENTID_ITEM_KEYPRESS Taste wurde gedrückt, Eintragwar selektiert

BUTTON_CLICK EVENTID_BUTTON_CLICK Klick auf einen Eintrag vomTyp BUTTON

LINK_CLICK EVENTID_LINK_CLICK Klick auf einen Eintrag vomTyp LINK

CHECKBOX_CHANGE EVENTID_CHECKBOX_CHANGE Klick auf einen Eintrag vomTyp CHECKBOX(Ankreuzfeld)

ITEM_CONTEXT_MENU_REQUEST

EVENTID_ITEM_CONTEXT_MENU_REQUEST

Anforderung einesKontextmenüs auf einemEintrag

ITEM_CONTEXT_MENU_SELECT

Dieses Ereignis wird autmatischregistriert, wenn das EreignisITEM_CONTEXT_MENU_REQUESTregistriert wurde

Eintrag im Kontextmenü wurdeausgewählt

Die Ereignisse liefern eventuell Ereignisparameter mit:

Page 105: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse des Column Tree und des List Tree

April 2001 105

Ereignis Parameter Bedeutung

NODE_DOUBLE_CLICK

NODE_KEY Knoten, auf dem einDoppelklick ausgeführt wurde

NODE_KEY Knoten, auf dem die Tastegedrückt wurde

NODE_KEYPRESS

KEY Taste, die gedrückt wurde

EXPAND_NO_CHILDREN

NODE_KEY Knoten, der expandiert wurde,ohne daß Unterknotenvorhanden sind

SELECTION_CHANGED

NODE_KEY Neu selektierter Knoten

NODE_KEY Knoten, auf dem dasKontextmenü angefordertwurde

NODE_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

NODE_KEY Knoten, auf dem ein Eintragdes Kontextmenüs ausgewähltwurde

NODE_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

HEADER_CLICK HEADER_NAME Name der Überschrift, auf diegeklickt wurde

HEADER_NAME Überschrift, auf der dasKontextmenü angefordertwurde

HEADER_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

HEADER_NAME Überschrift, auf der dasKontextmenü ausgewähltwurde

HEADER_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

NODE_KEY Name des KnotensCHECKBOX_CHANGE ITEM_NAME Name des Eintrags, auf den

geklickt wurde

Page 106: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse des Column Tree und des List Tree

106 April 2001

CHECKED 'X': Ankreuzfeld angekreuzt' ': Ankreuzfeld nichtangekreuzt

NODE_KEY Name des KnotensITEM_DOUBLE_CLICK ITEM_NAME Name des Eintrags, auf den

geklickt wurde

NODE_KEY Name des Knotens

ITEM_NAME Name des Eintrags, für dendas Kontextmenü angefordertwurde

ITEM_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

NODE_KEY Name des Knotens

ITEM_NAME Name des Eintrags, für dendas Kontextmenü angefordertwurde

ITEM_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

NODE_KEY Name des Knotens

ITEM_NAME Name des Eintrags, in demeine Taste gedrückt wurde

ITEM_KEYPRESS

KEY Taste, die gedrückt wurde

DEFAULT_CONTEXT_MENU_REQUEST

MENU Menü, das angezeigt werdensoll (muß im Ereignisbehandlergefüllt werden)

DEFAULT_CONTEXT_MENU_SELECT

FCODE Funktionscode desausgewählten Eintrags desKontextmenüs

ON_DROP_GET_FLAVOR

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DRAG siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DRAG_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

ON_DROP_COMPLETE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Page 107: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse des Column Tree und des List Tree

April 2001 107

ON_DROP_COMPLETE_MULTIPLE

siehe Ereignisse bei Drag&Drop imSAP Tree [Seite 114]

Wenn Sie Ereignisse benutzen wollen (z.B. NODE_KEYPRESS), die aufgrund desDrückens von Tasten der Tastatur ausgelöst werden sollen, müssen Sie sie mit derMethode add_key_stroke [Seite 123] definieren. Mit der Methoderemove_all_key_strokes [Seite 148] können Sie diese Definition wieder rückgängigmachen.

IntegrationWenn Sie auf diese Ereignisse in Ihrem ABAP-Programm reagieren müssen, müssen Sie sichauf diese Ereignisse registrieren. Dazu verwenden Sie die Methode set_registered_events [Seite493]. Ereignisse, auf die Sie sich nicht registriert werden, werden schon am Frontend ausgefiltertund gelangen nicht zum Backend. Siehe Ereignisbehandlung [Extern].

AktivitätenLesen Sie den allgemeinen Prozeß [Seite 92] für das Arbeiten mit Ereignissen des ControlFrameworks.

Page 108: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Drag&Drop

108 April 2001

Drag&DropVerwendungMit Drag&Drop kann der Anwender Objekte aus einem Bereich eines Custom Controls (Quelle)markieren und auf einen anderen Bereich eines Custom Controls (Ziel) fallen lassen. Je nachObjekt wird dann im zweiten Bereich eine Aktion ausgeführt. Quelle und Ziel können dabei dasgleiche Control oder zwei unterschiedliche Controls sein.

VoraussetzungenDamit Controls Drag&Drop-fähig sind, muß die Control-Verschalung zusätzliche Drag&Drop-Ereignisse anbieten. Das Anwendungsprogramm muß für diese Ereignisse Behandlerroutinenimplementieren. Die Registrierung auf die Ereignisse erfolgt automatisch über die jeweiligeControl-Verschalung.

FunktionsumfangFür jedes beteiligte Custom Control wird das Drag&Drop-Verhalten festgelegt. Je nach Controlwird das Verhalten auf alle Elemente des Controls bezogen (z.B. Editor), oder man kann fürjedes Teilobjekt ein eigenes Verhalten definieren (z.B. Tree). Jedes Verhalten besteht aus eineroder mehreren Beschreibungen.

Die Beschreibung hat folgende Attribute:

• DragSrc: Objekt ist Quelle eines Drag&Drop-Vorgangs

• DropTarget: Objekt ist Ziel eines Drag&Drop-Vorgangs

• Flavor: Der Flavor beschreibt den Typ einer Drag&Drop-Beschreibung. In einer Drag&Drop-Situation können Objekte nur in andere fallengelassen werden, wenn sie mindestens einegemeinsame Beschreibung besitzen.

• Effect: Beschreibung, ob die Daten beim Drag&Drop-Vorgang kopiert und/oder verschobenwerden können

• Effect_In_Ctrl: Mit welchem Drop-Effekt können Daten innerhalb des gleichen Controlsverschoben oder kopiert werden.

Sobald ein Drag-Ereignis ausgelöst wird, muß die Applikation in der entsprechendenBehandlermethode feststellen, welches Objekt von dem Ereignis betroffen ist.

Weiterhin muß für das Drop-Ereignis implementiert werden, welche Aktionen durchgeführtwerden sollen. Die Aktionen sind dabei in der Regel abhängig von dem Objekt, das in dasControl fallengelassen wurde.

Wurden einem Objekt mehrere Flavors zugeordnet, muß zu einem speziellen Ereignis festgelegtwerden, welcher Flavor benutzt werden soll.

Nachdem das Drop-Ereignis abgeschlossen ist, können in einem zusätzlichen Ereignis weitereAktionen durchgeführt werden. Dieses Ereignis bietet sich insbesondere beim Verschieben desQuellobjekts an, um dieses aus der Quelle zu löschen.

Page 109: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Drag&Drop

April 2001 109

AktivitätenWenn die Drag&Drop-Funktionalität benutzt wird, sollte auf jeden Fall auch eine UNDO-Funktionbereitgestellt werden, sofern die Drag&Drop-Funktion zu einem Verschieben des Objekts führt.Diese muß von der Anwendung implementiert werden.

Page 110: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ablauf einer Drag&Drop Operation

110 April 2001

Ablauf einer Drag&Drop OperationVoraussetzungenIm folgenden wird aufgezeigt, wie die Drag&Drop Operation abläuft. Dabei wird auf die Rolle desApplikationsservers und des Frontends eingegangen. Aus diesem Ablauf leiten sich dann dieeinzelnen Schritte ab, die in einem Anwendungsprogramm durchgeführt werden müssen, damitDrag&Drop genutzt werden kann.

AblaufApplikationsserver29. Sie erzeugen die Custom Controls [Seite 92].

30. Sie registrieren sich auf die Drag&Drop-Ereignisse [Seite 112].

31. Sie definieren das Drag&Drop-Verhalten für die einzelnen Custom Controls bzw. für derenTeilobjekte. Dazu erzeugen Sie eines Instanz [Seite 504] der Klasse CL_DRAGDROP [Seite503]. Dieser Instanz weisen Sie einen oder mehrere Flavors zu [Seite 505], die dasDrag&Drop-Verhalten des entsprechenden Custom Controls beschreiben. Sie können dieseFlavors während des Programmablaufs auch noch verändern [Seite 512], löschen [Seite514], abfragen [Seite 509] oder auch die gesamte Instanz initialisieren [Seite 507] oderzerstören [Seite 508].

32. Die Zuweisung der Flavors an das Custom Control erfolgt über control-spezifischeMethoden. Lesen Sie dazu die jeweilige Control-Dokumentation.

FrontendDie nachfolgenden Schritte führt das System automatisch durch. Sie dienen nur zum Verständnisdes Drag&Drop-Vorgangs.

33. Nachdem der Benutzer mit der linken Maustaste ein Objekt ausgewählt hat, startet derDrag&Drop-Service.

34. Der Drag&Drop-Service überprüft, ob für das Objekt ein Drag&Drop-Verhalten definiertwurde und ob darin die Fähigkeit des Objekts für Drag definiert wurde (Attribut DragSource).

35. Wurde das Attribut DragSource entsprechend gesetzt, wird das Drag&Drop gestartet. DerMauszeiger verändert sich dann automatisch.

36. Während der Benutzer die linke Maustaste gedrückt hält, wird ständig unter dem Mauszeigernachgefragt, ob sich dort ein Objekt in einem Custom Control befindet, das Drop-fähig ist(Attribut DropTarget), und ob der Flavor dieses Objekts mit dem Flavor der Quelleübereinstimmt. Ist dies der Fall, wird dem Benutzer dies über eine Veränderung desMauszeigers signalisiert.

37. Läßt der Benutzer nun das Objekt fallen, wird dies über ein Ereignis an denApplikationsserver gemeldet.

Für das Frontend ist damit die Drag&Drop Operation abgeschlossen. Bisher wurdennoch keinerlei Veränderungen an den Inhalten der Custom Controls vorgenommen.

Page 111: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ablauf einer Drag&Drop Operation

April 2001 111

Applikationsserver38. Der Drag&Drop-Service des Applikationsservers erzeugt eine Instanz der Klasse

CL_DRAGDROPOBJECT [Seite 515]. Diese Instanz (z.B. drag_drop_object) steht Ihnenin allen Ereignissen des Drag&Drop-Vorgangs als Ereignisparameter zur Verfügung unddient zum Übermitteln des Kontexts zwischen den Ereignissen.

39. Der Drag&Drop-Service prüft nach, ob das Drag-Objekt und das Drop-Objekt mehrereFlavors gemeinsam besitzen. Ist dies der Fall, wird das Ereignis ONGETFLAVOR ausgelöst. Inder dazugehörigen Behandlerroutine muß nun die Applikation entscheiden, welcher Flavorverwendet werden soll. Dazu steht die Methode set_flavor [Seite 516] zur Verfügung.

40. Nun wird das Drag&Drop-Ereignis ONDRAG ausgelöst. Über Ereignisparameter erhalten Siedie relevanten Informationen, welches Objekt der Benutzer gezogen hat. Innerhalb derBehandlerroutine müssen Sie jetzt die in 9. angelegte Instanz des Drag&Drop-Datenobjektsmit dem Kontext (Informationen über das Quellobjekt) versorgen:drag_drop_object->object = mydragobject.

41. Als nächstes wird das Ereignis ONDROP ausgelöst. Aufgabe dieser Methode ist dasVerarbeiten des Drag&Drop-Datenobjekts. Hier müssen Sie implementieren, welcheÄnderungen in dem Zielobjekt aufgrund des Drag&Drop-Vorgangs vorgenommen werdensollen.

42. Das letzte Ereignis des Drag&Drop-Vorgangs ist ONDROPCOMPLETE. Hier sollte eventuelleine Nachbearbeitung des Drag&Drop-Datenobjekts erfolgen. Besonders für den Fall einerVerschiebeoperation sollte zu diesem Zeitpunkt das Quellobjekt aus dem DragSourceControl und den entsprechenden Datenstrukturen entfernt werden.

In Beispiel für Drag&Drop-Programmierung [Seite 117] finden Sie ein Beispiel, daseinen Drag&Drop-Vorgang zwischen einem SAP Tree und einem SAP TextEditbeschreibt.

Page 112: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisse bei Drag&Drop

112 April 2001

Ereignisse bei Drag&DropIm folgenden Abschnitt werden nur die allgemeingültigen Eigenschaften der Ereignisse beiDrag&Drop beschrieben. Diese können von den einzelnen Control-Verschalungen angereichertwerden. Daher sollten Sie auf jeden Fall auch in der Dokumentation zur jeweiligen Control-Verschalung die Besonderheiten des Controls nachlesen.

VerwendungIm Umfeld des Drag&Drop gibt es vier Standardereignisse, bei denen Sie die Kontrolle in IhremApplikationsprogramm bekommen können. In den Behandlerroutinen zu diesen Ereignissenimplementieren Sie, welche Aktionen bei einem Drag&Drop-Vorgang durchgeführt werden.

Bestimmte Control-Verschalungen können zusätzliche Drag&Drop-Ereignisseanbieten. Hinweise dazu finden Sie in der jeweiligen Dokumentation.

VoraussetzungenUm auf die Ereignisse reagieren zu können, müssen Sie sich auf sie registrieren. Im Gegensatzzu der normalen Ereignisbehandlung werden aber die Ereignisse nicht mit der Methodeset_registered_events [Seite 493] am Control Framework angemeldet. Die Registrierung erfolgtautomatisch über die Verschalung des eingesetzten Custom Controls.

Sie müssen aber weiterhin Behandlermethoden für die Ereignisse angeben:DATA tree TYPE REF TO cl_gui_simple_tree.SET HANDLER dragdrop=>on_drag FOR tree.

Die Ereignisse werden immer als Systemereignisse angemeldet.

FunktionsumfangDas Control Framework reicht beim Drag&Drop erst zum Drop-Zeitpunkt ein Ereignis an denApplikationsserver weiter. Dieses wird dann am Applikationsserver, wie in Ablauf einerDrag&Drop-Operation [Seite 110] beschrieben, innerhalb eines Drag&Drop-Vorgangs in maximalvier Standardereignisse auseinandergesteuert. Alle Ereignisse haben ein Drag&Drop-Datenobjekt als Ereignisparameter. Über diesen Parameter müssen Sie den Kontext desDrag&Drop-Vorgangs verwalten. Weiterhin übergibt Ihnen die jeweilige Control-Verschalungweitere Informationen zu dem Drag&Drop-Kontext. Lesen Sie dazu die Dokumentation derControl-Verschalung.

• ONGETFLAVOR: Dieses Ereignis wird nur dann ausgelöst, wenn das Quellobjekt und dasZielobjekt über mehrere gemeinsame Flavors verfügen. Sie müssen dann in derBehandlermethode einen der gemeinsamen Flavors auswählen. Wenden Sie dazu dieMethode set_flavor [Seite 516] auf das Drag&Drop-Datenobjekt an.Das Ereignis wird von dem Zielobjekt des Drag&Drop-Vorgangs ausgelöst.

• ONDRAG: Dieses Ereignis wird immer dann ausgelöst, wenn der Drag&Drop-Vorgang amFrontend beendet ist. In diesem Ereignis müssen Sie den Kontext des Quellobjektsbestimmen. Diesen Kontext übergeben Sie dann an die als Ereignisparameter übergebeneInstanz der Klasse CL_DRAGDROPOBJECT.Das Ereignis wird von dem Quellobjekt des Drag&Drop-Vorgangs ausgelöst.

Page 113: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Ereignisse bei Drag&Drop

April 2001 113

• ONDROP: Zu diesem Ereignis definieren Sie die Aktionen, die im Zielobjekt durchgeführtwerden sollen. Dabei nutzen Sie den Ereignisparameter für den Kontext, den Sie zumEreignis ONDRAG gefüllt haben. Bei diesem Ereignis ist folgendes zu beachten:

− Innerhalb des ONDROP-Ereignisses muß ein dynamischer TypeCast durchgeführtwerden. Die mögliche Ausnahme des TypeCast muß auf jeden Fall abgefangen werden.Falls ein nicht passendes Objekt zugewiesen werden sollte, muß in derAusnahmebehandlung die Drag&Drop-Verarbeitung mit der Methode abort [Seite 517]abgebrochen werden.

− Die verwendeten Flavors sollten so gewählt werden, daß eine Zuordnung desDrag&Drop-Objekts zu dem richtigen TypeCast möglich ist.

Das Ereignis wird von dem Zielobjekt des Drag&Drop-Vorgangs ausgelöst.

• ONDROPCOMPLETE: Sofern Sie zum Abschluß des Drag&Drop-Vorgangs noch weitereAktionen durchführen wollen, können Sie dies in diesem Ereignis realisieren. Dies ist z.B. imFalle einer Verschiebeoperation sinnvoll.Das Ereignis wird von dem Quellobjekt des Drag&Drop-Vorgangs ausgelöst.

Page 114: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Definition von Ereignissen bei Drag&Drop im SAP Tree

114 April 2001

Definition von Ereignissen bei Drag&Drop im SAP TreeIn diesem Abschnitt werden die Besonderheiten des SAP Tree bei Drag&Drop-Operationenvorgestellt.

VoraussetzungenUm auf die Ereignisse reagieren zu können, müssen Sie sich auf sie registrieren. Im Gegensatzzu der normalen Ereignisbehandlung werden aber die Ereignisse nicht mit der Methodeset_registered_events [Seite 493] am Control Framework angemeldet. Die Registrierung erfolgtautomatisch über die Verschalung des SAP Tree.

Sie müssen aber weiterhin Behandlermethoden für die Ereignisse angeben:

Die Ereignisse werden immer als Systemereignisse angemeldet.

Weiterhin müssen Sie beim Aufbau der Knotentabelle festlegen, welcher Knoten Drag&Drop-fähig ist und welche Flavors der Knoten haben soll. Dazu versorgen Sie das Feld DRAGDROPIDder Knotentabelle mit dem entsprechenden Drag&Drop-Verhalten (siehe Punkt 3 im KapitelAblauf einer Drag&Drop-Operation [Seite 110]). Dies erfordert folgende Schritte (siehe auchBeispiel für Drag&Drop-Programmierung [Seite 117]):

7. Definieren Sie das Drag&Drop-Verhalten:DATA behaviour_left TYPE REF TO cl_dragdrop.

CREATE OBJECT behaviour_left.CALL METHOD behaviour_left->add

EXPORTINGflavor = 'Tree_move_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

8. Besorgen Sie sich mit der Methode get_handle [Seite 511] ein Handle auf das Drag&Drop-Verhalten:CALL METHOD behaviour_left->get_handle

IMPORTING handle = handle_tree.

9. Weisen Sie dieses Handle dem Feld DRAGDROPID des Eintrags in der Knotentabelle zu:

node-dragdropid = handle_tree. " handle of behaviour

Einträge vom Typ tree->item_class_checkbox (Ankreuzfeld), tree->item_class_button (Drucktaste) und tree->item_class_link (Link)können kein Quellobjekt eines Drag&Drop-Vorgangs sein.

FunktionsumfangIn der folgenden Tabelle sind die für das Drag&Drop relevanten Ereignisse aufgelistet:

Ereignis Bedeutung

ON_DROP_GET_FLAVOR Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONGETFLAVOR

Page 115: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Definition von Ereignissen bei Drag&Drop im SAP Tree

April 2001 115

ON_DRAG Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDRAG

Für Bäume ohne Mehrfachselektion(NODE_SELECTION_MODE = TREE->NODE_SEL_MODE_SINGLE)

ON_DRAG_MULTIPLE Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDRAG

Für Bäume mit Mehrfachselektion (NODE_SELECTION_MODE= TREE->NODE_SEL_MODE_MULTIPLE)

ON_DROP Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROP

ON_DROP_COMPLETE Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROPCOMPLETE

Für Bäume ohne Mehrfachselektion(NODE_SELECTION_MODE = TREE->NODE_SEL_MODE_SINGLE)

ON_DROP_COMPLETE_MULTIPLE

Siehe Ereignisse bei Drag&Drop [Seite 112] unter EreignisONDROPCOMPLETE

Für Bäume mit Mehrfachselektion (NODE_SELECTION_MODE= TREE->NODE_SEL_MODE_MULTIPLE)

Die einzelnen Ereignisse besitzen folgende Ereignisparameter:

Ereignis Ereignisparameter Bedeutung

NODE_KEY Technischer Name des Knotens, aufden das Quellobjekt gezogen wurde

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

ON_DROP_GET_FLAVOR

FLAVORS Gemeinsame Flavors des Drag&Drop-Vorgangs

NODE_KEY Technischer Name des Knotens, derals Quellobjekt ausgewählt wurde

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DRAG

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY_TABLE Tabelle der Knoten, die alsQuellobjekte ausgewählt wurden

ON_DRAG_MULTIPLE

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

Page 116: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Definition von Ereignissen bei Drag&Drop im SAP Tree

116 April 2001

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY Technischer Name des Knotens, aufden das Quellobjekt gezogen wurde

ON_DROP

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY Technischer Name des Knotens, derals Quellobjekt ausgewählt wurde

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DROP_COMPLETE

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

NODE_KEY_TABLE Tabelle der Knoten, die alsQuellobjekte ausgewählt wurden

ITEM_NAME

(nicht bei SimpleTree)

Technischer Name des Eintrags, derals Quellobjekt ausgewählt wurde

ON_DROP_COMPLETE_MULTIPLE

DRAG_DROP_OBJECT

Datenobjekt zur Beschreibung desQuellobjekts

Page 117: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 117

Beispiel für Drag&Drop-ProgrammierungDas Beispielprogramm geht von einem SAP Simple Tree Control und einem SAP TextEditControl aus. Von dem Tree Control soll eine Verschiebefunktion von Texten in das TextEditControl möglich sein.Sie finden das Beispiel unter dem Namen RSDEMO_DRAG_DROP_EDIT_TREE.

*&-------------------------------------------------------------------**& Report RSDEMO_DRAG_DROP_EDIT_TREE *&*--------------------------------------------------------------------*REPORT rsdemo_drag_drop_edit_tree .DATA ok_code TYPE sy-ucomm.DATA node_itab LIKE node_str OCCURS 0.DATA node LIKE node_str.DATA container TYPE REF TO cl_gui_custom_container.DATA splitter TYPE REF TO cl_gui_easy_splitter_container.DATA right TYPE REF TO cl_gui_container.DATA left TYPE REF TO cl_gui_container.DATA editor TYPE REF TO cl_gui_textedit.DATA tree TYPE REF TO cl_gui_simple_tree.DATA behaviour_left TYPE REF TO cl_dragdrop.DATA behaviour_right TYPE REF TO cl_dragdrop.DATA handle_tree TYPE i.*--------------------------------------------------------------------** CLASS lcl_treeobject DEFINITION* container class for drag object*--------------------------------------------------------------------*CLASS lcl_drag_object DEFINITION.

PUBLIC SECTION.DATA text TYPE mtreesnode-text.

ENDCLASS.*---------------------------------------------------------------------** CLASS dragdrop_receiver DEFINITION* event handler class for drag&drop events*---------------------------------------------------------------------*CLASS lcl_dragdrop_receiver DEFINITION.

PUBLIC SECTION.METHODS:

flavor_select FOR EVENT on_get_flavor OF cl_gui_texteditIMPORTING index line pos flavors dragdrop_object,

left_drag FOR EVENT on_drag OF cl_gui_simple_treeIMPORTING node_key drag_drop_object,

right_drop FOR EVENT ON_DROP OF cl_gui_texteditIMPORTING index line pos dragdrop_object,

drop_complete FOR EVENT on_drop_complete OF cl_gui_simple_treeIMPORTING node_key drag_drop_object.

ENDCLASS.START-OF-SELECTION.

CALL SCREEN 100.*&-------------------------------------------------------------------**& Module START OUTPUT*&-------------------------------------------------------------------*

Page 118: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

118 April 2001

MODULE start OUTPUT.SET PF-STATUS 'BASE'.IF container is initial.

CREATE OBJECT containerEXPORTING container_name = 'CONTAINER'.

CREATE OBJECT splitterEXPORTING parent = container

orientation = 1.left = splitter->top_left_container.right = splitter->bottom_right_container.CREATE OBJECT editor

EXPORTING parent = right.CREATE OBJECT tree

EXPORTING parent = leftnode_selection_mode = tree->node_sel_mode_single.

* Definition of drag drop behaviour for treeCREATE OBJECT behaviour_left.CALL METHOD behaviour_left->add

EXPORTINGflavor = 'Tree_move_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_left->addEXPORTING

flavor = 'Tree_copy_to_Edit'dragsrc = 'X'droptarget = ' 'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_left->get_handleIMPORTING handle = handle_tree.

* Drag Drop behaviour of tree control nodes are defined in the node* structure

PERFORM fill_tree.CALL METHOD tree->add_nodes

EXPORTING node_table = node_itabtable_structure_name = 'NODE_STR'.

* Definition of drag drop behaviour for treeCREATE OBJECT behaviour_right.

CALL METHOD behaviour_right->addEXPORTING

flavor = 'Tree_move_to_Edit'dragsrc = ' 'droptarget = 'X'effect = cl_dragdrop=>copy.

CALL METHOD behaviour_right->addEXPORTING

flavor = 'Tree_copy_to_Edit'dragsrc = ' 'droptarget = 'X'effect = cl_dragdrop=>copy.

CALL METHOD editor->set_dragdropEXPORTING dragdrop = behaviour_right.

Page 119: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 119

* registration of drag and drop eventsSET HANDLER dragdrop=>flavor_select FOR editor.SET HANDLER dragdrop=>left_drag FOR tree.SET HANDLER dragdrop=>right_drop FOR editor.SET HANDLER dragdrop=>drop_complete for TREE.

ENDIF.ENDMODULE. " START OUTPUT*&-------------------------------------------------------------------**& Module EXIT INPUT*&-------------------------------------------------------------------*MODULE exit INPUT.

LEAVE PROGRAM.ENDMODULE. " EXIT INPUT*&-------------------------------------------------------------------**& Form fill_tree*&-------------------------------------------------------------------*FORM fill_tree.

DATA: node LIKE mtreesnode.CLEAR node.node-node_key = 'Root'.node-isfolder = 'X'.node-text = 'Text'.node-dragdropid = ' '.APPEND node TO node_itab.CLEAR node.node-node_key = 'Child1'.node-relatkey = 'Root'.node-relatship = cl_gui_simple_tree=>relat_last_child.node-text = 'DragDrop Text 1'.node-dragdropid = handle_tree. " handle of behaviourAPPEND node TO node_itab.CLEAR node.node-node_key = 'Child2'.node-relatkey = 'Root'.node-relatship = cl_gui_simple_tree=>relat_last_child.node-text = 'DragDrop Text 2'.node-dragdropid = handle_tree. " handle of behaviourAPPEND node TO node_itab.

ENDFORM. " fill_tree*&-------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&-------------------------------------------------------------------*MODULE user_command_0100 INPUT.

CALL METHOD cl_gui_cfw=>dispatch.ENDMODULE. " USER_COMMAND_0100 INPUT*--------------------------------------------------------------------** CLASS DRAGDROP_RECEIVER IMPLEMENTATION*--------------------------------------------------------------------*CLASS lcl_dragdrop_receiver IMPLEMENTATION.

METHOD flavor_select. " set the right flavorIF line > 5.

SEARCH flavors FOR 'Tree_move_to_Edit'.IF sy-subrc = 0.

Page 120: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Beispiel für Drag&Drop-Programmierung

120 April 2001

CALL METHOD dragDROP_OBJECT->SET_FLAVOREXPORTING newflavor = 'Tree_move_to_Edit'.

ELSE.CALL METHOD dragdrop_object->abort.

ENDIF.ELSE.

SEARCH flavors FOR 'Tree_copy_to_Edit'.IF sy-subrc = 0.

CALL METHOD dragdrop_object->set_flavorEXPORTING newflavor = 'Tree_copy_to_Edit'.

ELSE.CALL METHOD dragdrop_object->abort.

ENDIF.ENDIF.

ENDMETHOD.METHOD left_drag. " define drag object

DATA drag_object TYPE REF TO lcl_drag_object.READ TABLE node_itab WITH KEY node_key = node_key

INTO node.CREATE OBJECT drag_object.drag_object->text = node-text.drag_drop_object->object = drag_object.

ENDMETHOD.METHOD right_drop. " action in the drop object

DATA textline(256).DATA text_table LIKE STANDARD TABLE OF textline.DATA drag_object TYPE REF TO lcl_drag_object.CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.

drag_object ?= dragdrop_object->object.ENDCATCH.IF sy-subrc = 1.

" data object has unexpected class" => cancel Drag & Drop operation

CALL METHOD dragdrop_object->abort.EXIT.

ENDIF.CALL METHOD editor->get_text_as_stream

IMPORTING text = text_table.* Synchronize Automation Queue after Get Methods

CALL METHOD cl_gui_cfw=>flush.textline = drag_object->text.

* Insert text in internal tableINSERT textline INTO text_table INDEX 1.

* Send modified table to frontendCALL METHOD editor->set_text_as_stream

EXPORTING text = text_tableEXCEPTIONS error_dp = 1

error_dp_create = 2.ENDMETHOD.METHOD drop_complete. " do something after drop

IF drag_drop_object->flavor = 'Tree_move_to_Edit'.CALL METHOD tree->delete_node

EXPORTING node_key = node_key.

Page 121: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispiel für Drag&Drop-Programmierung

April 2001 121

delete node_itab where node_key = node_key.ENDIF.ENDMETHOD.

ENDCLASS.

Page 122: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_TREE_CONTROL_BASE

122 April 2001

Methoden der Klasse CL_TREE_CONTROL_BASEDie Methoden dieser Klasse stehen allen SAP-Tree-Klassen zur Verfügung.

Page 123: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_key_stroke

April 2001 123

add_key_strokeMit dieser Methode definieren Sie, welche Taste der Tastatur ein Ereignis auslösen soll. DamitSie auf dieses Ereignis reagieren können, müssen Sie dann noch das entsprechende Ereignis(NODE_KEYPRESS und / oder ITEM_KEYPRESS) registrieren.

CALL METHOD tree->add_key_strokeEXPORTING key = keyEXCEPTIONS failed = 1

illegal_key = 2cntl_system_error = 3.

Parameter Bedeutung

key Taste, die ein Ereignis auslösen soll:

CL_TREE_CONTROL_BASE=>KEY_F1: Funktionstaste F1

CL_TREE_CONTROL_BASE=>KEY_F4: Funktionstaste F4

CL_TREE_CONTROL_BASE=>KEY_INSERT: Taste Einfügen

CL_TREE_CONTROL_BASE=>KEY_DELETE: Taste Entfernen

Page 124: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

collapse_all_nodes

124 April 2001

collapse_all_nodesMit diesem Methodenaufruf können Sie den angezeigten Baum programmgesteuertkomprimieren. Es werden dann nur noch die Wurzelknoten angezeigt.CALL METHOD tree->collapse_all_nodes

EXCEPTIONS failed = 1cntl_system_error = 2.

Page 125: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

collapse_nodes

April 2001 125

collapse_nodesMit diesem Methodenaufruf werden alle in der Knotentabelle angegebenen Ordner geschlossen.CALL METHOD tree->collapse_nodes

EXPORTING node_key_table = node_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2error_in_node_key_table = 3dp_error = 4.

Parameter Bedeutung

node_key_table Knotentabelle der Ordner, die geschlossen werden sollen.

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Page 126: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

collapse_subtree

126 April 2001

collapse_subtreeDurch Aufruf dieser Methode wird der angebene Ordner geschlossen.CALL METHOD tree->collapse_subtree

EXPORTING node_key = node_keyEXCEPTIONS failed = 1

node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Ordner, der geschlossen werden sollen.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

Page 127: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_all_nodes

April 2001 127

delete_all_nodesDurch diesen Methodenaufruf werden alle Knoten aus dem aktuellen Baum gelöscht.CALL METHOD tree->delete_all_nodes

EXCEPTIONS failed = 1cntl_system_error = 2.

Page 128: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

delete_node

128 April 2001

delete_nodeDieser Methodenaufruf löscht den Knoten node_key aus dem Baum. Wenn der Knoten einOrdner ist, werden auch alle Kinder gelöscht.CALL METHOD tree->delete_node

EXPORTING node_key = node_keyEXCEPTIONS failed = 1

node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, der gelöscht werden sollen.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

Page 129: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_nodes

April 2001 129

delete_nodesEs werden alle in der Knotentabelle node_key_table angegebenen Knoten gelöscht.

CALL METHOD tree->delete_nodesEXPORTING node_key_table = node_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2error_in_node_key_table = 3dp_error = 4.

Parameter Bedeutung

node_key_table Knotentabelle der Knoten, die gelöscht werden sollen.

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Beim Aufbau der Knotentabelle ist darauf zu achten, daß Kinder eines Knotens, dieebenfalls explizit gelöscht werden sollen, vor dem Vaterknoten in die Tabelleeingefügt werden müssen. Es reicht aber auch aus, nur den Vaterknoten zu löschen.Dadurch werden nämlich alle Kinder des Knotens automatisch gelöscht.

Page 130: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

ensure_visible

130 April 2001

ensure_visibleMit dieser Methode stellen Sie sicher, daß ein bestimmter Knoten sichtbar ist.CALL METHOD tree->ensure_visible

EXPORTING node_key = node_keyEXCEPTIONS failed = 1

node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, der auf jeden Fall sichtbar sein soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

Page 131: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

expand_node

April 2001 131

expand_nodeDieser Methodenaufruf expandiert einen bestimmten Knoten.CALL METHOD tree->expand_node

EXPORTING node_key = node_keylevel_count = level_countexpand_subtree = expand_subtree

EXCEPTIONS failed = 1illegal_level_count = 2cntl_system_error = 3node_not_found = 4cannot_expand_leaf = 5.

Parameter Bedeutung

node_key Knoten, der expandiert werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

level_count Angabe der Tiefe, bis zu der expandiert werden soll.

0 bedeutet, daß nur der aktuelle Knoten expandiert wird, darunterliegendeKnoten allerdings nicht.

1 bedeutet dann, daß auch die Knoten der nächsttieferen Hierarchiestufeexpandiert werden.

etc.

expand_subtree 'X': Es werden alle Knoten im Teilbaum expandiert. Dabei wird eine Angabevon level_count ignoriert.

Page 132: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

expand_nodes

132 April 2001

expand_nodesDieser Methodenaufruf expandiert eine Liste von Knoten.CALL METHOD tree->expand_nodes

EXPORTING node_key_table = node_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2ERROR_IN_NODE_KEY_TABLE = 3DP_ERROR = 4.

Parameter Bedeutung

node_key_table Knotentabelle der Knoten, die expandiert werden sollen.

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Page 133: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

expand_root_nodes

April 2001 133

expand_root_nodesDieser Methodenaufruf expandiert alle Wurzelknoten.CALL METHOD tree->expand_root_nodes

EXPORTING level_count = level_countexpand_subtree = expand_subtree

EXCEPTIONS failed = 1illegal_level_count = 2cntl_system_error = 3.

Parameter Bedeutung

level_count Angabe der Tiefe, bis zu der expandiert werden soll.

0 bedeutet, daß nur die Wurzelknoten expandiert werden, darunterliegendeKnoten allerdings nicht.

1 bedeutet dann, daß auch die Knoten der nächst tieferen Hierarchiestufeexpandiert werden.

etc.

expand_subtree 'X': Es werden alle Knoten im Teilbaum expandiert. Dabei wird eine Angabevon LEVEL_COUNT ignoriert.

Page 134: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_expanded_nodes

134 April 2001

get_expanded_nodesDieser Methodenaufruf liefert eine Knotentabelle der expandierten Knoten zurück.CALL METHOD tree->get_expanded_nodes

CHANGING node_key_table = node_key_tableEXCEPTIONS cntl_system_error = 1

dp_error = 2failed = 3.

Parameter Bedeutung

node_key_table Knotentabelle der Knoten, die expandiert sind.

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Page 135: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_selected_node

April 2001 135

get_selected_nodeDieser Methodenaufruf liefert einen markierten Knoten zurück.

Die Methode darf nur auf ein Tree Control angewendet werden, bei dem immer nurein Knoten ausgewählt werden darf (Festlegung bei Instanzierung des Controls übernode_selection_mode=tree->node_sel_mode_single).

CALL METHOD tree->get_selected_nodeIMPORTING node_key = node_keyEXCEPTIONS failed = 1

single_node_selection_only = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, der im Tree Control selektiert wurde.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

Page 136: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_selected_nodes

136 April 2001

get_selected_nodesDieser Methodenaufruf liefert eine Liste der markierten Knoten zurück.

Die Methode darf nur auf ein Tree Control angewendet werden, bei dem mehrereKnoten ausgewählt werden dürfen (Festlegung bei Instanzierung des Controls übernode_selection_mode=tree->node_sel_mode_multiple).

CALL METHOD tree->get_selected_nodesCHANGING node_key_table = node_key_tableEXCEPTIONS cntl_system_error = 1

dp_error = 2failed = 3multiple_node_selection_only = 4.

Parameter Bedeutung

node_key_table Knotentabelle der Knoten, die selektiert wurden.

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Page 137: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_top_node

April 2001 137

get_top_nodeMit dieser Methode können Sie den obersten angezeigten Knoten ermitteln.CALL METHOD tree->get_top_node

IMPORTING node_key = node_keyEXCEPTIONS failed = 1

cntl_system_error = 2.

Parameter Bedeutung

node_key Oberster angezeigter Knoten

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

Page 138: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

move_node

138 April 2001

move_nodeMit dieser Methode können Sie Knoten innerhalb des Baums verschieben. Dabei werden auchuntergeordnete Knoten mit verschoben.CALL METHOD tree->move_node

EXPORTING node_key = node_keyrelatkey = relatkeyrelatship = relatship

EXCEPTIONS failed = 1cntl_system_error = 2node_not_found = 3move_error = 4relative_not_found = 5illegal_relatship = 6parent_is_leaf = 7.

Parameter Bedeutung

node_key Name des zu verschiebenden Knotens

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

relatkey Name des verwandten Knotens

relatship Art der Verwandtschaft zu dem in relatkey angegebenen Knoten:

tree->relat_first_child (node_key ist erstes Kind des Knotensrelatkey)

tree->relat_last_child (node_key ist letztes Kind des Knotensrelatkey)

tree->relat_prev_sibling (node_key wird vor relatkey auf gleicherHierarchiestufe eingefügt)

tree->relat_next_sibling (node_key wird nach relatkey auf gleicherHierarchiestufe eingefügt)

tree->relat_first_sibling (node_key wird vor allen Knoten eingefügt, diedie gleiche Hierarchiestufe wie relatkey besitzen)

tree->relat_last_sibling (node_key wird nach allen Knoten eingefügt, diedie gleiche Hierarchiestufe wie relatkey besitzen)

Es ist verboten, einen Knoten unter einen seiner untergeordneten Knotenumzuhängen.

Page 139: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_disabled

April 2001 139

node_set_disabledMit diesem Methodenaufruf können Sie einen Knoten inaktivieren. Dadurch wird dieser Knotennicht mehr selektierbar. Weiterhin sind auf diesem Knoten keine Aktionen wie Doppelklickmöglich.CALL METHOD tree->node_set_disabled

EXPORTING node_key = node_keydisabled = disabled

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Name des Knotens, der inaktiviert werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

disabled 'X': Inaktivieren des Knotens

' ': Aktivieren des Knotens

Page 140: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_dragdropid

140 April 2001

node_set_dragdropidMit diesem Methodenaufruf können Sie das Drag&Drop-Verhalten eines Knotens setzen.CALL METHOD tree->node_set_dragdropid

EXPORTING node_key = node_keydragdropid = dragdropid

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Name des Knotens, der inaktiviert werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

dragdropid Drag&Drop-Verhalten [Seite 108], das dem Knoten zugeordnet werden soll.

Page 141: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_expander

April 2001 141

node_set_expanderDie Eigenschaft expander darf nur für Knoten vergeben werden, für die auch die Eigenschaftisfolder gesetzt wurde. Diese Knoten werden auch Ordner genannt. Durch das Setzen derEigenschaft expander wird vor dem Bild für den Ordner das Symbol '+' zum Expandieren desOrdners gestellt, auch wenn der Ordner zur Zeit noch leer ist. Wird ein leerer Ordner expandiert,wird vom Control das Ereignis EXPAND_NO_CHILDREN gesendet.

Das Setzen dieser Eigenschaft macht dann Sinn, wenn Sie Daten nur auf Anforderung an denSAP Tree weiterreichen wollen. Dann setzen Sie für Knoten, unter denen weitere Informationenangefordert werden können, die Eigenschaft expander. Expandiert dann ein Benutzer diesenKnoten, wird ein Ereignis (EXPAND_NO_CHILDREN) ausgelöst, und Sie können diedarunterliegenden Informationen in der entsprechenden Behandlermethode an den SAP Treeweitergeben.

VoraussetzungenFür den Knoten muß die Eigenschaft is_folder gesetzt sein.

CALL METHOD tree->node_set_expanderEXPORTING node_key = node_key

expander = expanderEXCEPTIONS failed = 1

node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Name des Knotens, für den die Eigenschaft expander gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

expander 'X': für den Knoten wird die Eigenschaft expander gesetzt

' ': für den Knoten wird die Eigenschaft expander nicht gesetzt

Page 142: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_exp_image

142 April 2001

node_set_exp_imageMit dieser Methode können Sie das Ordnersymbol setzen, das ein Ordner im geöffneten Zustandzeigen soll.CALL METHOD tree->node_set_exp_image

EXPORTING node_key = node_keyexp_image = exp_image

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3not_allowed_for_leaf = 4.

Parameter Bedeutung

node_key Name des Knotens, für den das Symbol verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

exp_image ' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabe desKnotens nach vorn.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 143: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_hidden

April 2001 143

node_set_hiddenMit dieser Methode können Sie einen bestimmten Knoten ausblenden.CALL METHOD tree->node_set_hidden

EXPORTING node_key = node_keyhidden = hidden

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, der ausgeblendet werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

hidden ' ': Knoten ist sichtbar

'X': Knoten mit allen untergeordneten Knoten ist nicht mehr sichtbar

Page 144: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_is_folder

144 April 2001

node_set_is_folderDie Eigenschaft is_folder zeichnet einen Knoten als Ordner aus. Das bedeutet, daß ihmhierarchisch untergeordnete Knoten zugeordnet werden können.CALL METHOD tree->node_set_is_folder

EXPORTING node_key = node_keyis_folder = is_folder

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3node_has_children = 4.

Parameter Bedeutung

node_key Name des Knotens, für den die Eigenschaft is_folder gesetzt werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

is_folder 'X': für den Knoten wird die Eigenschaft is_folder gesetzt

' ': für den Knoten wird die Eigenschaft is_folder nicht gesetzt

Page 145: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_no_branch

April 2001 145

node_set_no_branchDiese Methode steuert das Zeichnen der Hierarchielinie eines Knotens.CALL METHOD tree->node_set_no_branch

EXPORTING node_key = node_keyno_branch = no_branch

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, dessen Hierarchielinien verändert werden sollen.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

branch ' ': Knoten mit Hierarchielinie

'X': Knoten ohne Hierarchielinie

Page 146: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_n_image

146 April 2001

node_set_n_imageDer Methodenaufruf verändert bei einem Blatt (Knoten ohne hierarchisch untergeordneteKnoten) bzw. bei einem geschlossenen Ordner (Knoten mit hierarchisch untergeordnetenKnoten) das vorangestellte Symbol.CALL METHOD tree->node_set_n_image

EXPORTING node_key = node_keyn_image = n_image

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, dessen Symbol verändert werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

n_image ' ': Es wird das Default-Symbol verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

'BNONE': Es wird kein Symbol verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 147: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_style

April 2001 147

node_set_styleSetzt den Stil für einen Knoten.CALL METHOD tree->node_set_style

EXPORTING node_key = node_keystyle = style

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, dessen Stil verändert werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

style Stil des Eintrags. Folgende Stile stehen zur Verfügung:tree->style_default

tree->style_inherited

tree->style_intensified

tree->style_inactive

tree->style_intensified_critical

tree->style_emphasized_negative

tree->style_emphasized_positive

tree->style_emphasized

Page 148: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

remove_all_key_strokes

148 April 2001

remove_all_key_strokesDiese Methode nimmt alle Definitionen zurück, die Sie mit der Methode add_key_stroke [Seite123] gemacht haben.CALL METHOD tree->remove_all_key_strokes

EXCEPTIONS failed = 1cntl_system_error = 2.

Page 149: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

scroll

April 2001 149

scrollMit dieser Methode können Sie programmgesteuert im Baum blättern.CALL METHOD tree->scroll

EXPORTING scroll_command = scroll_commandEXCEPTIONS failed = 1

illegal_scroll_command = 2cntl_system_error = 3.

Parameter Bedeutung

scroll_command tree->scroll_up_line scrollt eine Zeile nach oben.

tree->scroll_down_line scrollt eine Zeile nach unten.

tree->scroll_up_page scrollt eine Seite nach oben.

tree->scroll_down_page scrollt eine Seite nach unten.

tree->scroll_home scrollt an den Anfang.

tree->scroll_end scrollt ans Ende.

Page 150: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

select_nodes

150 April 2001

select_nodesDiese Methode selektiert mehrere Knoten im Baum.

Diese Methode darf nur verwendet werden, wenn bei der Erzeugung des SAP Tree die Knoten-Mehrfachselektion eingestellt wurde (NODE_SELECTION_MODE = TREE->SEL_MODE_MULTIPLE).

CALL METHOD tree->select_nodesEXPORTING node_key_table = node_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2error_in_node_key_table = 3dp_error = 4multiple_node_selection_only = 5.

Parameter Bedeutung

node_key_table Knotentabelle der Knoten, die selektiert werden sollen.

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Page 151: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_default_drop

April 2001 151

set_default_dropMit dieser Methode kann ein Drag&Drop-Verhalten für das Drop-Ereignis in die freie Fläche desControls gesetzt werden.CALL METHOD tree->set_default_drop

EXPORTING drag_drop = drag_dropEXCEPTIONS failed = 1

cntl_system_error = 2invalid_drag_drop_obj = 3.

Parameter Bedeutung

drag_drop Drag&Drop-Verhalten [Seite 108], das der freien Fläche des Controls zugeordnetwerden soll.

Page 152: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_folder_show_exp_image

152 April 2001

set_folder_show_exp_imageMit dieser Methode können Sie einstellen, welches Ordnersymbol bei einem geöffneten Ordnerangezeigt werden soll.CALL METHOD tree->set_folder_show_exp_image

EXPORTING folder_show_exp_image = folder_show_exp_imageEXCEPTIONS failed = 1

cntl_system_error = 2.

Parameter Bedeutung

folder_show_exp_image 'X': Ein geöffneter Knoten zeigt immer das Ordnersymbol, das in Feldexp_image des Knotens eingetragen wurde.

' ': Nur der zuletzt geöffnete Ordner zeigt das Ordnersymbol, das imFeld exp_image des Knotens eingetragen wurde. Die anderenOrdner zeigen das Ordnersymbol, das in dem Feld n_image desKnotens angegeben wurde.

Page 153: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_has_3d_frame

April 2001 153

set_has_3d_frameMit dieser Methode können Sie steuern, ob der SAP Tree mit oder ohne Absetzung im Dynproangezeigt werden soll.CALL METHOD tree->set_has_3d_frame

EXPORTING has_3d_frame = has_3d_frameEXCEPTIONS failed = 1

cntl_system_error = 2.

Parameter Bedeutung

has_3d_frame 'X': Es wird eine Absetzung angezeigt

' ': Das Control wird "flach" in das Dynpro eingebaut.

Page 154: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_screen_update

154 April 2001

set_screen_updateDiese Methode steuert das Neuzeichnen des Controls. Über den Parameter UPDATE können Siefestlegen, ob Änderungen sofort sichtbar werden sollen.

Verwenden Sie diese Methode, wenn durch mehrere Änderungen der Control-Daten, diehintereinander vorgenommen werden, unerwünschte optische Effekte auftreten (mehrfachesZeichnen).

Die Verwendung dieser Methode führt auch zu einem Performance-Gewinn. Sie sollten dabei zuBeginn von PAI die Methode mit UPDATE = ' ' und am Ende von PBO die Methode mitUPDATE = 'X' aufrufen.

CALL METHOD tree->set_screen_updateEXPORTING UPDATE = UPDATEexceptions failed = 1

cntl_system_error = 2.

Parameter Bedeutung

UPDATE 'X': Alle Änderungen werden sofort angezeigt

' ': Die Änderungen werden nicht sofort angezeigt. Erst das erneute Aufrufender Methode mit UPDATE = 'X' macht die Änderungen sichtbar.

Page 155: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_selected_node

April 2001 155

set_selected_nodeDiese Methode selektiert einen bestimmten Knoten des Baums.

Diese Methode darf nur verwendet werden, wenn bei der Erzeugung des SAP Tree die Knoten-Einfachselektion eingestellt wurde (node_selection_mode = tree->node_sel_mode_single).

CALL METHOD tree->set_selected_nodeEXPORTING node_key = node_keyEXCEPTIONS failed = 1

single_node_selection_only = 2node_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, der selektiert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

Page 156: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_top_node

156 April 2001

set_top_nodeDurch Aufruf dieser Methode wird im Baum so geblättert, daß der angegebenen Knoten alsoberster Knoten im Baum angezeigt wird, sofern dies möglich ist.CALL METHOD tree->set_top_node

EXPORTING node_key = node_keyEXCEPTIONS failed = 1

node_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

node_key Knoten, der als erster Knoten angezeigt werden soll.

Der Parameter node_key wird mit Bezug auf den Typ tv_nodekey definiert.

Page 157: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

unselect_all

April 2001 157

unselect_allMit dieser Methode machen Sie die Selektion auf dem Baum rückgängig.CALL METHOD tree->unselect_all

EXCEPTIONS failed = 1cntl_system_error = 2.

Page 158: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

unselect_nodes

158 April 2001

unselect_nodesDiese Methode macht die Selektion einer Liste von Knoten rückgängig.CALL METHOD tree->unselect_nodes

EXPORTING node_key_table = node_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2error_in_node_key_table = 3dp_error = 4multiple_node_selection_only = 5.

Parameter Bedeutung

node_key_table Knotentabelle der Knoten, die nicht mehr selektiert sein sollen

Die Knotentabelle wird mit Referenz auf den Typ treev_nks angelegt.

Page 159: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_ctx_menu_select_event_appl

April 2001 159

set_ctx_menu_select_event_applMit dieser Methode können Sie festlegen, ob das Ereignis nach Auswahl eines Eintrags auseinem Kontextmenü ein Applikations- oder Systemereignis ist. Als Voreinstellung wird immer einSystemereignis ausgelöst.CALL METHOD tree->set_ctx_menu_select_event_appl

EXPORTING appl_event = appl_event.

Page 160: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_ITEM_TREE_CONTROL

160 April 2001

Methoden der Klasse CL_ITEM_TREE_CONTROLDiese Methoden stehen sowohl dem Column Tree als auch dem List Tree zur Verfügung.

Page 161: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_nodes_and_items

April 2001 161

add_nodes_and_itemsDiese Methode fügt Knoten und Einträge in den Baum ein. Dazu benötigen Sie je eine interneTabelle, in der die einzufügenden Knoten und Einträge enthalten sind.

Die Knotentabelle wird am Frontend in der Reihenfolge abgearbeitet, wie Sie diese aufgebauthaben. Daher müssen Sie darauf achten, daß vor dem Einfügen eines Knotens auch dessenübergeordnete Knoten vorhanden sind.

Ein Tree-Control Proxy-Objekt (hier list_tree oder column_tree) hat keinenDatenbestand. Es dient lediglich dazu, Daten zum SAP Tree am Frontend zuübertragen bzw. Daten vom Tree Control am Frontend zu holen. Eine Anwendungmuß ihre eigene Baumdatenstruktur pflegen.

CALL METHOD tree->add_nodes_and_items

EXPORTING node_table = node_tableitem_table = item_tableitem_table_structure_name = item_table_structure_name

EXCEPTIONS failed = 1cntl_system_error = 2error_in_tables = 3dp_error = 4table_structure_name_not_found = 5.

Parameter Bedeutung

node_table Name der internen Knotentabelle

Die Tabelle wird mit Bezug auf treev_ntab angelegt.

item_table Name der internen Tabelle der einzufügenden Einträge

Die Tabelle wird mit Bezug auf eine selbstdefinierte Strukturangelegt.

item_table_structure_name Name der Struktur, über die Sie die interne Tabelle der Einträgeangelegt haben

Füllen der Knotentabelle:Die Struktur der Knotentabelle besteht aus folgenden Feldern. Sie müssen diese für jedenKnoten entsprechend füllen.

node_key Name des zu definierenden Knotens. Der Name muß ein eindeutiger Schlüsselinnerhalb des Baums sein. Der Knoten darf bisher noch nicht existieren.

relatkey Name des verwandten Knotens. Der verwandte Knoten muß bereits im Baumdefiniert sein. Daher darf er in der Knotentabelle nicht unter dem aktuellen Knotenstehen.

Ist dieser Wert initial, wird der Knoten als Wurzelknoten eingefügt.

Page 162: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_nodes_and_items

162 April 2001

relatship Art der Verwandtschaft zu dem in relatkey angegebenen Knoten:

tree->relat_first_child (node_key wird als erstes Kind des Knotensrelatkey eingefügt)

tree->relat_last_child (node_key wird als letztes Kind des Knotensrelatkey eingefügt)

tree->relat_prev_sibling (node_key wird vor relatkey auf gleicherHierarchiestufe eingefügt)

tree->relat_next_sibling (node_key wird nach relatkey auf gleicherHierarchiestufe eingefügt)

tree->relat_first_sibling (node_key wird vor allen Knoten eingefügt, diedie gleiche Hierarchiestufe wie relatkey besitzen)

tree->relat_last_sibling (node_key wird nach allen Knoten eingefügt, diedie gleiche Hierarchiestufe wie relatkey besitzen)

hidden initial: Knoten wird angezeigt

‘X’: Knoten wird nicht angezeigt

disabled initial: Knoten selektierbar

‘X’: Knoten nicht selektierbar

isfolder initial: Knoten hat keine Unterknoten

‘X’: Knoten besitzt Unterknoten

n_image Angabe einer selbstdefinierten Ikone für einen geschlossenen Ordner bzw. einBlatt:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit dem Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

exp_image Angabe einer selbstdefinierten Ikone für einen geöffneten Ordner:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit dem Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

last_hitem Name des letzten Eintrags, der unter der Hierarchieüberschrift stehen soll. (nur beiList Tree möglich)

no_branch initial: Hierarchielinie wird zu dem Knoten gezeichnet

'X': keine Hierarchielinie wird zu dem Knoten gezeichnet

no_branch initial: Es wird eine Zweiglinie zum Knoten gezeichnet

'X': Es wird keine Zweiglinie zum Knoten gezeichnet.

Page 163: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_nodes_and_items

April 2001 163

expander initial: Knoten hat kein '+'-Symbol zum Expandieren. Diese Einstellung ist nur fürKnoten ohne Kinder gültig.

‘X’: Knoten muß Ordner sein (isfolder = 'X') und hat ein '+'-Symbol zumExpandieren. Besitzt der Knoten beim Expandieren noch keine Kinder, wird dasEreignis EXPAND_NO_CHILDREN ausgelöst.

dragdropid Diesem Feld weisen Sie ein Handle auf das Drag&Drop-Verhalten des Knotens zu(siehe auch Definition von Ereignissen bei Drag&Drop im SAP Tree [Seite 114])

Anlegen der Dictionary-Struktur für die Tabelle der Einträge:Beim Anlegen Ihrer Dictionary-Struktur <my_item> müssen Sie die Struktur treev_itemincludieren und zusätzlich ein Textfeld mit Namen Text definieren. Das Textfeld muß über einTextdatenelement definiert werden.

Füllen der Tabelle der Einträge:node_key Name des Knotens, zu dem dieser Eintrag angezeigt werden soll.

item_name Name der Spalte, in der dieser Eintrag angezeigt werden soll.

Beim List Tree sind hier Zahlen ≥ 1 erlaubt.

Beim Column Tree wird hier die vorher definierte Spalte angegeben.

class tree->item_class_text: Eintrag in Textform

tree->item_class_checkbox: Eintrag als Ankreuzfeld

tree->item_class_button: Eintrag als Drucktaste

tree->item_class_link: Eintrag als Link

font Schriftart:

tree->item_font_default: entspricht in der Baumstruktur tree->item_font_prop. Im List Tree entspricht es tree->item_font_fixed.

tree->item_font_fixed: GUI-Fixed-Font

tree->item_font_prop: GUI-Proportional-Font

disabled Inaktivieren eines Eintrags

editable Editierbarkeit eines Eintrags

hidden Sichtbarkeit eines Eintrags

alignment Ausrichtung eines Eintrags (nur im List Tree)

t_image Ikone des Eintrags

chosen Ankreuzfeld angekreuzt

togg_right togg_right darf nur bei Einträgen der Klasse TREE->ITEM_CLASS_CHECKBOXverwendet werden. Ist togg_right initial, so steht das Ankreuzfeld auf der linkenSeite des Textes. Ansonsten steht das Ankreuzfeld auf der rechten Seite desTextes.

Page 164: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_nodes_and_items

164 April 2001

style Style des Eintrags. Folgende Styles stehen zur Verfügung:tree->style_default

tree->style_inherited

tree->style_intensified

tree->style_inactive

tree->style_intensified_critical

tree->style_emphasized_negative

tree->style_emphasized_positive

tree->style_emphasized

length Sichtbare Länge des Eintrags (nur im List Tree)

length_pix Angabe der Länge in Pixels (nur im List Tree)

ignoreimag Darf nur bei List Tree verwendet werden.

initial: LENGTH enthält die Breite des Textes des Eintrags. Besitzt der Eintrag einAnkreuzfeld oder eine Ikone, so wird deren Breite zur Textbreite addiert.

'X': LENGTH enthält die Breite des gesamten Eintrags. Eine vorhandene Ikonenimmt also Breite für den Text weg.

usebgcolor Darf nur bei List Tree verwendet werden.

'X': Der Eintrag hat eine Hintergrundfarbe, die sich leicht von derHintergrundfarbe des Tree Controls abhebt.

initial: Die Hintergrundfarbe ist gleich.

text Text des Eintrags

Ein Wechsel der Schriftart durch den Benutzer wirkt sich erst beim nächstenerzeugten SAP Tree aus.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 165: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_all_items_of_nodes

April 2001 165

delete_all_items_of_nodesDieser Methodenaufruf löscht alle Einträge zu den angegebenen Knoten aus dem Baum.ALL METHOD tree->DELETE_ALL_ITEMS_OF_NODES

EXPORTING node_key_table = node_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2error_in_node_key_table = 3dp_error = 4.

Parameter Bedeutung

node_key_table Knotentabelle. Die Einträge der Knoten werden gelöscht.

Page 166: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

delete_items

166 April 2001

delete_itemsDiese Methode löscht die in einer Tabelle angegebenen Einträge aus dem Baum.CALL METHOD tree->delete_items

EXPORTING item_key_table = item_key_tableEXCEPTIONS failed = 1

cntl_system_error = 2error_in_item_key_table = 3dp_error = 4.

Parameter Bedeutung

item_key_table Interne Tabelle der zu löschenden Einträge

Page 167: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_selected_item

April 2001 167

get_selected_itemDieser Methodenaufruf liefert einen selektierten Eintrag mit seinem Knoten zurück.CALL METHOD tree->get_selected_item

IMPORTING node_key = node_keyitem_name = item_name

EXCEPTIONS failed = 1cntl_system_error = 2no_item_selection = 3.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree selektiert wurde.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des selektierten Eintrags.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

Page 168: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_chosen

168 April 2001

item_set_chosenMit dieser Methode können Sie ein Ankreuzfeld programmgesteuert ankreuzen.CALL METHOD tree->item_set_chosen

EXPORTING node_key = node_keyitem_name = item_namechosen = chosen

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4chosen_not_supported = 5.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree angekreuzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, dessen Ankreuzfeld angekreuzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

chosen 'X': Eintrag wird als angekreuzt gekennzeichnet

' ': Eintrag wird als nicht angekreuzt gekennzeichnet

Page 169: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_disabled

April 2001 169

item_set_disabledMit diesem Methodenaufruf können Sie einen Eintrag deaktivieren. Dadurch wird dieser Eintragnicht mehr selektierbar. Weiterhin sind auf diesem Eintrag keine Aktionen wie Doppelklickmöglich.CALL METHOD tree->item_set_disabled

EXPORTING node_key = node_keyitem_name = item_namedisabled = disabled

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4no_item_selection = 5.

Parameter Bedeutung

node_key Knoten, dessen Eintrag deaktiviert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des selektierten Eintrags, der deaktiviert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

disabled 'X': Eintrag ist inaktiv

' ': Eintrag ist aktiv

Page 170: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_editable

170 April 2001

item_set_editableDiese Methode steuert die Eingabebereitschaft eines Ankreuzfeldes.

Bei der Initialisierung des Controls muß der Parameter item_selection = ‘X’gesetzt sein.

Der Eintrag muß ein Ankreuzfeld sein (in der Struktur TREEV_ITEM muß das Feldclass = tree->item_class_checkbox gesetzt sein).

CALL METHOD tree->item_set_editableEXPORTING node_key = node_key

item_name = item_nameeditable = editable

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4editable_not_supported = 5.

Parameter Bedeutung

node_key Knoten, dessen Eintrag eingabebereit werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des selektierten Eintrags, der eingabebereit werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

editable 'X': Ankreuzfeld eingabebereit

' ': Ankreuzfeld nicht eingabebereit

Page 171: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_font

April 2001 171

item_set_fontMit dieser Methode können Sie für einen Eintrag den Font des Texts ändern.CALL METHOD tree->item_set_font

EXPORTING node_key = node_keyitem_name = item_namefont = font

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, für den ein anderer Font gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

font Schriftart:

tree->item_font_default: entspricht in der Baumstruktur tree->item_font_prop. Im List Tree entspricht es tree->item_font_fixed.

tree->item_font_fixed: GUI-Fixed-Font

tree->item_font_prop: GUI-Proportional-Font

Page 172: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_hidden

172 April 2001

item_set_hiddenMit dieser Methode können Sie einen bestimmten Eintrag eines Knoten ausblenden.CALL METHOD tree->item_set_hidden

EXPORTING node_key = node_keyitem_name = item_namehidden = hidden

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree ausgeblendet werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, der ausgeblendet werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

hidden ' ': Eintrag ist sichtbar

'X': Eintrag ist nicht mehr sichtbar

Page 173: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_style

April 2001 173

item_set_styleMit dieser Methode setzen Sie den Stil für die Kombination von Hintergrundfarbe undVordergrundfarbe des Eintrags.CALL METHOD tree->item_set_style

EXPORTING node_key = node_keyitem_name = item_namestyle = style

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, für den ein neuer Stil gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

style Stil des Eintrags. Folgende Stile stehen zur Verfügung:tree->style_default

tree->style_inherited

tree->style_intensified

tree->style_inactive

tree->style_intensified_critical

tree->style_emphasized_negative

tree->style_emphasized_positive

tree->style_emphasized

Page 174: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_text

174 April 2001

item_set_textMit dieser Methode können Sie für einen Eintrag den Text setzen/ändern.CALL METHOD tree->item_set_text

EXPORTING node_key = node_keyitem_name = item_nametext = text

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, für den ein anderer Text gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

text Text der dem Eintrag zugewiesen werden soll.

Page 175: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_t_image

April 2001 175

item_set_t_imageDer Methodenaufruf setzt zu einem Eintrag eine Ikone. Dadurch ist es möglich, eine Ikonemit/ohne Text als Eintrag zu setzen.CALL METHOD tree->item_set_t_image

EXPORTING node_key = node_keyitem_name = item_namet_image = t_image

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, für den eine Ikone gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

t_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 176: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

select_item

176 April 2001

select_itemDieser Methodenaufruf selektiert einen bestimmten Eintrag des Baums

Bei der Initialisierung des Controls muß der Parameter ITEM_SELECTION = ‘X’gesetzt sein.

CALL METHOD tree->select_itemEXPORTING node_key = node_key

item_name = item_nameEXCEPTIONS failed = 1

key_or_item_name_not_found = 2no_item_selection = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree selektiert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, der selektiert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

Page 177: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_min_node_height

April 2001 177

set_min_node_heightDiese Methode setzt die minimale Höhe eines Knotens.CALL METHOD tree->set_min_node_height

EXPORTING include_text = include_textinclude_image = include_imageinclude_button = include_buttoninclude_checkbox = include_checkboxinclude_link = include_link

EXCEPTIONS failed = 1cntl_system_error = 2.

Parameter Bedeutung

include_text Sofern das Flag gesetzt ist, ist der Knoten mindestens so hoch wie einTextobjekt.

include_image Sofern das Flag gesetzt ist, ist der Knoten mindestens so hoch wie ein Bild-Objekt (Ordner-, Ordner/Blatt-Symbol).

include_button Sofern das Flag gesetzt ist, ist der Knoten mindestens so hoch wie eineDrucktaste.

include_checkbox Sofern das Flag gesetzt ist, ist der Knoten mindestens so hoch wie einAnkreuzfeld.

include_link Sofern das Flag gesetzt ist, ist der Knoten mindestens so hoch wie einEintrag vom Typ Link.

Page 178: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_nodes_and_items

178 April 2001

update_nodes_and_itemsMit diesem Methodenaufruf können Sie mehrere Eigenschaften von Knoten und deren Einträgeändern.CALL METHOD tree->UPDATE_NODES_AND_ITEMS

exporting node_table = node_tableitem_table = item_tableITEM_TABLE_STRUCTURE_NAME = ITEM_TABLE_STRUCTURE_NAME

EXCEPTIONS failed = 1cntl_system_error = 2error_in_tables = 3dp_error = 4TABLE_STRUCTURE_NAME_NOT_FOUND = 5.

Parameter Bedeutung

node_table Name der internen Knotentabelle. Über die zusätzlich zurnormalen Knotentabelle vorhandenen Felder der Strukturtreemunode steuern Sie, welche Eigenschaften verändertwerden sollen.

Die Tabelle wird mit Bezug auf treev_upno angelegt.

item_table Name der internen Tabelle der zu ändernden Einträge

Die Tabelle wird mit Bezug auf eine selbst definierte Strukturangelegt.

item_table_structure_name Name der Struktur über die Sie die interne Tabelle der Einträgeangelegt haben

Füllen der Knotentabelle:Die Struktur der Knotentabelle besteht aus folgenden Feldern. Sie müssen diese für jedenKnoten entsprechend füllen.

node_key Name des zu ändernden Knotens. Der Name muß im Baum vorhanden sein.

hidden initial: Knoten wird angezeigt

‘X’: Knoten wird nicht angezeigt

disabled initial: Knoten selektierbar

‘X’: Knoten nicht selektierbar

isfolder initial: Knoten hat keine Unterknoten. Beachten Sie aber, daß der Knoten keineKinder besitzen darf.

‘X’: Knoten besitzt Unterknoten

Page 179: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_nodes_and_items

April 2001 179

n_image Angabe einer selbstdefinierten Ikone für einen geschlossenen Ordner bzw. einBlatt:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit dem Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

exp_image Angabe einer selbstdefinierten Ikone für einen geöffneten Ordner:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit der Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

style Stil des Knotens.

no_branch initial: Es wird eine Zweiglinie zum Knoten gezeichnet

'X': Es wird keine Zweiglinie zum Knoten gezeichnet.

expander initial: Knoten hat kein '+'-Symbol zum Expandieren

‘X’: Knoten muß Ordner sein (ISFOLDER = 'X') und hat ein '+'-Symbol zumExpandieren. Besitzt der Knoten beim Expandieren noch keine Kinder, wird dasEreignis EXPAND_NO_CHILDREN ausgelöst.

u_all Alle veränderbaren Eigenschaften sollen verändert werden

u_hidden Die Eigenschaft hidden soll verändert werden

u_disabled Die Eigenschaft disabled soll verändert werden

u_isfolder Die Eigenschaft is_folder soll verändert werden

u_n_image Die Eigenschaft n_image soll verändert werden

u_exp_imag Die Eigenschaft exp_image soll verändert werden

u_style Die Eigenschaft style soll verändert werden

u_no_branch Die Eigenschaft no_branch soll verändert werden

u_expander Die Eigenschaft expander soll verändert werden

Die hidden- und die is_folder Eigenschaft sollen geändert werden: Den Feldernhidden und is_folder werden Werte zugewiesen. Die Flags u_hidden undu_is_folder werden gesetzt, um die Felder hidden und is_folder zurÄnderung auszuwählen.

Das Feld u_all wählt alle Eigenschaften zur Änderung aus, zu denen ein u_Flagexistiert.

Page 180: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_nodes_and_items

180 April 2001

Anlegen der Dictionary-Struktur für die Tabelle der Einträge:Beim Anlegen Ihrer Dictionary-Struktur <my_u_item> müssen Sie die Struktur treev_uiteincludieren und zusätzlich ein Textfeld mit Namen Text definieren. Das Textfeld muß über einTextdatenelement definiert werden.

Füllen der Tabelle der Einträge:node_key Name des Knotens, dessen Eintrag geändert werden soll.

item_name Name der Spalte, in der dieser Eintrag geändert werden soll.

Beim List Tree sind hier Zahlen ≥ 1 erlaubt.

Beim Column Tree hier die vorher definierte Spalte angegeben.

class tree=>item_class_text: Eintrag in Textform

tree=>item_class_checkbox: Eintrag als Ankreuzfeld

tree=>item_class_button: Eintrag als Drucktaste

tree=>item_class_link: Eintrag als Link-Item

font Schriftart:

tree->item_font_default: entspricht in der Baumstruktur tree->item_font_prop. Im List Tree entspricht es tree->item_font_fixed.

tree->item_font_fixed: GUI-Fixed-Font

tree->item_font_prop: GUI-Proportional-Font

disabled Inaktivieren eines Eintrags

editable Editierbarkeit eines Eintrags

hidden Sichtbarkeit eines Eintrags

alignment Ausrichtung eines Eintrags (nur in Liststruktur)

t_image Ikone des Eintrags

chosen Ankreuzen eines Ankreuzfeldes

togg_right togg_right darf nur bei Einträgen der Klasse TREE->ITEM_CLASS_CHECKBOXverwendet werden. Ist togg_right initial, so steht das Ankreuzfeld auf derlinken Seite des Textes. Ansonsten steht das Ankreuzfeld auf der rechten Seitedes Textes.

Page 181: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_nodes_and_items

April 2001 181

style Stil des Eintrags. Folgende Stile stehen zur Verfügung:tree->style_default

tree->style_inherited

tree->style_intensified

tree->style_inactive

tree->style_intensified_critical

tree->style_emphasized_negative

tree->style_emphasized_positive

tree->style_emphasized

length Sichtbare Länge des Eintrags (nur in Listenstruktur)

length_pix Angabe der Länge in Pixels (nur in Listenstruktur)

ignoreimag Darf nur bei List Tree verwendet werden.

initial: LENGTH enthält die Breite des Textes des Eintrags. Besitzt der Eintrag einAnkreuzfeld oder eine Ikone, so wird deren Breite zur Textbreite addiert.

'X': LENGTH enthält die Breite des gesamten Eintrags. Eine vorhandene Ikonenimmt also Breite für den Text weg.

usebgcolor Darf nur bei List Tree verwendet werden.

'X': Der Eintrag hat eine Hintergrundfarbe, die sich leicht von derHintergrundfarbe des Tree Controls abhebt.

initial: Die Hintergrundfarbe ist gleich

text Text des Eintrags

u_all Alle veränderbaren Eigenschaften können verändert werden

u_font Der Font soll verändert werden

u_disabled Die Eigenschaft disabled soll verändert werden

u_editable Die Eigenschaft editable soll verändert werden

u_hidden Die Eigenschaft hidden soll verändert werden

u_alignmen Die Eigenschaft alignment soll verändert werden

u_t_image Die Eigenschaft t_image soll verändert werden

u_chosen Die Eigenschaft chosen soll verändert werden

u_style Die Eigenschaft style soll verändert werden

u_text Die Eigenschaft text soll verändert werden

u_length Die Eigenschaft length soll verändert werden

u_length_p Die Eigenschaft length_pix soll verändert werden

Page 182: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_nodes_and_items

182 April 2001

Ein Wechsel der Schriftart durch den Benutzer wirkt sich erst beim nächstenerzeugten SAP Tree aus.

Page 183: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_GUI_SIMPLE_TREE

April 2001 183

Methoden der Klasse CL_GUI_SIMPLE_TREE

Page 184: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

constructor

184 April 2001

constructorDiese Methode wird für die Instanzierung eines Simple Tree verwendet.CREATE OBJECT simple_tree

EXPORTING lifetime = lifetimeparent = parentshellstyle = shellstylenode_selection_mode = node_selection_modehide_selection = hide_selection

EXCEPTIONS lifetime_error = 1cntl_system_error = 2create_error = 3failed = 4illegal_node_selection_mode = 5.

Parameter Bedeutung

lifetime Parameter für das Lifetime Management [Extern]. Folgende Werte sindmöglich:

simple_tree->lifetime_imode: Das Control lebt, solange derinterne Modus nicht abgebaut wird (z.B.: leave program.leave transaction. set screen 0, leave screen.).Danach wird die Methode finalize [Seite 492] aufgerufen

simple_tree->lifetime_dynpro: Das Control lebt, solange dieInstanz des Dynpros existiert, d.h. sich noch im Dynprostapelbefindet. Danach wird die Methode free [Seite 490] aufgerufen.Die Benutzung dieses Modus regelt automatisch die Sichtbarkeitvon Controls. Controls werden immer nur dann eingeblendet, wenndas Dynpro aktiv ist, auf dem sie erzeugt wurden. Ist ein anderesDynpro aktiv, werden sie automatisch unsichtbar geschaltet.

simple_tree->lifetime_default: Wird das Control in einenContainer eingebaut, übernimmt es die Lebensdauer des Containers.Wird es nicht in einen Container eingebaut (z.B. weil es selbst einContainer ist), dann wird die Lebensdauer auf simple_tree->lifetime_imode gesetzt.

parent Container, in dem das SAP Tree angezeigt werden kann (Siehe SAPContainer [Extern])

node_selection_mode simple_tree->node_sel_mode_single: nur Einfachselektionerlaubt

simple_tree->node_sel_mode_multiple: Mehrfachselektionerlaubt

hide_selection Eine Selektion wird optisch nicht sichtbar gemacht

Page 185: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_nodes

April 2001 185

add_nodesMit dieser Methode fügen Sie Knoten in einen existierenden Baum ein. Die Einträge werden ineiner internen Tabelle übergeben. Diese muß mit Bezug auf eine selbstdefinierte Dictionary-Struktur angelegt werden.

Die Knotentabelle wird am Frontend in der Reihenfolge abgearbeitet, wie Sie diese aufgebauthaben. Daher müssen Sie darauf achten, daß vor Einfügen eines Knotens auch dessenübergeordnete Knoten vorhanden sind.

Ein Tree-Control Proxy-Objekt (hier simple_tree) hat keinen Datenbestand. Esdient lediglich dazu, Daten zum SAP Tree am Frontend zu übertragen bzw. Datenvom SAP Tree am Frontend zu holen. Eine Anwendung muß ihre eigeneBaumdatenstruktur pflegen.

CALL METHOD simple_tree->add_nodesEXPORTING table_structure_name = table_structure_name

node_table = node_tableEXCEPTIONS error_in_node_table = 1

failed = 2dp_error = 3table_structure_name_not_found = 4.

Parameter Bedeutung

node_table_structure_name Name der Struktur, über die Sie die interne Tabelle dereinzufügenden Knoten angelegt haben

node_table Interne Tabelle mit den anzulegenden Knoten

Anlegen der Dictionary-Struktur:Beim Anlegen Ihrer Dictionary-Struktur <my_node> müssen Sie die Struktur treev_nodeincludieren und zusätzlich ein Textfeld mit Namen Text definieren. Das Textfeld muß über einTextdatenelement definiert werden.

Füllen der Knotentabelle:Die Struktur der Knotentabelle besteht aus folgenden Feldern. Sie müssen diese für jedenKnoten entsprechend füllen.

node_key Name des zu definierenden Knotens. Der Name muß ein eindeutiger Schlüsselinnerhalb des Baums sein. Der Knoten darf bisher noch nicht existieren.

relatkey Name des verwandten Knotens. Der verwandte Knoten muß bereits im Baumdefiniert sein. Daher darf er in der Knotentabelle nicht unter dem aktuellen Knotenstehen.

Page 186: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_nodes

186 April 2001

relatship Art der Verwandtschaft zu dem in relatkey angegebenen Knoten:

tree->relat_first_child (node_key wird als erstes Kind des Knotensrelatkey eingefügt)

tree->relat_last_child (node_key wird als letztes Kind des Knotensrelatkey eingefügt)

tree->relat_prev_sibling (node_key wird vor relatkey auf gleicherHierarchiestufe eingefügt)

tree->relat_next_sibling (node_key wird nach relatkey auf gleicherHierarchiestufe eingefügt)

tree->relat_first_sibling (node_key wird vor allen Knoten eingefügt, diedie gleiche Hierarchiestufe wie relatkey besitzen)

tree->relat_last_sibling (node_key wird nach allen Knoten eingefügt, diedie gleiche Hierarchiestufe wie relatkey besitzen)

hidden initial: Knoten wird angezeigt

‘X’: Knoten wird nicht angezeigt

disabled initial: Knoten selektierbar

‘X’: Knoten nicht selektierbar

isfolder initial: Knoten hat keine Unterknoten

‘X’: Knoten besitzt Unterknoten

n_image Angabe einer selbstdefinierten Ikone für einen geschlossenen Ordner bzw. einBlatt:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit der Nummer xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

exp_image Angabe einer selbstdefinierten Ikone für einen geöffneten Ordner:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit der Nummer xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

Page 187: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_nodes

April 2001 187

style Stil des Eintrags. Folgende Stile stehen zur Verfügung:tree->style_default

tree->style_inherited

tree->style_intensified

tree->style_inactive

tree->style_intensified_critical

tree->style_emphasized_negative

tree->style_emphasized_positive

tree->style_emphasized

no_branch initial: Es wird eine Zweiglinie zum Knoten gezeichnet

'X': Es wird keine Zweiglinie zum Knoten gezeichnet.

expander initial: Knoten hat kein '+'-Symbol zum Expandieren

‘X’: Knoten muß Ordner sein (isfolder = 'X') und hat ein '+'-Symbol zumExpandieren. Besitzt der Knoten beim Expandieren noch keine Kinder, wird dasEreignis EXPAND_NO_CHILDREN ausgelöst.

dragdropid Diesem Feld weisen Sie ein Handle auf das Drag&Drop-Verhalten des Knotens zu(siehe auch Definition von Ereignissen bei Drag&Drop im SAP Tree [Seite 114])

text Dieses Feld wird nur im Modus einfache Baumstruktur verwendet (Definition einereigenen Knotenstruktur im Dictionary). Übergeben Sie im Modus einfacheBaumstruktur in dieses Feld den anzuzeigenden Text.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 188: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_text

188 April 2001

node_set_textMit dieser Methode ändern Sie den Text zu einem bestimmten Knoten.CALL METHOD simple_tree->node_set_text

EXPORTING node_key = node_keytext = text

EXCEPTIONS failed = 1node_not_found = 2

cntl_system_error = 3.

Parameter Bedeutung

node_key Name des Knotens, für den der Text geändert werden soll

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

text Text, der dem Knoten zugewiesen werden soll.

Page 189: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_nodes

April 2001 189

update_nodesDiese Methode benutzen Sie, wenn Sie Eigenschaften von mehreren Knoten (Text,Zugehörigkeit zu anderem Knoten, Anzeigeoptionen) ändern wollen. Dazu müssen Sie einespezielle Knotentabelle mit Bezug auf eine selbstdefinierte Dictionary-Struktur anlegen.

Wollen Sie eine bestimmte Eigenschaft eines Knotens verändern, dann müssen Sie dasentsprechende Kennzeichen zum Ändern dieser Eigenschaft setzen.CALL METHOD simple_tree->update_nodes

EXPORTING node_table_structure_name = node_table_structure_namenode_table = node_table

EXCEPTIONS failed = 1cntl_system_error = 2error_in_node_table = 3dp_error = 4table_structure_name_not_found = 5.

Parameter Bedeutung

node_table_structure_name Name der Struktur, über die Sie die interne Tabelle der zuändernden Knoten angelegt haben

node_table Interne Tabelle mit den zu ändernden Knoten

Anlegen der Dictionary-Struktur:Beim Anlegen Ihrer Dictionary-Struktur <my_unode> müssen Sie die Struktur treev_unodincludieren und zusätzlich ein Textfeld mit Namen Text und ein Feld mit Namen U_TEXT vomTyp AS4FLAG definieren. Das Textfeld muß über ein Textdatenelement definiert werden.

Füllen der Knotentabelle:Die Struktur der Knotentabelle besteht aus folgenden Feldern. Sie müssen diese für jedenKnoten entsprechend füllen.

node_key Name des zu definierenden Knotens. Der Name muß ein eindeutiger Schlüsselinnerhalb des Baums sein.

relatkey Name des verwandten Knotens. Der verwandte Knoten muß bereits im Baumdefiniert sein. Daher darf er in der Knotentabelle nicht unter dem aktuellenKnoten stehen.

Page 190: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_nodes

190 April 2001

relatship Art der Verwandtschaft zu dem in relatkey angegebenen Knoten:

simple_tree->relat_first_child (node_key ist erstes Kind desKnotens relatkey)

simple_tree->relat_last_child (node_key ist letztes Kind des Knotensrelatkey)

simple_tree->relat_prev_sibling (node_key wird vor relatkey aufgleicher Hierarchiestufe eingefügt)

simple_tree->relat_next_sibling (node_key wird nach relatkeyauf gleicher Hierarchiestufe eingefügt)

simple_tree->relat_first_sibling (node_key wird vor allen Knoteneingefügt, die die gleiche Hierarchiestufe wie relatkey besitzen)

simple_tree->relat_last_sibling (node_key wird nach allen Knoteneingefügt, die die gleiche Hierarchiestufe wie relatkey besitzen)

hidden initial: Knoten wird angezeigt

‘X’: Knoten wird nicht angezeigt

disabled initial: Knoten selektierbar

‘X’: Knoten nicht selektierbar

isfolder initial: Knoten hat keine Unterknoten

‘X’: Knoten besitzt Unterknoten

n_image Angabe einer selbstdefinierten Ikone für einen geschlossenen Ordner bzw. einBlatt:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit der Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

exp_image Angabe einer selbstdefinierten Ikone für einen geöffneten Ordner:

' ': Es wird die Default-Ikone verwendet

'@xy@': Es wird die Ikone mit der Namen xy verwendet

'BNONE': Es wird keine Ikone verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

style Stil des Knotens.

no_branch initial: Es wird eine Zweiglinie zum Knoten gezeichnet

'X': Es wird keine Zweiglinie zum Knoten gezeichnet.

expander initial: Knoten hat kein '+'-Symbol zum Expandieren

‘X’: Knoten muß Ordner sein (isfolder = 'X') und hat ein '+'-Symbol zumExpandieren. Besitzt der Knoten beim Expandieren noch keine Kinder, wird dasEreignis EXPAND_NO_CHILDREN ausgelöst.

Page 191: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_nodes

April 2001 191

text Dieses Feld wird nur im Modus einfache Baumstruktur verwendet (Definitioneiner eigenen Knotenstruktur im Dictionary). Übergeben Sie im Modus einfacheBaumstruktur in dieses Feld den anzuzeigenden Text.

u_all Alle veränderbaren Eigenschaften sollen verändert werden

u_hidden Die Eigenschaft hidden soll verändert werden

u_disabled Die Eigenschaft disabled soll verändert werden

u_isfolder Die Eigenschaft is_folder soll verändert werden

u_n_image Die Eigenschaft n_image soll verändert werden

u_exp_imag Die Eigenschaft exp_image soll verändert werden

u_style Die Eigenschaft style soll verändert werden

u_no_branch Die Eigenschaft no_branch soll verändert werden

u_expander Die Eigenschaft expander soll verändert werden

u_text Der Text des Knotens soll verändert werden

Die hidden- und die is_folder Eigenschaft sollen geändert werden: Den Feldernhidden und is_folder werden Werte zugewiesen. Die Flags u_hidden undu_is_folder werden gesetzt, um die Felder hidden und is_folder zurÄnderung auszuwählen.

Das Feld u_all wählt alle Eigenschaften zur Änderung aus, zu denen ein u_Flagexistiert.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 192: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_GUI_LIST_TREE

192 April 2001

Methoden der Klasse CL_GUI_LIST_TREE

Page 193: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

constructor

April 2001 193

constructorDiese Methode wird für die Instanzierung eines List Tree verwendet.CREATE OBJECT list_tree

EXPORTING lifetime = lifetimeparent = parentshellstyle = shellstylenode_selection_mode = node_selection_modehide_selection = hide_selectionitem_selection = item_selectionwith_headers = with_headershierarchy_header = hierarchy_headerlist_header = list_header

EXCEPTIONS lifetime_error = 1cntl_system_error = 2create_error = 3illegal_node_selection_mode = 4failed = 5.

Parameter Bedeutung

lifetime Parameter für das Lifetime Management [Extern]. Folgende Werte sindmöglich:

list_tree->lifetime_imode: Das Control lebt, solange derinterne Modus nicht abgebaut wird (z.B.: leave program.leave transaction. set screen 0, leave screen.).Danach wird die Methode finalize [Seite 492] aufgerufen

list_tree->lifetime_dynpro: Das Control lebt, solange dieInstanz des Dynpros existiert, d.h. sich noch im Dynprostapelbefindet. Danach wird die Methode free [Seite 490] aufgerufen.Die Benutzung dieses Modus regelt automatisch die Sichtbarkeitvon Controls. Controls werden immer nur dann eingeblendet, wenndas Dynpro aktiv ist, auf dem sie erzeugt wurden. Ist ein anderesDynpro aktiv, werden sie automatisch unsichtbar geschaltet.

list_tree->lifetime_default: Wird das Control in einenContainer eingebaut, übernimmt es die Lebensdauer desContainers. Wird es nicht in einen Container eingebaut (z.B. weiles selbst ein Container ist), dann wird die Lebensdauer aufsimple_tree->lifetime_imode gesetzt.

parent Container, in dem das SAP Tree angezeigt werden kann (Siehe SAPContainer [Extern])

node_selection_mode list_tree->node_sel_mode_single: nur Einfachselektion erlaubt

list_tree->node_sel_mode_multiple: Mehrfachselektionerlaubt

hide_selection Eine Selektion wird optisch nicht sichtbar gemacht

Page 194: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

constructor

194 April 2001

item_selection Kennzeichen, ob einzelne Einträge selektierbar sein sollen. Wurdediese Eigenschaft gesetzt, wird der Knoten einzig durch seine Ikoneselektierbar.

Wird diese Eigenschaft nicht gesetzt, ist der ganze Knoten als Einheitselektierbar

with_headers Kennzeichen, ob Überschriften verwendet werden

hierarchy_header Struktur mit der Definition der ersten Überschrift

list_header Struktur mit der Definition der folgenden Überschrift

Page 195: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_last_hierarchy_item

April 2001 195

node_set_last_hierarchy_itemDiese Methode legt für einen bestimmten Knoten fest, welcher Eintrag als letzter unter derHierarchieüberschrift stehen soll. Die nachfolgenden Einträge stehen dann unter derListenüberschrift.CALL METHOD list_tree->node_set_last_hierarchy_item

EXPORTING node_key = node_keylast_hierarchy_item = last_hierarchy_item

EXCEPTIONS failed = 1node_not_found = 2cntl_system_error = 3tree_has_no_headers = 4.

Parameter Bedeutung

node_key Knoten, der verändert werden sollen.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

last_hierarchy_item Name des Eintrags, der als letzter unter der Hierarchieüberschrift stehensoll.

Der Parameter wird mit Bezug auf den Typ tv_itmname angelegt

Page 196: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_t_image

196 April 2001

hierarchy_header_set_t_imageMit dieser Methode können Sie eine Ikone für die Hierarchieüberschrift definieren.CALL METHOD list_tree->hierarchy_header_set_t_image

EXPORTING t_image = t_imageEXCEPTIONS tree_has_no_headers = 1

failed = 2cntl_system_error = 3.

Parameter Bedeutung

t_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 197: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

list_header_set_t_image

April 2001 197

list_header_set_t_imageMit dieser Methode können Sie eine Ikone für die Listenüberschrift definieren.CALL METHOD list_tree->LIST_HEADER_SET_T_IMAGE

EXPORTING t_image = t_imageEXCEPTIONS tree_has_no_headers = 1

failed = 2cntl_system_error = 3.

Parameter Bedeutung

t_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

'BNONE': Es wird kein Symbol verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 198: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_text

198 April 2001

hierarchy_header_set_textMit dieser Methode können Sie den Text der Hierarchieüberschrift verändern.CALL METHOD list_tree->hierarchy_header_set_text

EXPORTING text = textEXCEPTIONS tree_has_no_headers = 1

failed = 2cntl_system_error = 3.

Parameter Bedeutung

text Text der Hierarchieüberschrift

Der Parameter wird mit Bezug zu dem Typ tv_heading angelegt.

Page 199: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

list_header_set_text

April 2001 199

list_header_set_textMit dieser Methode können Sie den Text der Listüberschrift verändern.CALL METHOD list_tree->list_header_set_text

EXPORTING text = textEXCEPTIONS tree_has_no_headers = 1

failed = 2cntl_system_error = 3.

Parameter Bedeutung

text Text der Listüberschrift

Der Parameter wird mit Bezug zu dem Typ tv_heading angelegt.

Page 200: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_width

200 April 2001

hierarchy_header_set_widthMit dieser Methode legen Sie die Breite der Hierarchieüberschrift fest.CALL METHOD list_tree->hierarchy_header_set_width

EXPORTING width = widthwidth_pix = width_pix

EXCEPTIONS tree_has_no_headers = 1failed = 2cntl_system_error = 3.

Parameter Bedeutung

width Breite der Überschrift

width_pix ‘X’: Die Länge wird in Pixel interpretiert

‘ ‘: Die Länge wird in Zeichen interpretiert

Page 201: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hiearchy_header_get_width

April 2001 201

hiearchy_header_get_widthDiese Methode liefert die aktuelle Breite der Hierarchieüberschrift zurück. Die Breite wird in Pixelangegeben.CALL METHOD list_tree->hierarchy_header_get_width

IMPORTING width = widthwidth_pix = width_pix

EXCEPTIONS failed = 1cntl_system_error = 2tree_has_no_headers = 3.

Parameter Bedeutung

width Breite der Überschrift

width_pix 'X': Breite in Pixels

Page 202: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_adjust_width

202 April 2001

hierarchy_header_adjust_widthMit diesem Methodenaufruf können Sie die Breite der Überschriften derart anpassen, daß derInhalt der darunterliegenden Einträge komplett sichtbar ist.CALL METHOD list_tree->hierarchy_header_adjust_width

EXCEPTIONS failed = 1cntl_system_error = 2tree_has_no_headers = 3.

Page 203: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_alignment

April 2001 203

item_set_alignmentMit dieser Methode legen Sie die Ausrichtung eines Eintrags fest.CALL METHOD list_tree->item_set_alignment

EXPORTING node_key = node_keyitem_name = item_namealignment = alignment

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, für den die Ausrichtung gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

alignment list_tree->align_left: linksbündig

list_tree->align_right: rechtsbündig

list_tree->align_center: zentriert

list_tree->align_auto: automatische Ausrichtung

Page 204: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_length

204 April 2001

item_set_lengthDiese Methode verändert die angezeigte Länge eines bestimmten Eintrags.CALL METHOD list_tree->item_set_length

EXPORTING node_key = node_keyitem_name = item_namelength = lengthlength_pix = length_pix

EXCEPTIONS failed = 1node_not_found = 2item_not_found = 3cntl_system_error = 4.

Parameter Bedeutung

node_key Knoten, dessen Eintrag im SAP Tree verändert werden soll.

Der Parameter wird mit Bezug auf den Typ tv_nodekey definiert.

item_name Name des Eintrags, für den die Ausrichtung gesetzt werden soll.

Der Parameter wird mit Bezug auf den Typ tv_itmname definiert.

length Anzuzeigende Länge des Eintrags

length_pix ‘X’: Die Länge wird in Pixel interpretiert

‘ ‘: Die Länge wird in Zeichen interpretiert

Page 205: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_tooltip

April 2001 205

hierarchy_header_set_tooltipMit dieser Methode können Sie für die Hierarchieüberschrift einen Text setzen, der immer dannangezeigt wird, wenn der Benutzer die Maus auf der Hierarchieüberschrift positioniert.CALL METHOD list_tree->hierarchy_header_set_tooltip

EXPORTING tooltip = tooltipEXCEPTIONS tree_has_no_headers = 1

failed = 2cntl_system_error = 3.

Parameter Bedeutung

tooltip Text

Page 206: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

list_header_set_tooltip

206 April 2001

list_header_set_tooltipMit dieser Methode können Sie für die Listüberschrift einen Text setzen, der immer dannangezeigt wird, wenn der Benutzer die Maus auf der Listüberschrift positioniert.CALL METHOD list_tree->list_header_set_tooltip

EXPORTING tooltip = tooltipEXCEPTIONS tree_has_no_headers = 1

failed = 2cntl_system_error = 3.

Parameter Bedeutung

tooltip Text

Page 207: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_GUI_COLUMN_TREE

April 2001 207

Methoden der Klasse CL_GUI_COLUMN_TREE

Page 208: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

constructor

208 April 2001

constructorDiese Methode wird für die Instanzierung eines SAP Tree im Baummodus verwendet.CREATE OBJECT column_tree

EXPORTING lifetime = lifetimeparent = parentshellstyle = shellstylenode_selection_mode = node_selection_modehide_selection = hide_selectionitem_selection = item_selectionhierarchy_column_name = hierarchy_column_namehierarchy_header = hierarchy_header

EXCEPTIONS lifetime_error = 1cntl_system_error = 2create_error = 3illegal_node_selection_mode = 4failed = 5illegal_column_name = 6.

Parameter Bedeutung

lifetime Parameter für das Lifetime Management [Extern]. Folgende Wertesind möglich:

column_tree->lifetime_imode: Das Control lebt, solange derinterne Modus nicht abgebaut wird (z.B.: leave program.leave transaction. set screen 0, leave screen.).Danach wird die Methode finalize [Seite 492] aufgerufen.

column_tree->lifetime_dynpro: Das Control lebt, solange dieInstanz des Dynpros existiert, d.h. sich noch im Dynprostapelbefindet. Danach wird die Methode free [Seite 490] aufgerufen.Die Benutzung dieses Modus regelt automatisch die Sichtbarkeitvon Controls. Controls werden immer nur dann eingeblendet,wenn das Dynpro aktiv ist, auf dem sie erzeugt wurden. Ist einanderes Dynpro aktiv, werden sie automatisch unsichtbargeschaltet.

column_tree->lifetime_default: Wird das Control in einenContainer eingebaut, übernimmt es die Lebensdauer desContainers. Wird es nicht in einen Container eingebaut (z.B. weiles selbst ein Container ist), dann wird die Lebensdauer aufsimple_tree->lifetime_imode gesetzt.

parent Container, in dem das SAP Tree angezeigt werden kann (SieheSAP Container [Extern])

node_selection_mode column_tree->node_sel_mode_single: nur Einfachselektionerlaubt

column_tree->node_sel_mode_multiple: Mehrfachselektionerlaubt

hide_selection Eine Selektion wird optisch nicht sichtbar gemacht

Page 209: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

constructor

April 2001 209

item_selection Kennzeichen, ob einzelne Einträge selektierbar sein sollen. Wurdediese Eigenschaft gesetzt, wird der Knoten einzig durch seine Ikoneselektierbar.

Wird diese Eigenschaft nicht gesetzt, ist der ganze Knoten alsEinheit selektierbar

hierarchy_column_name Name der Spaltenüberschrift

hierarchy_header Struktur mit der Definition der ersten Überschrift

Page 210: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_column

210 April 2001

add_columnMit dieser Methode fügen Sie eine neue Spalte in den Baum ein. Die Spalte wird nicht unter dieHierarchieüberschrift eingefügt, sondern hat eine eigene Überschrift.CALL METHOD column_tree->add_column

EXPORTING name = namehidden = hiddendisabled = disabledalignment = alignmentwidth = widthwidth_pix = width_pixheader_image = header_imageheader_text = header_textheader_tooltip = header_tooltip

EXCEPTIONS column_exists = 1illegal_column_name = 2too_many_columns = 3illegal_alignment = 4different_column_types = 5cntl_system_error = 6failed = 7predecessor_column_not_found = 8.

Parameter Bedeutung

name Technischer Name der Spalte

hidden ' ': Spalte ist sichtbar

'X': Spalte ist nicht mehr sichtbar

disabled 'X': Spalte ist selektierbar

' ': Spalte ist nicht selektierbar

alignment column_tree->align_left: linksbündig

column_tree->align_right: rechtsbündig

column_tree->align_center: zentriert

width Breite der Überschrift

width_pix ‘X’: Die Breite wird in Pixel interpretiert

‘ ‘: Die Breite wird in Zeichen interpretiert

header_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

header_text Text der Hierarchieüberschrift

Der Parameter wird mit Bezug zu dem Typ tv_heading angelegt.

header_tooltip Text, der immer dann angezeigt wird, wenn der Benutzer die Maus auf derÜberschrift positioniert.

Page 211: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_column

April 2001 211

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 212: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_hierarchy_column

212 April 2001

add_hierarchy_columnDiese Methode fügt eine neue Spalte hinzu. Diese Spalte wird unter die Hierarchieüberschriftgruppiert.CALL METHOD column_tree->add_hierarchy_column

EXPORTING name = namehidden = hiddendisabled = disabled

EXCEPTIONS column_exists = 1illegal_column_name = 2too_many_columns = 3cntl_system_error = 4failed = 5.

Parameter Bedeutung

name Technischer Name der Spalte

hidden ' ': Spalte ist sichtbar

'X': Spalte ist nicht mehr sichtbar

disabled 'X': Spalte ist nicht selektierbar

' ': Spalte ist selektierbar

Unter einer Hierarchieüberschrift sollte immer nur eine Textspalte angeordnetwerden. Weitere Spalten sollten Ikonen, Ankreuzfelder, … enthalten.

Page 213: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

adjust_column_width

April 2001 213

adjust_column_widthMit diesem Methodenaufruf können Sie die Breite der Spalten derart anpassen, daß der Inhaltder Spalten komplett sichtbar ist. Die Angabe der Spalten kann über ein Intervall (Spalte n bisSpalte m) oder über die Angabe, daß alle Spalten angepaßt werden sollen, erfolgen.CALL METHOD column_tree->adjust_column_width

EXPORTING start_column = start_columnend_column = end_columnall_columns = all_columns

EXCEPTIONS start_column_not_found = 1end_column_not_found = 2start_column_in_hierarchy = 3end_column_in_hierarchy = 4start_column_empty = 5cntl_system_error = 6failed = 7.

Parameter Bedeutung

start_column Technischer Name der ersten anzupassenden Spalte außerhalb derHierarchieüberschrift

end_column Technischer Name der letzten anzupassenden Spalte außerhalb derHierarchieüberschrift

all_columns 'X': Die Anpassung erfolgt über alle Spalten des Baums inklusive derHierarchieüberschrift.

Page 214: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_get_width

214 April 2001

column_get_widthDiese Methode liefert die aktuelle Breite der angegebenen Spalte zurück. Die Breite wird in Pixelangegeben.CALL METHOD column_tree->column_get_width

EXPORTING column_name = column_nameIMPORTING width = widthEXCEPTIONS failed = 1

column_not_found = 2hierarchy_column = 3cntl_system_error = 4.

Parameter Bedeutung

column_name Technischer Name der Spalte

width Breite der Überschrift

Page 215: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_set_disabled

April 2001 215

column_set_disabledMit diesem Methodenaufruf können Sie eine Spalte inaktivieren. Dadurch wird diese Spalte nichtmehr selektierbar. Weiterhin sind auf dieser Spalte keine Aktionen wie Doppelklick möglich.CALL METHOD column_tree->column_set_disabled

EXPORTING column_name = column_namedisabled = disabled

EXCEPTIONS failed = 1column_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

column_name Technischer Name der Spalte

disabled 'X': Spalte ist inaktiv

' ': Spalte ist aktiv

Page 216: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_set_heading_image

216 April 2001

column_set_heading_imageMit dieser Methode können Sie eine Ikone für die Spaltenüberschrift setzen.CALL METHOD column_tree->column_set_heading_image

EXPORTING column_name = column_nameimage = image

EXCEPTIONS failed = 1column_not_found = 2hierarchy_column = 3cntl_system_error = 4.

Parameter Bedeutung

column_name Technischer Name der Spalte

image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

'BNONE': Es wird kein Symbol verwendet. Dadurch verschiebt sich die Ausgabedes Knotens nach vorn.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 217: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_set_heading_text

April 2001 217

column_set_heading_textMit dieser Methode können Sie den Text der Spaltenüberschrift verändern.CALL METHOD column_tree->column_set_heading_text

EXPORTING column_name = column_nametext = text

EXCEPTIONS failed = 1column_not_found = 2hierarchy_column = 3cntl_system_error = 4.

Parameter Bedeutung

column_name Technischer Name der Spalte

text Text der Hierarchieüberschrift

Der Parameter wird mit Bezug zum Typ tv_heading angelegt.

Page 218: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_set_heading_tooltip

218 April 2001

column_set_heading_tooltipMit dieser Methode können Sie für die Überschrift einer Spalte einen Text setzen, der immerdann angezeigt wird, wenn der Benutzer die Maus auf der Überschrift positioniert.CALL METHOD column_tree->column_set_heading_tooltip

EXPORTING column_name = column_nametooltip = tooltip

EXCEPTIONS failed = 1column_not_found = 2hierarchy_column = 3cntl_system_error = 4.

Parameter Bedeutung

column_name Technischer Name der Spalte

tooltip Text

Page 219: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_set_hidden

April 2001 219

column_set_hiddenMit dieser Methode können Sie eine bestimmte Spalte ausblenden.CALL METHOD column_tree->column_set_hidden

EXPORTING column_name = column_namehidden = hidden

EXCEPTIONS failed = 1column_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

column_name Technischer Name der Spalte

hidden ' ': Eintrag ist sichtbar

'X': Eintrag ist nicht mehr sichtbar

Page 220: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_set_width

220 April 2001

column_set_widthMit dieser Methode legen Sie die Breite der Spaltenüberschrift fest.CALL METHOD column_tree->column_set_width

EXPORTING column_name = column_namewidth = widthwidth_pix = width_pix

EXCEPTIONS failed = 1column_not_found = 2hierarchy_column = 3cntl_system_error = 4.

Parameter Bedeutung

column_name Technischer Name der Spalte

width Breite der Überschrift

width_pix ‘X’: Die Breite wird in Pixel interpretiert

‘ ‘: Die Breite wird in Zeichen interpretiert

Page 221: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_column

April 2001 221

delete_columnMit dieser Methode löschen Sie eine Spalte.CALL METHOD column_tree->delete_column

EXPORTING column_name = column_nameEXCEPTIONS failed = 1

column_not_found = 2cntl_system_error = 3.

Parameter Bedeutung

column_name Technischer Name der Spalte

Page 222: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_column_order

222 April 2001

get_column_orderDiese Methode liefert die Reihenfolge der Spalten zurück. Dies ist wichtig, wenn Sie feststellenwollen, ob der Benutzer die Spaltenreihenfolge vertauscht hat.CALL METHOD column_tree->get_column_order

CHANGING columns = columnsEXCEPTIONS cntl_system_error = 1

dp_error = 2failed = 3.

Parameter Bedeutung

columns Interne Tabelle der definierten Spalten in ihrer Reihenfolge

Der Parameter wird mit Bezug auf den Typ treev_cona angelegt.

Page 223: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_adjust_width

April 2001 223

hierarchy_header_adjust_widthMit diesem Methodenaufruf können Sie die Breite der Hierarchieüberschrift derart anpassen, daßder Inhalt der Spalten komplett sichtbar ist.CALL METHOD column_tree->hierarchy_header_adjust_width

EXCEPTIONS failed = 1cntl_system_error = 2.

Page 224: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_get_width

224 April 2001

hierarchy_header_get_widthDiese Methode liefert die aktuelle Breite der Hierarchieüberschrift zurück. Die Breite wird in Pixelangegeben.CALL METHOD column_tree->hierarchy_header_get_width

IMPORTING width = widthwidth_pix = width_pix

EXCEPTIONS failed = 1cntl_system_error = 2.

Parameter Bedeutung

width Breite der Überschrift

width_pix 'X': Breite in Pixels

Page 225: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_text

April 2001 225

hierarchy_header_set_textMit dieser Methode können Sie den Text der Hierarchieüberschrift verändern.CALL METHOD column_tree->hierarchy_header_set_text

EXPORTING text = textEXCEPTIONS failed = 1

cntl_system_error = 2.

Parameter Bedeutung

text Text der Hierarchieüberschrift

Der Parameter wird mit Bezug zu dem Typ tv_heading angelegt.

Page 226: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_tooltip

226 April 2001

hierarchy_header_set_tooltipMit dieser Methode können Sie für die Hierarchieüberschrift einen Text setzen, der immer dannangezeigt wird, wenn der Benutzer die Maus auf der Überschrift positioniert.CALL METHOD column_tree->hierarchy_header_set_tooltip

EXPORTING tooltip = tooltipEXCEPTIONS failed = 1

cntl_system_error = 2.

Parameter Bedeutung

tooltip Text

Page 227: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_t_image

April 2001 227

hierarchy_header_set_t_imageMit dieser Methode können Sie eine Ikone für die Hierarchieüberschrift setzen.CALL METHOD column_tree->hierarchy_header_set_t_image

EXPORTING t_image = t_imageEXCEPTIONS failed = 1

cntl_system_error = 2.

Parameter Bedeutung

t_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 228: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_width

228 April 2001

hierarchy_header_set_widthMit dieser Methode legen Sie die Breite der Hierarchieüberschrift fest.CALL METHOD column_tree->hierarchy_header_set_width

EXPORTING width = widthwidth_pix = width_pix

EXCEPTIONS failed = 1cntl_system_error = 2.

Parameter Bedeutung

width Breite der Überschrift

width_pix ‘X’: Die Länge wird in Pixels interpretiert

‘ ‘: Die Länge wird in Zeichen interpretiert

Page 229: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

insert_column

April 2001 229

insert_columnDiese Methode fügt eine neue Spalte mit Überschrift hinter eine andere Spalte mit Überschrift inden Baum ein.CALL METHOD column_tree->insert_column

EXPORTING name = namepredecessor_column = predecessor_columnhidden = hiddendisabled = disabledalignment = alignmentwidth = widthwidth_pix = width_pixheader_image = header_imageheader_text = header_textheader_tooltip = header_tooltip

EXCEPTIONS column_exists = 1illegal_column_name = 2too_many_columns = 3illegal_alignment = 4different_column_types = 5cntl_system_error = 6failed = 7predecessor_column_not_found = 8.

Parameter Bedeutung

name Technischer Name der Spalte

predecessor_column Technischer Name der Vorgängerspalte. Die Vorgängerspalte darf keineHierarchiespalte sein.

initial: die Spalte wird als erste Spalte nach den Hierarchiespalteneingefügt.

hidden ' ': Spalte ist sichtbar

'X': Spalte ist nicht mehr sichtbar

disabled 'X': Spalte ist nicht selektierbar

' ': Spalte ist selektierbar

alignment column_tree->align_left: linksbündig

column_tree->align_right: rechtsbündig

column_tree->align_center: zentriert

width Breite der Überschrift

width_pix ‘X’: Die Breite wird in Pixel interpretiert

‘ ‘: Die Breite wird in Zeichen interpretiert

header_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

Page 230: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

insert_column

230 April 2001

header_text Text der Hierarchieüberschrift

Der Parameter wird mit Bezug zu dem Typ tv_heading angelegt.

header_tooltip Text, der immer dann angezeigt wird, wenn der Benutzer die Maus aufder Überschrift positioniert.

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 231: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

insert_hierarchy_column

April 2001 231

insert_hierarchy_columnDiese Methode fügt eine neue Spalte hinter einer bestimmten Spalte hinzu. Diese Spalte wirdunter die Hierarchieüberschrift gruppiert.CALL METHOD column_tree->insert_hierarchy_column

EXPORTING name = namepredecessor_column = predecessor_columnhidden = hiddendisabled = disabled

EXCEPTIONS column_exists = 1illegal_column_name = 2too_many_columns = 3different_column_types = 4cntl_system_error = 5failed = 6predecessor_column_not_found = 7.

Parameter Bedeutung

name Technischer Name der Spalte

predecessor_column Technischer Name der Vorgängerspalte

hidden ' ': Spalte ist sichtbar

'X': Spalte ist nicht mehr sichtbar

disabled 'X': Spalte ist nicht selektierbar

' ': Spalte ist selektierbar

Page 232: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_column_order

232 April 2001

set_column_orderMit dieser Methode können Sie die Spaltenreihenfolge neu definieren.CALL METHOD column_tree->set_column_order

EXPORTING columns = columnsEXCEPTIONS cntl_system_error = 1

dp_error = 2failed = 3column_not_found = 4hierarchy_column = 5wrong_column_set = 6.

Parameter Bedeutung

columns Interne Tabelle der definierten Spalten in der neu zu definierenden Reihenfolge

Der Parameter wird mit Bezug auf den Typ treev_cona angelegt.

Page 233: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_column

April 2001 233

update_columnMit dieser Methode können Sie die Eigenschaften einer Spalte verändern.CALL METHOD column_tree->update_column

EXPORTING name = namehidden = hiddendisabled = disabledalignment = alignmentheader_image = header_imageheader_text = header_textheader_tooltip = header_tooltipupdate_width = update_widthwidth = widthwidth_pix = width_pix

EXCEPTIONS illegal_alignment = 1cntl_system_error = 2failed = 3hierarchy_column = 4column_not_found = 5.

Parameter Bedeutung

name Technischer Name der Spalte

hidden ' ': Spalte ist sichtbar

'X': Spalte ist nicht mehr sichtbar

disabled 'X': Spalte ist nicht selektierbar

' ': Spalte ist selektierbar

alignment list_tree->align_left: linksbündig

list_tree->align_right: rechtsbündig

list_tree->align_center: zentriert

header_image ' ': Es wird keine Ikone verwendet

'@xy@': Es wird die SAP-Ikone mit dem Namen xy verwendet

header_text Text der Hierarchieüberschrift

Der Parameter wird mit Bezug auf den Typ tv_heading angelegt.

header_tooltip Text, der immer dann angezeigt wird, wenn der Benutzer die Maus auf derÜberschrift positioniert.

update_width 'X': Breite der Spalte soll gemäß dem Parameter width verändert werden

' ': Breite der Spalte wird nicht verändert

width Breite der Überschrift

width_pix ‘X’: Die Länge wird in Pixels interpretiert

‘ ‘: Die Länge wird in Zeichen interpretiert

Page 234: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_column

234 April 2001

Die Ikone kann über ihren Namen (z.B. ICON_ANNOTATION) angesprochen werden.Dazu muß aber in Ihrem Programm das Include <ICON> eingebunden werden.

Page 235: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

SAP Tree Model

April 2001 235

SAP Tree ModelEinsatzmöglichkeitenDas SAP Tree Model wurde zur Ergänzung des SAP Tree Control eingeführt. Im Gegensatz zumSAP Tree Control, das zur reinen Datenanzeige dient und keine Verwaltungsfunktionen umfaßt,hält das SAP Tree Model alle anzuzeigenden Daten auf dem Anwendungsserver. DasAnwendungsprogramm muß nicht direkt mit dem Baum auf dem Frontend, sondern nur mit demTree Model kommunizieren. Darüber hinaus gewährleistet das Tree Model optimale Performance- ein wichtiger Aspekt bei der Tree-Control-Programmierung, der bisher in der Verantwortung desAnwendungsentwicklers lag.

EinführungshinweiseVerwenden Sie das SAP Tree Model immer dann, wenn Sie Daten in einer hierarchischenBaumstruktur anzeigen möchten.

FunktionsumfangWie der SAP Tree liegt das SAP Tree Model in drei Varianten vor (siehe Überblick über dieKlassen des SAP Tree Model [Seite 236]):

• Simple Tree

• List Tree

• Column Tree

Darüber hinaus bietet das SAP Tree Model Funktionen, die seine Bedienung im Vergleich zumnormalen SAP Tree komfortabler gestalten:

• Automatische Synchronisation zwischen dem Tree Model auf dem Anwendungsserver unddem Tree Control am Frontend

• Automatische Flush-Handhabung

• Such- und Druckfunktionen

• Gültigkeitsprüfung von Knotendaten, bevor sie an den Frontend geschickt werden (verringertdas Risiko des Laufzeitfehlers CNTL_ERROR)

• Automatische Steuerung der an den Frontend gesendeten Datenmenge und desSendezeitpunkts

• Möglichkeit zur Anzeige des Baums in Tabellenform

• Frei verwendbare Objektreferenz, der Sie ein anwendungsbezogenes Objekt zuordnenkönnen

EinschränkungenEinige Funktionen des SAP Tree Model können im SAP GUI for HTML nicht ausgeführt werden.Nähere Informationen finden Sie unter Die Tree Controls im SAP GUI for HTML [Seite 14].

Page 236: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Übersicht über die Klassen des SAP Tree Model

236 April 2001

Übersicht über die Klassen des SAP Tree ModelSimple Tree ModelDie Klasse CL_SIMPLE_TREE_MODEL verschalt den Simple Tree.

Beispielprogramm: SAPSIMPLE_TREE_MODEL_DEMO:

Eigenschaften

• Ein Knoten besteht aus einem Ordner-/Blatt-Symbol und einem Text.

• Ankreuzfelder und zusätzliche Ikonen sind nicht möglich.

• Pro Knoten ist nur ein Text möglich.

• Es gibt keine Überschrift.

Column Tree ModelDie Klasse CL_COLUMN_TREE_MODEL verschalt das Column Tree Model.

Beispielprogramm: SAPCOLUMN_TREE_MODEL_DEMO:

Page 237: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Übersicht über die Klassen des SAP Tree Model

April 2001 237

Eigenschaften

• Ein Knoten besteht aus einem Ordner-/Blatt-Symbol und mehreren Einträgen (Items).

• Die Einträge eines Knotens sind in Spalten angeordnet.

In diesem Beispiel hat der Baum drei Spalten. Diese Spalten haben die logischenNamen 'Column1', 'Column2' und 'Column3'. Der oberste Knoten hat in jeder dieserSpalten einen Eintrag:

'Root Col. 1' in der Spalte 'Column1'

'Root Col. 2' in der Spalte 'Column2'

'Root Col. 3' in der Spalte 'Column3'

• In einem Column Tree gibt es zwei Arten von Spalten:

− Spalten im Hierarchiebereich: Diese Spalten befinden sich unterhalb derHierarchieüberschrift. Die Hierarchieüberschrift ist die erste Überschrift von links imBaum (im Beispiel, 'Hierarchy Header'). Üblicherweise befindet sich genau eine Spalteim Hierarchiebereich. Im Beispiel ist dies die Spalte mit dem Namen 'Column1', welchedie Einträge 'Root Col.1 ', 'Child1 Col. 1' usw. enthält.

− Spalten außerhalb des Hierarchiebereichs: Diese Spalten haben eine eigene Überschrift.Im Beispiel gibt es zwei Spalten außerhalb des Hierarchiebereichs, die die Überschriften'Column2' und 'Column3' haben.

• Es gibt folgende Arten von Einträgen:

− Text: Text mit optionaler Ikone

− Ankreuzfeld: Ankreuzfeld mit optionaler Ikone und mit Text

− Drucktaste: Drucktaste mit Text und Ikone

− Link: Wie Text, jedoch wird zusätzlich ein Ereignis ausgelöst, wenn der Link angeklicktwird

Page 238: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Übersicht über die Klassen des SAP Tree Model

238 April 2001

List Tree ModelDie Klasse CL_LIST_TREE_MODEL verschalt den Column Tree.

Beispielprogramm: SAPLIST_TREE_MODEL_DEMO::

Eigenschaften

• Ein Knoten besteht aus einem Ordner-/Blatt-Symbol und Einträgen.

• Die Einträge eines Knotens werden von links nach rechts ausgegeben.

Aufbau der ersten drei Knoten im Beispiel:

Der oberste Knoten hat einen Eintrag („Objekte“). Bei diesem Eintrag istProportionalschrift eingestellt. Zusätzlich ist „automatische Breite“ eingestellt, d.h.,die Ausgabebreite des Eintrags wird dem Inhalt (dem String „Objekte“) angepaßt.

Der zweite Knoten von oben ist analog zum ersten aufgebaut: Ein Eintrag mit demText "Dynpros".

Der dritte Knoten von oben besitzt vier Einträge:

Haken-Ikone, Breite vier Zeichen

0100, keine Proportionalschrift, Breite vier Zeichen

MUELLER, Breite 11 Zeichen, keine Proportionalschrift

Comment to Dynpro 100, Proportionalschrift, automatische Breite

• Die Verwendung von Einträgen mit nicht-proportionaler Schrift und einer vorgegebenenAusgabebreite ermöglicht tabellenartige Formatierungen wie im Beispiel.

• Es gibt folgende Arten von Spalteneinträgen:

− Text: Text mit optionaler Ikone

− Ankreuzfeld: Ankreuzfeld mit optionaler Ikone und mit Text

Page 239: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Übersicht über die Klassen des SAP Tree Model

April 2001 239

− Drucktaste: Drucktaste mit Text und Ikone

− Link: Wie Text, jedoch wird zusätzlich ein Ereignis ausgelöst, wenn der Link angeklicktwird

• Es gibt eine Hierarchieüberschrift und eine Listenüberschrift, unter denen alle Einträgegruppiert werden können.

Page 240: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Die Vererbungshierarchie

240 April 2001

Die VererbungshierarchieDie Klassen, die im SAP Tree Model verwendet werden, bilden folgende Vererbungshierarchie:

CL_TREE_MODEL

CL_SIMPLE_TREE_MODEL

CL_LIST_TREE_MODEL

CL_COLUMN_TREE_MODEL

CL_ITEM_TREE_MODEL

CL_TREE_MODEL enthält Methoden, die von allen drei Ausprägungen des Tree Model verwendetwerden. Darüber hinaus nutzen CL_LIST_TREE_MODEL und CL_COLUMN_TREE_MODEL einigeMethoden gemeinsam, die in der Oberklasse CL_ITEM_TREE_MODEL definiert sind.

Page 241: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Fehlersuche

April 2001 241

FehlersucheFehler bei der Control-Verarbeitung treten häufig erst beim Sychronisieren der AutomationQueue [Extern] auf. Die Synchronisation erfolgt entweder explizit über den Aufruf der MethodeCL_GUI_CFW=>FLUSH [Seite 484] oder implizit nach dem Durchlaufen des letzten PBO-Moduls.

Tritt der Fehler beim expliziten Synchronisieren auf, wird die Ausnahme CNTL_ERROR derMethode CL_GUI_CFW=>FLUSH ausgelöst. Tritt der Fehler beim impliziten Synchronisieren auf,kommt es in der Regel zu einem Kurzdump. Sie können den Kurzdump vermeiden, indem Siespezielle Ereignisse des Control Frameworks verarbeiten.

Das Auslösen der Ausnahme CNTL_ERROR sagt zunächst nur aus, daß ein Methodenaufruf aufeinem Control am Frontend nicht erfolgreich abgesetzt werden konnte. Daher muß nuneingegrenzt werden, welches Control am Frontend zu dieser Ausnahme führte und warum dasControl diese Ausnahme auslöste. Dazu verwenden Sie den Debugger:

5. Führen Sie das Programm erneut im Debugger aus.

6. Verzweigen Sie in die Einstellungen des Debuggers, und markieren Sie das AnkreuzfeldAutomation Controller: Aufträge immer synchron verarbeiten.Diese Einstellung führt dazu, daß nach jedem Methodenaufruf die Automation Queuesynchronisiert wird.

7. Debuggen Sie über die einzelnen Methodenaufrufe hinweg. Beachten Sie, daß derSY-SUBRC nach dem fehlerhaften Methodenaufruf gesetzt wird, sofern Sie dieAusnahmebehandlung der Methode in Ihrem Applikationsprogramm abgefragt haben.Ansonsten erhalten Sie an dieser Stelle wieder einen Kurzdump.

8. Überprüfen Sie, warum der Methodenaufruf fehlerhaft ist.

Im Fehlerfall sollten Sie zuerst die Beispielprogramme zur jeweiligen Control-Verschalung ausführen. Tritt auch hier ein Fehler auf, handelt es sich um einInstallationsproblem des lokalen SAP GUI.

Nach dem Auftreten eines CNTL_ERROR darf mit Controls in der Regel nicht mehrweitergearbeitet werden. Vor allem ist zu beachten, daß Einträge in der AutomationQueue, die nach dem Fehler stehen, nicht mehr durchgeführt wurden.

Sofern der Fehler bei der ersten Synchronisation der Automation Queue aufgetretenist, kann eventuell auch der Automation Controller nicht mehr aktiv sein. Dies führtdazu, daß alle nachfolgenden Control-Aufrufe mit einem CNTL_ERROR abbrechen.

Page 242: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Wichtige Hinweise

242 April 2001

Wichtige HinweiseDie Exceptions des SAP Tree Model setzen keine Nachrichten.

Die Exceptions von Methoden und Flush-Aufrufen des SAP Tree Model dürfen auf keinen Fallignoriert werden. Tritt ein Fehler auf, wird die Abarbeitung der Automation Queue abgebrochen.Hiervon sind sämtliche Controls eines internen Modus betroffen. Nach dem Auftreten desFehlers darf ein interner Modus nicht mehr mit Controls weiterarbeiten.

Das SAP Tree Model ist nicht zur Darstellung von Listen ohne Hierarchie geeignet, da alleWurzelknoten immer ans Frontend übertragen werden müssen. Listen mit vielen Einträgenkönnen somit zu Performance-Problemen führen.

Page 243: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Beispielprogramme

April 2001 243

BeispielprogrammeDie Entwicklungsklasse SEU_TREE_MODEL enthält folgende Beispielprogramme. Sie zeigen, wiedie drei Varianten des Tree Model programmiert werden.

Programmname Veranschaulicht

SAPSIMPLE_TREE_MODEL_DEMO Simple Tree Model

SAP_SIMPLE_TREEM_DRAG_DROP_DEMO Drag&Drop mit dem Simple Tree Model

SAPCOLUMN_TREE_MODEL_DEMO Column Tree Model

SAP_LIST_TREE_MODEL_DEMO List Tree Model

Page 244: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Verwendung von Controls im WAN

244 April 2001

Verwendung von Controls im WANDie Verwendung von Controls zur Oberflächengestaltung führt in der Regel zu einer Belastungdes Kommunikationskanals zwischen Frontend und Backend. Dies kann schon im LAN-, aberinsbesondere im WAN-Umfeld ein performance-kritischer Aspekt sein.

Puffermechanismen helfen, diese Problematik zu entschärfen (siehe auch Automation Queue[Extern]). Die aufgeführten Punkte sollen als Richtlinien bei der Verwendung von Controls imWAN dienen.

Control-spezifische Hinweise zur Verwendung im WAN finden Sie in der Dokumentation zu demjeweiligen Control.

Verwendung von CL_GUI_CFW=>FLUSHDer Aufruf CL_GUI_CFW=>FLUSH [Seite 484] dient zum Synchronisieren der AutomationQueue und der in der Queue enthaltenen ABAP-Variablen. Dieser Aufruf erzeugt in vielen Fälleneinen synchronen RFC vom Applikationsserver zum Frontend. Um optimale Performance zuerreichen, sollten die Aufrufe dieser Methode minimiert werden.

Es ist in vielen Fällen zu empfehlen, alle Eigenschaften von allen Controls zentral an einer Stelle(z.B. am Anfang des PAI) in einer Automation Queue zu lesen und dann über einen einmaligeSynchronisation zu besorgen. Diese Variante ist auch dann zu bevorzugen, wenn dabeiEigenschaften gelesen werden, die nicht immer für den Ablauf des Ereignisbehandlers bzw. desPAI – PBO Zyklus notwendig sind.

Es ist nicht notwendig, einen „Sicherheits-Flush“ am Ende von PBO zu codieren, damitMethodenaufrufe der Controls garantiert an das Frontend transportiert werden. DieseFunktionalität wird systemseitig garantiert, wenn das nächste Dynpro gesendet wird. Damit ist esauch nicht möglich, eine Automation Queue über mehrere Bildwechsel hinweg aufzubauen.

Es ist nicht garantiert, daß eine Automation Queue durch den Aufruf CL_GUI_CFW=>FLUSHgesendet wird. Die Queue erkennt, ob Returnwerte enthalten sind. Ist dies nicht der Fall,wird das Senden unterdrückt!Für alle Fälle, in denen auch bei einer Queue ohne Returnwert gewünscht wird, daß dieAutomation Queue synchron versendet wird, gibt es im Control Framework die MethodeCL_GUI_CFW=>UPDATE_VIEW [Seite 487]. Diese Methode darf nur dann verwendet werden,wenn es zwingend notwendig ist, ein Update des GUI zu erreichen. Beispiele hierfür sind sehrlange laufende Anwendungen, die in regelmäßigen Abständen dem Benutzer ein Feedback überden Fortschritt der Aktion anzeigen möchten.

Nach dem Lesen von Eigenschaften ist der Inhalt der entsprechenden ABAP-Variablen erst nachdem nächsten FLUSH garantiert. Solange dieser Aufruf nicht erfolgt ist, ist der Inhalt derentsprechenden ABAP-Variablen nicht definiert. In Zukunft wird es Fälle gegeben, in denendieser FLUSH unnötig sein wird. Diese Fälle werden von der Automation Queue erkannt; derentsprechende FLUSH-Call wird dann ignoriert.

Erzeugen von Controls, DatenversorgungDas Erzeugen eines Controls und die Datenversorgung ist in den meisten Fällen ein einmaligerVorgang und im Vergleich zu Dynproelementen sehr teuer. Deshalb sollten Controls nichtunnötig erzeugt bzw. nicht unnötig mit Daten versorgt werden.

Ein typisches Beispiel hierfür sind TabStrips mit mehreren Seiten. Wenn diese Seiten Controlstragen, ist immer abzuwägen, ob man auf lokale Seiten verzichtet und die Controls erst dann

Page 245: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Verwendung von Controls im WAN

April 2001 245

erzeugt, wenn der Benutzer die Seite aktiviert. Das gleiche trifft für die Datenversorgung dieserControls auf TabStrip-Seiten zu.

Muß bei der Datenversorgung eine Unterscheidung zwischen einer WAN- und einer LAN-Anmeldung vorgenommen werden, steht der Funktionsbaustein SAPGUI_GET_WANFLAG zurVerfügung. In manchen Fällen kann es notwendig werden, daß eine Anwendung andereDatenmengen oder ganze Fallbacks für die WAN-Anmeldung zur Verfügung stellen sollte. EinBeispiel, wann die WAN- bzw. LAN- Anmeldung einen Einfluß haben kann, ist die Anzahl vonGeschwistern in einem Tree Control, die ohne künstliche Zwischenebenen übertragen werdenkönnen.

Im Gegensatz zu Dynproelementen werden die Controls nur einmalig erzeugt und mit Datenversorgt. Controls werden unter Performance-Aspekten dann immer preiswerter, je länger dieseleben. In Anwendungen, die ständig neu aufgerufen und damit neu initialisiert werden, kann dieszu einem erheblichen Performance-Nachteil werden; in Anwendungen, die sehr lange auf dengleichen Bildern arbeiten, kann daraus sogar ein Performance-Vorteil entstehen.

Im Einzelfall kann über entsprechende Performance-Werkzeuge [Extern] überprüft werden,welche Nachteile oder Vorteile die Verwendung eines Controls unter dem Aspekt derNetzwerkauslastung bringt.

Ablegen von Dokumenten, Bildern etc.Zum Release 4.6A wird ein Frontend-Cache für Zugriffe auf Dokumente aus dem BDS (BusinessDokument Service) realisiert. Es wird dringend empfohlen, Office-Dokumente, Bilder etc. im BDSund nicht in der R/3-Datenbank abzulegen. Dokumente aus dem BDS können danach imFrontend-Cache abgelegt werden. Sie müssen nur einmalig über das Netz geladen werden.

Page 246: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Das Simple Tree Model

246 April 2001

Das Simple Tree ModelDefinitionSie erzeugen eine Instanz des Simple Tree Model mit Bezug auf die Klassecl_simple_tree_model:

DATA simple_model TYPE REF TO cl_simple_tree_model.

Über diese Instanz erhalten Sie Zugriff auf die Methoden der folgenden Klassen:

• cl_tree_model (siehe Methoden der Klasse CL_TREE_MODEL [Seite 265])

• cl_tree_model (siehe Methoden der Klasse CL_SIMPLE_TREE_MODEL [Seite 332])

VerwendungDie Verwendung des Simple Tree Model wird im Report sapsimple_tree_model_demodemonstriert.

Die Eigenschaften des Simple Tree werden in Übersicht über die Klassen des SAP Tree Model[Seite 236] beschrieben.

Page 247: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem Simple Tree Model

April 2001 247

Arbeiten mit dem Simple Tree ModelEinsatzmöglichkeitenIn diesem Abschnitt wird beschrieben, wie Sie eine Instanz des SAP Simple Tree Model anlegen,verwenden und abbauen.

VoraussetzungenDer hier beschriebene Prozeß ist eine Erweiterung des allgemeinen Prozesses zur Control-Einbindung [Seite 92], der speziell für das Simple Tree Model gilt. Er umfaßt nicht alle Schritte,die für das Anlegen einer gültigen Control-Instanz erforderlich sind.

Ablauf

Die Code-Abschnitte sind Beispiele, die nicht immer den vollen Funktionsumfangnutzen. Genauere Informationen finden Sie immer im Referenzteil dieserDokumentation.

Instanz für das Tree Model am Backend erzeugen1. Definieren Sie eine Referenzvariable für das Simple Tree Model:

DATA simple_model TYPE REF TO cl_simple_tree_model.

2. Erzeugen Sie eine Instanz des SAP Simple Tree Model:CREATE OBJECT simple_model

EXPORTING node_selection_mode = node_selection_modehide_selection = hide_selection

EXCEPTIONS illegal_node_selection_mode = 1.

Entsprechendes Frontend-Control erzeugen3. Rufen Sie die Methode create_tree_control für die Instanz simple_model auf.

Dadurch wird das Frontend-Control erzeugt, in dem die Daten aus dem Simple Tree Modelangezeigt werden.

CALL METHOD simple_model->create_tree_controlEXPORTING parent = containerEXCEPTIONS lifetime_error = 1

cntl_system_error = 2create_error = 3failed = 4tree_control_already_created = 5

Der Parent-Parameter muß die Referenz auf einen SAP Container enthalten, denSie bereits erzeugt haben. Weitere Informationen finden Sie unter SAP Container[Extern].

Page 248: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem Simple Tree Model

248 April 2001

Ereignisse anmelden4. Registrieren Sie sich auf die Ereignisse [Seite 101] des Simple Tree Model, die Sie

verwenden möchten. Folgende Ereignisse werden unterstützt:

Name des Ereignisses Bedeutung

NODE_DOUBLE_CLICK Der Benutzer hat auf einem Knoten doppelgeklickt.

NODE_KEYPRESS Der Benutzer hat eine bestimmte Taste gedrückt.Die Tasten, die dieses Ereignis auslösen, müssenzuvor registriert werden.

EXPAND_NO_CHILDREN Der Benutzer hat einen Knoten ohne Kinderexpandiert.

SELECTION_CHANGED Der selektierte Knoten hat sich geändert.

NODE_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf einemKnoten angefordert.

NODE_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

DEFAULT_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf der leerenFläche des Controls angefordert.

DEFAULT_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

Simple Tree Model mit Knoten füllen5. Fügen Sie Knoten zum Simple Tree Model hinzu.

Füllen Sie eine Knotentabelle mit den entsprechenden Knoteninformationen, undübergeben Sie die Tabelle mit der Methode add_nodes [Extern] an das Tree Model.CALL METHOD simple_model->add_nodes

EXPORTING nodes_table = nodes_tableEXCEPTIONS error_in_node_table = 1.

Page 249: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem Simple Tree Model

April 2001 249

Mit diesem Schritt werden Knoten am Backend hinzugefügt. Sie werden erst dann andas Control übergeben, wenn das PBO-Ereignis abgeschlossen ist.

Mit dem Tree Model arbeiten6. Ermitteln Sie alle benötigten Knoteneigenschaften.

7. Ändern Sie die Knoteneigenschaften nach Bedarf.

Control abbauen8. Bauen Sie den Custom Container am Frontend ab. Dadurch wird auch die darin enthaltene

Instanz des Tree Controls abgebaut.CALL METHOD container->free.

Page 250: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem Simple Tree Model

250 April 2001

Wenn Sie mit dem Lifetime Management arbeiten, müssen Sie sich um das Abbauendes Controls am Frontend nicht selbst kümmern. Dies wird dann automatisch vomSystem vorgenommen.

9. Geben Sie die Referenz auf das Simple Tree Model frei. Sie wird dann vom GarbageCollector gelöscht.

FREE simple_model.

Page 251: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Suchen im Simple Tree Model

April 2001 251

Suchen im Simple Tree ModelEinsatzmöglichkeitenAnders als beim normalen Simple Tree Control können Sie beim Simple Tree Model innerhalbder Backend-Version des Baums mit den folgenden Methoden suchen:

Suche nach Methoden

Einzelnen Knoten find [Seite 346], find_first [Seite 347], find_next [Seite 349]

Gruppe von Knoten find_all [Seite 350], find_all_continue [Seite 352]

VoraussetzungenSie haben eine Instanz des SAP Simple Tree Model erzeugt.

Ablauf1. Entscheiden Sie, welches Suchverfahren Sie verwenden möchten, und rufen Sie die

entsprechende Methode der Klasse cl_simple_tree_model auf.

Suchverfahren Methode der Klasse cl_simple_tree_model

Einzelne Knoten mit Benutzerdialog suchen find [Seite 346]

Einzelne Knoten ohne Benutzerdialog suchen find_first [Seite 347]

Gruppe von Knoten suchen find_all [Seite 350]

2. Nach Beendigung des Suchvorgangs fragen Sie den Wert des Parameters result_typeab. Dieser Wert gibt an, ob der Suchtext gefunden wurde oder nicht und ob die Sucheangehalten wurde, weil das System auf einen Knoten ohne Kindknoten mit der EigenschaftEXPANDER = 'X' gestoßen ist.

3. Wurde die Suche aus dem zuletzt genannten Grund gestoppt, können Sie die Kindknoten mitder Methode add_node [Seite 334] oder add_nodes [Seite 337] in das Tree Model laden unddann die Suche erneut starten.

Suchverfahren Methode zum Neustart der Suche

Einzelner Knoten find_next [Seite 349]

Gruppe von Knoten find_all_continue [Seite 352]

Wenn Sie nach einzelnen Knoten suchen, können Sie auch mit find_next zumnächsten Vorkommen des gesuchten Strings springen.

Page 252: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Das Column Tree Model

252 April 2001

Das Column Tree ModelDefinitionSie erzeugen eine Instanz des Column Tree Model mit Bezug auf die Klassecl_colum_tree_model:

DATA column_model TYPE REF TO cl_column_tree_model.

Über diese Instanz erhalten Sie Zugriff auf die Methoden der folgenden Klassen:

• cl_tree_model (siehe Methoden der Klasse CL_TREE_MODEL [Seite 265])

• cl_item_tree_model (siehe Methoden der Klasse CL_ITEM_TREE_MODEL [Seite 353])

• cl_column_tree_model (siehe Methoden der Klasse CL_COLUMN_TREE_MODEL[Seite 408])

VerwendungDie Verwendung des Column Tree Model wird im Report sapcolumn_tree_model_demodemonstriert.

Die Eigenschaften des Column Tree werden in Übersicht über die Klassen des SAP Tree Model[Seite 236] beschrieben.

Page 253: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem Column Tree Model

April 2001 253

Arbeiten mit dem Column Tree ModelIn diesem Abschnitt werden die für das Column Tree Model spezifischen Funktionen aufgeführt.

VoraussetzungenDer hier beschriebene Prozeß ist eine Erweiterung des allgemeinen Prozesses zur Control-Einbindung [Seite 92], der speziell für das Column Tree Model gilt. Er umfaßt nicht alle Schritte,die für das Anlegen einer gültigen Control-Instanz erforderlich sind.

Ablauf

Die Code-Abschnitte sind Beispiele, die nicht immer den vollen Funktionsumfangnutzen. Genauere Informationen finden Sie immer im Referenzteil dieserDokumentation.

Instanz erzeugen9. Definieren Sie eine Referenzvariable für das Column Tree Model:DATA column_model TYPE REF TO cl_column_tree_model.

10. Definieren Sie einen Arbeitsbereich für die Hierarchieüberschrift mit Bezug auf die StrukturTREEMHHDR:

DATA hierarchy_header TYPE treemhhdr.

11. Füllen Sie den Arbeitsbereich für die Hierarchieüberschrift. Dabei können Sie die Breite(width), den Text (heading), eine Ikone (image) und einen Tooltip (tooltip) einstellen.Zum späteren Verändern dieser Eigenschaften stehen Ihnen auch Methoden zur Verfügung.

hierarchy_header-heading = 'Überschrift'.hierarchy_header-width = 30.

12. Erzeugen Sie eine Instanz des SAP Tree Model:CREATE OBJECT column_model

EXPORTING parent = containernode_selection_mode = node_selection_modehide_selection = hide_selectionitem_selection = item_selectionhierarchy_column_name = hierarchy_column_namehierarchy_header = hierarchy_header

EXCEPTIONS illegal_node_selection_mode = 1illegal_column_name = 2.

Ereignisse anmelden13. Melden Sie die Ereignisse [Seite 103] des Column Tree Model an. Folgende Ereignisse

werden unterstützt:

Name des Ereignisses Bedeutung

NODE_DOUBLE_CLICK Der Benutzer hat auf einem Knoten doppelgeklickt.

Page 254: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem Column Tree Model

254 April 2001

EXPAND_NO_CHILDREN Der Benutzer hat einen Knoten ohne Kinderexpandiert.

SELECTION_CHANGED Der selektierte Knoten hat sich geändert.

NODE_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf einemKnoten angefordert.

NODE_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

DEFAULT_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf der leerenFläche des Controls angefordert.

DEFAULT_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

HEADER_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf derÜberschrift angefordert.

HEADER_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

ITEM_KEYPRESS Der Benutzer hat eine vordefinierte Taste gedrücktund vorher einen Knoten selektiert.

NODE_KEYPRESS Der Benutzer hat eine vordefinierte Taste gedrücktund vorher einen Knoten selektiert.

HEADER_CLICK Der Benutzer hat auf eine Überschrift geklickt.

Sofern Sie beim Erzeugen der Instanz (Punkt 4) den Parameter item_selection = 'X'gesetzt haben, können Sie zusätzlich noch auf folgende Ereignisse reagieren:

Name des Ereignisses Bedeutung

BUTTON_CLICK Der Benutzer hat einen Eintrag der Klasse BUTTONangeklickt.

LINK_CLICK Der Benutzer hat einen Eintrag der Klasse LINKangeklickt.

CHECKBOX_CHANGE Der Benutzer hat einen Eintrag der Klasse CHECKBOXangeklickt.

ITEM_DOUBLE_CLICK Der Benutzer hat auf einem Eintrag doppelgeklickt.

ITEM_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf einem Eintragangefordert.

ITEM_CONTEXT_MENU_SELECT Der Benutzer hat eine Option im Kontextmenü für einenEintrag ausgewählt.

Arbeiten mit dem Column Tree14. Fügen Sie Knoten zum Baum hinzu. Füllen Sie dazu eine Knotentabelle (Typ TREEMCNOTA,

Zeilentyp TREEMCNODT [Seite 476]), und übergeben Sie diese mit der Methode add_nodes[Seite 413] an das Column Tree Model.

Page 255: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem Column Tree Model

April 2001 255

15. Fügen Sie die Einträge hinzu. Füllen Sie dazu eine Eintragstabelle (Typ TREEMCITAC,Zeilentyp TREEMCITEN), und übergeben Sie diese mit der Methode add_items [Seite 415] andas Column Tree Model.

Sie können Knoten und Einträge jederzeit während der Arbeit mit dem Column TreeModel aktualisieren. Weitere Informationen finden Sie unter update_nodes [Seite414] oder update_items [Seite 416].

8. Erzeugen Sie die Instanz des Tree Controls, das die Daten anzeigen soll. Bis zu diesemPunkt haben Sie mit dem Tree Model auf dem Anwendungsserver gearbeitet. Das TreeModel selbst kann die Daten jedoch nicht anzeigen. Daher müssen Sie jetzt den Frontend-Baum erzeugen. Erzeugen Sie dazu ein SAP Container Control, und übergeben Sie eineReferenz auf diesen Container an die Methode create_tree_control [Seite 266].

CALL METHOD column_model->create_tree_controlEXPORTING parent = container.

Page 256: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Einträge auf Anforderung laden

256 April 2001

Einträge auf Anforderung ladenVerwendungIn einem sehr umfangreichen List Tree Model oder Column Tree Model ist es sinnvoll, nichtsofort alle Einträge zu laden, wenn Sie den Baum erzeugen. Statt dessen können Sie Einträge"auf Anforderung" laden, d.h. wenn der Benutzer den Knoten, zu dem die Einträge gehören,tatsächlich anzeigt.

Voraussetzungen• Sie haben das List Tree Model oder Column Tree Model bereits instanziert.

• Sie haben eine Klasse in Ihrer Anwendung, die eine der folgenden Schnittstellenimplementiert:

− Wenn Sie das List Tree Model verwenden: SchnittstelleIF_LIST_TREE_MODEL_ITEM_PROV.

− Wenn Sie das Column Tree Model verwenden: SchnittstelleIF_COLUMN_TREE_MODEL_ITEM_PROV.

Vorgehensweise1. Wenn Sie neue Knoten zum Tree Model hinzufügen, setzen Sie das Kennzeichen

ITEMSINCOM auf 'X'. Dadurch wird dem Tree Model mitgeteilt, daß Sie die Einträge fürdiesen Knoten auf Anforderung laden möchten.

2. Implementieren Sie in Ihrer Anwendungsklasse die Methode LOAD_ITEMS derentsprechenden Schnittstelle (siehe unter Voraussetzungen oben), damit sie die interneTabelle item_table mit den Eigenschaften der Einträge füllt, die Sie laden möchten.

3. Je nachdem, welche Version des Tree Model Sie verwenden, rufen Sie eine der folgendenSchnittstellen auf und übergeben sie an die Instanz Ihrer Anwendungsklasse, die dieEintragsinformationen liefert.

Verwendete Tree-Model-Version Aufzurufende Methode

List Tree Model set_item_provider [Seite 406] von cl_list_tree_model

Column Tree Model set_item_provider [Seite 458] voncl_column_tree_model

Ergebnis

Wenn der Benutzer einen Knoten anzeigt, für den die Einträge noch nicht geladen wurden undfür den Sie die Eigenschaft ITEMSINCOM auf 'X' setzen, ruft er die Methode LOAD_ITEMS desObjekts auf, das Sie in der Methode SET_ITEM_PROVIDER angegeben haben. Dadurch werdendie Einträge in die Tree-Model-Instanz geladen. Anschließend setzt das System die EigenschaftITEMSINCOM auf seinen Initialwert zurück.

Page 257: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Einträge auf Anforderung laden

April 2001 257

Page 258: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Das List Tree Model

258 April 2001

Das List Tree ModelDefinitionSie erzeugen eine Instanz des List Tree Model mit Bezug auf die Klassecl_list_tree_model:

DATA list_model TYPE REF TO cl_list_tree_model.

Über diese Instanz erhalten Sie Zugriff auf die Methoden der folgenden Klassen:

• cl_tree_model (siehe Methoden der Klasse CL_TREE_MODEL [Seite 265])

• cl_item_tree_model (siehe Methoden der Klasse CL_ITEM_TREE_MODEL [Seite 353])

• cl_list_tree_model (siehe Methoden der Klasse CL_LIST_TREE_MODEL [Seite 378])

VerwendungDie Verwendung des List Tree Model wird im Report saplist_tree_model_demodemonstriert.

Die Eigenschaften des List Tree werden in Übersicht über die Klassen des SAP Tree Model[Seite 236] beschrieben.

Page 259: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem List Tree Model

April 2001 259

Arbeiten mit dem List Tree ModelIn diesem Abschnitt werden die für das List Tree Model spezifischen Funktionen aufgeführt.

VoraussetzungenDer hier beschriebene Prozeß ist eine Erweiterung des allgemeinen Prozesses zur Control-Einbindung [Seite 92], der speziell für das List Tree Model gilt. Er umfaßt nicht alle Schritte, diefür das Anlegen einer gültigen Control-Instanz erforderlich sind.

Ablauf

Die Code-Abschnitte sind Beispiele, die nicht immer den vollen Funktionsumfangnutzen. Genauere Informationen finden Sie immer im Referenzteil dieserDokumentation.

Instanz erzeugen1. Definieren Sie eine Referenzvariable für das List Tree Model:DATA list_model TYPE REF TO cl_list_tree_model.

2. Wenn Sie den Baum mit einer Überschrift anlegen wollen, müssen Sie einen Arbeitsbereichfür die Hierarchieüberschrift mit Bezug auf die Struktur TREEMHHDR und für dieListenüberschrift mit Bezug auf die Struktur TREEMLHDR anlegen:

DATA hierarchy_header TYPE treemhhdr.DATA list_header type treemlhdr.

3. Füllen Sie den Arbeitsbereich für die Hierarchieüberschrift. Dabei können Sie die Breite(width), den Text (heading), eine Ikone (t_image) und einen Tooltip (tooltip)einstellen. Zum späteren Verändern dieser Eigenschaften stehen Ihnen auch Methoden zurVerfügung.

hierarchy_header-heading = 'Überschrift'.hierarchy_header-width = 30.

4. Füllen Sie den Arbeitsbereich für die Listenüberschrift. Dabei können Sie den Text(heading), eine Ikone (t_image) und einen Tooltip (tooltip) einstellen:

list_header-heading = 'Listenüberschrift'.

5. Erzeugen Sie eine Instanz des SAP List Tree Model:CREATE OBJECT list_model

EXPORTING node_selection_mode = node_selection_modehide_selection = hide_selectionitem_selection = item_selectionwith_headers = with_headershierarchy_header = hierarchy_headerlist_header = list_header

EXCEPTIONS illegal_node_selection_mode = 1

Page 260: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Arbeiten mit dem List Tree Model

260 April 2001

Ereignisse anmelden6. Melden Sie die Ereignisse für das List Tree Model an. Folgende Ereignisse werden

unterstützt:

Name des Ereignisses Bedeutung

NODE_DOUBLE_CLICK Der Benutzer hat auf einem Knoten doppelgeklickt.

EXPAND_NO_CHILDREN Der Benutzer hat einen Knoten ohne Kinderexpandiert.

SELECTION_CHANGED Der selektierte Knoten hat sich geändert.

NODE_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf einemKnoten angefordert.

NODE_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

DEFAULT_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf der leerenFläche des Controls angefordert.

DEFAULT_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

HEADER_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf derÜberschrift angefordert.

HEADER_CONTEXT_MENU_SELECT Der Benutzer hat einen Eintrag im Kontextmenüausgewählt.

ITEM_KEYPRESS Der Benutzer hat eine vordefinierte Taste gedrücktund vorher einen Knoten selektiert.

NODE_KEYPRESS Der Benutzer hat eine vordefinierte Taste gedrücktund vorher einen Knoten selektiert.

HEADER_CLICK Der Benutzer hat auf eine Überschrift geklickt.

Sofern Sie beim Erzeugen der Instanz (Punkt 4) den Parameter item_selection = 'X'gesetzt haben, können Sie zusätzlich noch auf folgende Ereignisse reagieren:

Name des Ereignisses Bedeutung

BUTTON_CLICK Der Benutzer hat einen Eintrag der Klasse BUTTONangeklickt.

LINK_CLICK Der Benutzer hat einen Eintrag der Klasse LINKangeklickt.

CHECKBOX_CHANGE Der Benutzer hat einen Eintrag der Klasse CHECKBOXangeklickt.

ITEM_DOUBLE_CLICK Der Benutzer hat auf einem Eintrag doppelgeklickt.

ITEM_CONTEXT_MENU_REQUEST Der Benutzer hat ein Kontextmenü auf einem Eintragangefordert.

ITEM_CONTEXT_MENU_SELECT Der Benutzer hat eine Option im Kontextmenü für einenEintrag ausgewählt.

Page 261: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Arbeiten mit dem List Tree Model

April 2001 261

Arbeiten mit dem List Tree7. Erstellen Sie eine Knotentabelle (Typ TREEMLNOTA, Zeilentyp TREEMLNODT [Seite 468]),

und füllen Sie sie mit den Knoten, die Sie zum List Tree Model hinzufügen möchten.Übergeben Sie die Tabelle anschließend mit der Methode add_nodes [Seite 384] an dieTree-Model-Instanz:

CALL METHOD list_model->add_nodesEXPORTING node_table = node_table.

8. Erstellen Sie eine Eintragstabelle (Typ TREEMLITAC, Zeilentyp TREEMLITEN), und füllen Siesie mit den Einträgen, die Sie zum List Tree Model hinzufügen möchten. Übergeben Sie dieTabelle anschließend mit der Methode add_items an die Tree-Model-Instanz:

CALL METHOD list_model->add_itemsEXPORTING item_table = item_table.

9. Erzeugen Sie die Instanz des Tree Controls, das die Daten anzeigen soll. Bis zu diesemPunkt haben Sie mit dem Tree Model auf dem Anwendungsserver gearbeitet. Das TreeModel selbst kann die Daten jedoch nicht anzeigen. Daher müssen Sie jetzt den Frontend-Baum erzeugen. Erzeugen Sie dazu ein SAP Container Control, und übergeben Sie eineReferenz auf diesen Container an die Methode create_tree_control [Seite 266].

CALL METHOD column_model->create_tree_controlEXPORTING parent = container.

Page 262: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Einträge auf Anforderung laden

262 April 2001

Einträge auf Anforderung ladenVerwendungIn einem sehr umfangreichen List Tree Model oder Column Tree Model ist es sinnvoll, nichtsofort alle Einträge zu laden, wenn Sie den Baum erzeugen. Statt dessen können Sie Einträge"auf Anforderung" laden, d.h. wenn der Benutzer den Knoten, zu dem die Einträge gehören,tatsächlich anzeigt.

Voraussetzungen• Sie haben das List Tree Model oder Column Tree Model bereits instanziert.

• Sie haben eine Klasse in Ihrer Anwendung, die eine der folgenden Schnittstellenimplementiert:

− Wenn Sie das List Tree Model verwenden: SchnittstelleIF_LIST_TREE_MODEL_ITEM_PROV.

− Wenn Sie das Column Tree Model verwenden: SchnittstelleIF_COLUMN_TREE_MODEL_ITEM_PROV.

Vorgehensweise4. Wenn Sie neue Knoten zum Tree Model hinzufügen, setzen Sie das Kennzeichen

ITEMSINCOM auf 'X'. Dadurch wird dem Tree Model mitgeteilt, daß Sie die Einträge fürdiesen Knoten auf Anforderung laden möchten.

5. Implementieren Sie in Ihrer Anwendungsklasse die Methode LOAD_ITEMS derentsprechenden Schnittstelle (siehe unter Voraussetzungen oben), damit sie die interneTabelle item_table mit den Eigenschaften der Einträge füllt, die Sie laden möchten.

6. Je nachdem, welche Version des Tree Model Sie verwenden, rufen Sie eine der folgendenSchnittstellen auf und übergeben sie an die Instanz Ihrer Anwendungsklasse, die dieEintragsinformationen liefert.

Verwendete Tree-Model-Version Aufzurufende Methode

List Tree Model set_item_provider [Seite 406] von cl_list_tree_model

Column Tree Model set_item_provider [Seite 458] voncl_column_tree_model

Ergebnis

Wenn der Benutzer einen Knoten anzeigt, für den die Einträge noch nicht geladen wurden undfür den Sie die Eigenschaft ITEMSINCOM auf 'X' setzen, ruft er die Methode LOAD_ITEMS desObjekts auf, das Sie in der Methode SET_ITEM_PROVIDER angegeben haben. Dadurch werdendie Einträge in die Tree-Model-Instanz geladen. Anschließend setzt das System die EigenschaftITEMSINCOM auf seinen Initialwert zurück.

Page 263: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Einträge auf Anforderung laden

April 2001 263

Page 264: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Ereignisverarbeitung im Tree Model

264 April 2001

Ereignisverarbeitung im Tree ModelEinsatzmöglichkeitenEinige Benutzeraktionen auf dem Tree Control im SAP Tree Model führen zur Auslösung vonEreignissen. Sie können diese Ereignisse in Ihrem ABAP-Programm abfangen und behandeln.

AblaufUm auf ein Ereignis einer Instanz des SAP Tree Model zu reagieren, müssen Sie wie folgtvorgehen:

• Definieren und implementieren Sie eine Methode (normalerweise in einer lokalen Klasse) alsEreignisbehandler für das Ereignis.

• Melden Sie das Ereignis beim Control Framework an.

• Melden Sie den Ereignisbehandler mit der Anweisung SET HANDLER an.

Eine ausführliche Beschreibung, wie Control-Ereignisse verarbeitet werden, finden Sie unterRegistrieren und Verarbeiten von Ereignissen [Seite 101].

Page 265: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_TREE_MODEL

April 2001 265

Methoden der Klasse CL_TREE_MODEL

Page 266: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

create_tree_control

266 April 2001

create_tree_controlWenn Sie eine Tree-Model-Instanz erzeugen, kann der Baum erst angezeigt werden, wenn Siediese Methode aufrufen, um das Tree Control am Frontend zu erzeugen.CALL METHOD model->create_tree_control

EXPORTING lifetime = lifetimeparent = parentshellstyle = shellstyle

IMPORTING control = control.

Parameter und Typ Opt. Bedeutung

lifetimeTYPE I

X Lebensdauer des Controls. Wenn Sie diesen Parameter leerlassen, erbt das Control die Lebensdauer seines Containers.Andere mögliche Werte:

• cl_gui_control=>lifetime_imode: Das Control lebt,solange der interne Modus nicht abgebaut wird (d.h. bis eineder folgenden Anweisungen auftritt: leave program,leave to transaction, set screen 0. leavescreen).

• cl_gui_control=>lifetime_dynpro: Das Control lebt,solange die Instanz des Dynpros existiert, d.h. sich noch imDynprostapel befindet.

Weitere Informationen finden Sie unter Lifetime Management[Extern].

parentTYPE REF TOCL_GUI_CONTAINER

Container Control [Extern], in dem der Baum angezeigt werdensoll

controlTYPE REF TOCL_GUI_CONTROL

Referenz auf die Tree-Control-Instanz, die von der Methodeerzeugt wird

Page 267: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_has_3d_frame

April 2001 267

set_has_3d_frameMit dieser Methode können Sie steuern, ob das Tree Control mit oder ohne 3D-Rahmenangezeigt werden soll.CALL METHOD model->set_has_3d_frame

EXPORTING has_3d_frame = has_3d_frame.

Parameter und Typ Opt. Bedeutung

has_3d_frameTYPE AS4FLAG

Kennzeichen, das die Rahmenart angibt:

• 'X': Baum wird mit 3D-Rahmen angezeigt

• ' ': Baum hat keinen 3D-Rahmen

Page 268: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_view

268 April 2001

update_viewDiese Methode synchronisiert das Tree Model auf dem Anwendungsserver mit derentsprechenden Tree-Control-Instanz am Frontend.

Sie sollten diese Methode nicht verwenden müssen, da das Tree Model und dieBaumanzeige automatisch am Ende jedes PBO-Ereignisses und am Ende jedesSystemereignisses synchronisiert werden.

CALL METHOD model->update_view.

Page 269: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_key_stroke

April 2001 269

add_key_strokeMit dieser Methode definieren Sie, welche Taste der Tastatur ein Ereignis auslösen soll. DamitSie auf diese Ereignisse reagieren können, müssen Sie dann noch das entsprechende Ereignis(NODE_KEYPRESS und / oder ITEM_KEYPRESS) registrieren.

CALL METHOD model->add_key_strokeEXPORTING key = key.

Parameter Bedeutung

key Taste, die ein Ereignis auslösen soll:

CL_TREE_MODEL=>KEY_F1: Funktionstaste F1

CL_TREE_MODEL=>KEY_F4: Funktionstaste F4

CL_TREE_MODEL=>KEY_INSERT: Einfg-Taste

CL_TREE_MODEL=>KEY_DELETE: Entf-Taste

Page 270: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

remove_all_key_strokes

270 April 2001

remove_all_key_strokesMit dieser Methode deregistrieren Sie alle Tastenanschläge, die registriert wurden, um dieEreignisse NODE_KEYPRESS und ITEM_KEYPRESS auszulösen.

CALL METHOD model->remove_all_key_strokes.

Page 271: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_key_strokes

April 2001 271

get_key_strokesMit dieser Methode ermitteln Sie, welche Tasten zur Auslösung des Ereignisses KEYPRESSregistriert sind.CALL METHOD model->get_key_strokes

IMPORTING keystrokes = keystrokes.

Parameter und Typ Opt. Bedeutung

keystrokesTYPE TREEMINTEG

Tabelle mit den registrierten Tasten. Weitere Informationenfinden Sie unter add_key_stroke [Seite 269].

Die interne Tabelle ist vom Typ I.

Page 272: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_selected_node

272 April 2001

set_selected_nodeMit dieser Methode selektieren Sie einen Knoten im Tree Model.CALL METHOD model->set_selected_node

EXPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, der selektiert werden soll

Page 273: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

select_nodes

April 2001 273

select_nodesMit dieser Methode selektieren Sie mehrere Knoten im Tree Model. Sie können diese Methodenur dann verwenden, wenn die Instanz des Tree Model die Mehrfachselektion von Knotenunterstützt.CALL METHOD model->select_nodes

EXPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_key_tableTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile den Schlüssel eines zuselektierenden Knotens enthält. Die Tabelle hat den ZeilentypTM_NODEKEY.

Page 274: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

unselect_all

274 April 2001

unselect_allMit dieser Methode nehmen Sie die Selektion aller selektierten Knoten zurück.CALL METHOD model->unselect all.

Page 275: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

unselect_nodes

April 2001 275

unselect_nodesMit dieser Methode nehmen Sie die Selektion mehrerer Knoten im Baum zurück.CALL METHOD model->unselect_nodes

EXPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_key_tableTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile den Schlüssel eines Knotensenthält, dessen Selektion zurückgenommen werden soll. Die Tabellehat den Zeilentyp TM_NODEKEY.

Page 276: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_selected_node

276 April 2001

get_selected_nodeMit dieser Methode ermitteln Sie den aktuell selektierten Knoten.

Voraussetzungen• Sie haben die Instanz des Tree Model so definiert, daß nur die Selektion einzelner Knoten

erlaubt ist.

• Sie haben ein Tree Control erzeugt, in dem das Tree Model angezeigt werden kann(Methode (create_tree_control [Seite 266]).

SyntaxCALL METHOD model->get_selected_node

IMPORTING node_key = node_key.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des selektierten Knotens. Ist kein Knoten selektiert, dannhat node_key den Wert ' '.

Page 277: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_selected_nodes

April 2001 277

get_selected_nodesMit dieser Methode ermitteln Sie die aktuell selektierten Knoten im Tree Model.

Voraussetzungen• Sie haben die Instanz des Tree Model so definiert, daß nur die Selektion einzelner Knoten

erlaubt ist.

• Sie haben ein Tree Control erzeugt, in dem das Tree Model angezeigt werden kann(Methode (create_tree_control [Seite 266]).

SyntaxCALL METHOD model->get_selected_nodes

IMPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile den Schlüssel eines selektiertenKnotens enthält. Sind keine Knoten selektiert, ist die Tabelle leer.Die Tabelle hat den Zeilentyp TM_NODEKEY.

Page 278: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_node_selection_mode

278 April 2001

get_node_selection_modeMit dieser Methode ermitteln Sie, ob für die Instanz des Tree Model die Einfach- oderMehrfachselektion von Knoten gesetzt wurde.CALL METHOD model->get_node_selection_mode

IMPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_selection_modeTYPE I

Selektionsmodus für die Instanz des Tree Model. MöglicheWerte:

• cl_tree_model=>node_sel_mode_single:Einfachselektion von Knoten

• cl_tree_model=>node_sel_mode_multiple:Mehrfachselektion von Knoten

Page 279: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_hide_selection

April 2001 279

get_hide_selectionMit dieser Methode ermitteln Sie die aktuelle Einstellung der Eigenschaft hide_selection derTree-Model-Instanz.CALL METHOD model->get_hide_selection

IMPORTING hide_selection = hide_selection.

Parameter undTyp

Opt. Bedeutung

hide_selectionTYPE AS4FLAG

Aktuelle Einstellung der Eigenschaft hide_selection. MöglicheWerte:

• 'X': Selektion ist verborgen

• ' ': Selektion ist sichtbar

Page 280: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_keys_in_tree

280 April 2001

node_keys_in_treeMit dieser Methode prüfen Sie, ob die Schlüssel einer Gruppe von Knoten bereits in der Tree-Model-Instanz benutzt werden. Doppelte Schlüssel sind nicht erlaubt und führen zu einemLaufzeitfehler. Im Gegensatz zum normalen SAP Tree bietet Ihnen SAP Tree Model dieseMöglichkeit zur Prüfung des Baums auf doppelte Schlüssel.CALL METHOD model->node_keys_in_tree

EXPORTING node_key_table = node_key_tableIMPORTING node_keys_in_tree = node_keys_in_tree

node_keys_not_in_tree = node_keys_not_in_tree.

Parameter und Typ Opt. Bedeutung

node_key_tableTYPE TREEMNOTAB

Interne Tabelle mit den Knotenschlüsseln, die Sie prüfenmöchten

node_keys_in_treeTYPE TREEMNOTAB

Die Knoten aus node_key_table, die bereits im Tree Modelenthalten sind

node_keys_not_in_treeTYPE TREEMNOTAB

Die Knoten aus node_key_table, die nicht im Tree Modelenthalten sind

Der interne Tabellentyp TREEMNOTAB hat den Zeilentyp TM_NODEKEY.

Page 281: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_key_in_tree

April 2001 281

node_key_in_treeMit dieser Methode ermitteln Sie, ob ein bestimmter Knotenschlüssel bereits in der Tree-Model-Instanz benutzt wird. Doppelte Knotenschlüssel sind nicht erlaubt und führen zu einemLaufzeitfehler.CALL METHOD model->node_key_in_tree

EXPORTING node_key = node_keyRETURNING key_in_tree = key_in_tree.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Knotenschlüssel, der geprüft werden soll

key_in_treeTYPE AS4FLAG

Kennzeichen, das angibt, ob der Schlüssel bereits in der Tree-Model-Instanz benutzt wird. Mögliche Werte:

• 'X': Wird bereits benutzt

• ' ': Wird nicht benutzt

Da key_in_tree der einzige Rückgabeparameter ist, können Sie ihn auswerten,indem Sie den Methodenaufruf direkt in eine IF-Anweisung schreiben. Beispiel:

IF model->node_key_in_tree( node_key = newnode ) = 'X'.MESSAGE i999.* Knoten bereits im Baum vorhandenELSE.CALL METHOD model->add_node......ENDIF.

Page 282: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

expand_node

282 April 2001

expand_nodeMit dieser Methode expandieren Sie einen bestimmten Knoten. Bei dem Knoten muß es sich umeinen Ordner handeln. Sie können angeben, ob auch die Vorgängerknoten (d.h. die Knotenzwischen dem betreffenden Knoten und dem Wurzelknoten) sowie die Kindknoten expandiertwerden sollen.CALL METHOD model->expand_node

EXPORTING node_key = node_keyexpand_predecessors = expand_predecessorsexpand_subtree = expand_subtreelevel_count = level_count.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, der expandiert werden soll

expand_predecessorsTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Vorgängerknoten expandiertwerden sollen

expand_subtreeTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Kindknoten expandiert werdensollen. Wenn das Kennzeichen den Wert 'X' hat, wird dergesamte Teilbaum unterhalb des Knotens expandiert,unabhängig davon, welchen Wert Sie in level_countangeben.

level_countTYPE I

X Tiefe, bis zu der die Kindknoten expandiert werden sollen.Mögliche Werte:

• '0': Nur der aktuelle Knoten wird expandiert.

• '1': Der aktuelle Knoten und die unmittelbaren Nachfolgerwerden expandiert.

• '1': Der aktuelle Knoten und die Nachfolger bis zur Stufe nwerden expandiert.

Hinweis: Wenn Sie expand_subtee = 'X' angeben,ignoriert die Methode den Parameter level_count undexpandiert den gesamten Teilbaum.

Das Expandieren von Knoten kann zur Folge haben, daß eine große Anzahl anKindkonten an das Frontend-Control übergeben wird, so daß es zu Netzwerk-Timeouts kommen kann. Wenn Sie sehr viele Knoten expandieren müssen,verwenden Sie die Methode save_expand_all_nodes [Seite 285] odersave_expand_subree [Seite 286].

Page 283: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

expand_nodes

April 2001 283

expand_nodesMit dieser Methode expandieren Sie mehrere Knoten im Baum. Die Knoten können nurexpandiert werden, wenn es sich um Ordner mit Kindknoten handelt.CALL METHOD model->expand_nodes

EXPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_key_tableTYPETREEMNOTAB

Interne Tabelle mit den Schlüsseln der zu expandierenden Knoten.Die Tabelle hat den Zeilentyp TM_NODEKEY.

Das Expandieren von Knoten kann zur Folge haben, daß eine große Anzahl anKindkonten an das Frontend-Control übergeben wird, so daß es zu Netzwerk-Timeouts kommen kann. Wenn Sie sehr viele Knoten expandieren müssen,verwenden Sie die Methode save_expand_all_nodes [Seite 285] odersave_expand_subree [Seite 286].

Page 284: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

expand_root_nodes

284 April 2001

expand_root_nodesMit dieser Methode expandieren Sie alle Wurzelknoten im Tree Model. Ein Wurzelknoten hat dieEigenschaft RELATKEY = ' '.

CALL METHOD model->expand_root_nodesEXPORTING expand_subtree = expand_subtree

level_count = level_count.

Parameter undTyp

Opt. Bedeutung

expand_subtreeTYPE AS4FLAG

X Wenn Sie diesen Parameter auf 'X' setzen, werden alle Teilbäumeder Wurzelknoten expandiert.

level_countTYPE I

X Tiefe, bis zu der die Wurzelknoten expandiert werden sollen.Mögliche Werte:

• 0: Nur die Wurzelknoten selbst werden expandiert.

• 1: Die Wurzelknoten und die Kindknoten der ersten Stufewerden expandiert.

• n: Die Wurzelknoten werden bis zur Stufe n der Kindknotenexpandiert.

Hinweis: Wenn Sie den Parameter expand_subtree auf 'X'setzen, wird der Wert von level_count ignoriert.

Das Expandieren von Knoten kann zur Folge haben, daß eine große Anzahl anKindkonten an das Frontend-Control übergeben wird, so daß es zu Netzwerk-Timeouts kommen kann. Wenn Sie sehr viele Knoten expandieren müssen,verwenden Sie die Methode save_expand_all_nodes [Seite 285] odersave_expand_subree [Seite 286].

Page 285: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

save_expand_all_nodes

April 2001 285

save_expand_all_nodesMit dieser Methode expandieren Sie alle Knoten in der Instanz des Tree Model. Da es beimExpandieren aller Knoten dazu kommen kann, daß eine sehr große Anzahl an Knoten an dasFrontend-Control geschickt wird, expandiert die Methode nicht alle Knoten gleichzeitig. Eswerden nur so viele Methoden übertragen, daß das Risiko eines Netzwerk-Timeout vermiedenwird. Der Baum wird Stufe für Stufe expandiert, d.h. zuerst werden alle Wurzelknoten, dann alleKindknoten der Wurzelknoten usw. expandiert. Der Parameter all_nodes_expanded gibt an,ob alle Knoten übertragen werden konnten.CALL METHOD model->save_expand_all_nodes

IMPORTING all_nodes_expanded = all_nodes_expanded.

Parameter und Typ Opt. Bedeutung

all_nodes_expandedTYPE AS4FLAG

Kennzeichen, das angibt, ob alle Knoten expandiert werdenkonnten:

• 'X': Ja

• ' ': Nein

Page 286: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

save_expand_subtree

286 April 2001

save_expand_subtreeMit dieser Methode expandieren Sie alle Knoten unterhalb eines bestimmten Knotens in derInstanz des Tree Model. Da es dabei dazu kommen kann, daß eine sehr große Anzahl anKnoten an das Frontend-Control geschickt wird, expandiert die Methode nicht alle Knotengleichzeitig. Es werden nur so viele Methoden übertragen, daß das Risiko eines Netzwerk-Timeout vermieden wird. Der Baum wird Stufe für Stufe expandiert, d.h. zuerst wird der Knotennode_key, dann werden alle Kindknoten dieses Knotens usw. expandiert. Der Parameterall_nodes_expanded gibt an, ob alle Knoten übertragen werden konnten.

CALL METHOD model->save_expand_subtreeEXPORTING node_key = node_keyIMPORTING all_nodes_expanded = all_nodes_expanded.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, der expandiert werden soll

all_nodes_expandedTYPE AS4FLAG

Kennzeichen, das angibt, ob alle Knoten expandiert werdenkonnten:

• 'X': Ja

• ' ': Nein

Page 287: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

expand_node_predecessors

April 2001 287

expand_node_predecessorsMit dieser Methode expandieren Sie alle Vorgängerknoten eines bestimmten Knotens, d.h. alleKnoten zwischen diesem Knoten und dem Wurzelknoten.CALL METHOD model->expand_node_predecessors

EXPORTING node_key = node_key.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Vorgängerknoten expandiertwerden sollen

Page 288: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_expanded_nodes

288 April 2001

get_expanded_nodesMit dieser Methode ermitteln Sie die Schlüssel aller Knoten in der Tree-Model-Instanz, die aktuellexpandiert sind.CALL METHOD model->get_expanded_nodes

EXPORTING no_hidden_nodesIMPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

no_hidden_nodesTYPE AS4FLAG

X Wenn Sie diese Option setzen, gilt ein Knoten nur dann alsexpandiert, wenn seine Vorgänger expandiert sind.

node_key_tableTYPETREEMNOTAB

Interne Tabelle mit den Schlüsseln aller expandierten Knoten. DieTabelle hat den Zeilentyp TM_NODEKEY.

Page 289: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

collapse_all_nodes

April 2001 289

collapse_all_nodesMit dieser Methode komprimieren Sie den gesamten Baum.CALL METHOD model->collapse_all_nodes.

Page 290: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

collapse_node

290 April 2001

collapse_nodeMit dieser Methode komprimieren Sie einen Knoten im Baum. Sie können auswählen, ob Sieauch den Teilbaum komprimieren möchten.CALL METHOD model->collapse_node

EXPORTING node_key = node_keycollapse_subtree = collapse_subtree.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, der komprimiert werden soll

collapse_subtreeTYPE AS4FLAG

X Gibt an, ob die Kindknoten des angegebenen Knotens ebenfallskomprimiert werden sollen.

• 'X': Ja

• ' ': Nein (Standard)

Page 291: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_first_root_node

April 2001 291

get_first_root_nodeMit dieser Methode ermitteln Sie den Schlüssel des ersten Wurzelknotens in der Tree-Model-Instanz.CALL METHOD model->get_first_root_node

IMPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des ersten Wurzelknotens.

Page 292: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_last_root_node

292 April 2001

get_last_root_nodeMit dieser Methode ermitteln Sie den Schlüssel des letzten Wurzelknotens in der Tree-Model-Instanz.CALL METHOD model->get_last_root_node

IMPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des letzten Wurzelknotens.

Page 293: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_nr_of_root_nodes

April 2001 293

get_nr_of_root_nodesMit dieser Methode ermitteln Sie die Anzahl der Wurzelknoten in der Tree-Model-Instanz.CALL METHOD model->get_nr_of_root_nodes

RETURNING nr_of_root_nodes = nr_of_root_nodes.

Parameter und Typ Opt. Bedeutung

nr_of_root_nodesTYPE I

Anzahl der Wurzelknoten in der Tree-Model-Instanz

Page 294: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_root_nodes

294 April 2001

get_root_nodesMit dieser Methode ermitteln Sie die Schlüssel aller Wurzelknoten in der Tree-Model-Instanz.CALL METHOD model->get_root_nodes

IMPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_key_tableTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile den Schlüssel einesWurzelknotens enthält. Die Tabelle hat den ZeilentypTM_NODEKEY.

Page 295: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_all_nodes

April 2001 295

delete_all_nodesMit dieser Methode löschen Sie alle Knoten aus einer Instanz des Tree Model.CALL METHOD model->delete_all_nodes.

Page 296: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

delete_node

296 April 2001

delete_nodeMit dieser Methode löschen Sie einen Knoten aus dem Baum. Die Kindknoten werden ebenfallsalle gelöscht.CALL METHOD model->delete_node

EXPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, der gelöscht werden soll

Page 297: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_nodes

April 2001 297

delete_nodesMit dieser Methode löschen Sie mehrere Knoten im Baum. Die Kindknoten werden ebenfalls allegelöscht.CALL METHOD model->delete_nodes

EXPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_key_tableTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile den Schlüssel eines zulöschenden Knotens enthält.

Page 298: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_disabled

298 April 2001

node_set_disabledMit dieser Methode setzen Sie die Eigenschaft disabled für einen Knoten, d.h. Sie legen fest,ob er inaktiv ist oder nicht. Inaktive Knoten können nicht selektiert werden.CALL METHOD model->node_set_disabled

EXPORTING node_key = node_keydisabled = disabled.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Eigenschaft disabled Sie ändernmöchten

disabledTYPE AS4FLAG

Neuer Wert des Parameters disabled:

• 'X': Knoten ist inaktiv

• ' ': Knoten ist nicht inaktiv

Page 299: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_dragdropid

April 2001 299

node_set_dragdropidMit dieser Methode setzen Sie das Drag&Drop-Verhalten eines Knotens.CALL METHOD model->node_set_dragdropid

EXPORTING node_key = node_keydragdropid = dragdropid.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens.

dragdropidTYPE I

Drag&Drop-Verhalten [Seite 108], das dem Knoten zugeordnetwerden soll.

Page 300: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_expander

300 April 2001

node_set_expanderMit dieser Methode setzen Sie die Eigenschaft expander für einen Knoten, d.h. Sie legen fest,ob er expandierbar sein soll oder nicht. Wenn Sie diese Methode auf ein Blatt anwenden, wird esin einen Ordner umgewandelt.CALL METHOD model->node_set_expander

EXPORTING node_key = node_keyexpander = expander

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, für den Sie die Eigenschaft expanderändern möchten

expanderTYPE AS4FLAG

Einstellung der Eigenschaft expander:

• 'X': Setzt die Eigenschaft expander

• ' ': Nimmt die Eigenschaft expander zurück.

Page 301: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_expanded_image

April 2001 301

node_set_expanded_imageMit dieser Methode setzen Sie die Ikone, die einen Ordner kennzeichnet, wenn er expandiertwird.CALL METHOD model->node_set_expanded_image

EXPORTING node_key = node_keyexp_image = exp_image.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Ikone Sie setzen möchten

exp_imageTYPE TV_IMAGE

Neue Ikone. Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Bei einem Simple Tree Model erscheintdann der Knotentext anstelle der Ikone. Wenn Sie dieseEinstellung für einen Knoten verwenden, sollten Sie sie ausGründen der Ergonomie durchgängig für alle Knoten derselbenStufe verwenden.

Page 302: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_hidden

302 April 2001

node_set_hiddenMit dieser Methode setzen Sie die Eigenschaft hidden für einen Knoten, d.h. Sie legen fest, ober verborgen sein soll oder nicht.CALL METHOD model->node_set_hidden

EXPORTING node_key = node_keyhidden = hidden

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Eigenschaft Sie ändern möchten

hiddenTYPE AS4FLAG

Setzt die Eigenschaft:

• 'X': Knoten ist verborgen

• ' ': Knoten ist sichtbar

Page 303: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_is_folder

April 2001 303

node_set_is_folderMit dieser Methode setzen Sie die Eigenschaft is_folder für einen Knoten, d.h. Sie legen fest,ob er ein Ordner sein soll oder nicht.CALL METHOD model->node_set_is_folder

EXPORTING node_key = node_keyis_folder = is_folder.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Eigenschaft Sie ändern möchten

is_folderTYPE AS4FLAG

Neue Einstellung:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

Sie können einen Knoten nur dann in ein Blatt umwandeln, wenn er keineKindknoten hat.

Page 304: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_no_branch

304 April 2001

node_set_no_branchMit dieser Methode geben Sie an, ob für einen Knoten Hierarchielinien dargestellt werden sollen.CALL METHOD model->node_set_no_branch

EXPORTING node_key = node_keyno_branch = no_branch.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Eigenschaft Sie ändern möchten

no_branchTYPE AS4FLAG

Gibt an, ob Hierarchielinien für den Knoten dargestellt werdensollen:

• 'X': Ja

• ' ': Nein

Page 305: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_image

April 2001 305

node_set_imageMit dieser Methode setzen Sie die Ikone, die ein Blatt oder einen geschlossenen Ordnerkennzeichnet.CALL METHOD model->node_set_image

EXPORTING node_key = node_keyimage = image.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Ikone Sie setzen möchten

imageTYPE TV_IMAGE

Neue Ikone. Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Bei einem Simple Tree Model erscheintdann der Knotentext anstelle der Ikone. Wenn Sie dieseEinstellung für einen Knoten verwenden, sollten Sie sie ausGründen der Ergonomie durchgängig für alle Knoten derselbenStufe verwenden.

Page 306: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_style

306 April 2001

node_set_styleMit dieser Methode setzen Sie den Stil eines Knotens.CALL METHOD model->node_set_style

EXPORTING node_key = node_keystyle = style

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, für den Sie den Stil festlegen möchten

styleTYPE I

Stil des Eintrags. Mögliche Werte:

• cl_tree_model=>style_inherited: Gleicher Effekt wiestyle_default

• cl_tree_model=>style_default: Standardtext und-Hintergrundfarben

• cl_tree_model=>style_intensified

• cl_tree_model=>style_inactive

• cl_tree_model=>style_intensified_critical

• cl_tree_model=>style_emphasized_negative

• cl_tree_model=>style_emphasized_positive

• cl_tree_model=>style_emphasized

Page 307: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_user_object

April 2001 307

node_set_user_objectMit dieser Methode ordnen Sie einem Knoten eine Objektreferenz zu. Diese Referenz kann z.B.auf ein Objekt zeigen, das für den Knoten relevante wichtige Anwendungsdaten enthält.CALL METHOD model->set_user_object

EXPORTING node_key = node_keyuser_object = user_object.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, dem Sie das Objekt zuordnen möchten

user_objectTYPE REF TOOBJECT

Objektreferenz

Page 308: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_children

308 April 2001

node_get_childrenMit dieser Methode erhalten Sie eine Liste der Kindknoten eines bestimmten Knotens.CALL METHOD model->node_get_children

EXPORTING node_key = node_keyIMPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens.

node_key_tableTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile den Schlüssel eines Kindknotensdes in node_key angegebenen Knotens enthält. Sie sind in derinternen Tabelle in der Reihenfolge aufgeführt, in der sie im Baumvorkommen.

Page 309: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_first_child

April 2001 309

node_get_first_childMit dieser Methode ermitteln Sie den ersten Kindknoten eines bestimmten Knotens.CALL METHOD model->node_get_first_child

EXPORTING node_key = node_keyIMPORTING child_node_key = child_node_key.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Kindknoten Sie ermitteln möchten

child_node_keyTYPETM_NODEKEY

Knotenschlüssel des ersten Kindknotens.

Page 310: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_last_child

310 April 2001

node_get_last_childMit dieser Methode ermitteln Sie den letzten Kindknoten eines bestimmten Knotens.CALL METHOD model->node_get_last_child

EXPORTING node_key = node_keyIMPORTING child_node_key = child_node_key.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, dessen Kindknoten Sie ermitteln möchten

child_node_keyTYPETM_NODEKEY

Knotenschlüssel des letzten Kindknotens.

Page 311: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_next_sibling

April 2001 311

node_get_next_siblingMit dieser Methode ermitteln Sie für einen Knoten den Schlüssel des nächsten Knotens aufderselben Stufe.CALL METHOD model->node_get_next_sibling

EXPORTING node_key = node_keyIMPORTING sibling_node_key = sibling_node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

sibling_node_keyTYPE TM_NODEKEY

Knotenschlüssel des nächsten Knotens auf derselben Stufe

Page 312: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_nr_of_children

312 April 2001

node_get_nr_of_childrenMit dieser Methode ermitteln Sie die Anzahl der Kindknoten eines bestimmten Knotens.CALL METHOD model->node_get_nr_of_children

EXPORTING node_key = node_keyIMPORTING nr_of_children = nr_of_children.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens

nr_of_childrenTYPE I

Anzahl der Kindknoten des Knotens

Page 313: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_parent

April 2001 313

node_get_parentMit dieser Methode ermitteln Sie den Schlüssel des Elternknotens eines bestimmten Knotens.CALL METHOD model->node_get_parent

EXPORTING node_key = node_keyIMPORTING parent_node_key = parent_node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens

parent_node_keyTYPE TM_NODEKEY

Knotenschlüssel des Elternknotens

Page 314: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_prev_sibling

314 April 2001

node_get_prev_siblingMit dieser Methode ermitteln Sie für einen Knoten den Schlüssel des vorigen Knotens aufderselben Stufe.CALL METHOD model->node_get_prev_sibling

EXPORTING node_key = node_keyIMPORTING sibling_node_key = sibling_node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

sibling_node_keyTYPE TM_NODEKEY

Knotenschlüssel des vorigen Knotens auf derselben Stufe

Page 315: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_user_object

April 2001 315

node_get_user_objectMit dieser Methode ermitteln Sie das Benutzerobjekt eines bestimmten Knotens.CALL METHOD model->node_get_user_object

EXPORTING node_key = node_keyIMPORTING user_object = user_object.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens

user_objectTYPE REF TOOBJECT

Benutzerobjekt des Knotens

Page 316: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

print_tree

316 April 2001

print_treeMit dieser Methode drucken Sie den Inhalt des Baums.CALL METHOD model->print_tree

EXPORTING all_nodes = all_nodestitle = titlepreview = preview.

Parameter undTyp

Opt. Bedeutung

all_nodesTYPE AS4FLAG

Gibt den Druckumfang für den Baum an:

• 'X': Gesamten Baum drucken

• ' ': Nur expandierte Knoten drucken

titleTYPE STRING

X Titel, der mit dem Baum gedruckt werden soll

previewTYPE AS4FLAG

Kennzeichen, das angibt, ob vor dem Druck eine Vorschauangezeigt werden soll:

• 'X': Vorschau anzeigen

• ' ': Keine Vorschau

Page 317: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_nr_of_nodes

April 2001 317

get_nr_of_nodesMit dieser Methode ermitteln Sie die Anzahl der Knoten im Tree Model.CALL METHOD model->get_nr_of_nodes

IMPORTING nr_of_nodes = nr_of_nodes.

Parameter und Typ Opt. Bedeutung

nr_of_nodesTYPE I

Anzahl der Knoten im Baum

Page 318: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

ensure_visible

318 April 2001

ensure_visibleMit dieser Methode stellen Sie sicher, daß ein bestimmter Knoten in der Baumanzeige auf demFrontend sichtbar ist.CALL METHOD model->ensure_visible

EXPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, der sichtbar sein soll

Page 319: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

move_node

April 2001 319

move_nodeMit dieser Methode verschieben Sie einen Knoten im Tree Model.CALL METHOD model->move_node

EXPORTING node_key = node_keyrelative_node_key = relative_node_keyrelationship = relationship.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des zu verschiebenden Knotens

relative_node_keyTYPETM_NODEKEY

Schlüssel des Knotens, zu dem der Knoten in seiner neuenPosition in Beziehung stehen soll

relationshipTYPE I

Verwandtschaftsbeziehung zwischen dem neuen Knoten und demin relative_node_key angegebenen Knoten. Mögliche Wertesind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselben Stufewie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselben Stufewie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relative_node_key leer, dann wird der neueKnoten als Wurzelknoten eingefügt. Enthalten die oben genanntenWerte das Wort FIRST oder PREV, wird der Knoten als ersterWurzelknoten eingefügt. Enthalten die Werte LAST oder NEXT,wird der Knoten als letzter Wurzelknoten eingefügt.

Page 320: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

move_node

320 April 2001

Page 321: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

scroll

April 2001 321

scrollMit dieser Methode blättern Sie durch den Baum.CALL METHOD model->scroll

EXPORTING scroll_command = scroll_command.

Parameter undTyp

Opt. Bedeutung

scroll_commandTYPE I

Angabe, wie geblättert werden soll. Mögliche Werte:

• cl_tree_model=>scroll_up_line: Eine Zeile nach obenblättern

• cl_tree_model=>scroll_down_line: Eine Zeile nachunten blättern

• cl_tree_model=>scroll_up_page: Eine Seite nach obenblättern

• cl_tree_model=>scroll_down_page: Eine Seite nachunten blättern

• cl_tree_model=>scroll_home: An den Anfang des Baumsblättern

• cl_tree_model=>scroll_end: An das Ende des Baumsblättern

Page 322: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_ctx_menu_select_event_appl

322 April 2001

set_ctx_menu_select_event_applMit dieser Methode geben Sie an, ob das Ereignis SELECT eines Kontextmenüs einAnwendungsereignis (PAI wird ausgelöst) oder ein Systemereignis (PAI wird nicht ausgelöst)sein soll. Sie müssen dieses Ereignis vor set_registered_events aufrufen.

CALL METHOD model->set_ctx_menu_select_event_applEXPORTING appl_event = appl_event.

Parameter und Typ Opt. Bedeutung

appl_eventTYPE AS4FLAG

Gibt an, ob das Ereignis ein Anwendungsereignis sein soll:

• 'X': Anwendungsereignis

• ' ': Systemereignis

Page 323: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_ctx_menu_select_event_appl

April 2001 323

get_ctx_menu_select_event_applMit dieser Methode ermitteln Sie, ob das Ereignis SELECT für Kontextmenüs alsAnwendungsereignis oder als Systemereignis registriert ist.CALL METHOD model->get_ctx_menu_select_event_appl

IMPORTING appl_event = appl_event.

Parameter und Typ Opt. Bedeutung

appl_eventTYPE AS4FLAG

Gibt an, ob das Ereignis ein Anwendungsereignis ist:

• 'X': Anwendungsereignis

• ' ': Systemereignis

Page 324: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_default_drop

324 April 2001

set_default_dropMit dieser Methode setzen Sie das Standard-Drop-Verhalten für Drag&Drop-Operationen, beidenen das Objekt auf dem Control-Bereich fallengelassen wird.CALL METHOD model->set_default_drop

EXPORTING drag_drop = drag_drop.

Parameter und Typ Opt. Bedeutung

drag_dropTYPE REF TOCL_DRAGDROP

Standardverhalten

Page 325: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_default_drop

April 2001 325

get_default_dropMit dieser Methode ermitteln Sie das Standard-Drop-Verhalten für Drag&Drop-Operationen, beidenen das Objekt auf dem Control-Bereich fallengelassen wird.CALL METHOD model->get_default_drop

IMPORTING drag_drop = drag_drop.

Parameter und Typ Opt. Bedeutung

drag_dropTYPE REF TOCL_DRAGDROP

Standardverhalten

Page 326: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_folder_show_exp_image

326 April 2001

set_folder_show_exp_imageMit dieser Methode legen Sie fest, welche Ikone angezeigt werden soll, wenn ein Ordnerexpandiert wird.CALL METHOD model->set_folder_show_exp_image

EXPORTING folder_show_exp_image = folder_show_exp_image.

Parameter und Typ Opt. Bedeutung

folder_show_exp_imageTYPE AS4FLAG

Kennzeichen, das angibt, welche Ikone angezeigt werden soll:

• 'X': Die in der Eigenschaft EXPANDED_IMAGEangegebene Ikone wird immer angezeigt, wenn derOrdner expandiert wird.

• ' ': Die in der Eigenschaft EXPANDED_IMAGEangegebene Ikone wird nur für den letzten Ordnerangezeigt, der expandiert werden soll. Für alle anderengeöffneten Ordner wird die in IMAGE angegebene Ikoneangezeigt.

Weitere Informationen finden Sie unter node_set_image [Seite 305] undnode_set_expanded_image [Seite 301].

Page 327: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_folder_show_exp_image

April 2001 327

get_folder_show_exp_imageMit dieser Methode ermitteln Sie, welche Ikone angezeigt wird, wenn ein Ordner expandiert wird.CALL METHOD model->get_folder_show_exp_image

IMPORTING folder_show_exp_image = folder_show_exp_image.

Parameter und Typ Opt. Bedeutung

folder_show_exp_imageTYPE AS4FLAG

Kennzeichen, das angibt, welche Ikone angezeigt werden soll:

• 'X': Die in der Eigenschaft EXPANDED_IMAGEangegebene Ikone wird immer angezeigt, wenn derOrdner expandiert wird.

• ' ': Die in der Eigenschaft EXPANDED_IMAGEangegebene Ikone wird nur für den letzten Ordnerangezeigt, der expandiert werden soll. Für alle anderengeöffneten Ordner wird die in IMAGE angegebene Ikoneangezeigt.

Page 328: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_top_node

328 April 2001

set_top_nodeMit dieser Methode setzen Sie den obersten Knoten im Baum.CALL METHOD model->set_top_node

EXPORTING node_key = node_key.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, der als oberster Knoten angezeigt werdensoll.

Page 329: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_top_node

April 2001 329

get_top_nodeMit dieser Methode ermitteln Sie den obersten Knoten im Baum.CALL METHOD model->set_top_node

IMPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des obersten Knotens im Baum

Page 330: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_first_root_node

330 April 2001

get_first_root_nodeMit dieser Methode ermitteln Sie den ersten Wurzelknoten im Baum.CALL METHOD model->get_first_root_node

IMPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des ersten Wurzelknotens im Baum

Page 331: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_last_root_node

April 2001 331

get_last_root_nodeMit dieser Methode ermitteln Sie den Schlüssel des letzten Wurzelknotens im Baum.CALL METHOD model->get_last_root_node

IMPORTING node_key = node_key.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des letzten Wurzelknotens im Baum

Page 332: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_SIMPLE_TREE_MODEL

332 April 2001

Methoden der Klasse CL_SIMPLE_TREE_MODEL

Page 333: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

constructor

April 2001 333

constructorDer Konstruktor wird automatisch aufgerufen, wenn Sie die Klasse cl_simple_tree_modelinstanzieren. Dazu müssen Sie eine Referenzvariable wie folgt deklarieren:DATA simple_model TYPE REF TO cl_simple_tree_model.

Anschließend können Sie mit der Anweisung CREATE OBJECT eine Instanz erzeugen.

CREATE OBJECT simple_modelEXPORTING node_selection_mode = node_selection_mode

hide_selection = hide_selection.

Parameter Opt. Bedeutung

node_selection_mode Gibt an, ob die gleichzeitige Mehrfachselektion von Knotenmöglich ist. Mögliche Werte sind:

• cl_simple_tree_model=>node_sel_mode_singleEs kann immer nur ein Knoten selektiert werden.

• cl_simple_tree_model=>node_sel_mode_multipleEs können mehrere Knoten selektiert werden.

hide_selection X Gibt an, ob die Selektion unsichtbar sein soll. Mögliche Wertesind:

• 'X': Selektion verbergen

• ' ': Selektion anzeigen

Page 334: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_node

334 April 2001

add_nodeMit dieser Methode fügen Sie einen einzelnen Knoten zum Simple Tree Model hinzu. Der Knotenwird in die Baumstruktur innerhalb des Modells eingehängt und am Ende des nächsten PBO-Ereignisses an den sichtbaren Baum am Frontend übergeben.CALL METHOD simple_model->add_node

EXPORTING node_key = node_keyrelative_node_key = relative_node_keyrelationship = relationshipisfolder = isfoldertext = texthidden = hiddendisabled = disabledstyle = styleno_branch = no_branchexpander = expanderimage = imageexpanded_image = expanded_imagedrag_drop_object = drag_drop_objectuser_object = user_object.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel zur Identifizierung des Knotens im Baum. DerSchlüssel muß im gesamten Baum eindeutig sein. Sie solltennur Buchstaben, Ziffern und den Unterstrich in Knotenschlüsselnverwenden.

relative_node_keyTYPE STRING

X Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

Page 335: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_node

April 2001 335

relationshipI

X Verwandtschaftsbeziehung zwischen dem neuen Knoten unddem in relative_node_key angegebenen Knoten. MöglicheWerte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relative_node_key leer, dann wird der neueKnoten als Wurzelknoten eingefügt. Enthalten die obengenannten Werte das Wort FIRST oder PREV, wird der Knotenals erster Wurzelknoten eingefügt. Enthalten die Werte LASToder NEXT, wird der Knoten als letzter Wurzelknoten eingefügt.

isfolderTYPE AS4FLAG

Gibt an, ob der neue Knoten ein Ordner oder ein Blatt sein soll.Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

textTYPE STRING

Text für den Knoten

hiddenTYPE AS4FLAG

X Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ') seinsoll. Standardmäßig ist der Knoten sichtbar.

disabledTYPE AS4FLAG

X Gibt an, ob der Knoten selektiert (' ') werden kann oder nicht('X'). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

Page 336: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_node

336 April 2001

styleTYPE AS4FLAG

X Setzt die Text- und Hintergrundfarben für den Knoten. MöglicheWerte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen finden Siebei der Definition von CL_TREE_MODEL im Class Builder.

no_branchTYPE AS4FLAG

X Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werden dieLinien gezeichnet.

expanderTYPE AS4FLAG

X Diese Eigenschaft kann nur für Ordner gesetzt werden. Wenn Siesie setzen, wird für den geschlossenen Ordner immer dasSymbol '+' angezeigt, auch wenn er leer ist. Klickt der Benutzerden Ordner an, wird das Ereignis EXPAND_NO_CHILDRENausgelöst.

imageC(6)

X Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an der Position,an der normalerweise die Ikone angezeigt würde. Falls Siediesen Wert für einen Knoten verwenden, sollten Sie ihndurchgängig für alle Knoten auf derselben Stufe verwenden.

expanded_imageC(6)

X Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

drag_drop_objectI

X Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

user_objectTYPE REF TOOBJECT

X Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

Page 337: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_nodes

April 2001 337

add_nodesMit dieser Methode fügen Sie mehrere Knoten zum Tree Model hinzu. Die Knoten werden in dieBaumstruktur innerhalb des Modells eingehängt und am Ende des nächsten PBO-Ereignisses anden sichtbaren Baum am Frontend übergeben.CALL METHOD simple_model->add_nodes

EXPORTING node_table = node_table.

Parameter und Typ Opt. Bedeutung

node_tableTYPE TREEMSNOTA

Interne Tabelle mit den Knoten, die Sie zum Tree Modelhinzufügen möchten. Jede Zeile der Tabelle stellt einen Knotendar. Der Datentyp TREEMSNOTA hat den ZeilentypTREEMSNODT [Seite 460].

Page 338: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_nodes

338 April 2001

update_nodesMit dieser Methode ändern Sie die Eigenschaften von Knoten im Tree Model. Die EigenschaftenRELATKEY und RELATSHIP können Sie mit dieser Methode nicht ändern. Wenn Sie einenKnoten verschieben möchten, müssen Sie die Methode MOVE_NODE verwenden.

CALL METHOD simple_model->update_nodesEXPORTING node_table = node_table.

Parameter und Typ Opt. Bedeutung

node_tableTYPE TREEMSUNOT

Interne Tabelle, bei der jede Zeile einen Knoten darstellt, dessenEigenschaften Sie ändern möchten. Sie geben den Schlüssel desKnotens an, und geben einen neuen Wert für jede zu änderndeEigenschaft ein. Jede änderbare Eigenschaft verfügt über einentsprechendes Kennzeichen mit dem NamenU_<Eigenschaft>. Dieses Kennzeichen müssen Sie für jedeEigenschaft setzen, die Sie ändern.

Wenn Sie zum Beispiel die Eigenschaft hidden für einen Knotenvon ' ' (nicht verborgen) in 'X' (verborgen) ändern möchten,geben Sie 'X' in das Feld HIDDEN und 'X' in das FeldU_HIDDEN ein (um anzuzeigen, daß das Feld aktualisiert werdenmuß). Möchten Sie alle änderbaren Eigenschaften für einenbestimmten Knoten ändern, sollten Sie das Feld U_ALL setzenund nicht die einzelnen Kennzeichen U_<Eigenschaft>.

Der Datentyp TREEMSUNOT hat den Zeilentyp TREEMSUNO[Seite 463].

Page 339: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_registered_events

April 2001 339

set_registered_eventsMit dieser Methode melden Sie eine Reihe von Ereignissen am Control Framework an. NähereInformationen finden Sie unter Ereignisverarbeitung im Tree Model [Seite 264].CALL METHOD tree_model->set_registered_events

EXPORTING events = events.

Parameter und Typ Opt. Bedeutung

eventsTYPECNTL_SIMPLE_EVENTS

Interne Tabelle, bei der jede Zeile ein Ereignis darstellt, das Sieregistrieren möchten

Wenn Sie die interne Tabelle für die Ereignisparameter füllen, können Sie mit demDatentyp CNTL_SIMPLE_EVENT einen Arbeitsbereich definieren.

Struktur von CNTL_SIMPLE_EVENTKomponente Typ Opt. Bedeutung

eventid I ID des Ereignisses, das Sie registrieren möchten. DieEreignisse sind alle als statische Komponenten imentsprechenden Verschaler definiert. Weitere Informationenfinden Sie unter Ereignisse des Tree Model [Extern].

appl_event Gibt den Ereignistyp an:

• ' ': Systemereignis

• 'X': Anwendungsereignis

Nähere Informationen finden Sie unter Ereignisverarbeitung imTree Model [Seite 264].

Page 340: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_registered_events

340 April 2001

Page 341: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_registered_events

April 2001 341

get_registered_eventsMit dieser Methode holen Sie eine Liste der Ereignisse, die am Control Framework für dieControl-Instanz angemeldet sind.

Die Ereignisse in dieser Liste sind beim Control Framework angemeldet. Damit einEreignis behandelt werden kann, müssen Sie jedoch auch seine Behandlermethodemit der Anweisung SET HANDLER registrieren.

CALL METHOD tree_model->get_registered_eventsIMPORTING events = events.

Parameter und Typ Opt. Bedeutung

eventsTYPECNTL_SIMPLE_EVENTS

Interne Tabelle, bei der jede Zeile ein Ereignis darstellt, das Sieregistrieren möchten

Page 342: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_set_text

342 April 2001

node_set_textMit dieser Methode setzen Sie den Text für einen Knoten im Tree Model.CALL METHOD simple_tree->node_set_text

EXPORTING node_key = node_keytext =.text.

Obwohl das Textattribut mit dem Typ STRING implementiert wird und daher keinefest definierte Höchstlänge hat, können nur die ersten 100 Zeichen des Textes imFrontend-Control angezeigt werden.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, für den Sie den Text festlegen möchten

textTYPE STRING

Neuer Knotentext

Page 343: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_text

April 2001 343

node_get_textMit dieser Methode fragen Sie den Text für einen Knoten im Simple Tree Model ab.CALL METHOD simple_tree->node_get_text

EXPORTING node_key = node_keyIMPORTING text =.text.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, für den Sie den Text abfragen möchten

textTYPE STRING

Knotentext

Page 344: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_properties

344 April 2001

node_get_propertiesMit dieser Methode ermitteln Sie die Eigenschaften eines bestimmten Knotens.CALL METHOD simple_tree->node_get_properties

EXPORTING node_key = node_keyIMPORTING properties = properties.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, für den Sie den Text festlegen möchten

propertiesTYPE TREEMSNODT

Eigenschaften des Knotens. Eine komplette Beschreibung derStruktur dieses Parameters finden Sie unter StrukturTREEMSNODT [Seite 460].

Page 345: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_tree

April 2001 345

get_treeMit dieser Methode fragen Sie den Inhalt des Baums in einer internen Tabelle ab.CALL METHOD simple_model->get_tree

IMPORTING node_table = node_table.

Parameter und Typ Opt. Bedeutung

node_tableTYPE TREEMSNOTA

Interne Tabelle mit den Knoten im Tree Model. Jede Zeile derTabelle stellt einen Knoten dar. Der Datentyp TREEMSNOTA hatden Zeilentyp TREEMSNODT [Seite 460].

Page 346: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find

346 April 2001

findMit dieser Methode erlauben Sie dem Benutzer die Suche nach einem String im Baum. Es wirdein Dialogfenster angezeigt, in dem der Benutzer die gesuchte Zeichenfolge eingeben undfestlegen kann, ob er genau nach diesem String (spezifisch) oder mit dem ABAP-Operator CP(generisch) suchen möchte.CALL METHOD simple_model->find_first

IMPORTING result_type = result_typeresult_node_key = result_node_key.

Parameter und Typ Opt. Bedeutung

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_simple_tree_model=>find_matchSuchstring wurde gefunden.

• cl_simple_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_simple_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden. Hinweis: Dies giltnur, wenn Sie den Parameter stop_at_expander_nodesetzen.

result_node_keyTYPE STRING

Schlüssel des Knotens, bei dem die Suche gestoppt wurde

Page 347: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find_first

April 2001 347

find_firstMit dieser Methode ermitteln Sie das erste Vorkommen eines Strings im Baum. Das Systemdurchsucht den Baum von oben nach unten, wobei beim Knoten angefangen wird, den Sieangeben.CALL METHOD simple_model->find_first

EXPORTING search_string = search_stringpattern_search = pattern_searchstart_node = start_nodestop_at_expander_node = stop_at_expander_node

IMPORTING result_type = result_typeresult_node_key = result_node_key.

Parameter und Typ Opt. Bedeutung

search_stringTYPE TM_NODEKEY

String, nach dem Sie suchen möchten

pattern_searchTYPE AS4FLAG

X Kennzeichen, das angibt, ob Sie spezifisch oder generischsuchen möchten. Wenn Sie dieses Kennzeichen setzen, wirdbei der Suche der ABAP-Operator CP (enthält Muster)benutzt.

start_nodeTYPE TM_NODEKEY

X Startknoten für die Suche. Wenn Sie keinen Startknotenangeben, sucht das System ab dem Wurzelknoten desBaums.

stop_at_expander_nodeTYPE AS4FLAG

X Wenn Sie dieses Kennzeichen setzen, stoppt derSuchvorgang, wenn ein Knoten ohne Kindknoten gefundenwird, der die Eigenschaft EXPANDER = 'X' hat. DieEigenschaften result_type und result_node_keywerden entsprechend gesetzt. Anschließend können Sie dieKindknoten in das Tree Model laden, bevor Sie die Suchemit der Methode FIND_NEXT [Seite 349] wiederaufnehmen.

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_simple_tree_model=>find_matchSuchstring wurde gefunden.

• cl_simple_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_simple_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mitder Eigenschaft EXPANDER = 'X' gefunden. Hinweis:Dies gilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

Page 348: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find_first

348 April 2001

result_node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, bei dem die Suche gestoppt wurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter nicht gefüllt. Er kann daher leer sein oderauch einen Wert aus einer vorigen Suche enthalten.

Page 349: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find_next

April 2001 349

find_nextSie verwenden diese Methode in den folgenden Fällen, um eine Suche wiederaufzunehmen, dieSie mit der Methode find_first gestartet haben.

• Sie suchen nach dem nächsten Vorkommen des Suchstrings.

• Sie nehmen eine Suche wieder auf, die gestoppt wurde, weil ein Knoten ohne Kindknoten mitder Eigenschaft EXPANDER = 'X' gefunden wurde.

Es werden dieselben Suchkriterien benutzt, die Sie in find_first angegeben haben.

CALL METHOD simple_model->find_firstIMPORTING result_type = result_type

result_node_key = result_node_key.

Parameter und Typ Opt. Bedeutung

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_simple_tree_model=>find_matchSuchstring wurde gefunden.

• cl_simple_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_simple_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden. Hinweis: Dies giltnur, wenn Sie den Parameter stop_at_expander_nodesetzen.

result_node_keyTYPE STRING

Schlüssel des Knotens, bei dem die Suche gestoppt wurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, ist dieserParameter leer.

Page 350: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find_all

350 April 2001

find_allMit dieser Methode suchen Sie nach allen Vorkommen eines Suchstrings im Tree Model.CALL METHOD simple_model->find_all

EXPORTING search_string = search_stringpattern_search = pattern_searchstart_node = start_nodestop_at_expander_node = stop_at_expander_noderesult_type = result_typeresult_expander_node_key = result_expander_node_keyresult_node_key_table = result_node_key_table

Parameter und Typ Opt. Bedeutung

search_stringTYPE STRING

String, nach dem Sie suchen möchten

pattern_searchTYPE AS4FLAG

Kennzeichen, das angibt, ob Sie spezifisch odergenerisch suchen möchten. Wenn Sie diesesKennzeichen setzen, wird bei der Suche der ABAP-Operator CP (enthält Muster) benutzt.

start_nodeTYPE STRING

Startknoten für die Suche. Wenn Sie keinen Startknotenangeben, sucht das System ab dem Wurzelknoten desBaums.

stop_at_expander_nodeTYPE AS4FLAG

Wenn Sie dieses Kennzeichen setzen, stoppt derSuchvorgang, wenn ein Knoten ohne Kindknotengefunden wird, der die Eigenschaft EXPANDER = 'X'hat. Die Eigenschaften result_type undresult_node_key werden entsprechend gesetzt.Anschließend können Sie die Kindknoten in das TreeModel laden, bevor Sie die Suche mit der MethodeFIND_ALL_CONTINUE [Seite 352] wiederaufnehmen.

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_simple_tree_model=>find_matchSuchstring wurde gefunden.

• cl_simple_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_simple_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknotenmit der Eigenschaft EXPANDER = 'X' gefunden.

Hinweis: Dies gilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

Page 351: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find_all

April 2001 351

result_expander_node_keyTYPE STRING

Schlüssel des Knotens, bei dem die Suche gestopptwurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter leer.

result_node_key_tableTYPE TREEMNOTAB

Interne Tabelle mit den Knotenschlüsseln der Knoten, indenen der Suchstring gefunden wurde.

Der Datentyp TREEMNOTAB ist eine Tabelle, derenZeilentyp ein einzelnes STRING-Feld ist.

Page 352: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find_all_continue

352 April 2001

find_all_continueMit dieser Methode nehmen Sie eine Suche wieder auf, die Sie mit der Methode FIND_ALL[Seite 350] gestartet haben, aber unterbrochen wurde, weil ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden wurde. Es werden dieselben Suchkriterien benutzt, dieSie in der Methode find_all verwendet haben.

CALL METHOD simple_model->find_all_continueIMPORTING result_type = result_type

result_expander_node_key = result_expander_node_keyresult_node_key_table = result_node_key_table.

Parameter und Typ Opt. Bedeutung

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_simple_tree_model=>find_matchSuchstring wurde gefunden.

• cl_simple_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_simple_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknotenmit der Eigenschaft EXPANDER = 'X' gefunden.

Hinweis: Dies gilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

result_expander_node_keyTYPE STRING

Schlüssel des Knotens, bei dem die Suche gestopptwurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter leer.

result_node_key_tableTYPE TREEMNOTAB

Interne Tabelle mit den Knotenschlüsseln der Knoten, indenen der Suchstring gefunden wurde.

Der Datentyp TREEMNOTAB ist eine Tabelle, derenZeilentyp ein einzelnes STRING-Feld ist.

Page 353: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_ITEM_TREE_MODEL

April 2001 353

Methoden der Klasse CL_ITEM_TREE_MODELDie Klasse CL_ITEM_TREE_MODEL enthält Methoden und Attribute, die vom Column Tree Modelund List Tree Model gemeinsam genutzt werden. Sie können die Komponenten so benutzen, alsgehörten sie entweder zu CL_COLUMN_TREE_MODEL oder CL_LIST_TREE_MODEL.

Page 354: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_registered_events

354 April 2001

set_registered_eventsMit dieser Methode melden Sie eine Reihe von Ereignissen am Control Framework an. NähereInformationen finden Sie unter Ereignisverarbeitung im Tree Model [Seite 264].CALL METHOD tree_model->set_registered_events

EXPORTING events = events.

Parameter und Typ Opt. Bedeutung

eventsTYPECNTL_SIMPLE_EVENTS

Interne Tabelle, bei der jede Zeile ein Ereignis darstellt, das Sieregistrieren möchten

Wenn Sie die interne Tabelle für die Ereignisparameter füllen, können Sie mit demDatentyp CNTL_SIMPLE_EVENT einen Arbeitsbereich definieren.

Struktur von CNTL_SIMPLE_EVENTKomponente Typ Opt. Bedeutung

eventid I ID des Ereignisses, das Sie registrieren möchten. DieEreignisse sind alle als statische Komponenten imentsprechenden Verschaler definiert. Weitere Informationenfinden Sie unter Ereignisse des Tree Model [Extern].

appl_event Gibt den Ereignistyp an:

• ' ': Systemereignis

• 'X': Anwendungsereignis

Nähere Informationen finden Sie unter Ereignisverarbeitung imTree Model [Seite 264].

Page 355: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_registered_events

April 2001 355

Page 356: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_registered_events

356 April 2001

get_registered_eventsMit dieser Methode holen Sie eine Liste der Ereignisse, die am Control Framework für dieControl-Instanz angemeldet sind.

Die Ereignisse in dieser Liste sind beim Control Framework angemeldet. Damit einEreignis behandelt werden kann, müssen Sie jedoch auch seine Behandlermethodemit der Anweisung SET HANDLER registrieren.

CALL METHOD tree_model->get_registered_eventsIMPORTING events = events.

Parameter und Typ Opt. Bedeutung

eventsTYPECNTL_SIMPLE_EVENTS

Interne Tabelle, bei der jede Zeile ein Ereignis darstellt, das Sieregistrieren möchten

Page 357: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find

April 2001 357

findMit dieser Methode erlauben Sie dem Benutzer die Suche nach einem String im Baum. Es wirdein Dialogfenster angezeigt, in dem der Benutzer die gesuchte Zeichenfolge eingeben undfestlegen kann, ob er genau nach diesem String (spezifisch) oder mit dem ABAP-Operator CP(generisch) suchen möchte.CALL METHOD item_model->find

IMPORTING result_type = result_typeresult_item_key_table = result_item_key_table.

Parameter und Typ Opt. Bedeutung

result_typeTYPE I

Grund, weshalb die Suche gestoppt wurde. Er kann folgendeWerte annehmen:

• cl_item_tree_model=>find_match: Suchstring wurdegefunden.

• cl_item_tree_model=>find_no_match: Suchstringwurde nicht gefunden.

result_item_key_tableTYPE TREEMIKS

Interne Tabelle, bei der jede Zeile eine Stelle enthält, an derder Suchstring gefunden wurde. Der Zeilentyp hat zwei Felder:

• node_key (Typ TM_NODEKEY)

• item_name (Typ TV_ITMNAME)

Page 358: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find_first

358 April 2001

find_firstMit dieser Methode ermitteln Sie das erste Vorkommen eines Strings im Baum. Das Systemdurchsucht den Baum von oben nach unten, wobei bei einem Knoten angefangen wird, den Sieangeben. Sie können die Suche auch auf bestimmte Einträge in der Baumstruktur einschränken.CALL METHOD item_model->find_first

EXPORTING search_string = search_stringitem_name_table = item_name_tablepattern_search = pattern_searchstart_node = start_nodestop_at_expander_node = stop_at_expander_node

IMPORTING result_type = result_typeresult_item_key_table = result_item_key_tableresult_expander_node_key = result_expander_node_key.

Parameter und Typ Opt. Bedeutung

search_stringTYPE TM_NODEKEY

String, nach dem Sie suchen möchten

item_name_tableTYPE TREEMINAMT

X Mit dieser internen Tabelle können Sie die Namen derEinträge angeben. Das System sucht dann nur in den indieser Tabelle genannten Einträgen nach dem Suchstring.

pattern_searchTYPE AS4FLAG

X Kennzeichen, das angibt, ob Sie spezifisch oder generischsuchen möchten. Wenn Sie dieses Kennzeichen setzen, wirdbei der Suche der ABAP-Operator CP (enthält Muster)benutzt.

start_nodeTYPE TM_NODEKEY

X Startknoten für die Suche. Wenn Sie keinen Startknotenangeben, sucht das System ab dem Wurzelknoten desBaums.

stop_at_expander_nodeTYPE AS4FLAG

X Wenn Sie dieses Kennzeichen setzen, stoppt derSuchvorgang, wenn ein Knoten ohne Kindknoten gefundenwird, der die Eigenschaft EXPANDER = 'X' hat. DieEigenschaften result_type und result_node_keywerden entsprechend gesetzt. Anschließend können Sie dieKindknoten in das Tree Model laden, bevor Sie die Suche mitder Methode FIND_NEXT [Seite 360] wiederaufnehmen.

Page 359: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find_first

April 2001 359

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_item_tree_model=>find_matchSuchstring wurde gefunden.

• cl_item_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_item_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden. Hinweis: Diesgilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

result_item_key_tableTYPE TREEMIKS

Interne Tabelle, bei der jede Zeile eine Stelle enthält, an derder Suchstring gefunden wurde. Der Zeilentyp hat zweiFelder:

• node_key (Typ TM_NODEKEY)

• item_name (Typ TV_ITMNAME)

result_node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, bei dem die Suche gestoppt wurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter nicht gefüllt. Er kann daher leer sein oderauch einen Wert aus einer vorigen Suche enthalten.

Page 360: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find_next

360 April 2001

find_nextMit dieser Methode nehmen Sie eine Suche wieder auf, die Sie mit der Methode find_first [Seite358] gestartet haben (z.B. nachdem die erste Suche mit dem Ergebnisfind_expander_node_hit gestoppt wurde). Die neue Suche übernimmt dieselbenSuchkriterien wie die erste Suche.CALL METHOD item_model->find_next

IMPORTING result_type = result_typeresult_item_key_table = result_item_key_tableresult_expander_node_key = result_expander_node_key.

Parameter und Typ Opt. Bedeutung

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_item_tree_model=>find_matchSuchstring wurde gefunden.

• cl_item_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_item_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden. Hinweis: Diesgilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

result_item_key_tableTYPE TREEMIKS

Interne Tabelle, bei der jede Zeile eine Stelle enthält, an derder Suchstring gefunden wurde. Der Zeilentyp hat zwei Felder:

• node_key (Typ TM_NODEKEY)

• item_name (Typ TV_ITMNAME)

result_node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, bei dem die Suche gestoppt wurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter nicht gefüllt. Er kann daher leer sein oderauch einen Wert aus einer vorigen Suche enthalten.

Page 361: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find_all

April 2001 361

find_allMit dieser Methode suchen Sie nach allen Vorkommen eines Suchstrings im Baum.CALL METHOD item_model->find_all

EXPORTING search_string = search_stringitem_name_table = item_name_tablepattern_search = pattern_searchstart_node = start_nodestop_at_expander_node = stop_at_expander_node

IMPORTING result_type = result_typeresult_item_key_table = result_item_key_tableresult_expander_node_key = result_expander_node_key.

Parameter und Typ Opt. Bedeutung

search_stringTYPE TM_NODEKEY

String, nach dem Sie suchen möchten

item_name_tableTYPE TREEMINAMT

X Mit dieser internen Tabelle können Sie die Namen derEinträge angeben. Das System sucht dann nur in den indieser Tabelle genannten Einträgen nach dem Suchstring.

pattern_searchTYPE AS4FLAG

X Kennzeichen, das angibt, ob Sie spezifisch oder generischsuchen möchten. Wenn Sie dieses Kennzeichen setzen, wirdbei der Suche der ABAP-Operator CP (enthält Muster)benutzt.

start_nodeTYPE TM_NODEKEY

X Startknoten für die Suche. Wenn Sie keinen Startknotenangeben, sucht das System ab dem Wurzelknoten desBaums.

stop_at_expander_nodeTYPE AS4FLAG

X Wenn Sie dieses Kennzeichen setzen, stoppt derSuchvorgang, wenn ein Knoten ohne Kindknoten gefundenwird, der die Eigenschaft EXPANDER = 'X' hat. DieEigenschaften result_type und result_node_keywerden entsprechend gesetzt. Anschließend können Sie dieKindknoten in das Tree Model laden, bevor Sie die Suche mitder Methode FIND_ALL_CONTINUE [Seite 363]wiederaufnehmen.

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_item_tree_model=>find_matchSuchstring wurde gefunden.

• cl_item_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_item_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden. Hinweis: Diesgilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

Page 362: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

find_all

362 April 2001

result_item_key_tableTYPE TREEMIKS

Interne Tabelle, bei der jede Zeile eine Stelle enthält, an derder Suchstring gefunden wurde. Der Zeilentyp hat zweiFelder:

• node_key (Typ TM_NODEKEY)

• item_name (Typ TV_ITMNAME)

result_node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, bei dem die Suche gestoppt wurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter nicht gefüllt. Er kann daher leer sein oderauch einen Wert aus einer vorigen Suche enthalten.

Page 363: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

find_all_continue

April 2001 363

find_all_continueMit dieser Methode nehmen Sie eine Suche wieder auf, die Sie mit der Methode FIND_ALL[Seite 361] gestartet haben, aber unterbrochen wurde, weil ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden wurde. Es werden dieselben Suchkriterien benutzt, dieSie in der Methode find_all verwendet haben.

CALL METHOD item_model->find_all_continueIMPORTING result_type = result_type

result_item_key_table = result_item_key_tableresult_expander_node_key = result_expander_node_key.

Parameter und Typ Opt. Bedeutung

result_typeTYPE I

Dieser Parameter gibt den Grund an, weshalb die Suchegestoppt wurde. Er kann folgende Werte annehmen:

• cl_item_tree_model=>find_matchSuchstring wurde gefunden.

• cl_item_tree_model=>find_no_matchSuchstring wurde nicht gefunden.

• cl_item_tree_model=>find_expander_node_hitBei der Suche wurde ein Knoten ohne Kindknoten mit derEigenschaft EXPANDER = 'X' gefunden. Hinweis: Diesgilt nur, wenn Sie den Parameterstop_at_expander_node setzen.

result_item_key_tableTYPE TREEMIKS

Interne Tabelle, bei der jede Zeile eine Stelle enthält, an derder Suchstring gefunden wurde. Der Zeilentyp hat zwei Felder:

• node_key (Typ TM_NODEKEY)

• item_name (Typ TV_ITMNAME)

result_node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, bei dem die Suche gestoppt wurde.

Achtung: Wenn der Suchstring nicht gefunden wurde, istdieser Parameter nicht gefüllt. Er kann daher leer sein oderauch einen Wert aus einer vorigen Suche enthalten.

Page 364: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

select_item

364 April 2001

select_itemMit dieser Methode selektieren Sie einen bestimmten Eintrag in einem Tree Model. Wenn Sie mitdieser Methode einen Eintrag selektieren, werden alle eventuell früher vom Benutzervorgenommenen Selektionen aufgehoben.CALL METHOD item_model->select_item

EXPORTING node_key = node_keyitem_name = item_name.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Knoten mit dem zu selektierenden Eintrag

item_nameTYPE TV_ITMNAME

Eintrag, der selektiert werden soll

Diese Methode unterliegt den normalen Regeln für die Selektion von Einträgen (z.B.kann ein Eintrag mit der Eigenschaft DISABLED = 'X' nicht selektiert werden).

Page 365: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_selected_item

April 2001 365

get_selected_itemMit dieser Methode ermitteln Sie den aktuell selektierten Eintrag.CALL METHOD item_model->get_selected_item

IMPORTING node_key = node_keyitem_name = item_name.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Knoten mit dem selektierten Eintrag

item_nameTYPE TV_ITMNAME

Selektierter Eintrag

Page 366: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_item_selection

366 April 2001

get_item_selectionMit dieser Methode ermitteln Sie, ob die Selektion von Einträgen für die Tree-Model-Instanz aktivist. Bei der Instanzierung des List oder Column Tree Model geben Sie an, ob der Benutzer in derLage sein soll, einzelne Einträge zu selektieren, oder ob beim Anklicken eines Eintragsautomatisch der gesamte Knoten selektiert wird.CALL METHOD item_model->get_item_selection

IMPORTING item_selection = item_selection.

Parameter undTyp

Opt. Bedeutung

item_selectionTYPE AS4FLAG

Kennzeichen, das angibt, ob die Selektion von Einträgen erlaubt ist:

• 'X': Ja

• ' ': Nein

Page 367: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_items

April 2001 367

delete_itemsMit dieser Methode löschen Sie eine bestimmte Gruppe von Einträgen.CALL METHOD item_model->delete_items

EXPORTING item_key_table = item_key_table.

Parameter undTyp

Opt. Bedeutung

item_key_tableTYPE TREEMIKS

Interne Tabelle, bei der jede Zeile einen Eintrag darstellt, den Sielöschen möchten Der Zeilentyp von TREEMIKS ist TREEMIKEY, derdie folgende Struktur hat.

node_key (Typ TM_NODEKEY)

item_name (Typ TV_ITMNAME)

Page 368: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

delete_all_items_of_nodes

368 April 2001

delete_all_items_of_nodesMit dieser Methode löschen Sie alle Einträge zu einer bestimmten Gruppe von Knoten.CALL METHOD item_model->delete_all_items_of_nodes

EXPORTING node_key_table = node_key_table.

Parameter undTyp

Opt. Bedeutung

node_key_tableTYPETREEMNOTAB

Interne Tabelle, bei der jede Zeile einen Knoten der Tree-Model-Instanz darstellt, dessen Einträge Sie löschen möchten. Die interneTabelle hat den Zeilentyp TM_NODEKEY.

Page 369: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_chosen

April 2001 369

item_set_chosenMit dieser Methode ändern Sie die Selektion eines Eintrags vom Typ Ankreuzfeld.CALL METHOD item_model->item_set_chosen

EXPORTING node_key = node_keyitem_name = item_namechosen = chosen.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, der das Ankreuzfeld enthält

item_nameTYPE TV_ITMNAME

Name des Ankreuzfeldeintrags

chosenTYPE AS4FLAG

Parameter mit dem neuen Zustand des Ankreuzfelds:

• 'X': Ankreuzfeld ist angekreuzt

• ' ': Ankreuzfeld ist nicht angekreuzt

Page 370: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_disabled

370 April 2001

item_set_disabledMit dieser Methode setzen Sie die Eigenschaft disabled für einen Eintrag, d.h. Sie legen fest,ob er inaktiv sein soll oder nicht. Inaktive Einträge können nicht selektiert werden.CALL METHOD item_model->item_set_disabled

EXPORTING node_key = node_keyitem_name = item_namedisabled = disabled

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPE TV_ITMNAME

Eintrag, dessen Eigenschaft disabled Sie ändern möchten

disabledTYPE AS4FLAG

Neuer Wert für die Eigenschaft disabled. Mögliche Werte:

• 'X': Eintrag inaktiv

• ' ': Eintrag nicht inaktiv

Page 371: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_editable

April 2001 371

item_set_editableMit dieser Methode setzen Sie die Eigenschaft editable für einen Eintrag vom TypAnkreuzfeld, d.h. Sie legen fest, ob er editierbar sein soll oder nicht.CALL METHOD item_model->item_set_editable

EXPORTING node_key = node_keyitem_name = item_nameeditable = editable.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPETV_ITMNAME

Name des Eintrags, dessen Attribut editable Sie ändern möchten

editableTYPE AS4FLAG

Neuer Wert für die Eigenschaft editable. Mögliche Werte:

• 'X': Ankreuzfeld ist eingabebereit

• ' ': Ankreuzfeld ist nicht eingabebereit

Page 372: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_font

372 April 2001

item_set_fontMit dieser Methode setzen Sie die Schrift für einen Eintrag.CALL METHOD item_model->item_set_font

EXPORTING node_key = node_keyitem_name = item_namefont = font

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, zu dem dieser Eintrag gehört

item_nameTYPETV_ITMNAME

Name des Eintrags

fontTYPE I

Schrift, die für den Eintrag verwendet werden soll. Mögliche Werte:

• cl_item_tree_model=>item_font_default: DieStandardschrift wird verwendet. Dabei wird für den List Treeeine Äquidistanzschrift und für den Column Tree eineProportionalschrift verwendet.

• cl_item_tree_model=>item_font_fixed: EineÄquidistanzschrift wird verwendet.

• cl_item_tree_model=>item_font_variable: EineProportionalschrift wird verwendet.

Page 373: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_hidden

April 2001 373

item_set_hiddenMit dieser Methode setzen Sie die Eigenschaft hidden für einen Eintrag, d.h. Sie legen fest, ober verborgen ist oder nicht.CALL METHOD item_model->item_set_hidden

EXPORTING node_key = node_keyitem_name = item_namehidden = hidden.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, zu dem dieser Eintrag gehört

item_nameTYPETV_ITMNAME

Name des Eintrags

hiddenTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag verborgen sein soll.Mögliche Werte:

• 'X': Verborgen

• ' ': Sichtbar

Page 374: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_style

374 April 2001

item_set_styleMit dieser Methode setzen Sie den Stil eines Eintrags.CALL METHOD item_model->item_set_style

EXPORTING node_key = node_keyitem_name = item_namestyle = style

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, zu dem dieser Eintrag gehört

item_nameTYPETV_ITMNAME

Name des Eintrags

styleTYPE I

Stil des Eintrags. Mögliche Werte:

• cl_item_tree_model=>style_inherited: Der Eintraghat denselben Stil wie der dazugehörige Knoten.

• cl_item_model=>style_default: Der Eintrag zeigt denStandardtext und die Standardhintergrundfarben.

• cl_item_tree_model=>style_intensified

• cl_item_tree_model=>style_inactive

• cl_item_tree_model=>style_intensified_critical

• cl_item_tree_model=>style_emphasized_negative

• cl_item_tree_model=>style_emphasized_positive

• cl_item_tree_model=>style_emphasized

• Alle weiteren Konstanten der Formcl_item_tree_model=>style_*

Page 375: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_text

April 2001 375

item_set_textMit dieser Methode setzen Sie den Text für einen Eintrag.CALL METHOD item_model->item_set_text

EXPORTING node_key = node_keyitem_name = item_nametext = text.

Parameter undTyp

Opt. Bedeutung

node_keyTYPETM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPETV_ITMNAME

Eintrag, dessen Text Sie ändern möchten

textTYPETM_ITEMTEXT

Text für den Eintrag

Hinweis: Obwohl der Text als String implementiert ist und daherjede beliebige Länge haben kann, werden nur die ersten 100Zeichen im Frontend-Control angezeigt.

Page 376: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_get_text

376 April 2001

item_get_textMit dieser Methode fragen Sie den Text zu einem bestimmten Eintrag ab.CALL METHOD item_model->item_get_text

EXPORTING node_key = node_keyitem_name = item_name

IMPORTING text = text.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPE TV_ITMNAME

Name des Eintrags, dessen Text Sie abfragen möchten

textTYPE TM_ITEMTXT

Text des Eintrags

Page 377: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_image

April 2001 377

item_set_imageMit dieser Methode setzen Sie eine Ikone für einen Eintrag.CALL METHOD item_tree->item_set_image

EXPORTING node_key = node_keyitem_name = item_nameimage = image.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, zu dem dieser Eintrag gehört

item_nameTYPE TV_ITMNAME

Name des Eintrags

imageTYPE TV_IMAGE

Ikone für den Eintrag. Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

Page 378: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_LIST_TREE_MODEL

378 April 2001

Methoden der Klasse CL_LIST_TREE_MODEL

Page 379: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

constructor

April 2001 379

constructorDer Konstruktor wird automatisch aufgerufen, wenn Sie die Klasse cl_list_tree_modelinstanzieren. Dazu müssen Sie eine Referenzvariable wie folgt deklarieren:DATA list_model TYPE REF TO cl_list_tree_model.

Anschließend können Sie mit der Anweisung CREATE OBJECT eine Instanz erzeugen.

CREATE OBJECT list_modelEXPORTING node_selection_mode = node_selection_mode

hide_selection = hide_selectionitem_selection = item_selectionwith_headers = with_headershierarchy_header = hierarchy_headerlist_header = list_header.

Parameter und Typ Opt. Bedeutung

node_selection_modeTYPE I

Gibt an, ob die gleichzeitige Mehrfachselektion von Knotenmöglich ist. Mögliche Werte sind:

• cl_list_tree_model=>node_sel_mode_singleEs kann immer nur ein Knoten selektiert werden.

• cl_list_tree_model=>node_sel_mode_multipleEs können mehrere Knoten selektiert werden.

hide_selectionTYPE AS4FLAG

X Gibt an, ob die Selektion unsichtbar sein soll. Mögliche Wertesind:

• 'X': Selektion verbergen

• ' ': Selektion anzeigen

item_selectionTYPE AS4FLAG

Gibt an, ob einzelne Einträge selektiert werden können. MöglicheWerte sind:

• 'X': Einträge können einzeln selektiert werden

• ' ': Knoten kann nur als Ganzes selektiert werden

with_headersTYPE AS4FLAG

Gibt an, ob der Baum eine oder zwei Überschriften haben soll.Mögliche Werte sind:

• 'X': Das Control hat sowohl eine Hierarchieüberschrift alsauch eine Listenüberschrift. Jede kann getrennt gescrolltwerden.

• ' ': Das Control hat nur eine Hierarchieüberschrift.

Hinweis: Sie sollten das List Tree Model mit Überschriften nurdann benutzen, wenn die Verwendung des Column Tree Modelnicht praktikabel ist.

hierarchy_headerTYPE TREEMHHDR

Enthält Einzelheiten der Hierarchieüberschrift. Der Parameter hatdie Struktur TREEMHHDR [Seite 467].

Page 380: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

constructor

380 April 2001

list_headerTYPE TREEMLHDR

Enthält Einzelheiten der Listenüberschrift. Der Parameter hat dieStruktur TREEMLHDR [Seite 467].

Page 381: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_node

April 2001 381

add_nodeMit dieser Methode fügen Sie einen Knoten zum List Tree Model hinzu. Der Knoten wirdanfänglich nur zum Tree Model am Backend hinzugefügt. Er wird am Ende des nächsten PBO-Ereignisses automatisch an die Baumanzeige am Frontend übertragen.CALL METHOD list_model->add_node

EXPORTING node_key = node_keyrelative_node_key = relative_node_keyrelationship = relationshipisfolder = isfolderhidden = hiddendisabled = disabledstyle = styleno_branch = no_branchexpander = expanderimage = imageexpanded_image = expanded_imagedrag_drop_id = drag_drop_idlast_hitem = last_hitemuser_object = user_objectitems_incomplete = items_incompleteitem_table = item_table.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel zur Identifizierung des Knotens im Baum. DerSchlüssel muß im gesamten Baum eindeutig sein. Sie solltennur Buchstaben, Ziffern und den Unterstrich in Knotenschlüsselnverwenden.

relative_node_keyTYPE STRING

X Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

Page 382: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_node

382 April 2001

relationshipI

X Verwandtschaftsbeziehung zwischen dem neuen Knoten unddem in relative_node_key angegebenen Knoten. MöglicheWerte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relative_node_key leer, dann wird der neueKnoten als Wurzelknoten eingefügt. Enthalten die obengenannten Werte das Wort FIRST oder PREV, wird der Knotenals erster Wurzelknoten eingefügt. Enthalten die Werte LASToder NEXT, wird der Knoten als letzter Wurzelknoten eingefügt.

isfolderTYPE AS4FLAG

Gibt an, ob der neue Knoten ein Ordner oder ein Blatt sein soll.Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

hiddenTYPE AS4FLAG

X Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ') seinsoll. Standardmäßig ist der Knoten sichtbar.

disabledTYPE AS4FLAG

X Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht (''). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

styleTYPE AS4FLAG

X Setzt die Text- und Hintergrundfarben für den Knoten. MöglicheWerte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen finden Siebei der Definition von CL_TREE_MODEL im Class Builder.

Page 383: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_node

April 2001 383

no_branchTYPE AS4FLAG

X Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werden dieLinien gezeichnet.

expanderTYPE AS4FLAG

X Diese Eigenschaft kann nur für Ordner gesetzt werden. Wenn Siesie setzen, wird für den geschlossenen Ordner immer dasSymbol '+' angezeigt, auch wenn er leer ist. Klickt der Benutzerden Ordner an, wird das Ereignis EXPAND_NO_CHILDRENausgelöst.

imageTYPE C(6)

X Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an der Position,an der normalerweise die Ikone angezeigt würde. Falls Siediesen Wert für einen Knoten verwenden, sollten Sie ihndurchgängig für alle Knoten auf derselben Stufe verwenden.

expanded_imageTYPE C(6)

X Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

drag_drop_idTYPE I

X Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

last_hitemTYPE STRING

X Name des Eintrags, der als letzter unter der Hierarchieüberschriftstehen soll.

user_objectTYPE REF TOOBJECT

X Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

items_incompleteTYPE AS4FLAG

X Kennzeichen, das angibt, daß die Eintragstabelle unvollständigist. In diesem Fall laden Sie die Einträge auf Anforderung.Weitere Informationen finden Sie unter Einträge auf Anforderungladen [Seite 262].

item_tableTYPE TREEMLITAB

Tabelle der Knoteneinträge mit dem Zeilentyp TREEMLITEM.Weitere Informationen finden Sie in der Dokumentation derStruktur im ABAP Dictionary.

Page 384: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_nodes

384 April 2001

add_nodesMit dieser Methode fügen Sie mehrere Knoten zum List Tree Model hinzu. Die Knoten werdenanfänglich nur zum Tree Model auf dem Anwendungsserver hinzugefügt. Sie werden am Endedes nächsten PBO-Ereignisses an die Baumanzeige am Frontend übertragen.CALL METHOD list_model->add_nodes

EXPORTING node_table = node_table.

Parameter und Typ Opt. Bedeutung

node_tableTYPE TREEMLNOTA

Interne Tabelle, bei der jede Zeile einen Knoten darstellt, der zumList Tree Model hinzugefügt werden soll. Die interne Tabelle hatden Zeilentyp TREEMLNODT [Seite 468].

Page 385: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_nodes

April 2001 385

update_nodesMit dieser Methode ändern Sie die Eigenschaften von Knoten im Tree Model. Die EigenschaftenRELATKEY und RELATSHIP können Sie mit dieser Methode nicht ändern. Wenn Sie einenKnoten verschieben möchten, müssen Sie die Methode MOVE_NODE verwenden.

CALL METHOD list_model->update_nodesEXPORTING node_table = node_table.

Parameter und Typ Opt. Bedeutung

node_tableTYPE TREEMLUNOT

Interne Tabelle, bei der jede Zeile einen Knoten darstellt, dessenEigenschaften Sie ändern möchten. Sie geben den Schlüssel desKnotens an, und geben einen neuen Wert für jede zu änderndeEigenschaft ein. Jede änderbare Eigenschaft verfügt über einentsprechendes Kennzeichen mit dem NamenU_<Eigenschaft>. Dieses Kennzeichen müssen Sie für jedeEigenschaft setzen, die Sie ändern.

Wenn Sie zum Beispiel die Eigenschaft hidden für einenKnoten von ' ' (nicht verborgen) in 'X' (verborgen) ändernmöchten, geben Sie 'X' in das Feld HIDDEN und 'X' in dasFeld U_HIDDEN ein (um anzuzeigen, daß das Feld aktualisiertwerden muß). Möchten Sie alle änderbaren Eigenschaften füreinen bestimmten Knoten ändern, sollten Sie das Feld U_ALLsetzen und nicht die einzelnen Kennzeichen U_<Eigenschaft>.

Der Zeilentyp des Datentyps TREEMLUNOT setzt sich wie folgtzusammen:

• Er enthält die Struktur TREEMLNODT [Seite 468]. In dieseFelder können Sie die geänderten Werte eingeben.

• Für jeden änderbaren Wert gibt es das KennzeichenfeldU_<Eigenschaft>, das für jede Eigenschaft, die Sie ändernmöchten, den Wert 'X' haben muß.

Page 386: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_items

386 April 2001

add_itemsMit dieser Methode fügen Sie neue Einträge zu einem Knoten hinzu.CALL METHOD list_model->add_items

EXPORTING item_table = item_table.

Parameter undTyp

Opt. Bedeutung

item_tableTYPETREEMLITAC

Interne Tabelle, bei der jede Zeile einen Eintrag darstellt.

Sie hat folgende Struktur:

• node_key: Enthält den Schlüssel des Knotens, zu dem SieEinträge hinzufügen möchten.

• Felder der Struktur TREEMLITEM [Seite 471]: Enthält dieübrigen Eintragseigenschaften

Page 387: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_items

April 2001 387

update_itemsMit dieser Methode aktualisieren Sie Einträge im List Tree Model.CALL METHOD list_tree->update_items

EXPORTING item_table = item_table.

Parameter undTyp

Opt. Bedeutung

item_tableTYPETREEMLITAD

Interne Tabelle, bei der jede Zeile einen Eintrag darstellt, dessenEigenschaften Sie ändern möchten. Sie geben den Schlüssel desKnotens sowie den Namen des Eintrags an und geben einenneuen Wert für jede zu ändernde Eigenschaft ein. Jede änderbareEigenschaft verfügt über ein entsprechendes Kennzeichen mit demNamen U_<Eigenschaft>. Dieses Kennzeichen müssen Sie fürjede Eigenschaft setzen, die Sie ändern.

Wenn Sie zum Beispiel die Eigenschaft hidden für einen Eintragvon ' ' (nicht verborgen) in 'X' (verborgen) ändern möchten,geben Sie 'X' in das Feld HIDDEN und 'X' in das FeldU_HIDDEN ein (um anzuzeigen, daß das Feld aktualisiert werdenmuß). Möchten Sie alle änderbaren Eigenschaften für einenbestimmten Eintrag ändern, sollten Sie das Feld U_ALL setzen undnicht die einzelnen Kennzeichen U_<Eigenschaft>.

TREEMLITAD hat den Zeilentyp TREEMLITEF, der sich wie folgtzusammensetzt:

• node_key: Schlüssel des Knotens, zu dem der Eintrag gehört

• Die inkludierte Struktur TREEMLITEM [Seite 471]. In dieseFelder können Sie die geänderten Werte eingeben.

• Für jeden änderbaren Wert gibt es das KennzeichenfeldU_<Eigenschaft>, das für jede Eigenschaft, die Sie ändernmöchten, den Wert 'X' haben muß.

Page 388: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_t_image

388 April 2001

hierarchy_header_set_t_imageMit dieser Methode setzen Sie eine neue Ikone für die Hierarchieüberschrift.CALL METHOD list_model->hierarchy_header_set_t_image

EXPORTING t_image = t_image.

Parameter undTyp

Opt. Bedeutung

t_imageTYPE C(6)

Ikone, die in der Hierarchieüberschrift erscheinen soll. MöglicheWerte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Die Anzeigeposition der Überschrift wirddann an die Stelle verschoben, an der die Ikone zu sehengewesen wäre.

Page 389: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_width

April 2001 389

hierarchy_header_set_widthMit dieser Methode legen Sie die Breite der Hierarchieüberschrift fest.CALL METHOD list_model->hierarchy_header_set_width

EXPORTING width = width.

Parameter und Typ Opt. Bedeutung

widthTYPE I

Breite der Hierarchieüberschrift in Zeichen

Page 390: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_text

390 April 2001

hierarchy_header_set_textMit dieser Methode setzen Sie einen neuen Text für die Hierarchieüberschrift.CALL METHOD list_model->hierarchy_header_set_text

EXPORTING text = text.

Parameter und Typ Opt. Bedeutung

textTYPE C(132)

Neuer Text für die Hierarchieüberschrift

Page 391: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_tooltip

April 2001 391

hierarchy_header_set_tooltipMit dieser Methode setzen Sie einen neuen Tooltip für die Hierarchieüberschrift. Der Tooltip wirdimmer dann angezeigt, wenn der Benutzer die Maus auf der Überschrift positioniert.CALL METHOD list_model->hierarchy_header_set_tooltip

EXPORTING tooltip = tooltip.

Parameter und Typ Opt. Bedeutung

tooltipTYPE C(132)

Text für den Tooltip

Page 392: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_adjust_width

392 April 2001

hierarchy_header_adjust_widthMit dieser Methode setzen Sie eine neue Breite für die Hierarchieüberschrift. Die Breite wird inZeichen angegeben.CALL METHOD list_model->hierarchy_header_adjust_width

EXPORTING width = width

Parameter und Typ Opt. Bedeutung

widthTYPE I

Neue Breite der Hierarchieüberschrift

Page 393: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_get_width

April 2001 393

hierarchy_header_get_widthMit dieser Methode fragen Sie die aktuelle Breite der Hierarchieüberschrift ab.CALL METHOD list_model->hierarchy_header_get_width

IMPORTING width = width.

Parameter und Typ Opt. Bedeutung

width Breite der Hierarchieüberschrift in Zeichen

Page 394: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_get_props

394 April 2001

hierarchy_header_get_propsMit dieser Methode ermitteln Sie die akuellen Eigenschaften der Hierarchieüberschrift.CALL METHOD list_model->hierarchy_header_get_props

IMPORTING properties = properties

Parameter undTyp

Opt. Bedeutung

properties Struktur mit den Eigenschaften der Hierarchieüberschrift. Sie hat denTyp TREEMHHDR [Seite 467].

Page 395: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

list_header_set_t_image

April 2001 395

list_header_set_t_imageMit dieser Methode setzen Sie eine neue Ikone für die Listenüberschrift.CALL METHOD list_model->list_header_set_t_image

EXPORTING t_image = t_image.

Parameter undTyp

Opt. Bedeutung

t_imageTYPE C(6)

Ikone, die in der Listenüberschrift erscheinen soll. Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Die Anzeigeposition der Überschrift wirddann an die Stelle verschoben, an der die Ikone zu sehengewesen wäre.

Page 396: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

list_header_set_text

396 April 2001

list_header_set_textMit dieser Methode setzen Sie einen neuen Text für die Listenüberschrift.CALL METHOD list_model->list_header_set_text

EXPORTING text = text.

Parameter und Typ Opt. Bedeutung

textTYPE C(132)

Neuer Text für die Listenüberschrift

Page 397: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

list_header_set_tooltip

April 2001 397

list_header_set_tooltipMit dieser Methode setzen Sie einen neuen Tooltip für die Listenüberschrift. Der Tooltip wirdimmer dann angezeigt, wenn der Benutzer die Maus auf der Listenüberschrift positioniert.CALL METHOD list_model->list_header_set_tooltip

EXPORTING tooltip = tooltip.

Parameter und Typ Opt. Bedeutung

tooltipTYPE C(132)

Text für den Tooltip

Page 398: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

list_header_get_properties

398 April 2001

list_header_get_propertiesMit dieser Methode fragen Sie die akuellen Eigenschaften der Listenüberschrift ab.CALL METHOD list_model->list_header_get_properties

IMPORTING properties = properties

Parameter undTyp

Opt. Bedeutung

properties Struktur mit den Eigenschaften der Listenüberschrift. Sie hat den TypTREEMLHDR [Seite 467].

Page 399: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_set_last_hierarchy_item

April 2001 399

node_set_last_hierarchy_itemMit dieser Methode legen Sie fest, welcher Eintrag als letzter unter der Hierarchieüberschriftstehen soll. Die nachfolgenden Einträge stehen dann unter der Listenüberschrift.CALL METHOD list_model->node_set_last_hierarchy_item

EXPORTING node_key = node_keylast_hierarchy_item = last_hierarchy_item.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens.

last_hierarchy_itemTYPE C(12)

Letzter Eintrag des Knotens, der unterhalb derHierarchieüberschrift angezeigt werden soll

Page 400: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_properties

400 April 2001

node_get_propertiesMit dieser Methode fragen Sie die Eigenschaften eines Knotens ab.CALL METHOD list_model->node_get_properties

EXPORTING node_key = node_keyIMPORTING properties = properties.

Parameter undTyp

Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, dessen Eigenschaften Sie ermitteln möchten

propertiesTYPETREEMLNODT

Struktur mit den Eigenschaften des Knotens. Sie hat den TypTREEMLNODT [Seite 468].

Page 401: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_item

April 2001 401

node_get_itemMit dieser Methode ermitteln Sie die Eigenschaften eines einzelnen Knoteneintrags.CALL METHOD list_model->node_get_item

EXPORTING node_key = node_keyitem_name = item_name

IMPORTING item = item.

Parameter undTyp

Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens.

item_nameTYPE C(12)

Name des Eintrags, dessen Eigenschaften Sie ermitteln möchten

itemTYPETREEMLITEM

Struktur mit den Eigenschaften des Eintrags. Sie hat den TypTREEMLITEM [Seite 471].

Page 402: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_items

402 April 2001

node_get_itemsMit dieser Methode ermitteln Sie die Eigenschaften aller Einträge eines Knotens.CALL METHOD list_model->node_get_items

EXPORTING node_key = node_keyIMPORTING item_table = item_table.

Parameter undTyp

Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, dessen Eintragsinformationen Sie ermittelnmöchten

item_tableTYPETREEMLITAB

Interne Tabelle, bei der jede Zeile die Eigenschaften einesKnoteneintrags enthält. Die interne Tabelle hat den ZeilentypTREEMLITEM [Seite 471].

Page 403: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

item_set_alignment

April 2001 403

item_set_alignmentMit dieser Methode setzen Sie die Ausrichtung eines Eintrags im List Tree Model.CALL METHOD list_model->item_set_alignment

EXPORTING node_key = node_keyitem_name = item_namealignment = alignment.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPE C(12)

Name des Eintrags, dessen Ausrichtung gesetzt werden soll.

alignmentTYPE I

Ausrichtung des Eintrags. Mögliche Werte:

• cl_item_tree_model=>align_left

• cl_item_tree_model=>align_right

• cl_item_tree_model=>align_autoDer Eintrag wird nicht ausgerichtet, aber dieAnzeigebreite wird an die Länge des Eintrags angepaßt.

Page 404: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

item_set_length

404 April 2001

item_set_lengthMit dieser Methode setzen Sie die Länge eines Eintrags im List Tree Model.CALL METHOD list_model->item_set_length

EXPORTING node_key = node_keyitem_name = item_namelength = length.

Parameter und Typ Opt. Bedeutung

node_keyTYPE STRING

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPE C(12)

Name des Eintrags, dessen Länge eingestellt werden soll.

lengthTYPE I

Neue Länge des Eintrags in Zeichen

Page 405: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_tree

April 2001 405

get_treeMit dieser Methode ermitteln Sie den Inhalt der Instanz des List Tree Model in einer Reiheinterner Tabellen.CALL METHOD list_model->get_tree

EXPORTING root_node_key = root_node_keyIMPORTING node_table = node_table

item_table = item_table.

Parameter undTyp

Opt. Bedeutung

root_node_keyTYPE STRING

Wurzelknoten des Baums

node_tableTYPETREEMLNOTA

Interne Tabelle, bei der jede Zeile einen Knoten der Instanz desList Tree Model darstellt Die interne Tabelle hat den ZeilentypTREEMLNODT [Seite 468].

item_tableTYPETREEMLITAC

Interne Tabelle, bei der jede Zeile einen Eintrag der Instanz desList Tree Model darstellt. Sie ist wie folgt strukturiert:

• node_key: Schlüssel des Knotens, zu dem der Eintrag gehört

• Inkludierte Struktur TREEMLITEM [Seite 471], welche dieEintragseigenschaften enthält.

Page 406: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_item_provider

406 April 2001

set_item_providerMit dieser Methode geben Sie eine Referenzvariable an, die auf das Quellobjekt der Einträgezeigt, die auf Anforderung geladen [Seite 262] werden sollen.CALL METHOD list_model->set_item_provider

EXPORTING item_provider = item_provider.

Parameter und Typ Opt. Bedeutung

item_providerTYPE REF TOIF_LIST_TREE_MODEL_ITEM_PROV

Referenzvariable, die auf das Objekt zeigt, aus dem die Einträgegeladen werden. Weitere Informationen finden Sie unterEinträge auf Anforderung laden [Seite 262].

Page 407: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_with_headers

April 2001 407

get_with_headersMit dieser Methode ermitteln Sie, ob die Instanz des List Tree Model Überschriften hat.CALL METHOD list_model->get_with_headers

IMPORTING with_headers = with_headers.

Parameter undTyp

Opt. Bedeutung

with_headersTYPE AS4FLAG

Gibt an, ob die Instanz des List Tree Model Überschriften hat.Mögliche Werte:

'X': Ja

' ': Nein

Page 408: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_COLUMN_TREE_MODEL

408 April 2001

Methoden der Klasse CL_COLUMN_TREE_MODEL

Page 409: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

constructor

April 2001 409

constructorDer Konstruktor wird automatisch aufgerufen, wenn Sie die Klasse cl_column_tree_modelinstanzieren. Dazu müssen Sie eine Referenzvariable wie folgt deklarieren:DATA column_model TYPE REF TO cl_column_tree_model.

Anschließend können Sie mit der Anweisung CREATE OBJECT eine Instanz erzeugen.

CREATE OBJECT column_modelEXPORTING node_selection_mode = node_selection_mode

hide_selection = hide_selectionitem_selection = item_selectionhierarchy_column_name = hierarchy_colunm_namehierarchy_header = hierarchy_header.

Parameter und Typ Opt. Bedeutung

node_selection_modeTYPE I

Gibt an, ob die gleichzeitige Mehrfachselektion von Knotenmöglich ist. Mögliche Werte sind:

• cl_column_tree_model=>node_sel_mode_singleEs kann immer nur ein Knoten selektiert werden.

• cl_column_tree_model=>node_sel_mode_multipleEs können mehrere Knoten selektiert werden.

hide_selectionTYPE AS4FLAG

X Gibt an, ob die Selektion unsichtbar sein soll. Mögliche Werte:

• 'X': Selektion ist verborgen

• ' ': Selektion ist sichtbar

item_selectionTYPE AS4FLAG

X Gibt an, ob einzelne Einträge selektiert werden können.Mögliche Werte:

• 'X': Einträge können einzeln selektiert werden

• 'X': Einträge können nicht einzeln selektiert werdenDurch das Anklicken eines Eintrags wird der gesamteKnoten selektiert.

hierarchy_column_nameTYPE C(12)

Name der Spalte, die unter der Hierarchieüberschrift erscheint

hierarchy_headerTYPE TREEMHHDR

Struktur mit Informationen zur Hierarchieüberschrift. WeitereInformationen finden Sie unter Strukturen für Überschriftenvon Item Trees [Seite 467].

Page 410: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_node

410 April 2001

add_nodeMit dieser Methode fügen Sie einen Knoten zum Column Tree Model hinzu. Der Knoten wirdanfänglich nur zum Tree Model auf dem Anwendungsserver hinzugefügt. Er wird am Ende desnächsten PBO-Ereignisses an die Baumanzeige am Frontend übertragen.CALL METHOD column_model->add_node

EXPORTING node_key = node_keyrelative_node_key = relative_node_keyrelationship = relationshipisfolder = isfolderhidden = hiddendisabled = disabledstyle = styleno_branch = no_branchexpander = expanderimage = imageexpanded_image = expanded_imagedrag_drop_id = drag_drop_iduser_object = user_objectitems_incomplete = items_incompleteitem_table = item_table.

Parameter undTyp

Opt. Bedeutung

node_keyTYPE STRING

Schlüssel zur Identifizierung des Knotens im Baum. Der Schlüsselmuß im gesamten Baum eindeutig sein. Sie sollten nurBuchstaben, Ziffern und den Unterstrich in Knotenschlüsselnverwenden.

relative_node_keyTYPE STRING

X Schlüssel des Knotens, zu dem der neue Knoten in seiner Positionin Beziehung steht. Handelt es sich bei dem neuen Knoten um denersten oder letzten Wurzelknoten, muß dieser Parameter den Wert '' haben.

Page 411: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_node

April 2001 411

relationshipTYPE I

X Verwandtschaftsbeziehung zwischen dem neuen Knoten und dem inrelative_node_key angegebenen Knoten. Mögliche Werte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselben Stufewie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselben Stufewie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relative_node_key leer, dann wird der neueKnoten als Wurzelknoten eingefügt. Enthalten die oben genanntenWerte das Wort FIRST oder PREV, wird der Knoten als ersterWurzelknoten eingefügt. Enthalten die Werte LAST oder NEXT, wirdder Knoten als letzter Wurzelknoten eingefügt.

isfolderTYPE AS4FLAG

Gibt an, ob der Knoten ein Ordner ist. Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

hiddenTYPE AS4FLAG

X Gibt an, ob der Knoten verborgen ist. Mögliche Werte:

• 'X': Knoten ist verborgen

• ' ': Knoten ist sichtbar

disabledTYPE AS4FLAG

X Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht (''). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

styleTYPE I

X Setzt die Text- und Hintergrundfarben für den Knoten. MöglicheWerte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen finden Sie beider Definition von CL_TREE_MODEL im Class Builder.

Page 412: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_node

412 April 2001

no_branchTYPE AS4FLAG

X Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werden dieLinien gezeichnet.

expanderTYPE AS4FLAG

X Diese Eigenschaft kann nur für Ordner gesetzt werden. Wenn Siesie setzen, wird für den geschlossenen Ordner immer das Symbol'+' angezeigt, auch wenn er leer ist. Klickt der Benutzer den Ordneran, wird das Ereignis EXPAND_NO_CHILDREN ausgelöst.

imageTYPE C(6)

X Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt bei Blättern,geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an der Position,an der normalerweise die Ikone angezeigt würde. Falls Siediesen Wert für einen Knoten verwenden, sollten Sie ihndurchgängig für alle Knoten auf derselben Stufe verwenden.

expanded_imageTYPE C(6)

X Gibt die Ikone für einen geöffneten Knoten an. Die möglichen Werteentsprechen den weiter oben für den Parameter imageangegebenen Werten.

drag_drop_idTYPE I

X Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Er enthältdas Handle für ein Drag&Drop-Objekt.

user_objectTYPE REF TOOBJECT

X Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

items_incompleteTYPE AS4FLAG

X Kennzeichen, das angibt, daß die Eintragstabelle unvollständig ist.In diesem Fall laden Sie die Einträge auf Anforderung.

item_tableTYPETREEMCITAB

Tabelle mit Details der Einträge des Knotens. Die interne TabelleTREEMCITAB hat den Zeilentyp TREEMCITEM [Seite 474].

Page 413: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_nodes

April 2001 413

add_nodesMit dieser Methode fügen Sie mehrere Knoten zum Column Tree Model hinzu. Die Knotenwerden anfänglich nur zum Tree Model auf dem Anwendungsserver hinzugefügt. Sie werden amEnde des nächsten PBO-Ereignisses an die Baumanzeige am Frontend übertragen.CALL METHOD column_model->add_nodes

EXPORTING node_table = node_table.

Parameter undTyp

Opt. Bedeutung

node_tableTYPETREEMCNOTA

Interne Tabelle mit den Knoten, die Sie zum Tree Modelhinzufügen möchten. DieTabelle hat die Struktur TREEMCNODT[Seite 476].

Page 414: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_nodes

414 April 2001

update_nodesMit dieser Methode ändern Sie die Eigenschaften von Knoten im Column Tree Model.

Die Knoteneigenschaften RELATKEY und RELATSHIP können Sie nicht ändern. Umeinen Knoten zu verschieben, verwenden Sie die Methode MOVE_NODE [Seite319].

CALL METHOD column_model->update_nodesEXPORTING node_table = node_table.

Parameter undTyp

Opt. Bedeutung

node_tableTYPETREEMCUNOT

Interne Tabelle, bei der jede Zeile einen Knoten darstellt, dessenEigenschaften Sie ändern möchten. Sie geben den Schlüssel desKnotens an, und geben einen neuen Wert für jede zu änderndeEigenschaft ein. Jede änderbare Eigenschaft verfügt über einentsprechendes Kennzeichen mit dem NamenU_<Eigenschaft>. Dieses Kennzeichen müssen Sie für jedeEigenschaft setzen, die Sie ändern.

Wenn Sie zum Beispiel die Eigenschaft hidden für einen Knotenvon ' ' (nicht verborgen) in 'X' (verborgen) ändern möchten,geben Sie 'X' in das Feld HIDDEN und 'X' in das FeldU_HIDDEN ein (um anzuzeigen, daß das Feld aktualisiert werdenmuß). Möchten Sie alle änderbaren Eigenschaften für einenbestimmten Knoten ändern, sollten Sie das Feld U_ALL setzenund nicht die einzelnen Kennzeichen U_<Eigenschaft>.

Der Zeilentyp der Tabelle setzt sich wie folgt zusammen:

• Die inkludierte Struktur TREEMCNODT [Seite 476].

• Für jeden änderbaren Wert gibt es das KennzeichenfeldU_<Eigenschaft>, das für jede Eigenschaft, die Sie ändernmöchten, den Wert 'X' haben muß.

Page 415: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_items

April 2001 415

add_itemsMit dieser Methode fügen Sie neue Einträge zu einem Knoten im Column Tree Model hinzu.CALL METHOD column_model->add_items

EXPORTING item_table = item_table.

Parameter undTyp

Opt. Bedeutung

item_tableTYPETREEMCITAC

Interne Tabelle, bei der jede Zeile einen Eintrag darstellt.

Sie hat folgende Struktur:

• node_key: Enthält den Schlüssel des Knotens, zu dem SieEinträge hinzufügen möchten.

• Felder der Struktur TREEMCITEM [Seite 474]: Enthält dieübrigen Eintragseigenschaften

Page 416: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_items

416 April 2001

update_itemsMit dieser Methode ändern Sie die Einträge eines Knotens im Column Tree Model.CALL METHOD column_model->update_items

EXPORTING item_table = item_table.

Parameter undTyp

Opt. Bedeutung

item_tableTYPETREEMCITAD

Interne Tabelle, bei der jede Zeile einen Eintrag darstellt, dessenEigenschaften Sie ändern möchten. Sie geben den Schlüssel desKnotens sowie den Namen des Eintrags an und geben einen neuenWert für jede zu ändernde Eigenschaft ein. Jede änderbareEigenschaft verfügt über ein entsprechendes Kennzeichen mit demNamen U_<Eigenschaft>. Dieses Kennzeichen müssen Sie fürjede Eigenschaft setzen, die Sie ändern.

Wenn Sie zum Beispiel die Eigenschaft hidden für einen Eintragvon ' ' (nicht verborgen) in 'X' (verborgen) ändern möchten,geben Sie 'X' in das Feld HIDDEN und 'X' in das Feld U_HIDDENein (um anzuzeigen, daß das Feld aktualisiert werden muß).Möchten Sie alle änderbaren Eigenschaften für einen bestimmtenEintrag ändern, sollten Sie das Feld U_ALL setzen und nicht dieeinzelnen Kennzeichen U_<Eigenschaft>.

TREEMCITAD hat den Zeilentyp TREEMCITEF, der sich wie folgtzusammensetzt:

• node_key: Schlüssel des Knotens, zu dem der Eintrag gehört

• Die inkludierte Struktur TREEMCITEM [Seite 474]. In dieseFelder können Sie die geänderten Werte eingeben.

• Für jeden änderbaren Wert gibt es das KennzeichenfeldU_<Eigenschaft>, das für jede Eigenschaft, die Sie ändernmöchten, den Wert 'X' haben muß.

Page 417: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_column

April 2001 417

add_columnMit dieser Methode fügen Sie eine neue Spalte zum Column Tree Model hinzu. Die Spalte wirdnicht unter der Hierarchieüberschrift eingefügt.CALL METHOD column_model->add_column

EXPORTING name = namehidden = hiddendisabled = disabledalignment = alignmentwidth = widthheader_image = header_imageheader_text = header_textheader_tooltip = header_tooltip.

Parameter undTyp

Opt. Bedeutung

nameTYPETV_ITMNAME

Name der Spalte

hiddenTYPE AS4FLAG

X Kennzeichen, das angibt, ob dieSpalte verborgen ist. MöglicheWerte:

• 'X': Spalte ist verborgen

• ' ': Spalte ist sichtbar

disabledTYPE AS4FLAG

X Kennzeichen, das angibt, ob dieSpalte inaktiv ist. Inaktive Spaltenkönnen nicht selektiert werden.

• 'X': Spalte ist inaktiv

• ' ': Spalte ist nicht inaktiv

alignmentTYPE I

X Ausrichtung der Spalte. Mögliche Werte:

• cl_column_tree_model=>align_left

• cl_column_tree_model=>align_right

• cl_column_tree_model=>align_center

widthTYPE I

Breite der Spalte in Zeichen

header_imageTYPE TV_IMAGE

X Ikone, die in der Spaltenüberschrift angezeigt werden soll. MöglicheWerte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

header_textTYPETV_HEADING

Text der Spaltenüberschrift

Page 418: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add_column

418 April 2001

header_tooltipTYPETV_HEADING

X Text des Tooltips der Spaltenüberschrift. Der Tooltip wird immer dannangezeigt, wenn der Benutzer die Maus auf der Überschriftpositioniert.

Page 419: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add_hierarchy_column

April 2001 419

add_hierarchy_columnMit dieser Methode fügen Sie eine neue Spalte im Hierarchiebereich ein. Die Spaltenüberschrifterscheint unterhalb der Hierarchieüberschrift.CALL METHOD column_model->add_hierarchy_column

EXPORTING name = namehidden = hiddendisabled = disabled.

Parameter undTyp

Opt. Bedeutung

nameTYPETV_ITMNAME

Name der Spalte

hiddenTYPE AS4FLAG

X Gibt an, ob die Spalte unsichtbar ('X') oder sichtbar (' ') seinsoll.

disabledTYPE AS4FLAG

X Gibt an, ob die Spalte inaktiv ('X') oder aktiv (' ') sein soll.

Page 420: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

insert_column

420 April 2001

insert_columnMit dieser Methode fügen Sie im Column Tree Model eine neue Spalte nach einer vorhandenenSpalte ein.

Wenn Sie eine Spalte am Ende des Column Tree Model einfügen möchten,verwenden Sie die Methode add_column [Seite 417].

CALL METHOD column_model->insert_columnEXPORTING name = name

predecessor_column = predecessor_columnhidden = hiddendisabled = disabledalignment = alignmentwidth = widthheader_image = header_imageheader_text = header_textheader_tooltip = header_tooltip.

Parameter und Typ Opt. Bedeutung

nameTYPE TV_ITMNAME

Name der Spalte

predecessor_columnTYPE TV_ITMNAME

X Spalte,nach der Sie die neue Spalte einfügen möchten

hiddenTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Spalte verborgen ist. MöglicheWerte:

• 'X': Spalte ist verborgen

• ' ': Spalte ist sichtbar

disabledTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Spalte inaktiv ist. InaktiveSpalten können nicht selektiert werden.

• 'X': Spalte ist inaktiv

• ' ': Spalte ist nicht inaktiv

alignmentTYPE I

X Ausrichtung der Spalte. Mögliche Werte:

• cl_column_tree_model=>align_left

• cl_column_tree_model=>align_right

• cl_column_tree_model=>align_center

widthTYPE I

Breite der Spalte in Zeichen

Page 421: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

insert_column

April 2001 421

header_imageTYPE TV_IMAGE

X Ikone, die in der Spaltenüberschrift angezeigt werden soll.Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

header_textTYPE TV_HEADING

Text der Spaltenüberschrift

header_tooltipTYPE TV_HEADING

X Text des Tooltips der Spaltenüberschrift. Der Tooltip wird immerdann angezeigt, wenn der Benutzer die Maus auf der Überschriftpositioniert.

Page 422: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

insert_hierarchy_column

422 April 2001

insert_hierarchy_columnMit dieser Methode fügen Sie eine Spalte an einer bestimmten Stelle unterhalb derHierarchieüberschrift ein. Wenn Sie eine Hierarchiespalte am Ende rechts einfügen möchten,verwenden Sie die Methode add_hierarchy_column [Seite 419].CALL METHOD column_model->insert_hierarchy_column

EXPORTING name = namehidden = hiddendisabled = disabled.

Parameter und Typ Opt. Bedeutung

nameTYPE TV_ITMNAME

Name der Spalte

hiddenTYPE AS4FLAG

X Gibt an, ob die Spalte unsichtbar ('X') oder sichtbar (' ') seinsoll.

disabledTYPE AS4FLAG

X Gibt an, ob die Spalte inaktiv ('X') oder aktiv (' ') sein soll.

predecessor_columnTYPE TV_ITMNAME

X Name der Spalte, nach der Sie die neue Spalte einfügen möchten

Page 423: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

delete_column

April 2001 423

delete_columnMit dieser Methode löschen Sie eine Spalte im Column Tree Model.CALL METHOD column_model->delete_column

EXPORTING column_name = column_name.

Parameter und Typ Opt. Bedeutung

column_nameTYPE TV_ITMNAME

Name der Spalte, die gelöscht werden soll

Page 424: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_adjust_width

424 April 2001

hierarchy_header_adjust_widthMit dieser Methode passen Sie die Breite der Hierarchieüberschrift im Column Tree Model so an,daß alle Einträge darunter komplett sichtbar sind. Nur expandierte Knoten werden berücksichtigt.CALL METHOD column_model->hierarchy_header_adjust_width

EXPORTING include_heading = include_heading.

Parameter undTyp

Opt. Bedeutung

include_headingTYPE AS4FLAG

X Gibt an, ob die Überschrift bei der Berechnung derBreitenanpassung berücksichtigt werden soll ('X') oder nicht (' ').

Page 425: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_text

April 2001 425

hierarchy_header_set_textMit dieser Methode setzen Sie einen neuen Text für die Hierarchieüberschrift.CALL METHOD column_model->hierarchy_header_set_text

EXPORTING text = text.

Parameter und Typ Opt. Bedeutung

textTYPE TV_HEADING

Neuer Text der Überschrift

Page 426: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_tooltip

426 April 2001

hierarchy_header_set_tooltipMit dieser Methode setzen Sie einen neuen Tooltip für die Hierarchieüberschrift. Der Tooltip wirdimmer dann angezeigt, wenn der Benutzer die Maus auf der Hierarchieüberschrift positioniert.CALL METHOD column_model->hierarchy_header_set_tooltip

EXPORTING toltip = tooltip.

Parameter und Typ Opt. Bedeutung

tooltipTYPE TV_HEADING

X Neuer Text für den Tooltip

Page 427: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_set_t_image

April 2001 427

hierarchy_header_set_t_imageMit dieser Methode setzen Sie eine neue Ikone für die Hierarchieüberschrift.CALL METHOD column_model->set_t_image

EXPORTING .

Parameter undTyp

Opt. Bedeutung

t_imageTYPE TV_IMAGE

Neue Ikone für die Hierarchieüberschrift in der Form '@XY@'. WennSie keine Ikone verwenden möchten, benutzen Sie den Wert ' '.

Page 428: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_set_width

428 April 2001

hierarchy_header_set_widthMit dieser Methode setzen Sie eine neue Breite für die Hierarchieüberschrift.CALL METHOD column_model->hierarchy_header_set_width

EXPORTING width = width.

Parameter und Typ Opt. Bedeutung

widthTYPE I

Neue Breite der Hierarchieüberschrift in Zeichen

Page 429: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_hierarchy_header

April 2001 429

update_hierarchy_headerMit dieser Methode ändern Sie die Eigenschaften der Hierarchieüberschrift. Sie können mitdieser Methode vier Eigenschaften ändern. Für jede Eigenschaft, die Sie ändern, müssen Sieauch den entsprechenden Parameter UPDATE_<Eigenschaft> auf 'X' setzen.

CALL METHOD column_model->update_hierarchy_headerEXPORTING t_image = t_image

width = widthheading = headingtooltip = tooltipupdate_t_image = update_t_imageupdate_width = update_widthupdate_heading = update_headingupdate_tooltip = update_tooltip.

Parameter undTyp

Opt. Bedeutung

t_imageTYPE TV_IMAGE

X Neue Ikone für die Hierarchieüberschrift in der Form '@XY@'. WennSie keine Ikone verwenden möchten, benutzen Sie den Wert ' '.

widthTYPE I

X Neue Breite der Hierarchieüberschrift

headingTYPETV_HEADING

X Neuer Text für die Hierarchieüberschrift

tooltipTYPETV_HEADING

X Neuer Tooltip für die Hierarchieüberschrift. Der Tooltip wird immerdann angezeigt, wenn der Benutzer die Maus auf derHierarchieüberschrift positioniert.

update_t_imageTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für t_image eingegeben haben

update_widthTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für width eingegeben haben

update_headingTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für heading eingegeben haben

update_tooltipTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für tooltip eingegeben haben

Page 430: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

hierarchy_header_get_width

430 April 2001

hierarchy_header_get_widthMit dieser Methode fragen Sie die Breite der Hierarchieüberschrift in Zeichen ab.CALL METHOD column_model->hierarchy_header_get_width

IMPORTING width = width.

Parameter und Typ Opt. Bedeutung

widthTYPE I

Breite der Hierarchieüberschrift

Page 431: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

hierarchy_header_get_props

April 2001 431

hierarchy_header_get_propsMit dieser Methode fragen Sie die aktuellen Eigenschaften der Hierarchieüberschrift ab.CALL METHOD column_model->hierarchy_header_get_props

IMPORTING properties = properties.

Parameter undTyp

Opt. Bedeutung

propertiesTYPE TREEMHHDR

Struktur mit den aktuellen Eigenschaften der Hierarchieüberschrift.Weitere Informationen finden Sie unter Strukturen für Überschriftenvon Item Trees [Seite 467].

Page 432: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_hierarchy_columns

432 April 2001

get_hierarchy_columnsMit dieser Methode fragen Sie die Namen der Spalten unterhalb der Hierarchieüberschrift ab.CALL METHOD column_model->get_hierarchy_columns

IMPORTING column_table = column_table.

Parameter undTyp

Opt. Bedeutung

column_tableTYPETREEMCHCLS

Tabelle mit den Spalten unterhalb der Hierarchieüberschrift. Sie hatden Zeilentyp TREEMCHCL.

Struktur TREEMCHCLKomponente undTyp

Bedeutung

nameTYPETV_ITMNAME

Name der Spalte

hiddenTYPE AS4FLAG

Kennzeichen, das angibt, ob die Spalte unsichtbar ('X') oder sichtbar ('') ist

disabledTYPE AS4FLAG

Kennzeichen, das angibt, ob die Spalte inaktiv ('X') oder aktiv (' ') ist

Page 433: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_nr_of_columns

April 2001 433

get_nr_of_columnsMit dieser Methode ermitteln Sie die Anzahl der Spalten im Column Tree Model.CALL METHOD column_model->get_nr_of_columns

IMPORTING nr_of_columns = nr_of_columns.

Parameter und Typ Opt. Bedeutung

nr_of_columnsTYPE I

Anzahl der Spalten im Tree Model

Page 434: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_first_column

434 April 2001

get_first_columnMit dieser Methode ermitteln Sie den Namen der ersten Spalte in der Instanz des Column TreeModel.CALL METHOD column_model->get_first_column

IMPORTING column_name = column_name.

Parameter und Typ Opt. Bedeutung

column_nameTYPE TV_ITMNAME

Name der ersten Spalte in der Tree-Model-Instanz

Page 435: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_last_column

April 2001 435

get_last_columnMit dieser Methode ermitteln Sie den Namen der letzten Spalte in der Instanz des Column TreeModel.CALL METHOD column_model->get_last_column

IMPORTING column_name = column_name.

Parameter und Typ Opt. Bedeutung

column_nameTYPE TV_ITMNAME

Name der letzten Spalte in der Tree-Model-Instanz

Page 436: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_widths_of_columns

436 April 2001

get_widths_of_columnsMit dieser Methode ermitteln Sie die Breite aller Spalten in der Instanz des Column Tree Model.CALL METHOD column_model->get_widths_of_columns

IMPORTING widths_of_columns = widths_of_columns.

Parameter undTyp

Opt. Bedeutung

widths_of_columnsTYPETREEV_COWT

Interne Tabelle mit der Breite der Spalten. Sie hat den ZeilentypTREEV_COWI.

Struktur TREEV_COWIKomponente und Typ Bedeutung

nameTYPE TV_ITMNAME

Name der Spalte

width_pixTYPE I

Breite der Spalte in Pixel

width_charTYPE I

Breite der Spalte in Zeichen

Page 437: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_column_order

April 2001 437

get_column_orderMit dieser Methode ermitteln Sie die Reihenfolge der Spalten in der Instanz des Column TreeModel.CALL METHOD column_model->get_column_order

IMPORTING columns = columns.

Parameter undTyp

Opt. Bedeutung

columnsTYPETREEV_CONA

Interne Tabelle, bei der jede Zeile den Namen einer Spalte enthält.Die Reihenfolge, in der sie aufgeführt werden, entspricht derReihenfolge im Tree Model. Die Tabelle hat den ZeilentypTV_ITMNAME.

Page 438: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_column_order

438 April 2001

set_column_orderMit dieser Methode setzen Sie die Reihenfolge der Spalten im Column Tree Model.CALL METHOD column_model->set_column_order

EXPORTING columns = columns.

Parameter undTyp

Opt. Bedeutung

columnsTYPETREEV_CONA

Interne Tabelle mit Zeilentyp TV_ITMNAME, bei der jede Zeile denNamen einer Spalte enthalten sollte. Die Spalten erscheinen in derReihenfolge, in der Sie sie in der Tabelle angeben.

Page 439: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_column_order_frozen

April 2001 439

set_column_order_frozenIn einem Column Tree kann der Benutzer die Position von Spalten mit der Maus vertauschen. Mitdieser Methode können Sie diese Funktion deaktivieren bzw. aktivieren.CALL METHOD column_model->set_column_order_frozen

EXPORTING frozen = frozen.

Parameter undTyp

Opt. Bedeutung

frozenTYPE AS4FLAG

Gibt an, ob die Spaltenreihenfolge fix ist. Mögliche Werte:

• 'X': Spaltenreihenfolge ist fix (und kann vom Benutzer nichtgeändert werden)

• ' ': Spaltenreihenfolge ist nicht fix (und kann vom Benutzergeändert werden)

Page 440: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_set_disabled

440 April 2001

column_set_disabledMit dieser Methode setzen Sie die Eigenschaft disabled für eine Spalte im Tree Model, d.h. Sielegen fest, ob sie inaktiv ist oder nicht. Inaktive Spalten können nicht selektiert werden.CALL METHOD column_model->column_set_disabled

EXPORTING column_name = column_namedisabled = disabled.

Parameter undTyp

Opt. Bedeutung

column_nameTYPETV_ITMNAME

Name der Spalte in der Tree-Model-Instanz

disabledTYPE AS4FLAG

Kennzeichen, das angibt, ob dieSpalte inaktiv sein soll. MöglicheWerte:

• 'X': Spalte ist inaktiv

• ' ': Spalte ist nicht inaktiv

Page 441: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_set_heading_image

April 2001 441

column_set_heading_imageMit dieser Methode setzen Sie eine neue Ikone für die Spaltenüberschrift.CALL METHOD column_model->column_set_heading_image

EXPORTING .

Parameter undTyp

Opt. Bedeutung

column_nameTYPETV_ITMNAME

Name der Spalte in der Tree-Model-Instanz

imageTYPE TV_IMAGE

Ikone, die in der Spaltenüberschrift erscheinen soll. Mögliche Werte:

• '@XY@': SAP-Ikone mit Code XY

• ' ': Keine Ikone

Page 442: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_set_heading_text

442 April 2001

column_set_heading_textMit dieser Methode setzen Sie einen neuen Text für eine Spaltenüberschrift im Column TreeModel.CALL METHOD column_model->column_set_heading_text

EXPORTING column_name = column_nametext = text.

Parameter und Typ Opt. Bedeutung

column_nameTYPE TV_ITMNAME

Name der Spalte in der Tree-Model-Instanz

textTYPE TV_HEADING

Neuer Text für die Spaltenüberschrift

Page 443: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_set_heading_tooltip

April 2001 443

column_set_heading_tooltipMit dieser Methode setzen Sie einen neuen Tooltip für die Spaltenüberschrift. Der Tooltip wirdimmer dann angezeigt, wenn der Benutzer die Maus auf der Überschrift positioniert.CALL METHOD column_model->column_set_heading_tooltip

EXPORTING column_name = column_nametooltip = tooltip.

Parameter und Typ Opt. Bedeutung

column_nameTYPE TV_ITMNAME

Name der Spalte in der Tree-Model-Instanz

tooltipTYPE TV_HEADING

Text für den neuen Tooltip

Page 444: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_set_hidden

444 April 2001

column_set_hiddenMit dieser Methode verbergen Sie eine Spalte im Column Tree Model. Sie können die Methodeauch verwenden, um eine verborgene Spalte wieder sichtbar zu machen.CALL METHOD column_model->column_set_hidden

EXPORTING column_name = column_namehidden = hidden.

Parameter undTyp

Opt. Bedeutung

column_nameTYPETV_ITMNAME

Name der Spalte in der Tree-Model-Instanz

hiddenTYPE AS4FLAG

Kennzeichen, das angibt, ob die Spalte verborgen ist. MöglicheWerte:

• 'X': Verborgen

• ' ': Sichtbar

Page 445: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_set_width

April 2001 445

column_set_widthMit dieser Methode setzen Sie die Breite einer Spalte im Column Tree Model.CALL METHOD column_model->column_set_width

EXPORTING column_name = column_namewidth = width.

Parameter und Typ Opt. Bedeutung

column_nameTYPE TV_ITMNAME

Name der Spalte in der Tree-Model-Instanz

widthTYPE I

Neue Breite der Spalte in Zeichen

Page 446: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

update_column

446 April 2001

update_columnMit dieser Methode ändern Sie die Eigenschaften einer Spaltenüberschrift. Sie können mit dieserMethode vier Eigenschaften ändern. Für jede Eigenschaft, die Sie ändern, müssen Sie auch denentsprechenden Parameter UPDATE_<Eigenschaft> auf 'X' setzen.

CALL METHOD column_model->update_columnEXPORTING name = name

hidden = hiddendisabled = disabledalignment = alignmentheader_image = header_imageheader_text = header_textheader_tooltip = header_tooltipwidth = widthupdate_hidden = update_hiddenupdate_disabled = update_disabledupdate_alignment = update_alignmentupdate_header_image = update_header_imageupdate_header_text = update_header_textupdate_header_tooltip = update_header_tooltipupdate_width = update_width.

Parameter und Typ Opt. Bedeutung

nameTYPE TV_ITMNAME

Name der Spalte

hiddenTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Spalte verborgen ist.Mögliche Werte:

• 'X': Spalte ist verborgen

• ' ': Spalte ist sichtbar

disabledTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Spalte inaktiv ist. InaktiveSpalten können nicht selektiert werden.

• 'X': Spalte ist inaktiv

• ' ': Spalte ist nicht inaktiv

alignmentTYPE I

X Ausrichtung der Spalte. Mögliche Werte:

• cl_column_tree_model=>align_left

• cl_column_tree_model=>align_right

• cl_column_tree_model=>align_center

header_imageTYPE TV_IMAGE

X Ikone, die in der Spaltenüberschrift angezeigt werden soll.Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

Page 447: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_column

April 2001 447

header_textTYPE TV_HEADING

X Text der Spaltenüberschrift

header_tooltipTYPE TV_HEADING

X Text des Tooltips der Spaltenüberschrift. Der Tooltip wirdimmer dann angezeigt, wenn der Benutzer die Maus auf derÜberschrift positioniert.

widthTYPE I

Breite der Spalte in Zeichen

update_hiddenTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für hidden eingegebenhaben

update_disabledTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für disabled eingegebenhaben

update_alignmentTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für alignment eingegebenhaben

update_header_imageTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für header_imageeingegeben haben

update_header_textTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für header_texteingegeben haben

update_header_tooltipTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für header_tooltipeingegeben haben

update_widthTYPE AS4FLAG

X 'X', wenn Sie einen neuen Wert für width eingegebenhaben

Page 448: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

adjust_column_width

448 April 2001

adjust_column_widthMit dieser Methode passen Sie die Breite eines selektierten Bereichs von Spalten so an, daß ihrInhalt komplett sichtbar ist. Die Methode berücksichtigt nur bereits expandierte Knoten.CALL METHOD column_model->adjust_column_width

EXPORTING start_column = start_columnend_column = end_columnall_columns = all_columnsinclude_heading = include_heading.

Parameter undTyp

Opt. Bedeutung

start_columnTYPETV_ITMNAME

X Name der ersten Spalte im Bereich

end_columnTYPETV_ITMNAME

X Name der letzten Spalte im Bereich

all_columnsTYPE AS4FLAG

X Kennzeichen: Anpassung der Breite aller Spalten unterBerücksichtigung der Spaltenüberschriften (all_columns ='X').

include_headingTYPE AS4FLAG

X Kennzeichen, das angibt, ob die Spaltenüberschriften bei derBerechnung der erforderlichen Breite berücksichtigt werden sollen(include_heading = 'X')

Page 449: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_get_width

April 2001 449

column_get_widthMit dieser Methode ermitteln Sie die Breite einer bestimmten Spalte.CALL METHOD column_model->column_get_width

EXPORTING column = columnIMPORTING width = width.

Parameter und Typ Opt. Bedeutung

columnTYPE TV_ITMNAME

Name der Spalte

widthTYPE I

Breite der Spalte in Zeichen

Page 450: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_get_next_sibling

450 April 2001

column_get_next_siblingMit dieser Methode ermitteln Sie den Namen der nächsten Spalte auf derselben Stufe im TreeModel.CALL METHOD column_model->column_get_next_sibling

EXPORTING column = columnIMPORTING sibling_column_name = sibling_column_name.

Parameter und Typ Opt. Bedeutung

columnTYPE TV_ITMNAME

Name der Spalte

sibling_column_nameTYPE TV_ITMNAME

Name der nächsten Spalte

Page 451: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

column_get_prev_sibling

April 2001 451

column_get_prev_siblingMit dieser Methode ermitteln Sie den Namen der Spalte vor einer anderen Spalte im ColumnTree Model.CALL METHOD column_model->column_get_prev_sibling

EXPORTING column = columnIMPORTING sibling_column_name = sibling_column_name.

Parameter und Typ Opt. Bedeutung

columnTYPE TV_ITMNAME

Name der Spalte

sibling_column_nameTYPE TV_ITMNAME

Name der vorherigen Spalte

Page 452: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

column_get_properties

452 April 2001

column_get_propertiesMit dieser Methode ermitteln Sie die Eigenschaften einer bestimmten Spalte.CALL METHOD column_model->column_get_properties

EXPORTING column = columnIMPORTING properties = properties.

Parameter und Typ Opt. Bedeutung

columnTYPE TV_ITMNAME

Name der Spalte

propertiesTYPE TREEMCCOL

Struktur mit Eigenschaften der Spalte

Page 453: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_item

April 2001 453

node_get_itemMit dieser Methode fragen Sie die Eigenschaften eines Knoteneintrags ab.CALL METHOD column_model->node_get_item

EXPORTING node_key = node_keyitem_name = item_name

IMPORTING item = item.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, zu dem der Eintrag gehört

item_nameTYPE TV_ITMNAME

Eintrag, dessen Eigenschaften Sie abfragen möchten

itemTYPE TREEMCITEM

Struktur mit den Eigenschaften des Knotens. WeitereInformationen finden Sie unter Struktur TREEMCITEM [Seite474].

Wenn Sie die Eigenschaften aller Einträge eines bestimmten Knotens ermittelnmöchten, verwenden Sie die Methode node_get_items [Seite 454].

Page 454: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

node_get_items

454 April 2001

node_get_itemsMit dieser Methode ermitteln Sie die Eigenschaften aller Einträge eines bestimmten Knotens imColumn Tree Model.CALL METHOD column_model->node_get_items

EXPORTING node_key = node_keyIMPORTING item_table = item_table.

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens

item_tableTYPE TREEMCITAB

Interne Tabelle, bei der jede Zeile einen Eintrag des in node_keyangegebenen Knotens darstellt. Die interne Tabelle hat denZeilentyp TREEMCITEM [Seite 474].

Page 455: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

node_get_properties

April 2001 455

node_get_propertiesMit dieser Methode ermitteln Sie die Eigenschaften eines Knotens im Column Tree Model.CALL METHOD column_model->node_get_properties

EXPORTING node_key = node_keyIMPORTING properties = properties

Parameter und Typ Opt. Bedeutung

node_keyTYPE TM_NODEKEY

Schlüssel des Knotens, dessen Eigenschaften Sie ermittelnmöchten

propertiesTYPE TREEMSNOD

Struktur mit den Eigenschaften des Knotens. WeitereInformationen finden Sie unter Struktur TREEMSNOD [Seite 479].

Page 456: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_table

456 April 2001

get_tableMit dieser Methode fragen Sie den Inhalt der Instanz des Column Tree Model in einer Reiheinterner Tabellen ab.CALL METHOD column_model->get_tree

EXPORTING root_node_key = root_node_keyIMPORTING node_table = node_table

item_table = item_table.

Parameter undTyp

Opt. Bedeutung

root_node_keyTYPE STRING

Wurzelknoten des Baums

node_tableTYPETREEMCNOTA

Interne Tabelle, bei der jede Zeile einen Knoten der Instanz desList Tree Model darstellt. Die Tabelle hat den ZeilentypTREEMCNODT [Seite 476].

item_tableTYPETREEMCITAC

Interne Tabelle, bei der jede Zeile einen Eintrag der Instanz desList Tree Model darstellt. Sie ist wie folgt strukturiert:

• node_key: Schlüssel des Knotens, zu dem der Eintrag gehört

• Inkludierte Struktur TREEMCITEM [Seite 474], welche dieEintragseigenschaften enthält.

Page 457: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_print_short_header_width

April 2001 457

set_print_short_header_widthMit dieser Methode setzen Sie beim Drucken des Column Tree Model den Punkt, an demÜberschriften in der Druckausgabe abgeschnitten werden sollen.

Übersteigt die zum Drucken des Baums benötigte Breite den Wert, den Sie im Parameter widthdieser Methode angeben, dann wird die Breite der Überschriften bei der Berechnung derbenötigten Gesamtbreite nicht berücksichtigt.CALL METHOD column_model->set_print_short_header_width

EXPORTING width = width.

Parameter undTyp

Opt. Bedeutung

widthTYPE I

Breite, bei deren Überschreitung die Überschriften bei derBerechnung der für den Druck des Baums erforderlichenGesamtbreite außer Acht gelassen werden

Page 458: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_item_provider

458 April 2001

set_item_providerMit dieser Methode geben Sie eine Referenzvariable an, die auf das Quellobjekt der Einträgezeigt, die auf Anforderung geladen [Seite 262] werden sollen.CALL METHOD column_model->set_item_provider

EXPORTING item_provider = item_provider.

Parameter und Typ Opt. Bedeutung

item_providerTYPE REF TOIF_COLUMN_TREE_MODEL_ITEM_PROV

Referenzvariable, die auf das Objekt zeigt, aus dem die Einträgegeladen werden. Weitere Informationen finden Sie unterEinträge auf Anforderung laden [Seite 262].

Page 459: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Wichtige Datenstrukturen

April 2001 459

Wichtige Datenstrukturen

Page 460: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMSNODT

460 April 2001

Struktur TREEMSNODTDefinitionTREEMSNODT ist eine Datenstruktur, die die Eigenschaften eines Knotens im Simple Tree Modelbeschreibt. Ihre Definition wird zentral im ABAP Dictionary abgelegt. Sie können sie zurDefinition der Datentypen Ihrer eigenen Parameter verwenden.

TREEMSNODT ist auch der Zeilentyp des internen Tabellentyps TREEMSNOTA.

VerwendungSie können TREEMSNODT zur Typisierung der Aktualparametereigenschaften der Methodenode_get_properties der Klasse cl_simple_tree_model sowie zur Typisierung einesArbeitsbereichs für interne Tabellen mit dem Typ TREEMSNOTA (Methoden add_nodes undget_tree derselben Klasse) verwenden.

StrukturKomponente Typ Bedeutung

node_key TM_NODEKEY Schlüssel zur Identifizierung des Knotens im Baum. DerSchlüssel muß im gesamten Baum eindeutig sein. Siesollten nur Buchstaben, Ziffern und den Unterstrich inKnotenschlüsseln verwenden.

relatkey TM_NODEKEY Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

Page 461: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMSNODT

April 2001 461

relatship I Verwandtschaftsbeziehung zwischen dem neuen Knoten unddem in relatkey angegebenen Knoten. Mögliche Werte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm inBeziehung stehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm inBeziehung stehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relatkey leer, dann wird der neue Knoten alsWurzelknoten eingefügt. Enthalten die oben genannten Wertedas Wort FIRST oder PREV, wird der Knoten als ersterWurzelknoten eingefügt. Enthalten die Werte LAST oderNEXT, wird der Knoten als letzter Wurzelknoten eingefügt.

hidden AS4FLAG Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ')sein soll. Standardmäßig ist der Knoten sichtbar.

disabled AS4FLAG Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht(' '). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

isfolder AS4FLAG Gibt an, ob der neue Knoten ein Ordner oder ein Blatt sein soll.Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

Page 462: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMSNODT

462 April 2001

n_image TV_IMAGE Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an derPosition, an der normalerweise die Ikone angezeigt würde.Falls Sie diesen Wert für einen Knoten verwenden, solltenSie ihn durchgängig für alle Knoten auf derselben Stufeverwenden.

exp_image TV_IMAGE Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

style I Setzt die Text- und Hintergrundfarben für den Knoten.Mögliche Werte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen findenSie bei der Definition von CL_TREE_MODEL im Class Builder.

no_branch AS4FLAG Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werdendie Linien gezeichnet.

expander AS4FLAG Diese Eigenschaft kann nur für Ordner gesetzt werden. WennSie sie setzen, wird für den geschlossenen Ordner immer dasSymbol '+' angezeigt, auch wenn er leer ist. Klickt der Benutzerden Ordner an, wird das Ereignis EXPAND_NO_CHILDRENausgelöst.

dragdropid I Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

userobject REF TOOBJECT

Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

text TM_NODETXT Text eines Knotens

Page 463: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMSUNO

April 2001 463

Struktur TREEMSUNODefinitionTREEMSUNO ist eine Datenstruktur, mit der Sie Änderungen von Knoteneigenschaften an dasSimple Tree Model übergeben. Ihre Definition wird zentral im ABAP Dictionary abgelegt. Siekönnen sie zur Definition der Datentypen Ihrer eigenen Parameter verwenden.

TREEMSUNO ist auch der Zeilentyp des internen Tabellentyps TREEMSUNOT.

VerwendungMit dieser Struktur geben Sie den Zeilentyp des Aktualparameters NODE_TABLE in der MethodeUPDATE_NODES der Klasse CL_SIMPLE_TREE_MODEL an. Es ist auch möglich, damit einenArbeitsbereich für die interne Tabelle zu erzeugen.

In der Struktur geben Sie den Schlüssel des Knotens, den Sie ändern möchten, sowie die neuenWerte für jede änderbare Eigenschaft an. Jede Eigenschaft verfügt außerdem über einentsprechendes Kennzeichenfeld in der Struktur mit dem Namen U_<Eigenschaft>. DiesesKennzeichen müssen Sie für jede Eigenschaft setzen, die Sie ändern möchten.

StrukturKomponente Typ Bedeutung

node_key STRING Schlüssel zur Identifizierung des Knotens im Baum. DerSchlüssel muß im gesamten Baum eindeutig sein. Sie solltennur Buchstaben, Ziffern und den Unterstrich in Knotenschlüsselnverwenden.

relatkey STRING Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

Page 464: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMSUNO

464 April 2001

relatship I Verwandtschaftsbeziehung zwischen dem neuen Knoten unddem in relatkey angegebenen Knoten. Mögliche Werte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm inBeziehung stehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relatkey leer, dann wird der neue Knoten alsWurzelknoten eingefügt. Enthalten die oben genannten Wertedas Wort FIRST oder PREV, wird der Knoten als ersterWurzelknoten eingefügt. Enthalten die Werte LAST oder NEXT,wird der Knoten als letzter Wurzelknoten eingefügt.

hidden AS4FLAG Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ') seinsoll.

disabled AS4FLAG Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht(' ').

isfolder AS4FLAG Gibt an, ob der neue Knoten ein Ordner oder ein Blatt sein soll.Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

Page 465: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMSUNO

April 2001 465

n_image C(6) Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an derPosition, an der normalerweise die Ikone angezeigt würde.Falls Sie diesen Wert für einen Knoten verwenden, solltenSie ihn durchgängig für alle Knoten auf derselben Stufeverwenden.

exp_image C(6) Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

style I Setzt die Text- und Hintergrundfarben für den Knoten. MöglicheWerte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen finden Siebei der Definition von CL_TREE_MODEL im Class Builder.

no_branch AS4FLAG Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werdendie Linien gezeichnet.

expander AS4FLAG Diese Eigenschaft kann nur für Ordner gesetzt werden. WennSie sie setzen, wird für den geschlossenen Ordner immer dasSymbol '+' angezeigt, auch wenn er leer ist.

dragdropid I Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

userobject REF TOOBJECT

Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

text STRING Knotentext

u_all AS4FLAG Gibt an, daß alle änderbaren Eigenschaften geändert wurden

u_hidden AS4FLAG

u_disabled AS4FLAG

u_isfolder AS4FLAG

u_n_image AS4FLAG

u_exp_image AS4FLAG

u_style AS4FLAG

u_no_branch AS4FLAG

u_expander AS4FLAG

u_dragdropid AS4FLAG

u_userobject AS4FLAG

u_text AS4FLAG

Gibt an, daß die entsprechende Eigenschaft geändert wurde

Page 466: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMSUNO

466 April 2001

Page 467: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Strukturen für Überschriften von Item Trees

April 2001 467

Strukturen für Überschriften von Item TreesDefinitionMit den beiden Strukturen TREEMHHDR und TREEMLHDR definieren Sie Überschriften im List TreeModel und Column Tree Model.

VerwendungDie Strukturen werden wie folgt verwendet:

Struktur Definiert Liste Spalte

TREEMHHDR Hierarchieüberschrift � �

TREEMLHDR Listenüberschrift �

StrukturTREEMHDRKomponente Bedeutung

t_imageTYPE C(6)

Ikone, die in der Überschrift verwendet werden soll

headingTYPE C(132)

Text der Überschrift

tooltipTYPE C(132)

Text, der angezeigt wird, wenn der Benutzer die Maus auf der Überschriftpositioniert.

widthTYPE I

Breite der Überschrift

TREEMLHDRKomponente Bedeutung

t_imageTYPE C(6)

Ikone, die in der Überschrift verwendet werden soll

headingTYPE C(132)

Text der Überschrift

tooltipTYPE C(132)

Text, der angezeigt wird, wenn der Benutzer die Maus auf der Überschriftpositioniert.

Page 468: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMLNODT

468 April 2001

Struktur TREEMLNODTDefinitionTREEMLNODT ist eine Datenstruktur, die die Eigenschaften eines Knotens im List Tree Modelbeschreibt. Ihre Definition wird zentral im ABAP Dictionary abgelegt. Sie können sie zurDefinition der Datentypen Ihrer eigenen Parameter verwenden.

TREEMLNODT ist auch der Zeilentyp des internen Tabellentyps TREEMLNOTA.

VerwendungMit TREEMLNODT geben Sie den Typ eines Arbeitsbereichs für den Aktualparameternode_table in der Methode add_nodes der Klasse cl_list_tree_model an.

StrukturKomponente Typ Bedeutung

node_key STRING Schlüssel zur Identifizierung des Knotens im Baum. DerSchlüssel muß im gesamten Baum eindeutig sein. Sie solltennur Buchstaben, Ziffern und den Unterstrich in Knotenschlüsselnverwenden.

relatkey STRING Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

Page 469: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMLNODT

April 2001 469

relatship I Verwandtschaftsbeziehung zwischen dem neuen Knoten und demin relatkey angegebenen Knoten. Mögliche Werte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselben Stufewie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relatkey leer, dann wird der neue Knoten alsWurzelknoten eingefügt. Enthalten die oben genannten Werte dasWort FIRST oder PREV, wird der Knoten als erster Wurzelknoteneingefügt. Enthalten die Werte LAST oder NEXT, wird der Knotenals letzter Wurzelknoten eingefügt.

hidden AS4FLAG Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ') seinsoll. Standardmäßig ist der Knoten sichtbar.

disabled AS4FLAG Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht (''). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

isfolder AS4FLAG Gibt an, ob der neue Knoten ein Ordner oder ein Blatt sein soll.Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

Page 470: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMLNODT

470 April 2001

n_image C(6) Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an der Position,an der normalerweise die Ikone angezeigt würde. Falls Siediesen Wert für einen Knoten verwenden, sollten Sie ihndurchgängig für alle Knoten auf derselben Stufe verwenden.

exp_image C(6) Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

style I Setzt die Text- und Hintergrundfarben für den Knoten. MöglicheWerte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen finden Siebei der Definition von CL_TREE_MODEL im Class Builder.

no_branch AS4FLAG Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werden dieLinien gezeichnet.

expander AS4FLAG Diese Eigenschaft kann nur für Ordner gesetzt werden. Wenn Siesie setzen, wird für den geschlossenen Ordner immer das Symbol'+' angezeigt, auch wenn er leer ist. Klickt der Benutzer denOrdner an, wird das Ereignis EXPAND_NO_CHILDREN ausgelöst.

dragdropid I Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

userobject REF TOOBJECT

Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

itemsincom AS4FLAG Zeigt an, daß die Eintragsangabe unvollständig ist. WeitereInformationen finden Sie unter Einträge auf Anforderung laden[Seite 262].

last_hitem C(12) Letzter Eintrag, der unterhalb der Hierarchieüberschrift im Baumerscheinen soll

Page 471: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMLITEM

April 2001 471

Struktur TREEMLITEMDefinitionDie Struktur TREEMLITEM dient zur Definition des Zeilentyps der internen Tabelle TREEMLITAB.Diese interne Tabelle wird im List Tree Model zur Angabe der Einträge eines bestimmtenKnotens benutzt.

VerwendungSie können TREEMLITAB zur Angabe des Typs des Aktualparameters benutzen, den Sie an denParameter items_table in der Methode add_node der Klasse cl_list_tree_modelübergeben wollen.

StrukturKomponenteund Typ

Bedeutung

item_nameTYPE C(12)

Name des Eintrags

classTYPE I

Klasse des Eintrags. Mögliche Werte:

• cl_item_tree_model=>item_class_text: Eintrag ist ein Text

• cl_item_tree_model=>item_class_button: Eintrag ist eineDrucktaste

• cl_item_tree_model=>item_class_checkbox: Eintrag ist einAnkreuzfeld

• cl_item_tree_model=>item_class_link: Eintrag ist ein Link

fontTYPE I

Schrift, in der der Eintrag angezeigt werden soll. Mögliche Werte:

• cl_item_tree_model=>item_font_default: Standardschrift

• cl_item_tree_model=>item_font_fixed: Äquidistanzschrift

• cl_item_tree_model=>item_font_prop: Proportionalschrift

disabledTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag verborgen sein soll (verborgeneEinträge können nicht selektiert werden). Mögliche Werte:

• 'X': Eintrag inaktiv

• ' ': Eintrag selektierbar

editableTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag editierbar ist. Mögliche Werte:

• 'X': Eintrag editierbar

• ' ': Eintrag nicht editierbar

Page 472: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMLITEM

472 April 2001

hiddenTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag verborgen ist. Mögliche Werte:

• 'X': Eintrag ist verborgen

• ' ': Eintrag ist nicht verborgen

t_imageTYPE C(6)

Ikone, die für den Eintrag angezeigt werden soll. Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Text wird so verschoben, daß er an der Stellebeginnt, an der sonst die Ikone zu sehen wäre.

chosenTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag ausgewählt sein soll. MöglicheWerte:

• 'X': Ausgewählt

• ' ': Nicht ausgewählt

styleTYPE I

Stil des Eintrags. Mögliche Werte:

• cl_tree_model=>style_default

• cl_tree_model=>style_emphasized

• cl_tree_model=>style_emphasized_negative

• cl_tree_model=>style_emphasized_positive

• cl_tree_model=>style_inactive

• cl_tree_model=>style_inherited

• cl_tree_model=>style_intensified_critical

txtisqinfoTYPE AS4FLAG

Kennzeichen, das angibt, ob die Quick-Info des Eintrags zum Eintragstextwerden soll. Mögliche Werte:

• 'X': Quick-Info wird als Eintragstext benutzt

• ' ': Quick-Info wird nicht als Eintragstext benutzt

textTYPE STRING

Text des Eintrags

alignmentTYPE I

Ausrichtung des Eintrags. Mögliche Werte:

• cl_item_tree_model=>align_left

• cl_item_tree_model=>align_right

• cl_item_tree_model=>align_autoDer Eintrag wird nicht ausgerichtet, aber die Anzeigebreite wird an dieLänge des Eintrags angepaßt.

lengthTYPE I

Länge des Eintrags in Zeichen

Page 473: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMLITEM

April 2001 473

ignoreimagTYPE AS4FLAG

Steuert die Breite des Eintrags. Mögliche Werte:

• 'X': Länge des Entrags entspricht der Länge des gesamten Eintrags.Ikonen nehmen Platz ein, der dann nicht für Text zur Verfügung steht.

• ' ': Länge des Entrags entspricht der Länge des Eintragstextes.Ankreuzfelder und Ikonen werden dann zur Länge des Eintragshinzugefügt.

usebgcolorTYPE AS4FLAG

• 'X': Hintergrundfarbe des Eintrags unterscheidet sich leicht von derHintergrundfarbe des Controls.

• ' ': Hintergrundfarbe des Eintrags ist mit der Hintergrundfarbe desControls identisch.

Page 474: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMCITEM

474 April 2001

Struktur TREEMCITEMDefinitionDie Struktur TREEMCITEM dient zur Definition des Zeilentyps der internen Tabelle TREEMCITAB.Diese interne Tabelle wird im Column Tree Model zur Angabe der Einträge eines bestimmtenKnotens benutzt.

VerwendungSie können TREEMCITAB zur Angabe des Typs des Aktualparameters benutzen, den Sie an denParameter items_table in der Methode add_node der Klasse cl_column_tree_modelübergeben wollen.

StrukturKomponenteund Typ

Bedeutung

item_nameTYPE C(12)

Name des Eintrags

classTYPE I

Klasse des Eintrags Mögliche Werte:

• cl_item_tree_model=>item_class_text: Eintrag ist ein Text

• cl_item_tree_model=>item_class_button: Eintrag ist eineDrucktaste

• cl_item_tree_model=>item_class_checkbox: Eintrag ist einAnkreuzfeld

• cl_item_tree_model=>item_class_link: Eintrag ist ein Link

fontTYPE I

Schrift, in der der Eintrag angezeigt werden soll. Mögliche Werte:

• cl_item_tree_model=>item_font_default: Standardschrift

• cl_item_tree_model=>item_font_fixed: Äquidistanzschrift

• cl_item_tree_model=>item_font_prop: Proportionalschrift

disabledTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag verborgen sein soll (verborgeneEinträge können nicht selektiert werden). Mögliche Werte:

• 'X': Eintrag inaktiv

• ' ': Eintrag selektierbar

editableTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag editierbar ist. Mögliche Werte:

• 'X': Eintrag editierbar

• ' ': Eintrag nicht editierbar

Page 475: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMCITEM

April 2001 475

hiddenTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag verborgen ist. Mögliche Werte:

• 'X': Eintrag ist verborgen

• ' ': Eintrag ist nicht verborgen

t_imageTYPE C(6)

Ikone, die für den Eintrag angezeigt werden soll. Mögliche Werte:

• ' ': Keine Ikone

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Text wird an die Stelle verschoben, an dersonst die Ikone zu sehen wäre.

chosenTYPE AS4FLAG

Kennzeichen, das angibt, ob der Eintrag ausgewählt sein soll. MöglicheWerte:

• 'X': Ausgewählt

• ' ': Nicht ausgewählt

styleTYPE I

Stil des Eintrags. Mögliche Werte:

• cl_tree_model=>style_default

• cl_tree_model=>style_emphasized

• cl_tree_model=>style_emphasized_negative

• cl_tree_model=>style_emphasized_positive

• cl_tree_model=>style_inactive

• cl_tree_model=>style_inherited

• cl_tree_model=>style_intensified_critical

txtisqinfoTYPE AS4FLAG

Kennzeichen, das angibt, ob die Quick-Info des Eintrags zum Eintragstextwerden soll. Mögliche Werte:

• 'X': Quick-Info wird als Eintragstext benutzt

• ' ': Quick-Info wird nicht als Eintragstext benutzt

textTYPE STRING

Text des Eintrags

Page 476: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMCNODT

476 April 2001

Struktur TREEMCNODTDefinitionTREEMCNODT ist eine Datenstruktur, die die Eigenschaften eines Knotens im Column Tree Modelbeschreibt. Ihre Definition wird zentral im ABAP Dictionary abgelegt. Sie können sie zurDefinition der Datentypen Ihrer eigenen Parameter verwenden.

TREEMCNODT ist auch der Zeilentyp des internen Tabellentyps TREEMCNOTA.

VerwendungMit TREEMCNODT geben Sie den Typ eines Arbeitsbereichs für den Aktualparameternode_table in der Methode add_nodes der Klasse cl_column_tree_model an.

StrukturKomponente Typ Bedeutung

node_key STRING Schlüssel zur Identifizierung des Knotens im Baum. DerSchlüssel muß im gesamten Baum eindeutig sein. Sie solltennur Buchstaben, Ziffern und den Unterstrich in Knotenschlüsselnverwenden.

relatkey STRING Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

Page 477: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMCNODT

April 2001 477

relatship I Verwandtschaftsbeziehung zwischen dem neuen Knoten und demin relatkey angegebenen Knoten. Mögliche Werte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm in Beziehungstehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselben Stufewie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relatkey leer, dann wird der neue Knoten alsWurzelknoten eingefügt. Enthalten die oben genannten Werte dasWort FIRST oder PREV, wird der Knoten als erster Wurzelknoteneingefügt. Enthalten die Werte LAST oder NEXT, wird der Knotenals letzter Wurzelknoten eingefügt.

hidden AS4FLAG Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ') seinsoll. Standardmäßig ist der Knoten sichtbar.

disabled AS4FLAG Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht (''). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

isfolder AS4FLAG Gibt an, ob der neue Knoten ein Ordner oder ein Blatt sein soll.Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

Page 478: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMCNODT

478 April 2001

n_image C(6) Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an der Position,an der normalerweise die Ikone angezeigt würde. Falls Siediesen Wert für einen Knoten verwenden, sollten Sie ihndurchgängig für alle Knoten auf derselben Stufe verwenden.

exp_image C(6) Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

style I Setzt die Text- und Hintergrundfarben für den Knoten. MöglicheWerte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen finden Siebei der Definition von CL_TREE_MODEL im Class Builder.

no_branch AS4FLAG Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werden dieLinien gezeichnet.

expander AS4FLAG Diese Eigenschaft kann nur für Ordner gesetzt werden. Wenn Siesie setzen, wird für den geschlossenen Ordner immer das Symbol'+' angezeigt, auch wenn er leer ist. Klickt der Benutzer denOrdner an, wird das Ereignis EXPAND_NO_CHILDREN ausgelöst.

dragdropid I Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

userobject REF TOOBJECT

Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

itemsincom AS4FLAG Zeigt an, daß die Eintragsangabe unvollständig ist.

Page 479: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Struktur TREEMSNOD

April 2001 479

Struktur TREEMSNODDefinitionTREEMSNOD ist eine Datenstruktur, die die Eigenschaften eines Knotens im Column Tree Modelbeschreibt. Ihre Definition wird zentral im ABAP Dictionary abgelegt. Sie können sie zurDefinition der Datentypen Ihrer eigenen Parameter verwenden.

Strukturnode_key TM_NODEKEY Schlüssel zur Identifizierung des Knotens im Baum. Der

Schlüssel muß im gesamten Baum eindeutig sein. Siesollten nur Buchstaben, Ziffern und den Unterstrich inKnotenschlüsseln verwenden.

relatkey TM_NODEKEY Schlüssel des Knotens, zu dem der neue Knoten in seinerPosition in Beziehung steht. Handelt es sich bei dem neuenKnoten um den ersten oder letzten Wurzelknoten, muß dieserParameter den Wert ' ' haben.

relatship I Verwandtschaftsbeziehung zwischen dem neuen Knoten unddem in relatkey angegebenen Knoten. Mögliche Werte sind:

• CL_TREE_MODEL=>RELAT_FIRST_CHILDFügt den neuen Knoten als ersten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_LAST_CHILDFügt den neuen Knoten als letzten Kindknoten des inrelative_node_key angegebenen Knotens ein. DieserKnoten muß ein Ordner sein.

• CL_TREE_MODEL=>RELAT_PREV_SIBLINGFügt den neuen Knoten direkt vor dem zu ihm inBeziehung stehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_NEXT_SIBLINGFügt den neuen Knoten direkt nach dem zu ihm inBeziehung stehenden Knoten auf derselben Stufe ein.

• CL_TREE_MODEL=>RELAT_FIRST_SIBLINGFügt den neuen Knoten als ersten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

• CL_TREE_MODEL=>RELAT_LAST_SIBLINGFügt den neuen Knoten als letzten Knoten auf derselbenStufe wie der zu ihm in Beziehung stehende Knoten ein.

Hinweis: Ist relatkey leer, dann wird der neue Knoten alsWurzelknoten eingefügt. Enthalten die oben genannten Wertedas Wort FIRST oder PREV, wird der Knoten als ersterWurzelknoten eingefügt. Enthalten die Werte LAST oderNEXT, wird der Knoten als letzter Wurzelknoten eingefügt.

Page 480: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Struktur TREEMSNOD

480 April 2001

hidden AS4FLAG Gibt an, ob der Knoten unsichtbar ('X') oder sichtbar (' ')sein soll. Standardmäßig ist der Knoten sichtbar.

disabled AS4FLAG Gibt an, ob der Knoten selektiert ('X') werden kann oder nicht(' '). Standardmäßig ist der Knoten nicht inaktiv.

Hinweis: Wenn ein Knoten inaktiv ist, haben Aktionen wie einDoppelklick keine Wirkung.

isfolder AS4FLAG Gibt an, ob der neue Knoten ein Ordner oder ein Blatt seinsoll. Mögliche Werte:

• 'X': Knoten ist ein Ordner

• ' ': Knoten ist ein Blatt

n_image TV_IMAGE Gibt die Ikone für den Knoten an. Mögliche Werte:

• initial: Das System nutzt die Standardikonen (Blatt beiBlättern, geschlossener Ordner bei Ordnern).

• '@XY@': SAP-Ikone mit Code XY

• 'BNONE': Keine Ikone. Der Knotentext beginnt an derPosition, an der normalerweise die Ikone angezeigt würde.Falls Sie diesen Wert für einen Knoten verwenden, solltenSie ihn durchgängig für alle Knoten auf derselben Stufeverwenden.

exp_image TV_IMAGE Gibt die Ikone für einen geöffneten Knoten an. Die möglichenWerte entsprechen den weiter oben für den Parameter imageangegebenen Werten.

style I Setzt die Text- und Hintergrundfarben für den Knoten.Mögliche Werte für dieses Feld sind alle statischen KonstantenCL_TREE_MODEL=>STYLE_*. Weitere Informationen findenSie bei der Definition von CL_TREE_MODEL im Class Builder.

no_branch AS4FLAG Gibt an, ob Zweiglinien ('X') zwischen den Knoten gezeichnetwerden sollen (' ') oder nicht ('X'). Standardmäßig werdendie Linien gezeichnet.

expander AS4FLAG Diese Eigenschaft kann nur für Ordner gesetzt werden. WennSie sie setzen, wird für den geschlossenen Ordner immer dasSymbol '+' angezeigt, auch wenn er leer ist. Klickt derBenutzer den Ordner an, wird das EreignisEXPAND_NO_CHILDREN ausgelöst.

dragdropid I Nur relevant, wenn der Knoten Drag&Drop-fähig sein soll. Erenthält das Handle für ein Drag&Drop-Objekt.

userobject REF TOOBJECT

Hier kann eine beliebige Referenz auf ein Anwendungsobjekteingetragen werden.

Page 481: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden des OO Control Frameworks

April 2001 481

Methoden des OO Control Frameworks

Page 482: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_GUI_CFW

482 April 2001

Methoden der Klasse CL_GUI_CFWDie Klasse CL_GUI_CFW beinhaltet statische Methoden, die beim Aufruf auf alle instanziertenCustom Controls wirken.

Page 483: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

dispatch

April 2001 483

dispatchDie Methode dispatch verteilt Applikationsereignisse (siehe Ereignisbehandlung [Extern]) andie für das Ereignis angemeldeten Ereignisbehandler. Wenn diese Methode nicht imApplikationsprogramm innerhalb von PAI aufgerufen wird, dann wird sie automatisch vomSystem nach dem Abarbeiten von PAI aufgerufen. Die Methode liefert einen Returncode zurück,über den der Erfolg des Aufrufs abzulesen ist.CALL METHOD cl_gui_cfw=>dispatch

IMPORTING return_code = return_code.

Parameter Bedeutungreturn_code cl_gui_cfw=>rc_found: Das Ereignis konnte erfolgreich an eine

Behandlermethode übergeben werden.

cl_gui_cfw=>rc_unknown: Das Ereignis wurde nicht in der Ereignislisteregistriert.

cl_gui_cfw=>rc_noevent: Es wurde kein Ereignis auf einem Controlausgelöst. Der OK_CODE war daher ein normaler OK_CODE (z.B. voneinem Menüeintrag).

cl_gui_cfw=>rc_nodispatch: Dem Ereignis konnte keineBehandlermethode zugeordnet werden.

Das Ereignis kann nur einmalig verteilt werden. Danach ist das Ereignis verbraucht.Daher wird ein zweiter Aufruf der Methode nicht nochmals zu einem Sprung in denEreignisbehandler führen.

Page 484: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

flush

484 April 2001

flushMit dieser Methode synchronisieren Sie explizit die Automation Queue [Extern]. Die gepuffertenOperationen werden dann zum Frontend per GUI-RFC geschickt. Dort wird die AutomationQueue in der Reihenfolge abgearbeitet, wie Sie sie gefüllt haben.

Im Fehlerfall wird eine Ausnahme ausgelöst, die Sie auf jeden Fall abfragen und behandelnsollten. Da eine Zuordnung des Fehlers in der Regel nicht mehr möglich ist, stehen Ihnen sowohlim Debugger als auch im SAP GUI Werkzeuge zur Verfügung, um den Fehler zu lokalisieren:

Debugger: Markieren Sie in den Einstellungen das Ankreuzfeld Automation Controller: Aufträgeimmer synchron verarbeiten. Dies führt dazu, daß nach jeder Methode, die den AutomationController ruft, die Methode cl_gui_cfw=>flush automatisch aufgerufen wird.

SAP GUI: In den Einstellungen zum SAP GUI können Sie auf der Karteikarte Trace dasAnkreuzfeld Automation wählen. Dadurch wird die Kommunikation zwischen Applikationsserverund Automation Controller in einer Trace-Datei mitgeschrieben. Diese kann dann ausgewertetwerden.CALL METHOD cl_gui_cfw=>flush

EXCEPTIONS CNTL_SYSTEM_ERROR = 1CNTL_ERROR = 2.

Führen Sie nur so viele Synchronisationspunkte in Ihr Programm ein, wie wirklichnötig sind. Bei jeder Synchronisation wird nämlich eine RFC-Verbindung zum SAPGUI geöffnet.

Page 485: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_living_dynpro_controls

April 2001 485

get_living_dynpro_controlsMit dieser Methode können Sie sich eine Liste von Referenzvariablen zu allen noch aktivenCustom Controls besorgen.CALL METHOD cl_gui_cfw=>get_living_dynpro_controls

IMPORTING control_list = control_list.

Parameter Bedeutungcontrol_list Liste der Referenzvariablen zu aktiven Custom Controls.

Liste ist vom Typ CNTO_CONTROL_LIST (in der Klasse CL_GUI_CFWdefiniert)

Page 486: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_new_ok_code

486 April 2001

set_new_ok_codeDiese Methode darf nur in Behandlermethoden zu Systemereignissen eingesetzt werden. Siesetzt einen OK_CODE, der ein Ausführen von PAI nach sich zieht. Dadurch können Sie nach demFeldtransport nochmals die Kontrolle in Ihren PAI-Modulen bekommen.

CALL METHOD cl_gui_cfw=>set_new_ok_codeEXPORTING new_code = new_codeIMPORTING rc = rc.

Parameter Bedeutungnew_code Funktionscode, der in das OK_CODE-Feld (SY-UCOMM) gestellt werden soll.

return_code cl_gui_cfw=>rc_posted: Der OK_CODE wurde mit Erfolg gesetzt, unddie Verarbeitung wird nach Abschluß der Behandlermethode mit PAIfortgesetzt (vorher wird noch die automatische Feldprüfung des Dynprosdurchgeführt).

cl_gui_cfw=>rc_wrong_state: Die Methode wurde nicht bei einemSystemereignis aufgerufen.

cl_gui_cfw=>rc_invalid: Der gesetzte OK_CODE ist kein erlaubterOK_CODE.

Page 487: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

update_view

April 2001 487

update_viewDie Automation Queue wird durch den Aufruf der Methode flush [Seite 484] nur dannsynchronisiert, wenn in der Automation Queue Returnwerte enthalten sind.

Für alle Fälle, in denen auch im Fall einer Returnwert-freien Queue gewünscht wird, daß dieAutomation Queue synchron versendet wird, gibt es im Control Framework die MethodeCL_GUI_CFW=>UPDATE_VIEW. Diese Methode darf nur dann verwendet werden, wenn eszwingend notwendig ist, ein Update des SAP GUI zu erreichen. Beispiele hierfür sind sehr langelaufende Anwendungen, die in regelmäßigen Abständen dem Benutzer ein Feedback über denFortschritt der Aktion anzeigen möchten.CALL METHOD cl_gui_cfw=>update_view

EXCEPTIONS CNTL_SYSTEM_ERROR = 1CNTL_ERROR = 2.

Page 488: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

Methoden der Klasse CL_GUI_OBJECT

488 April 2001

Methoden der Klasse CL_GUI_OBJECTDie Klasse CL_GUI_OBJECT beinhaltet wichtige Methoden zum Verschalen von CustomControls. Für Anwendungsprogramme ist einzig die Methode is_valid [Seite 489] relevant.

Page 489: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

is_valid

April 2001 489

is_validDiese Methode liefert als Ergebnis, ob ein Custom Control zu einer Objektreferenz noch amFrontend vorhanden ist.CALL METHOD my_control->is_valid

IMPORTING result = result.

Parameter Bedeutungresult 0: Custom Control ist nicht mehr am Frontend aktiv

1: Custom Control ist noch aktiv

Page 490: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

free

490 April 2001

freeDiese Methode baut ein Custom Control am Frontend ab. Nach Aufruf dieser Methode sollten Sieauch die Objektreferenz initialisieren (FREE my_control).

CALL METHOD my_control->freeEXCEPTIONS cntl_error = 1

cntl_system_error = 2.

Page 491: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_GUI_CONTROL

April 2001 491

Methoden der Klasse CL_GUI_CONTROLDie Klasse CL_GUI_CONTROL beinhaltet Methoden, die zum Setzen von Control-Eigenschaften(z.B. Visualisieren des Controls), Registrieren von Ereignissen und zum Abbau des Controlsdienen.

Page 492: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

finalize

492 April 2001

finalizeDiese Methode wird von der verwendeten Controlverschalung überdefiniert. In ihr werdencontrol-spezifische Funktionen zum Abbau des Controls aufgerufen. Diese Methode wirdautomatisch von der Methode free [Seite 490] aufgerufen, bevor das Control am Frontendabgebaut wird.CALL METHOD my_control->finalize.

Page 493: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_registered_events

April 2001 493

set_registered_eventsMit dieser Methode registrieren Sie sich auf Ereignisse des Controls (siehe auch:Ereignisbehandlung [Extern]).CALL METHOD my_control->set_registered_events

EXPORTING events = eventsEXCEPTIONS cntl_error = 1

cntl_system_error = 2illegal_event_combination = 3.

Parameter Bedeutungevents Tabelle der zu registrierenden Ereignisse für das Custom Control my_control

Die Tabelle events ist eine Liste mit Ereignissen, auf die Sie sich registrieren wollen. DieTabelle wird mit Bezug auf den Tabellentyp CNTL_SIMPLE_EVENTS definiert. Dem Tabellentypliegt die Struktur CNTL_SIMPLE_EVENT zugrunde. Dieser besteht aus folgenden Feldern:

Feld BedeutungEVENTID Name des Ereignisses

APPL_EVENT Unterscheidung, ob es sich um ein Systemereignis (initial) oder einApplikationsereignis (X) handeln soll.

Die Werte, die dem Feld EVENTID zuzuordnen sind, sind control-spezifisch und werden daherbei den entsprechenden Controls beschrieben.

Page 494: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_registered_events

494 April 2001

get_registered_eventsDiese Methode liefert eine Liste aller für das Custom Control my_control registriertenEreignisse zurück.CALL METHOD my_control->get_registered_events

IMPORTING events = eventsEXCEPTIONS cntl_error = 1.

Parameter Bedeutungevents Tabelle der zu registrierenden Ereignisse für das Custom Control my_control

Die Tabelle events ist eine Liste mit Ereignissen, auf die Sie sich registriert haben. Die Tabellewird mit Bezug auf den Tabellentyp CNTL_SIMPLE_EVENTS definiert. Dem Tabellentyp liegt dieStruktur CNTL_SIMPLE_EVENT zugrunde. Dieser besteht aus folgenden Feldern:

Feld BedeutungEVENTID Name des Ereignisses

APPL_EVENT Unterscheidung, ob es sich um ein Systemereignis (initial) oder einApplikationsereignis (X) handeln soll.

Die Werte, die dem Feld EVENTID zuzuordnen sind, sind control-spezifisch und werden daherbei den entsprechenden Controls beschrieben.

Allgemeine Informationen zur Ereignisbehandlung finden Sie in der Dokumentationdes SAP Control Frameworks unter Ereignisbehandlung [Extern].

Page 495: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

is_alive

April 2001 495

is_aliveDiese Methode liefert als Ergebnis, ob ein Custom Control zu einer Objektreferenz noch amFrontend vorhanden ist.CALL METHOD my_control->is_alive

RETURNING state = state.

Parameter Bedeutungstate my_control->state_dead: Custom Control ist nicht mehr am Frontend aktiv

my_control->state_alive: Custom Control ist auf aktuellem Dynpro aktiv

my_control->state_alive_on_other_dynpro: Custom Control ist auf demaktuellen Dynpro nicht aktiv, aber am Frontend noch aktiv (d.h. unsichtbar)

Page 496: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_alignment

496 April 2001

set_alignmentDiese Methode richtet das Custom Control innerhalb seines Containers aus:CALL METHOD my_control->set_alignment

EXPORTING alignment = alignmentEXCEPTIONS cntl_error = 1

cntl_system_error = 2.

Parameter Bedeutungalignment Ausrichtung des Controls

Der Parameter alignment kann aus Kombinationen folgender Ausrichtungen bestehen:

Name Bedeutungmy_control->align_at_left Ausrichtung am linken Rand

my_control->align_at_right Ausrichtung am rechten Rand

my_control->align_at_top Ausrichtung am oberen Rand

my_control->align_at_bottom Ausrichtung am unteren Rand

Kombinationen erhält man durch Aufaddieren der Komponenten:

alignment = my_control->alingn_at_left + my_control->alingn_at_top.

Page 497: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

set_position

April 2001 497

set_positionDiese Methode plaziert das Control an eine bestimmte Stelle des Dynpros.

In der Regel wird die Position des Controls über seinen Container geregelt.CALL METHOD my_control->set_position

EXPORTING height = heightleft = lefttop = topwidth = width

EXCEPTIONS cntl_error = 1cntl_system_error = 2.

Parameter Bedeutungheight Höhe des Controls

left Linker Rand des Controls

top Oberer Rand des Controls

width Breite des Controls

Page 498: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_visible

498 April 2001

set_visibleMit dieser Methode können Sie die Sichtbarkeit eines Custom Controls verändern.CALL METHOD my_control->set_visible

EXPORTING visible = visibleEXCEPTIONS cntl_error = 1

cntl_system_error = 2.

Parameter Bedeutungvisible X: Custom Control ist sichtbar

' ': Custom Control ist nicht sichtbar

Page 499: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_focus

April 2001 499

get_focusDiese statische Methode liefert die Objektreferenz des Custom Controls zurück, welches denFokus hat.CALL METHOD cl_gui_control=>get_focus

IMPORTING control = controlEXCEPTIONS cntl_error = 1

cntl_system_error = 2.

Parameter Bedeutungcontrol Objektreferenz (TYPE REF TO cl_gui_control) auf das Control, das den

Fokus hat

Page 500: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_focus

500 April 2001

set_focusMit dieser statischen Methode können Sie den Fokus auf ein Custom Control setzen.CALL METHOD cl_gui_control=>set_focus

EXPORTING control = controlEXCEPTIONS cntl_error = 1

cntl_system_error = 2.

Parameter Bedeutungcontrol Objektreferenz (TYPE REF TO cl_gui_control) auf das Control, das den

Fokus bekommen soll

Page 501: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_height

April 2001 501

get_heightDiese Methode liefert die Höhe des Controls zurück.CALL METHOD control->get_height

IMPORTING height = heightEXCEPTIONS cntl_error = 1.

Parameter Bedeutungheight Aktuelle Höhe des Controls

Page 502: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get_width

502 April 2001

get_widthDiese Methode liefert die Breite des Controls zurück.CALL METHOD control->get_width

IMPORTING width = widthEXCEPTIONS cntl_error = 1.

Parameter Bedeutungwidth Aktuelle Breite des Controls

Page 503: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_DRAGDROP

April 2001 503

Methoden der Klasse CL_DRAGDROPDie Klasse CL_DRAGDROP beinhaltet Methoden, über die das Drag&Drop-Verhalten [Seite 108]eines Custom Controls beschrieben wird.

Page 504: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

constructor

504 April 2001

constructorDer Konstruktor erzeugt eine Instanz für die Beschreibung des Drag&Drop-Verhaltens einesControls.CREATE OBJECT dragdrop.

Page 505: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

add

April 2001 505

addDiese Methode fügt eine weitere Beschreibung zu dem Drag&Drop-Verhalten hinzu. Es könnenbeliebig viele Beschreibungen hinterlegt werden. Allerdings darf die gleiche Beschreibung nichtmehrmals hinzugefügt werden.CALL METHOD dragdrop->add

EXPORTING flavor = flavordragsrc = dragsrcdroptarget = droptargeteffect = effecteffect_in_ctrl = effect_in_ctrl

EXCEPTIONS allready_defined = 1obj_invalid = 2.

Parameter Bedeutungflavor Bezeichnung des neuen Flavors

dragsrc 'X': Beschreibung ist eine Drag-Quelle

droptarget 'X': Beschreibung ist ein Drop-Ziel

effect Drop-Effekt der Beschreibung zwischen verschiedenen Custom Controls.Folgende Effekte werden unterstützt:

dragdrop->copy: Darstellung der Maus beim Drag&Drop alsKopiervorgang

dragdrop->move: Darstellung der Maus beim Drag&Drop alsVerschiebevorgang

dragdrop->none: Es ist kein Drag&Drop möglich

effect_in_ctrl Drop-Effekt der Beschreibung im gleichen Custom Controls. FolgendeEffekte werden unterstützt:

dragdrop->copy: Darstellung der Maus beim Drag&Drop alsKopiervorgang

dragdrop->move: Darstellung der Maus beim Drag&Drop alsVerschiebevorgang

dragdrop->none: Es ist kein Drag&Drop möglich

dragdrop->use_default_effect: Es wird der gleiche Effekt benutzt,der durch den Parmeter effect spezifiziert wurde

Ausnahmen Bedeutungallready_defined Der angegebene Flavor wurde bereits definiert.

obj_invalid Das Objekt wurde bereits mit der Methode destroy [Seite 508] zerstört

Page 506: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

add

506 April 2001

Wird bei der Definition des Flavors sowohl der Effekt copy als auch move benutzt,werden beim Drag&Drop-Vorgang bei normalem Drag die Flavors mit Effekt Moveund beim Drag in Verbindung mit Drücken der Steuerungstaste die Flavors mit EffektCopy verwendet.

Page 507: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

clear

April 2001 507

clearDer Inhalt der Instanz wird gelöscht. Nach Aufruf dieser Methode können keine Drag&Drop-Vorgänge mehr auf dem betroffenen Custom Control durchgeführt werden.

CALL METHOD dragdrop->clearEXCEPTIONS obj_invalid = 1.

Ausnahmen Bedeutungobj_invalid Das Objekt wurde bereits mit der Methode destroy [Seite 508] zerstört

Page 508: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

destroy

508 April 2001

destroyDer Inhalt der Instanz wird gelöscht. Weiterhin wird die Instanz zerstört. Nach Aufruf der Methodesind keine Drag&Drop-Vorgänge mehr auf dem betroffenen Custom Control möglich.

CALL METHOD dragdrop->destroy.

Page 509: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get

April 2001 509

getDiese Methode liefert die komplette Beschreibung zu einem Flavor zurück.CALL METHOD dragdrop->get

EXPORTING flavor = flavorIMPORTING isdragsrc = isdragsrc

isdroptarget = isdroptargeteffect = effecteffect_in_ctrl = effect_in_ctrl

EXCEPTIONS not_found = 1obj_invalid = 2.

Parameter Bedeutungflavor Bezeichnung des Flavors

dragsrc 'X': Beschreibung ist eine Drag-Quelle

droptarget 'X': Beschreibung ist ein Drop-Ziel

effect Drop-Effekt der Beschreibung zwischen verschiedenen Custom Controls.Folgende Effekte werden unterstützt:

dragdrop->copy: Darstellung der Maus beim Drag&Drop alsKopiervorgang

dragdrop->move: Darstellung der Maus beim Drag&Drop alsVerschiebevorgang

dragdrop->none: Es ist kein Drag&Drop möglich

effect_in_ctrl Drop-Effekt der Beschreibung im gleichen Custom Controls. FolgendeEffekte werden unterstützt:

dragdrop->copy: Darstellung der Maus beim Drag&Drop alsKopiervorgang

dragdrop->move: Darstellung der Maus beim Drag&Drop alsVerschiebevorgang

dragdrop->none: Es ist kein Drag&Drop möglich

dragdrop->use_default_effect: Es wird der gleiche Effekt benutzt,der durch den Parmeter effect spezifiziert wurde

Ausnahmen Bedeutungallready_defined Der angegebene Flavor wurde bereits definiert.

Wird bei der Definition des Flavors sowohl der Effekt copy als auch move benutzt,wird beim Drag&Drop-Vorgang bei normalem Drag die Flavors mit Effekt Move undbeim Drag in Verbindung mit Drücken der Steuerungstaste die Flavors mit EffektCopy verwendet.

Page 510: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

get

510 April 2001

Page 511: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

get_handle

April 2001 511

get_handleDie Methode liefert das Handle auf die Drag&Drop-Beschreibung. In den meisten Fällen ist einAufruf dieser Methode nicht nötig. Für tabellarische Massendatenschnittstellen (z.B. SAP TreeControl) muß dieses Handle aber vom Verwender des Controls in die Schnittstellentabelle kopiertwerden.CALL METHOD dragdrop->get_handle

IMPORTING handle = handleEXCEPTIONS obj_invalid = 1.

Parameter Bedeutunghandle Handle auf die Drag&Drop-Beschreibung

Ausnahmen Bedeutungobj_invalid Das Objekt wurde bereits mit der Methode destroy [Seite 508] zerstört

Page 512: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

modify

512 April 2001

modifyMit dieser Methode können Sie einen bestehenden Flavor verändern.CALL METHOD dragdrop->modify

EXPORTING flavor = flavordragsrc = dragsrcdroptarget = droptargeteffect = effecteffect_in_ctrl = effect_in_ctrl

EXCEPTIONS not_found = 1obj_invalid = 2.

Parameter Bedeutungflavor Bezeichnung des Flavors

dragsrc 'X': Beschreibung ist eine Drag-Quelle

droptarget 'X': Beschreibung ist ein Drop-Ziel

effect Drop-Effekt der Beschreibung zwischen verschiedenen Custom Controls.Folgende Effekte werden unterstützt:

dragdrop->copy: Darstellung der Maus beim Drag&Drop als Kopiervorgang

dragdrop->move: Darstellung der Maus beim Drag&Drop alsVerschiebevorgang

dragdrop->none: Es ist kein Drag&Drop möglich

effect_in_ctrl Drop-Effekt der Beschreibung im gleichen Custom Controls. Folgende Effektewerden unterstützt:

dragdrop->copy: Darstellung der Maus beim Drag&Drop als Kopiervorgang

dragdrop->move: Darstellung der Maus beim Drag&Drop alsVerschiebevorgang

dragdrop->none: Es ist kein Drag&Drop möglich

dragdrop->use_default_effect: Es wird der gleiche Effekt benutzt, derdurch den Parmeter effect spezifiziert wurde

Ausnahmen Bedeutungnot_found Der angegebene Flavor existiert nicht

obj_invalid Das Objekt wurde bereits mit der Methode destroy [Seite 508] zerstört

Wird bei der Definition des Flavors sowohl der Effekt copy als auch move benutzt,wird beim Drag&Drop-Vorgang bei normalem Drag die Flavors mit Effekt Move undbeim Drag in Verbindung mit Drücken der Steuerungstaste die Flavors mit EffektCopy verwendet.

Page 513: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

modify

April 2001 513

Page 514: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

remove

514 April 2001

removeMit dieser Methode löschen Sie einen bestimmten Flavor.CALL METHOD dragdrop->remove

EXPORTING flavor = flavorEXCEPTIONS not_found = 1

obj_invalid = 2.

Parameter Bedeutungflavor Bezeichnung des Flavors

Ausnahmen Bedeutungnot_found Der angegebene Flavor existiert nicht

obj_invalid Das Objekt wurde bereits mit der Methode destroy [Seite 508] zerstört

Page 515: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

Methoden der Klasse CL_DRAGDROPOBJECT

April 2001 515

Methoden der Klasse CL_DRAGDROPOBJECTDie Klasse CL_DRAGDROPOBJECT dient zur Beschreibung des Kontextes eines Drag&Drop-Vorgangs [Seite 108]. Er beinhaltet in der Regel Informationen zu dem Quellobjekt, den Flavordes Drag&Drop-Vorgangs und Informationen zu Quelle und Ziel.

Page 516: SAP Tree und Tree Model (BC- - download.consolut.com

SAP Tree und Tree Model (BC-CI) SAP AG

set_flavor

516 April 2001

set_flavorDiese Methode verwenden Sie nur innerhalb der Ereignisbehandlung zu ONGETFLAVOR. Überden Parameter newflavor bestimmen Sie, welcher Flavor innerhalb des Drag&Drop-Vorgangsverwendet werden soll. Eine Liste der verfügbaren Flavors wird Ihnen als Ereignisparameterübergeben.CALL METHOD dragdropobject->set_flavor

EXPORTING newflavor = newflavorEXCEPTIONS illegal_state = 1

illegal_flavor = 2.

Parameter Bedeutungnewflavor Bezeichnung des Flavors

Ausnahmen Bedeutunginvalid_state Die Methode wurde nicht innerhalb der Ereignisbehandlung ONGETFLAVOR

aufgerufen.

obj_invalid Es wurde ein Flavor verwendet, der nicht von der aktuellen Drag&Drop-Situation unterstützt wird.

Page 517: SAP Tree und Tree Model (BC- - download.consolut.com

SAP AG SAP Tree und Tree Model (BC-CI)

abort

April 2001 517

abortDer Drag&Drop-Vorgang wird sofort abgebrochen. Es werden keine weiteren Ereignisseausgelöst.CALL METHOD dragdropobject->abort.