Post on 11-Jan-2022
transcript
SAP Tree und Tree Model (BC-CI)
Release 4 .6C
HE
LP
.BC
CIT
RE
E
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.
SAP AG SAP Tree und Tree Model (BC-CI)
April 2001 3
Symbole
Symbol Bedeutung
Achtung
Beispiel
Empfehlung
Hinweis
Syntax
Tip
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
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
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
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
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
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
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
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
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)
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].
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.
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.
SAP Tree und Tree Model (BC-CI) SAP AG
SAP Tree
16 April 2001
• Column Tree: Baumstruktur mit frei definierbaren Spalten
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.
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:
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
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
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:
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
SAP AG SAP Tree und Tree Model (BC-CI)
Die Vererbungshierarchie
April 2001 23
cl_gui_list_tree List Tree
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.
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.
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
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
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.
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
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.
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.
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.
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:
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.
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
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.
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
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
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
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
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].
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
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
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.
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.
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.
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.
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.
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.
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.
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
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
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
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*&-------------------------------------------------------------------*
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.
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.
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.
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.
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.
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:
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.
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:
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
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.
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
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
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
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
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
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
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].
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
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:
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
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]
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.
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.
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.
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.
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.
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.
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.
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
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
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
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*&-------------------------------------------------------------------*
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.
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.
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.
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.
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.
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:
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.
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.
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
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.
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
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
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
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
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
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].
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
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:
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
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]
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.
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.
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.
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.
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.
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.
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.
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
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
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
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*&-------------------------------------------------------------------*
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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.
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
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
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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
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
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
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
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
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.
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.
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.
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.
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
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.
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.
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
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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.
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.
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.
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.
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
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
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.
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
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
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
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
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
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
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
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.
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.
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.
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.
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
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
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.
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.
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
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
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
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
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.
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.
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
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.
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
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.
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
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
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.
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
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.
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
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.
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].
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:
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
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
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.
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.
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.
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.
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
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
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.
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.
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].
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.
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.
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.
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.
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.
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.
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.
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.
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.
SAP AG SAP Tree und Tree Model (BC-CI)
Einträge auf Anforderung laden
April 2001 257
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.
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
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.
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.
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.
SAP AG SAP Tree und Tree Model (BC-CI)
Einträge auf Anforderung laden
April 2001 263
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].
SAP AG SAP Tree und Tree Model (BC-CI)
Methoden der Klasse CL_TREE_MODEL
April 2001 265
Methoden der Klasse CL_TREE_MODEL
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
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
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.
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
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.
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.
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
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.
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.
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.
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 ' '.
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.
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
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
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.
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.
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].
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].
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].
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
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
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
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.
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.
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)
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.
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.
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
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.
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.
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
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.
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
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.
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.
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.
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
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.
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
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.
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
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
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.
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.
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.
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
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
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
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
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
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
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
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
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.
SAP Tree und Tree Model (BC-CI) SAP AG
move_node
320 April 2001
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
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
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
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
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
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].
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.
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.
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
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
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
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
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
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.
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.
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.
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].
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].
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].
SAP Tree und Tree Model (BC-CI) SAP AG
set_registered_events
340 April 2001
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
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
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
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].
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].
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
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.
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.
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.
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.
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.
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.
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.
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].
SAP AG SAP Tree und Tree Model (BC-CI)
set_registered_events
April 2001 355
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
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)
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.
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.
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.
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.
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.
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.
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).
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
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
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)
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.
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
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
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
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.
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
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_*
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.
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
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
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
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].
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].
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.
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.
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.
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].
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ß.
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
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ß.
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.
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
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
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
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
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
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].
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.
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
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
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].
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
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].
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].
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].
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.
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
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.
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].
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
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
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].
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.
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.
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].
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].
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ß.
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
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ß.
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
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.
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.
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
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.
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
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
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 (' ').
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
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
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 ' '.
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
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
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
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].
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
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
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
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
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
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.
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.
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)
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
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
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
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
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
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
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
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
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')
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
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
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
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
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].
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].
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].
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.
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
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].
SAP AG SAP Tree und Tree Model (BC-CI)
Wichtige Datenstrukturen
April 2001 459
Wichtige Datenstrukturen
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.
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
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
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.
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
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
SAP Tree und Tree Model (BC-CI) SAP AG
Struktur TREEMSUNO
466 April 2001
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.
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.
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
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
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
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
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.
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
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
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.
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
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.
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.
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.
SAP AG SAP Tree und Tree Model (BC-CI)
Methoden des OO Control Frameworks
April 2001 481
Methoden des OO Control Frameworks
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.
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.
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.
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)
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.
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.
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.
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
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.
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.
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.
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.
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].
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)
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.
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
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
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
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
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
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
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.
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.
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
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.
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
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.
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.
SAP Tree und Tree Model (BC-CI) SAP AG
get
510 April 2001
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
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.
SAP AG SAP Tree und Tree Model (BC-CI)
modify
April 2001 513
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
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.
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.
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.