Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente...

48
Leseprobe Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effektiver Ansatz, um diese Anforderungen zu erfüllen. In dieser Leseprobe erfahren Sie, wie Sie Drag & Drop in Web Dynpro ABAP einsetzen können. Roland Schwaiger, Dominik Ofenloch Web Dynpro ABAP – Das umfassende Handbuch 1.145 Seiten, gebunden, 2. Auflage 2014 69,90 Euro, ISBN 978-3-8362-2751-3 www.sap-press.de/3532 Kapitel 5: »Drag & Drop für UI-Elemente« Inhaltsverzeichnis Index Die Autoren Leseprobe weiterempfehlen Wissen aus erster Hand.

Transcript of Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente...

Page 1: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

LeseprobeEinfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effektiver Ansatz, um diese Anforderungen zu erfüllen. In dieser Leseprobe erfahren Sie, wie Sie Drag & Drop in Web Dynpro ABAP einsetzen können.

Roland Schwaiger, Dominik Ofenloch

Web Dynpro ABAP – Das umfassende Handbuch 1.145 Seiten, gebunden, 2. Auflage 2014 69,90 Euro, ISBN 978-3-8362-2751-3

www.sap-press.de/3532

Kapitel 5: »Drag & Drop für UI-Elemente«

Inhaltsverzeichnis

Index

Die Autoren

Leseprobe weiterempfehlen

Wissen aus erster Hand.

Page 2: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

527

Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver Ansatz, um diese Anforderungen zu erfüllen. In diesem Kapitel erfahren Sie, wie Sie Drag & Drop in Web Dynpro ABAP einsetzen können.

5 Drag & Drop für UI-Elemente

InteraktionsformMithilfe der Drag-&-Drop-Funktion in Web Dynpro ABAP könnenSie den Benutzern intuitive und einfache Interaktionsformen anbie-ten. Unter Drag & Drop versteht man jene Benutzerinteraktion, dieein UI-Element oder die Einträge eines UI-Elements – die sogenannteQuelle (Source) – auf das gleiche oder ein anderes UI-Element zieht,das als Ziel (Target) bezeichnet wird. Zur Durchführung dieser Inter-aktion dient ein Eingabegerät – z. B. die Maus.

Barrierefreie Nutzung

Beachten Sie, dass die Barrierefreiheit einer Web-Dynpro-Anwendungerfordert, dass die Interaktionen, die mit Drag & Drop durchgeführt wer-den können, auch barrierefrei sein müssen.

BenutzerIm Fall der Drag-&-Drop-Operation mithilfe der Maus lässt sich dasVorgehen aus Sicht des Benutzers folgendermaßen beschreiben:

� Der Benutzer klickt ein UI-Element (die Quelle bzw. Drag Source)an und hält die Maustaste gedrückt.

� Dem Benutzer wird durch ein Geisterbild (Ghost Image) angedeu-tet, dass er gerade eine Drag-&-Drop-Operation ausführt. Bewegtder Benutzer, immer noch mit gedrückter Maustaste, den Maus-zeiger, bewegt sich auch das Geisterbild mit. Dieser Vorgang wirdals Ziehen (Drag) bezeichnet.

� Bewegt der Benutzer den Mauszeiger auf ein gültiges UI-Element,wird dies optisch z. B. durch eine Umrandung des Ziels (Drop Tar-get) angedeutet. Weist der Mauszeiger auf ein ungültiges Ziel hin,wird dies durch ein »Verboten«-Bild visualisiert.

Page 3: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

528

� Falls sich der Benutzer über einem gültigen Ziel befindet und dieMaustaste loslässt, wird beim Ziel ein Ereignis ausgelöst und dievom Entwickler beabsichtigte Funktion ausgeführt.

Entwickler Aus Sicht des Entwicklers sind für die Implementierung einer Drag-&-Drop-Operation einige Schritte zu erledigen. Diese gestalten sichnach den eingesetzten UI-Elementen und den Operationsmodi (sieheAbschnitt 5.9) und lassen sich wie folgt zusammenfassen:

� Für das UI-Element, das als Quelle dienen soll, muss eine Drag-SourceInfo im View Designer definiert werden.

� Die DragSourceInfo bietet die Eigenschaft data an, mit deren HilfeSie Daten übergeben und später bei der Behandlung im Ziel ver-wenden können.

� Für das UI-Element, das als Ziel dienen soll, muss eine DropTarget-Info im View Designer definiert werden.

� In der Eigenschaft tag der DragSourceInfo bzw. der DropTarget-Info definieren gleiche Bezeichner (Flavor) die Verbindung vonZiel und Quelle.

� Wird ein Element auf einem Ziel fallengelassen, kann dies dasEreignis onDrop auslösen. Der Entwickler ist für die Implementie-rung der Reaktion auf das Ereignis verantwortlich, also z. B. Sor-tieren, Löschen etc.

UI-Elemente für

Drag & Drop

Die Elemente, die im Web-Dynpro-Kontext die Drag-&-Drop-Funk-tion unterstützen, sind in Tabelle 5.1 aufgelistet. In der Spalte UI-

Elemente sehen Sie die Namen der UI-Elemente und Aggregate, inder Spalte Rolle, ob das UI-Element in einer Drag-&-Drop-Operationdie Quelle oder das Ziel darstellt, und in der Spalte Beschreibung

eine Erläuterung zu der Operation.

UI-Elemente Rolle Beschreibung

Tree: Knoten/Blatt Quelle Einzelne Knoten und Blätter können bewegt werden.

Tree: Knoten/Blatt Quelle Mehrere Knoten können selektiert werden, falls sie zumindest einen gemein-samen Flavor besitzen.

Tabelle 5.1 UI-Elemente mit Drag-&-Drop-Rollen

Drag & Drop für UI-Elemente 5

529

Tree: Knoten Ziel Knoten können zwischen Kindknoten, an erster und letzter Stelle in einem Eltern-knoten und als neue Unterknoten unter einem Elternknoten eingefügt werden.

GridLayout: Layoutzelle

Quelle Einzelne Zellen können bewegt werden. Voraussetzung dafür ist ein Griff (Handle), z. B. Image, SectionHeader, Caption.

Einschränkung: Es ist nur ein einspaltiges GridLayout möglich.

GridLayout: Layoutzelle

Ziel UI-Elemente können zwischen den Zellen abgelegt werden.

Einschränkung: Es ist nur ein einspaltiges GridLayout möglich.

MatrixLayout: Layoutzelle

Quelle Einzelne Zellen können bewegt werden. Voraussetzung dafür ist ein Griff (Handle), z. B. Image, SectionHeader, Caption.

Einschränkung: Es ist nur ein einzeiliges MatrixLayout möglich.

MatrixLayout: Layoutzelle

Ziel UI-Elemente können zwischen den Zellen abgelegt werden.

Einschränkung: Es ist nur ein einzeiliges MatrixLayout möglich.

Image Quelle Das Bild kann bewegt werden.

Image Ziel Auf das Bild kann ein anderes UI-Element bewegt werden.

ItemListBox Quelle Einzelne oder mehrere Einträge können bewegt werden.

ItemListBox Ziel Einträge können zwischen bestehenden Einträgen sowie an der ersten und letzten Position in der Liste eingefügt werden.

Table: Zeilen Quelle Einzelne Tabellenzeilen können bewegt werden.

Table: Zeile Ziel Einträge können zwischen bestehenden Einträgen und an der ersten und letzten Position eingefügt werden. Zudem können Elemente auf eine Tabellenzeile gezogen werden.

CTable: Zeilen Quelle Einzelne Tabellenzeilen können bewegt werden.

UI-Elemente Rolle Beschreibung

Tabelle 5.1 UI-Elemente mit Drag-&-Drop-Rollen (Forts.)

Page 4: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

530

Im folgenden Abschnitt besprechen wir die Elemente DragSour-ceInfo, DropTargetInfo, DropTarget und das Ereignis onDrop, diedie Grundbausteine der Drag-&-Drop-Mechanismen darstellen. Inden weiteren Abschnitten 5.2, »Tree«, bis 5.8, »PanelStack«, diskutie-ren wir im Detail die UI-Elemente, die für Drag & Drop verwendetwerden können. Dabei beschreiben wir jeweils die Rolle des UI-Ele-ments als Quelle, als Ziel und die Behandlung des »Fallenlassens« aufdieses Element anhand von Beispielen. In Abschnitt 5.9, »Opera-

CTable: Spalten Quelle Einzelne Spalten können bewegt werden.

CTable: Zeilen Ziel Einträge können zwischen bestehenden Einträgen und an der ersten und letzten Position eingefügt werden. Zudem können Elemente auf eine Tabellenzeile gezogen werden.

CTable: Spalten Ziel Einträge können zwischen, vor und nach Spalten eingefügt werden. Zudem können Elemente auf eine Tabellenspalte gezogen werden.

Accordion Quelle Einzelne Items können bewegt werden.

Accordion Ziel Zwischen Items sowie am Anfang und Ende der Items können Elemente einge-fügt werden. Zudem kann ein Element auf ein Item gezogen werden.

PanelStack Quelle Ein ganzer PanelStack kann als ein Objekt gezogen werden.

PanelStack Ziel Einzelne Panels können auf den Stack gedroppt werden.

DropTarget Ziel Dabei handelt es sich um einen Wrapper für UI-Elemente, die keine generische Drag-&-Drop-Unterstützung anbieten.

UI-Element-Eigenschaft isDragHandle

Quelle Die UI-Elemente Image, SectionHeader und Caption können als Griff für den Drag verwendet werden.

Ereignis onDrop Auslöser Das Ereignis onDrop löst den Aufruf der Behandlermethode zu einem Drop aus. In der Behandlermethode werden die Reak-tionen auf den Drop implementiert.

UI-Elemente Rolle Beschreibung

Tabelle 5.1 UI-Elemente mit Drag-&-Drop-Rollen (Forts.)

Allgemeines 5.1

531

tionsmodi«, gehen wir auf die unterschiedlichen Verwendungsvari-anten von Drag & Drop ein.

5.1 Allgemeines

BausteineDie Implementierung von Drag-&-Drop-Operationen baut auf ele-mentaren Bausteinen auf:

� Die DragSourceInfo dient als Information für die Quelle der Drag-&-Drop-Operation.

� Die DropTargetInfo sammelt die Informationen über das Ziel derDrag-&-Drop-Operation, wobei für die Sammlung der Zielinfor-mation auch das Drop Target verwendet werden kann.

� Mithilfe des Ereignisses onDrop kann ein Aktionsbehandler festge-legt werden, der die Implementierung der Reaktion auf das Fallen-lassen eines Elements auf ein anderes Element beinhaltet.

Im Folgenden geben stellen wir Ihnen einige Beispiele, die als An-schauungsmaterial für die Verwendung der Bausteine dienen können.

5.1.1 DragSourceInfo

QuelleIn den UI-Element-Eigenschaften der DragSourceInfo (1 in Abbildung5.1) werden alle Informationen gesammelt, die zu der Quelle einerDrag-&-Drop-Operation gehören, d. h. einer DragSource. Auf der lin-ken Seite wird das UI-Element ItemListBox 2, für das die Drag-SourceInfo definiert wird, in der Designdarstellung gezeigt. Auf derrechten Seite sind die dazugehörenden UI-Elemente in der UI-Elemente-Hierarchie mit den Eigenschaften zur DragSourceInfo abgebildet.

Abbildung 5.1 DragSourceInfo

Page 5: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

532

Eigenschaften � Id

Der Wert der Eigenschaft Id legt die eindeutige Bezeichnung derDragSourceInfo fest (siehe Abschnitt 4.1, »Eigenschaften für alleUI-Elemente«). Diese kann in weiterer Folge beim Ziel verwendetwerden, um festzustellen, von welcher Quelle (Source) aus dieDrag-&-Drop-Operation gestartet wurde.

� data

Mithilfe der Eigenschaft data können Sie Daten hinterlegen, diebei der Drag-&-Drop-Operation »transportiert« werden sollen.Diese Daten können vom Ziel (Target) der Drag-&-Drop-Operatio-nen verwendet werden. Zum Beispiel könnte die ID eines Team-mitglieds transportiert und im Ziel für die Ermittlung der Abrech-nungsergebnisse herangezogen werden.

Achten Sie darauf, dass keine sicherheitsbedenklichen oder volu-minösen Daten übergeben werden, da Drag-&-Drop-Operationenauf dem Client ausgeführt werden. Aus sicherheitstechnischenGründen bietet es sich an, die Daten nicht direkt (z. B. den Nameneines Teammitglieds), sondern indirekt (z. B. die Personalnum-mer) als Referenzen zu übertragen. Wie Sie in Abbildung 5.1erkennen können, haben Sie die Möglichkeit, die Eigenschaft dataan den Context zu binden. Damit können Sie z. B. zeilenbezogeneDaten für Tabellenzeilen hinterlegen.

� enabled

Die Eigenschaft enabled steuert, ob die Drag-&-Drop-Operationaus Sicht der Quelle aktiviert ist oder nicht. Diese Eigenschaft kannauch per Data Binding an ein Context-Attribut angebunden wer-den und ist somit während der Laufzeit aufgrund der Datenände-rung im Context änderbar.

� mimeType

Die Eigenschaft mimeType definiert die Art der Daten, die an dasZiel übertragen werden. Defaultmäßig wird der Wert text/plainvorgegeben. Sie wird im zugrunde liegenden Release nicht vomWeb-Dynpro-Framework umgesetzt und ist für zukünftige Ver-wendungen vorgesehen.

� scope

Die Eigenschaft scope legt die Reichweite der DragSourceInfo fest.Wird dieser Eigenschaft der Wert componentInstance zugewiesen,kann die DragSourceInfo nur in der Component verwendet wer-

Allgemeines 5.1

533

den, in der sie auch definiert wurde. Wurde der Wert global zuge-wiesen, kann die DragSourceInfo über Component-Grenzen hin-weg verwendet werden.

� tags

Die Eigenschaft tags (manchmal auch als Flavor bezeichnet) derDragSourceInfo ermöglicht es Ihnen, zu definieren, welche Zielefür diese Quelle relevant sind. Pro Tag können ein oder mehrereBezeichner definiert werden, je nachdem, wie das Zusammenspielzwischen UI-Elementen gewünscht ist.

Falls ein Bezeichner aus der Source mit einem Bezeichner aus demTarget komplett oder in Teilen übereinstimmt, ist das Zusammen-spiel möglich. Werden mehrere Bezeichner für ein Tag festgelegt,müssen diese durch Leerzeichen getrennt werden. Die Groß- undKleinschreibung ist relevant für die Bezeichner. Außerdem dürfenSie die Zeichen Doppelpunkt (:), Komma (,), Strichpunkt (;), Back-slash (\), Slash (/) und Punkt (.) für die Bezeichner nicht verwen-den. Ein Beispiel für den Wert eines Tags wäre »PO SM TM«,wobei die Bezeichner der Reihe nach für »Process Owner«, »ScrumMaster« und »Team Member« stehen.

Wird eine DragSourceInfo auf ein UI-Element aggregiert, das mehr-fach instanziiert wird (wie z. B. Zelleditoren pro Zeile in einerTabelle), und haben Sie eine Eigenschaft der DragSourceInfo an einAttribut der dataSource des Aggregats gebunden, wird der Wert desAttributs der Lead-Selection verwendet.

5.1.2 DropTargetInfo

ZielIm UI-Element DropTargetInfo (1 in Abbildung 5.2) werden alleInformationen in Form von Eigenschaften gesammelt, die für dieDefinition des Ziels einer Drag-&-Drop-Operation relevant sind. Aufder linken Seite wird das UI-Element Tree 2 im View Designer dar-gestellt, und auf der rechten Seite sehen Sie die dazugehörenden UI-Elemente in der UI-Elemente-Hierarchie. Zum Tree haben wir zweiTreeNodeTypes 3 und einen TreeItemType 4 für unser Beispiel defi-niert (siehe Abschnitt 4.5.8, »Tree«).

EigenschaftenFür den TreeNodeType erkennen Sie auf der rechten Seite eine Drop-TargetInfo mit den dazugehörenden Eigenschaften. Die EigenschaftenId, enabled, tags und scope werden analog wie für die DragSourceInfo(siehe Abschnitt 5.1.1) auch für die DropTargetInfo verwendet.

Page 6: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

534

Abbildung 5.2 DropTargetInfo

name Mithilfe der Eigenschaft name legen Sie einen Namen fest, der bei derBehandlung der Drag-&-Drop-Operation im Ereignis onDrop ausgewer-tet werden kann (siehe Abschnitt 5.1.4, »Ereignis ›onDrop‹«). Im Spe-ziellen wird diese Eigenschaft für die Behandlung der Drag-&-Drop-Operationen im Kontext von Table verwendet (siehe Abschnitt 5.5).

Asterisk in tags Eine besondere Bedeutung hat der Stern (*) in den Bezeichnern, diemithilfe der Eigenschaft tags definiert werden, da dieser als Jokerverwendet werden kann. Ein Beispiel für den Wert eines Tags wäre»PO SM TEAM*«, wobei die Bezeichner der Reihe nach für »ProcessOwner«, »Scrum Master« und »TEAM*« mit beliebigem Text stehen.In diesem Beispiel wird vom System ein Mustervergleich mit denSource-Bezeichnern vorgenommen, und würde die Source einenBezeichner »TEAM_AT« beinhalten, würde dieser dem Muster»TEAM*« im Ziel entsprechen. Mit dem Joker haben Sie demnachdie Möglichkeit, Gruppen von Bezeichnern identisch zu behandeln.

5.1.3 DropTarget

Zielkapsel UI-Elemente, die keine DropTargetInfo als Unterelement anbieten,können mithilfe des UI-Elements DropTarget als Ziel eines Drag-&-Drop-Vorgangs definiert werden. Dabei funktioniert das DropTargetwie eine Kapsel um das UI-Element, das als Ziel dienen soll. Im ViewDesigner können Sie nur ein Element unter dem DropTarget einfü-gen, jedoch stellt dies keine Einschränkung dar, da Sie einfach dasUI-Element TransparentContainer einfügen können, das wiederummehrere UI-Elemente aufnehmen kann.

Allgemeines 5.1

535

DropTarget

erzeugen

In Abbildung 5.3 sehen Sie ein Beispiel für die Verwendung des UI-Elements DropTarget, das exemplarisch für den Einsatz in anderenVerwendungskontexten ist. Im oberen Bereich wird der Drag-Vor-gang eines Teammitglieds 1 von einer ItemListBox auf einen Trans-parentContainer, in dem die Details zum Teammitglied dargestelltwerden, veranschaulicht. Der TransparentContainer beinhaltet einBild (Foto des Teammitglieds) und einen FormattedTextView (Rolleund Kompetenzen des Teammitglieds) und ist selbst durch einDropTarget gekapselt. Im rechten unteren Bereich wird das Ergebnisnach dem Drop 2 auf den TransparentContainer dargestellt, alsonachdem die Behandlermethode für den Zeitpunkt onDrop aus derDrag Source abgearbeitet wurde.

Abbildung 5.3 UI-Element DropTarget

Um ein DropTarget in Ihrem Layout zu verwenden, müssen Sie nurwenige Schritte ausführen.

Page 7: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

536

1. Fügen Sie im ersten Schritt das UI-Element DropTarget in die UI-Elemente-Hierarchie ein 3.

2. Definieren Sie eine Aktion für das Ereignis onDrop 4, wie inAbschnitt 5.1.4 beschrieben.

3. Erzeugen Sie für das DropTarget eine DropTargetInfo 5 (sieheAbschnitt 5.1.2).

4. Definieren Sie das Unterelement für das DropTarget.

Die Arbeit, die jetzt noch zu erledigen ist, betrifft die Implementierungder Behandlermethode für das Ereignis onDrop. Diese gestalten Sie jenach der gewünschten Reaktion auf den Drop. In unserem Beispielwird in der Implementierung das Context-Element für das ausgewählteTeammitglied gelesen, formatiert und dem Image und FormattedText-View in Form eines Context-Knoten-Elements zur Verfügung gestellt.

Roundtrip vor der Drop-Behandlung

Beim Auslesen der Daten aus dem Context-Knoten für die DropDown-ListBox mittels der Lead-Selection muss vor der Drop-Behandlung nochein Roundtrip durchgeführt werden. Dazu können Sie z. B. eine Aktion fürdas Ereignis onLeadSelection anlegen.

5.1.4 Ereignis »onDrop«

In den UI-Elementen, die als Ziel verwendet werden können, wirddas Ereignis onDrop angeboten. Damit wird der funktionale Aspektder Behandlung eines Fallenlassens auf das Ziel implementiert. DemEreignis müssen Sie eine Aktion zuordnen, die eine zugeordnete Akti-onsbehandler-Methode besitzt. Darin können Sie die gewünschteReaktion des Drops implementieren, wie z. B. das Einfügen einerneuen Tabellenzeile.

Drop-Daten Die Daten, die vom Ziel übertragen werden, stehen als Parameter derAktionsbehandler-Methode für das Ereignis onDrop zur Verfügung,wie Sie im Beispiel in Abbildung 5.4 sehen können. Dort werden dieParameter dargestellt, die im Kontext eines ItemListBox-Drops über-tragen, also an die Aktionsbehandler-Methode für onDrop als Para-meter übergeben werden:

� Der Parameter WDEVENT 1 repräsentiert wie immer bei einer Akti-onsbehandler-Methode das Ereignis. In diesem Objekt sind die

Allgemeines 5.1

537

ereignisrelevanten Daten abgelegt, die sich auch in der Schnitt-stelle der Aktionsbehandler-Methode widerspiegeln.

� Die weiteren Parameter werden in unserem Beispiel explizit überdie Schnittstelle der Behandlermethode übergeben. Explizit bedeu-tet, dass Sie die Parameter entweder manuell in der Schnittstelleder Behandlermethode anlegen oder diese mithilfe des ButtonsParameter aus UI-Ereignis ( ) anlegen lassen.

Die Menge und Art der Parameter richten sich nach dem Typ desDrop-Ziels, daher werden wir zu den folgenden Beschreibungen derUI-Elemente immer auch die Parameter in einem Abschnitt »EreignisonDrop« erläutern.

Die Parameter, die wir in Abbildung 5.4 als Teil der Parameterlistezur Aktionsbehandler-Methode für das Ereignis onDrop gezeigthaben, finden sich auch im Objektattribut PARAMETERS des Referenz-parameters WDEVENT wieder. Das bedeutet für Sie, dass Sie auf zweiArten auf die Daten zugreifen können.

Abbildung 5.4 onDrop-Parameter der ItemListBox

Im Folgenden erläutern wir die für das Drag & Drop relevanten Para-meter im Attribut PARAMETERS des Ereignisobjekts WDEVENT, das Sie inAbbildung 5.5 sehen können.

WDEVENTDas Ereignisobjekt WDEVENT vom Typ CL_WD_CUSTOM_EVENT besitzt dieAttribute PARAMETERS 1, NAME 2 und SOURCE_COMPONENT_ID 3. DasAttribut NAME beinhaltet den Namen des Auslöseereignisses, in unse-rem Fall ON_DROP. Das Attribut SOURCE_COMPONENT_ID hält den Namender Web-Dynpro-Component, von der aus der Drag gestartet wurde.Falls die Drag-&-Drop-Operation in derselben Web-Dynpro-Compo-nent ausgeführt wird, ist das Attribut initial.

Page 8: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

538

Abbildung 5.5 WDEVENT-Objektattribute

Das Attribut PARAMETERS repräsentiert eine interne Tabelle mit denfolgenden Einträgen:

� ID

Der Eintrag ID steht für die ID des UI-Elements, das das onDrop-Ereignis ausgelöst hat, d. h. für das Ziel der Drag-&-Drop-Operation.

� CONTEXT_ELEMENT

Der Eintrag CONTEXT_ELEMENT repräsentiert das Context-Elementaus der Quelle, die zu der Drag-&-Drop-Operation gehört.

� DATA, MIME_TYPE, TAGSDiese drei Einträge liefern die Daten, die in der DragSourceInfoder Quelle definiert wurden (siehe Abschnitt 5.1.1).

� INDEX

Der Eintrag INDEX bietet die Information über die Drop-Positionim betroffenen Ziel. Zum Beispiel hat der INDEX den Wert 2 ineiner ItemListBox, weil der Benutzer den Drop vor dem zweitenEintrag ausgeführt hat.

� OFFSET

Der Eintrag OFFSET liefert die Positionsinformation der Drop-Posi-tion relativ zum Eintrag INDEX oder anderen Bezugsgrößen. Zum

Tree 5.2

539

Beispiel hat OFFSET den Wert -1 in einer ItemListBox, da derBenutzer den Drop vor dem zweiten Eintrag ausgeführt hat.

5.2 Tree

Das UI-Element Tree bietet vielfältige Möglichkeiten und Unterstüt-zungen für die Drag-&-Drop-Operationen. Wie Sie diese im Detailumsetzen können, erfahren Sie in diesem Abschnitt.

DragSourceInfo

Knoten oder BlattFalls Sie einen Knoten oder ein Blatt eines Baums als Drag Source ver-wenden möchten, müssen Sie zu dem Knoten (TreeNodeType) oderBlatt (TreeItemType) ein Unterelement vom Typ DragSourceInfo imView Designer definieren.

In Abbildung 5.6 sehen Sie eine eingefügte DragSourceInfo für einBlatt 1 und einen Knoten 2. Im unteren Bereich der Abbildungerkennen Sie die optische Darstellung des Drag-Vorgangs 3.

Abbildung 5.6 Tree DragSourceInfo

Page 9: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

540

DropTargetInfo

Wird der Tree als Drop Target verwendet, stehen die folgenden Ein-fügepositionen zur Verfügung:

� zwischen existierenden Blättern

� als erstes oder letztes Blatt

� auf ein existierendes Blatt bzw. auf einen existierenden Knoten

Beispiel In Abbildung 5.7 sehen Sie ein Drop-Beispiel. Im unteren Bereichder Abbildung erkennen Sie auf der linken Seite die Visualisierungder Suche nach der Einfügeposition durch den Benutzer 1. Dieserhat sich für das Einfügen an der zweiten Position entschieden.

Abbildung 5.7 Tree DropTargetInfo

In der Abbildung rechts unten sehen Sie zwei Varianten für das Fal-lenlassen auf den TreeItemType: einerseits zwischen den Blättern 2mit Visualisierung der Einfügeposition und andererseits auf einemanderen Blatt 3. Lässt der Benutzer das Element an der von ihmgewünschten Stelle fallen, wird das Ereignis onDrop des TreeNode-Type 4 bzw. TreeItemType 5 ausgelöst und kann durch die Imple-mentierung behandelt werden. Für den Drop zwischen den Blättern

Tree 5.2

541

müssen Sie noch eine DropTargetInfo für den Knoten TNT2_ROLEanlegen und ein Tag definieren, das mit dem Tag TEAMMEMBER vomTreeItemType TIT3_TEAMMEMBER zusammenpasst, z. B. TEAM*.

Ereignis »onDrop«

ParameterDas Ereignisobjekt WDEVENT, das an die Behandlermethode über-geben wird, liefert für die Implementierung die folgenden Informa-tionen:

� ID: Das Element ID beschreibt die ID des Drop Targets.

� CONTEXT_ELEMENT: Das Element liefert eine Referenz auf ein Con-text-Element.

� Falls auf ein Baumblatt oder einen Baumknoten gedroppt wird,ist dies das Context-Element, das die Datenbasis des Blattes/Knotens bildet.

� Falls zwischen Blättern/Knoten gedroppt wird, ist dies das Con-text-Element, das für das Blatt/den Knoten nach der Drop-Posi-tion steht.

� Falls am Ende von Blättern/Knoten gedroppt wird, ist dies dasContext-Element, das für das letzte Blatt/den letzten Knotensteht.

� DATA: Das Element DATA beinhaltet die Daten aus der Drag Source.

� MIME_TYPE: Das Element MIME_TYPE enthält den MIME-Typ aus derDrag Source.

� TAGS: Das Element TAGS beinhaltet die Tags aus der Drag Source.

� OFFSET: Über OFFSET wird die Elementposition im Knoten desBaums bestimmt.

� Der Parameter hat den Wert -1, falls in einer Liste von Blättern/Knoten gedroppt wird.

� Er hat den Wert 1, falls am Ende einer Liste von Blättern/Kno-ten gedroppt wird.

� Er hat den Wert 0, falls direkt auf ein Blatt/einen Knotengedroppt wird.

� PATH: Das Element PATH enthält den Pfad zum CONTEXT_ELEMENT imContext.

Page 10: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

542

Für die Implementierung der Reaktion auf das Fallenlassen von Ele-menten bieten sich unter anderem die Methoden move_* aus demInterface IF_WD_CONTEXT_NODE dazu an, Elemente zu einem Context-Knoten zu verschieben.

5.3 GridLayout/MatrixLayout

Layout Im GridLayout und MatrixLayout (siehe Abschnitt 3.3, »Layouts«)können einzelne Zellen dieses Layouts verschoben bzw. Objekte zwi-schen Zellen eingefügt werden. Beachten Sie dabei, dass Drag &Drop nur bei einspaltigem GridLayout bzw. einzeiligem MatrixLay-out möglich ist.

DragSource

Damit eine Drag-Operation durchgeführt werden kann, muss füreine Zelle ein Griff (Handle) definiert werden. Dieser ermöglicht das»Angreifen« der Zelle. Dabei können ein SectionHeader, eine Cap-tion oder ein Image mit der UI-Element-Eigenschaft isDragHandle =true eingesetzt werden.

Beispiel In Abbildung 5.8 sehen Sie ein Beispielszenario, das es dem Benutzerermöglicht, die Position einer ItemListBox zu verändern. Beim Ver-schieben der Box wird im User Interface die neue potenzielle Einfü-geposition durch eine gestrichelte Linie visualisiert.

In Abbildung 5.9 haben wir das Layout des Szenarios schematischdargestellt. Der zentrale Container für die Gestaltung ist der Trans-parentContainer TC1, der als Layout den Wert GridLayout und dieSpaltenanzahl Layout.colCount = 1 erhält. In TC1 haben wir die dreiweiteren TransparentContainer TC11, TC12 und TC13 platziert, diedann gezogen werden. Beim Drag-Vorgang können auch Daten mit-gegeben werden, diese werden in den Layoutdaten (LayoutDa-ten.dragData) abgelegt. In unserem Beispiel wird der Transparent-Container gezogen, daher werden die Drag-Daten in den dortigenLayoutdaten abgelegt. Als Ausprägungen haben wir in unserem Bei-spiel »TEAMS«, »ITM« (für »Internal Team Members«) und »ETM«(für »External Team Members«) verwendet.

GridLayout/MatrixLayout 5.3

543

Abbildung 5.8 Drag & Drop einer ItemListBox

Abbildung 5.9 Drag GridLayout/MatrixLayout

TC 1

TC 11

SH 11

TC 12

SH 12

TC 13

SH 13

Layout = GridLayoutLayout.colCount = 1

Layoutdaten.dragData = TEAMS

Layoutdaten.dragData = ITM

isDragHandle = true

isDragHandle = true

Layoutdaten.dragData = ETM

isDragHandle = true

Page 11: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

544

Handle Für den Griff (Handle) haben wir den SectionHeader verwendet(SH11, SH12 und SH13). Hier wurde im SectionHeader die UI-Ele-ment-Eigenschaft isDragHandle = true gesetzt.

DropTarget

Wird das GridLayout bzw. MatrixLayout als Drop Target verwendet,stehen die folgenden möglichen Einfügepositionen zur Verfügung:

� Im GridLayout und MatrixLayout können einzelne Zellen diesesLayouts verschoben werden.

� Im GridLayout und MatrixLayout können Objekte zwischen denZellen eingefügt werden.

Ereignis »onDrop«

Das Ereignis onDrop werden Sie für GridLayout und MatrixLayoutvergeblich im View Designer suchen. Der einfache Grund dafür ist,dass dieses dynamisch gesetzt werden muss. Jedoch ist es in derdynamischen Programmierung beim Setzen des Ereignisses erforder-lich, den Namen einer Aktion an die Setter-Methode (set_on_drop)zu übergeben.

Aktion und

Behandler

Legen Sie als Vorbereitung für die dynamische Programmierungmithilfe der Registerkarte Aktionen eine Aktion an. Dadurch wirdautomatisch eine Behandlermethode erzeugt, die für die Behand-lung des onDrop-Ereignisses herangezogen wird. In Listing 5.1 zei-gen wir Ihnen ein Beispiel für die Implementierung der Behandler-methode.

METHOD onactiondrop_tc.* Hier wird nur das Event-Objekt in den Attributen abgelegt.* Die eigentliche Behandlung erfolgt in WDDOMODIFYVIEW

IF wdevent IS BOUND.wd_this->gd_index = wdevent->get_string( 'INDEX' ).wd_this->gd_offset = wdevent->get_string( 'OFFSET' ).wd_this->gd_data = wdevent->get_string( 'DATA' ).wd_this->gd_tags = wdevent->get_string( 'TAGS' ).wd_this->gd_id = wdevent->get_string( 'ID' ).

ENDIF.ENDMETHOD.

Listing 5.1 Behandlermethode für GridLayout/MatrixLayout

GridLayout/MatrixLayout 5.3

545

WDEVENT puffernIm Gegensatz zu den anderen Drag-&-Drop-Realisierungen müssenSie bei GridLayout und MatrixLayout die Daten aus dem Ereignis-objekt WDEVENT zwischenspeichern, da diese zu einem späteren Zeit-punkt in der Methode wddomodifyview benötigt werden. Wir habenim Beispiel in Listing 5.1 die Attribute des View-Controllers ver-wendet. Die Bedeutung der dabei verwendeten Parameter ID, MIME_TYPE und TAGS haben wir zum Ereignis Tree.onDrop in Abschnitt5.2, »Tree«, besprochen. Die übrigen Parameter haben die folgendeBedeutung:

� CONTEXT_ELEMENT: Der Parameter CONTEXT_ELEMENT ist immerinitial.

� DATA: Der Parameter DATA repräsentiert die Daten aus der Layout-daten-Eigenschaft dragData des gezogenen Elements.

� OFFSET: Der Parameter OFFSET hält die Elementposition in den Zel-len des GridLayout oder MatrixLayout. Der Parameter hat denWert -1, falls der Wert des INDEX als Einfügeposition verwendetwerden soll. Er hat den Wert 1, falls am Ende der Zellen gedropptwird.

� INDEX: Der Parameter INDEX liefert den Wert der Referenzposition,die in Kombination mit dem OFFSET die tatsächliche Positionergibt.

Dynamische Programmierung

BeispielIm Vergleich zu den anderen Drag-&-Drop-UI-Elementen ist bei derVerwendung von GridLayout und MatrixLayout ein hohes Maß andynamischer Programmierung (siehe Kapitel 6, »Dynamische Pro-grammierung«) erforderlich. In Listing 5.2 sehen Sie ein Beispiel füreine solche Implementierung.

METHOD wddomodifyview.DATA:

* Der TransparentContainer für die D&D-Operationlr_tc TYPE REF TO cl_wd_transparent_container,

* Das GridLayout im TransparentContainerlr_grid_layout TYPE REF TO cl_wd_grid_layout,

* Die GridLayout-Daten für dragDatalr_grid_layout_data TYPE REF TO cl_wd_grid_data,

* Eine neue DragSourceInfo für den TransparentContainerlr_drag_source_info TYPE REF TO cl_wd_drag_source_info,

Page 12: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

546

* Eine neue DropTargetInfo für den TransparentContainerlr_drop_target_info TYPE REF TO cl_wd_drop_target_info.

* Beim ersten MalIF first_time = abap_true.

*************************************************** TC1*************************************************** TransparentContainer ermitteln für Drag & Drop

lr_tc ?= view->get_element(id = 'TC1' ).

* Layout zum TransparentContainer ermittelnlr_grid_layout ?= lr_tc->get_layout( ).

* DropTargetInfo instanziierenCALL METHOD cl_wd_drop_target_info=>new_drop_target_infoEXPORTING

enabled = abap_trueid = 'DTI_TC1'name = 'TC1'tags = 'TC'view = view

RECEIVINGcontrol = lr_drop_target_info.

* DropTarget zum Layout ergänzenCALL METHOD lr_grid_layout->set_drop_target_infoEXPORTING

the_drop_target_info = lr_drop_target_info.* DragSourceInfo instanziieren

CALL METHOD cl_wd_drag_source_info=>new_drag_source_infoEXPORTING

data = 'TC1'enabled = abap_trueid = 'DSI_TC1'tags = 'TC'view = view

RECEIVINGcontrol = lr_drag_source_info.

* DragSource zum Layout ergänzenCALL METHOD lr_grid_layout->set_drag_source_infoEXPORTING

the_drag_source_info = lr_drag_source_info.* Drop-Aktion setzen* Muss vorher in den Aktionen definiert werden!

CALL METHOD lr_grid_layout->set_on_dropEXPORTING

value = 'DROP_TC'. ENDIF.**************************************************

GridLayout/MatrixLayout 5.3

547

* Behandlung des Drops auf die TransparentContainerDATA: lt_children TYPE

cl_wd_uielement_container=>tt_uielement,lr_child LIKE LINE OF lt_children,ld_drag_data TYPE string,ld_target_index TYPE i,ld_source_index TYPE i.

* Ist ein onDrop aufgetreten?IF wd_this->gd_index IS NOT INITIAL.

* TransparentContainer ermittelnlr_tc ?= view->get_element(id = 'TC1' ).

* Kinderlt_children = lr_tc->get_children( ).

* Finde das UI-Element, von dem gedraggt wurdeLOOP AT lt_children INTO lr_child.

ld_source_index = sy-tabix.* Hole die Layoutdaten vom Kind

lr_grid_layout_data ?= lr_child->get_layout_data( ).* Hole von der UI-Eigenschaft dragData den Wert

ld_drag_data = lr_grid_layout_data->get_drag_data( ).* Vergleiche den Wert mit den Daten von onDrop

IF ld_drag_data = wd_this->gd_data.* Gefunden!

EXIT.ENDIF.

ENDLOOP.* Neue Position ermitteln

IF wd_this->gd_offset = -1.ld_target_index = wd_this->gd_index.

* Am EndeELSE.

ld_target_index = wd_this->gd_index + 1.ENDIF.

* Durch das Löschen verschiebt sich der IndexIF ld_source_index < ld_target_index.

ld_target_index = ld_target_index - 1.ENDIF.

* Aus der alten Position löschen und in die neue einfügenIF ld_source_index <> ld_target_index.

* Löschenlr_tc->remove_child( index = ld_source_index ).

* Einfügenlr_tc->add_child(the_child = lr_childindex = ld_target_index ).

* Fertig

Page 13: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

548

CLEAR wd_this->gd_index.ENDIF. "Ungleiche Position?

ENDIF. "D&D?ENDMETHOD.

Listing 5.2 Drag & Drop GridLayout/MatrixLayout

Container-Layout

ermitteln

Die Implementierung startet mit der Ermittlung der Referenz auf denTransparentContainer (es können auch andere Container sein, wiez. B. eine Gruppe), für den Drag & Drop realisiert wird, d. h., in denElemente eingefügt werden sollen oder dessen Kindelemente Sie perDrag & Drop verschieben möchten. Über diese Referenz wird eineReferenz auf das GridLayout (MatrixLayout) bezogen.

DropTargetInfo,

DragSourceInfo,

onDrop

Nach der Erzeugung eines DropTargetInfo- und DragSourceInfo-Objekts werden beide Objekte dem Layout zugewiesen. Darüberhinaus wird das onDrop-Ereignis mit einer Aktion gekoppelt, die Siezuvor definiert haben.

Die genannten Schritte werden nur einmal in der Lebenszeit desView-Controllers ausgeführt. Die nächsten Schritte werden immerdann ausgeführt, wenn der Benutzer eine Drag-&-Drop-Operationim Layout durchführt.

Betroffenes

Element

Anschließend ermitteln Sie zu Ihrem Container die Kindelemente,um für jedes Element prüfen zu können, ob es das durch die Drag-&-Drop-Operation betroffene ist. Sie können dazu mithilfe der Layout-daten der Kindelemente die dragData ermitteln. Darüber hinaus sinddie dragData des fallengelassenen Elements aus der Aktionsbehand-ler-Methode bekannt. Durch einen einfachen Vergleich auf Gleich-heit können Sie feststellen, welches der Kindelemente es war, dasgezogen wurde.

Positionieren Mithilfe von INDEX und OFFSET berechnen Sie die neue Position fürdas gezogene Kindelement. Danach löschen Sie dieses Element ausder alten Position und fügen es in die neue Position ein.

5.4 ItemListBox

In einer ItemListBox werden Einträge in einer Box aufgelistet. DieseEinträge kann der Benutzer einzeln oder mehrfach markieren undziehen. Um einen einzelnen Eintrag zu draggen, reicht es, diesenanzuklicken und zu ziehen.

ItemListBox 5.4

549

MehrfachselektionMöchte ein Benutzer mehrere Einträge ziehen, muss er mithilfe derTastenkombination aus (ª) und der linken Maustaste oder mithilfeder Pfeiltasten bzw. (Strg) und der linken Maustaste oder über diePfeiltasten den gewünschten Bereich markieren.

DragSourceInfo

In Abbildung 5.10 sehen Sie die DragSourceInfo, die es ermöglicht,dass der Benutzer einen oder mehrere Einträge aus einer ItemList-Box ziehen kann.

Abbildung 5.10 ItemListBox DragSourceInfo

BeschreibungDie Eigenschaft data 1 haben wir an den Context gebunden, um vondort die Referenz – hier als ID des Teammitglieds realisiert – auf einElement der DragSourceInfo zuzuweisen. Diese Referenz wird andas Drop Target übergeben. Unter 2 sehen Sie ein Beispiel für eineEinzelselektion und unter 3 für eine Mehrfachselektion. Ausschlag-gebend für die Fähigkeit der Mehrfachselektion ist die UI-Element-Eigenschaft multipleSelection = true im UI-Element ItemListBox.

DropTargetInfo

EinfügepositionenWird die ItemListBox als Drop Target verwendet, stehen die folgen-den Einfügepositionen zur Verfügung:

Page 14: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

550

� zwischen existierenden Einträgen

� an erster und letzter Position innerhalb der Liste

In Abbildung 5.11 finden Sie ein Drop-Beispiel. Im rechten Bereichder Abbildung sehen Sie die Visualisierung der Suche nach der Ein-fügeposition durch den Benutzer. Dieser hat sich für das Einfügenan der vorletzten Position entschieden. Droppt der Benutzer an dervon ihm gewünschten Stelle, wird das Ereignis onDrop der Item-ListBox ausgelöst und kann durch die Implementierung behandeltwerden.

Abbildung 5.11 ItemListBox DropTargetInfo

Ereignis »onDrop«

Parameter Das Ereignisobjekt WDEVENT, das an die Behandlermethode des Ereig-nisses übergeben wird, liefert für die Implementierung die folgen-den Informationen:

� CONTEXT_ELEMENT: Der Parameter CONTEXT_ELEMENT liefert das Con-text-Element zur Drag Source.

� INDEX: Der Parameter INDEX liefert die Basisinformation zur Einfü-geposition.

� OFFSET: Der Parameter OFFSET liefert die Position relativ zumIndex.

Darüber hinaus enthält WDEVENT die Parameter ID, DATA, MIME_TYPEund TAGS, die analog zu den in Abschnitt 5.2, »Tree«, besprochenenEreignisparametern verwendet werden.

Werte nach

Einfügeposition

Falls der Benutzer einen Eintrag an das Ende anhängen möchte, hatder Index den Wert, dem die Anzahl der Einträge entspricht. Außer-dem erhält der Offset den Wert 1. Falls der Benutzer einen Eintrag indie Liste einfügen möchte, hat der Index den Wert, der dem Index

Table 5.5

551

des Eintrags nach der Einfügeposition entspricht. Zudem erhält derOffset den Wert –1. Falls der Benutzer einen Eintrag am Anfang indie Liste einfügen möchte, hat der Index den Wert 1 und der Offsetden Wert –1.

Muster für

Aktionsbehandler

Um die Reaktion auf den Drop des Benutzers in der Aktionsbehand-ler-Methode zu implementieren, können Sie das folgende Musterverwenden:

1. Ermitteln Sie die Quelle der Drag-&-Drop-Operation. Dafür kön-nen Sie das Attribut DATA aus dem Event-Objekt WDEVENT oder ausden Parametern der Aktionsbehandler-Methode verwenden.

2. Ermitteln Sie die selektierten Einträge auf der ItemListBox. Dazubeschaffen Sie sich die Referenz (IF_WD_CONTEXT_NODE) auf denKontextknoten, an den die ItemListBox gebunden ist. Mithilfe derMethode get_selected_elements der Knotenreferenz ermittelnSie die selektierten Einträge des Benutzers.

3. Aufgrund der Attribute INDEX und OFFSET aus dem Event-ObjektWDEVENT oder aus den Parametern der Aktionsbehandler-Methodebestimmen Sie die Drop-Position.

4. Realisieren Sie Ihre gewünschte Reaktion auf den Drop.

5.5 Table

Das UI-Element Table bietet vielfältige Möglichkeiten und Unter-stützungen für die Drag-&-Drop-Operationen.

5.5.1 Nicht hierarchische Tabellen

ModiSie können selektierte Zeilen einer Table ziehen und Tabellenzeilen,Bilder und andere Quellen (Drag Source) zwischen oder auf bereitsexistierende Tabellenzeilen fallenlassen. Die zur Verfügung gestell-ten Modi sind die folgenden:

� EinfügenFür die Tabelle werden DragSourceInfo, DropTargetInfo undonDrop festgelegt. In diesem Fall kann ein oder können eines odermehrere Elemente zwischen bestehenden Zeilen eingefügt wer-den (z. B. von einer ItemListBox).

Page 15: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

552

� VerschiebenFür die Tabelle werden DragSourceInfo, DropTargetInfo undonDrop definiert. In diesem Fall können eine oder mehrere Zeilenzwischen bestehenden Zeilen in der Table verschoben werden.Sollen mehrere Elemente verschoben werden, muss die Selekti-onskardinalität im Context angepasst werden.

� Zeilen-DropWählen Sie aus dem Kontextmenü des UI-Elements Table den Ein-trag INSERT DROP_ROW_TRG_INF. Damit wird eine DropTargetInfofür den Drop auf eine Zeile eingefügt. Pflegen Sie die Werte zu denEigenschaften der DropTargetInfo. Übernehmen Sie für die Eigen-schaft dropOnRowName des UI-Elements Table den Wert der Eigen-schaft name der DropTargetInfo. Für die Tabelle können Sie meh-rere DropTargetInfo für den Zeilen-Drop definieren. In diesemFall verwenden Sie das Data Binding der Eigenschaft dropOnRow-Name, um den unterschiedlichen Zeilen den Namen der DropTar-getInfo zuzuordnen.

Selection Für das Verschieben mehrerer Zeilen in der Tabelle müssen Sie imContext die Eigenschaft Selection für die dataSource der Tabelle mitder Obergrenze n setzen, d. h. 0..n oder 1..n. Falls Sie Zeilengrup-pierungen in der Tabelle verwenden (siehe Abschnitt 9.3, »Table«),müssen Sie keine Besonderheiten beachten.

DragSource

Beispiel Falls Sie eine oder mehrere Zeilen einer Tabelle als Drag Source ver-wenden möchten, müssen Sie zum Tree ein Unterelement vom TypDragSourceInfo im View Designer definieren. In Abschnitt 5.1.1 fin-den Sie die Definition der DragSourceInfo. Abbildung 5.12 zeigteine eingefügte DragSourceInfo für eine Tabelle. Im unteren Bereichsehen Sie die optische Darstellung des Drag-Vorgangs 1. Wir unter-scheiden zwischen einem Drag einzelner 2 und mehrerer Zeilen 3.Notwendige Voraussetzung für den Mehrfach-Drag ist, dass dieEigenschaft Selection für die dataSource der Tabelle mit der Ober-grenze n gesetzt ist.

Table 5.5

553

Abbildung 5.12 Table DragSourceInfo

DropTarget

EinfügepositionenWird die Table als Drop Target verwendet, stehen die folgenden Ein-fügepositionen zur Verfügung:

� zwischen existierenden Zeilen

� an erster und letzter Position innerhalb der aufgelisteten Zeilen

� auf eine Zeile

Zwischen den ZeilenIn Abbildung 5.13 sehen Sie ein Beispiel für das Fallenlassen zwi-schen Zeilen. Im oberen Bereich erkennen Sie die Eigenschaften derDropTargetInfo, die mit den passenden Werten versehen werden,wie in Abschnitt 5.1.2 beschrieben. In der Abbildung sehen Sie zweiVarianten für das Fallenlassen zwischen Tabellenzeilen. Unabhängigdavon, ob Sie eine 1 oder mehrere Zeilen 2 fallenlassen möchten,ist es ausreichend, eine DropTargetInfo für den Vorgang zu definie-ren. Führt der Benutzer den Drop an der von ihm gewünschtenStelle 3 aus, wird das Ereignis onDrop der Table ausgelöst und kanndurch die Implementierung behandelt werden.

Page 16: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

554

Abbildung 5.13 Table DropTargetInfo

Auf eine Zeile Möchten Sie das Fallenlassen auf eine Zeile erlauben, müssen Sieandere Definitionen für das UI-Element Table festlegen (siehe auchAbbildung 5.14):

Abbildung 5.14 Table dropOnRowTargetInfo

1. Wählen Sie aus dem Kontextmenü des UI-Elements Table denEintrag INSERT DROP_ROW_TRG_INF (Drop On Row Target Info 1).Damit wird eine DropTargetInfo für den Drop auf eine Zeile ein-gefügt.

2. Pflegen Sie die Werte zu den Eigenschaften der DropTargetInfo(siehe Abschnitt 5.1.2). Der Wert der Eigenschaft name 2 wird imnächsten Schritt verwendet.

3. Übernehmen Sie für die Eigenschaft dropOnRowName des UI-Ele-ments Table den Wert der Eigenschaft name der DropTargetInfo 3.Damit haben Sie die Definition abgeschlossen.

Table 5.5

555

Alternativ zur Definition der DROP_ROW_TRG_INF (Drop On Row TargetInfo) können Sie auch eine bereits bestehende DropTargetInfo ver-wenden. Gehen Sie analog zum letzten Schritt der vorangegangenenAufzählung vor.

Für die Tabelle können Sie mehrere DropTargetInfo für den Zeilen-Drop definieren. In diesem Fall verwenden Sie das Data Binding derEigenschaft dropOnRowName des UI-Elements Table, um den unter-schiedlichen Zeilen den Namen der DropTargetInfo zuzuordnen.

Ereignis »onDrop«

ParameterDas Ereignisobjekt WDEVENT, das an die Behandlermethode des Ereig-nisses übergeben wird, liefert neben den bereits in Abschnitt 5.2,»Tree«, besprochenen Parametern ID, DATA, MIME_TYPE und TAGS diefolgenden Attribute für die Implementierung:

� CONTEXT_ELEMENT: Der Parameter CONTEXT_ELEMENT ist immerinitial.

� OFFSET: Der Parameter OFFSET hält einen Wert, der relativ zumROW_ELEMENT zu interpretieren ist. Der Offset kann die Werte -1(davor), 1 (danach, für das Ende der Elemente) und 0 (auf ein Ele-ment) annehmen.

� ROW_ELEMENT: Der Parameter ROW_ELEMENT hält das Context-Ele-ment aus der dataSource der Table, in die etwas eingefügt werdensoll.

Implementierungs-

idee

Die Implementierung der Reaktion auf den Drop beinhaltet im Allge-meinen drei Schritte.

1. Ermittlung der Datenquelle(n) der Drag-&-Drop-OperationUm die Datenquelle(n) herauszufinden, bestimmen Sie z. B. dieReferenz (IF_WD_CONTEXT_NODE) auf den Kontextknoten, an den dieQuelle gebunden ist. Mithilfe der Methode get_selected_ele-ments der Knotenreferenz ermitteln Sie die selektierten Elementeder Quelle.

2. Ermittlung von PositionenErmitteln Sie den Index der Einfügeposition(en). Dabei unterstüt-zen Sie die Methode get_index aus dem Interface IF_WD_CONTEXT_ELEMENT und das OFFSET-Attribut aus dem Ereignisobjekt.

Page 17: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

556

3. Manipulation der Context-Elemente der dataSource der TabelleDas Interface IF_WD_CONTEXT_NODE bietet die Methoden move_* an,um Elemente auf einen Context-Knoten zu verschieben. Damitkönnen Sie die zu verschiebenden Elemente an die Einfügeposi-tion im Context und somit in der Table verschieben.

5.5.2 Hierarchische Tabellen

Modi In hierarchischen Tabellen, d. h. in Tabellen, die eine Master-SpalteTreeByKeyTableColumn oder TreeByNestingTableColumn besitzen(siehe Abschnitt 9.3, »Table«), gibt es zwei unterschiedliche Drag-&-Drop-Modi:

� Einfacher ModusDieser Modus ist dafür gedacht, einen Drop zwischen Tabellenzei-len ausführen zu können. Falls Sie diesen Modus verwendenmöchten, reicht es, für die Tabelle eine DragSourceInfo anzulegen(siehe Abschnitt 5.1.1). Beachten Sie, dass Sie die Eigenschaft nameinitial belassen müssen.

� Komplexer ModusFalls Sie der Eigenschaft name der DropTargetInfo einen Wertgeben, ist nur der Drop zwischen den Zeilen der höchsten Hierar-chiestufe (direkt unter der Wurzel) möglich. Für das Fallenlassenzwischen den Zeilen und auf eine Zeile niedrigerer Hierarchiestu-fen müssen Sie eine oder mehrere dropOnRowTargetInfo anlegenund diese über die Eigenschaft dropOnRowName des UI-ElementsTable der Tabelle bzw. den Zeilen der Tabelle zuordnen (sieheAbschnitt 5.5.1, »Nicht hierarchische Tabellen«).

Beispiel In Abbildung 5.15 sehen Sie Beispiele für den Drag unter Einbezie-hung einer hierarchischen Tabelle:

� Im oberen Bild wird aus einer ItemListBox ein Eintrag auf denBaum gezogen 1. Sie sehen die Markierung für die Einfügeposi-tion zwischen den Zeilen.

� Im unteren Bereich des Bildes dient der Baum selbst als Drag-Quelle 2. Sie sehen aufgrund der markierten Zeile und der Mar-kierung für die Einfügeposition, dass zwischen die Zeilen gezogenwird. Bei der Implementierung der Behandlung des onDrop-Ereig-nisses können Sie sich an Abschnitt 5.1.4 orientieren.

CTable 5.6

557

Abbildung 5.15 Hierarchische Tabelle DragSource

5.6 CTable

Drop-OptionenIn der CTable, die wir ausführlich in Abschnitt 9.8 besprechen, gibtes verschiedenste Möglichkeiten, Drag & Drop zu verwenden. Ver-schiedene Elemente können in und auf Zeilen und Spalten sowie Zei-len- und Spaltenzwischenräumen bewegt werden. In Abbildung 5.16haben wir die Drop-Optionen hervorgehoben.

1 Ein Drop kann auf Zeilen ausgeführt werden (Eigenschaft CTable.rowDropInfo, Kardinalitätsobergrenze n).

2 Ein Drop kann zwischen Zeilen ausgeführt werden (EigenschaftCTable.tableBodyDropInfo, Kardinalitätsobergrenze 1).

3 Ein Drop kann zwischen Zeilen ausgeführt werden und übersteu-ert zeilenweise die Eigenschaft CTable.tableBodyDropInfo (Eigen-schaft CTable.rowEdgeDropInfo, Kardinalitätsobergrenze n).

4 Ein Drop kann auf Spalten ausgeführt werden (Eigenschaft CTa-bleColumn.columnDropInfo, Kardinalitätsobergrenze 1).

5 Ein Drop kann zwischen Spalten ausgeführt werden (EigenschaftCTableColumn.columnHeaderDropInfo, Kardinalitätsobergrenze 1).

Page 18: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

558

6 Ein Drop kann zwischen Spalten ausgeführt werden und übersteu-ert spaltenweise die Eigenschaft CTableColumn.columnHeaderDrop-Info (Eigenschaft CTableColumn.columnEdgeDropInfo, Kardinali-tätsobergrenze 1).

7 Ein Drop kann auf Zellen ausgeführt werden (UI-Element Drop-TargetCellEditor).

Abbildung 5.16 Drop-Positionen in der CTable

Kardinalitäts-

obergrenze

Wir haben hinter den Eigenschaftsnamen auch die Obergrenze derKardinalität für die aggregierbaren DropTargetInfos angegeben. Eskann z. B. nur maximal eine DropTargetInfo für tableBodyDropInfoangegeben werden, jedoch eine beliebige Anzahl für rowDropInfo.

DropTargetInfo

DropTargetInfo

anlegen

Bei der Anlage und der Verwendung der DropTargetInfo gehen Sieim Falle der CTable und CTableColumn folgendermaßen vor:

1. Klicken Sie mit der rechten Maustaste auf die CTable, und wählenSie im Kontextmenü den Eintrag INSERT DROP_TARGET_INFO,

um eine DropTargetInfo anzulegen.

2. Vergeben Sie im View-Designer oder per Programmierung eineeindeutige ID für die DropTargetInfo.

CTable 5.6

559

� Im View-Designer: Ordnen Sie der CTable bzw. CTableColumneine Eigenschaft für den Drop, z. B. rowDropInfo oder co-lumnDropInfo, sowie die zuvor vergebene ID der DropTarge-tInfo zu.

� Per Programmierung: Binden Sie die Eigenschaft der CTablebzw. CTableColumn (z. B. rowEdgeDropInfo oder columnEdge-DropInfo) an ein Attribut des Contexts, das die ID der DropTar-getInfo beinhaltet.

DragSourceInfo

Für die CTable können Sie eine Reihe von Quellen definieren. DieEigenschaften rowDragInfo bzw. columnDragInfo beinhalten die IDsder DragSourceInfo (siehe Abbildung 5.17).

rowDragInfo

Für Zeilen als Ausgangspunkt des Drags wird die Eigenschaft row-DragInfo in der CTable verwendet (1 in Abbildung 5.17). Alle Zeilenhaben dieselbe DragSourceInfo 2.

Abbildung 5.17 Verwendung der Eigenschaft rowDragInfo der CTable

columnDragInfo

Für Spalten als Ausgangspunkt des Drags wird die EigenschaftcolumnDragInfo in der CTableColumn verwendet (1 in Abbildung5.18). Jede Spalte hat ihre eigene DragSourceInfo 2.

Page 19: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

560

Abbildung 5.18 Verwendung der Eigenschaft columnDragInfo der CTableColumn

DropTarget

In Abbildung 5.16 haben Sie bereits die unterschiedlichen Möglich-keiten gesehen, um den Drop im Zusammenhang mit einer CTable zuimplementieren. Diese basieren immer darauf, dass Sie eine DropTar-getInfo zur CTable anlegen und diese dann über ihre DropTarget-Info-ID der passenden CTable- bzw. CTableColumn-Eigenschaft zu-ordnen. Die möglichen Eigenschaften für CTable bzw. CTableColumnsind in Tabelle 5.2 aufgeführt.

Drop-Zone Eigenschaft von CTable

Eigenschaft von CTableColumn

Erläuterung

zwischen den Spalten

columnHeader-DropInfo

Beschreibt, welche Elemente zwi-schen allen Spal-ten gedroppt wer-den können.

auf einer Spalte column-DropInfo

Beschreibt, welche Elemente auf eine Spalte gedroppt werden können.

Tabelle 5.2 DropTarget-Eigenschaften der CTable bzw. CTableColumn

CTable 5.6

561

rowDropInfo

In Abbildung 5.19 sehen Sie ein Beispiel für die Verwendung derDropTargetInfo 1 für die Eigenschaft rowDropInfo der CTable 2.Durch diese Einstellungen wird ein Drop auf Tabellenzeilen, unterder Voraussetzung ermöglicht, dass für das Ereignis drop der CTableeine Aktion angelegt wurde.

vor oder nach einer Spalte, aber mit Bezug zur Spalte

columnEdge-DropInfo

Beschreibt, welche Elemente vor oder nach einer Spalte, aber innerhalb die-ser Spalte gedroppt werden können.

zwischen Zeilen tableBody-DropInfo

Beschreibt, welche Elemente zwi-schen den Zeilen gedroppt werden können.

auf Zeilen rowDropInfo Beschreibt, welche Elemente auf eine Zeile gedroppt werden können.

vor oder nach einer Zeile, aber mit Bezug zu einer Tabellen-zeile

rowEdge-DropInfo

Beschreibt, welche Elemente vor oder nach einer Zeile, aber innerhalb die-ser Zeile gedroppt werden können.

Tabellenzellen DropTarget-CellEditor

Um ein Element mit DragSource-Info in eine Ta-bellenzelle zu droppen, verwen-den Sie einen DropTargetCell-Editor als Zellen-editor.

Drop-Zone Eigenschaft von CTable

Eigenschaft von CTableColumn

Erläuterung

Tabelle 5.2 DropTarget-Eigenschaften der CTable bzw. CTableColumn (Forts.)

Page 20: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

562

Abbildung 5.19 DropTarget für die Eigenschaft rowDropInfo der CTable

Im Ergebnis ist es möglich, eine Zeile der CTable auf eine andereTabellenzeile zu ziehen. In Abbildung 5.20 sehen Sie den kombinier-ten Drag-&-Drop-Vorgang.

Abbildung 5.20 Drag & Drop auf CTable-Zeilen

CTable 5.6

563

tableBodyDropInfo

In Abbildung 5.21 sehen Sie ein Beispiel für die Verwendung derEigenschaft tableBodyDropInfo in einer CTable 1. Durch die Zuord-nung der ID einer DropTargetInfo 2 zur Eigenschaft tableBody-DropInfo kann der Benutzer den Drop an den Anfang oder das Endeder Tabelle oder zwischen den Zeilen ausführen.

Abbildung 5.21 DropTarget für die Eigenschaft tableBodyDropInfo der CTable

rowEdgeDropInfo

Einzelne Zeilen können die Einstellung der Eigenschaft tableBody-DropInfo übersteuern, wenn Sie der CTable-Eigenschaft rowEdgeDrop-Info eine DropTargetInfo zuordnen (siehe 1 in Abbildung 5.22).Dies ermöglicht die individuelle Behandlung eines Drops auf einebestimmte Tabellenzeile. Dazu müssen Sie ein Data-Binding der Eigen-schaft rowEdgeDropInfo an ein Attribut vom Typ string vornehmen,in das Sie zur Laufzeit den Namen einer DropTargetInfo hinterlegen.Die DropTargetInfo kann entweder bereits während der Entwick-lungszeit oder dynamisch während der Laufzeit erzeugt worden sein.

Page 21: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

564

Abbildung 5.22 DropTarget für die Eigenschaft rowEdgeDropInfo der CTable

In unserem Beispiel in Abbildung 5.22 haben wir die DragSource-Info mit der ID DSI_EDGE 2 einem Image mit dem Tag EDGE zugeord-net. Anschließend haben wir im View-Designer die DropTargetInfoDTI_EDGE für eine Zeile angelegt 3. Im Gegensatz zu den bisherigenBeispielen soll diese Information zeilenbezogen zugeordnet werdenund dadurch die Eigenschaft tableBodyDropInfo für diese Zeile über-steuern. Haben wir dies für Zeile 2 in der CTable definiert, wird imContext im Attribut DTI_EDGE die ID der DropTargetInfo zu dieserZeile hinterlegt und mittels Data-Binding an die CTable-EigenschaftrowEdgeDropInfo gebunden 1. Damit ist das individuelle Behandelnvon Drop-Ereignissen auf eine bestimmte Zeile realisiert, wie inunserem Beispiel das Ziehen eines Bildes, das außerhalb einerTabelle liegt, auf eine bestimmte Tabellenzeile, in der die Tags (inunserem Beispiel EDGE) übereinstimmen.

CTable 5.6

565

Vorrangregeln

Die folgenden Regeln für die Überschreibung von Drag-&-Drop-Eigen-schaften sollten Sie beachten:

� Wird für eine Zeile eine spezifische rowEdgeDropInfo definiert, wirddie Eigenschaft tableBodyDropInfo der betreffenden Zeile über-schrieben.

� Wird für eine Spalte eine spezifische columnEdgeDropInfo definiert,wird die Eigenschaft columnHeaderDropInfo der betreffenden Spalteüberschrieben.

Einschränkungen

Es gelten die folgenden einschränkenden Bedingungen für die Verwen-dung von IDs in den UI-Elementen CTableColumn und CTable:

� CTableColumn:

� Der Wert für die Eigenschaft columnDropInfo darf nicht dem Wertfür die Eigenschaft columnEdgeDropInfo entsprechen.

� Der Wert für die Attribute rowDropInfo und rowEdgeDropInfoder Eigenschaft columnDropInfo muss ungleich sein.

� Der Wert für die Attribute für rowDropInfo und rowEdgeDropInfoder Eigenschaft columnEdgeDropInfo muss ungleich sein.

� CTable:

� Der Wert der Eigenschaft columnHeaderDropInfo darf nicht demWert der Eigenschaft tableBodyDropInfo entsprechen.

Ereignis »onDrop«

Um den Drop in einer CTable zu behandeln, stehen unterschiedlicheDrop-Ereignisse für Zeilen, Spalten und Zellen zur Verfügung.

CTable.onDrop

Das Ereignis onDrop von CTable wird ausgelöst, wenn ein Elementauf eine Tabellenzeile oder zwischen den Tabellenzeilen gedropptwird. Das Ereignisobjekt WDEVENT, das an die Behandlermethode desEreignisses übergeben wird, liefert neben den bereits in Abschnitt5.2, »Tree«, besprochenen Parametern ID, MIME_TYPE und TAGS diefolgenden Attribute für die Implementierung:

� CONTEXT_ELEMENT: Der Parameter CONTEXT_ELEMENT ist immerinitial.

Page 22: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

566

� DATA: Der Parameter DATA liefert die Daten aus der Drag Source.Falls DATA an ein Context-Attribut der dataSource der Tabellegebunden ist, müssen Sie unter Umständen zuvor das EreignisonSelect der CTable verwenden, um die Lead-Selection auf denselektierten Zeilenindex zu setzen.

� OFFSET: Der Parameter OFFSET hält einen Wert, der relativ zumROW_ELEMENT zu interpretieren ist. Der Offset kann die Werte –1(vor ein Element), 1 (hinter alle Elemente) und 0 (auf ein Element)annehmen.

� DIRECTION: Der Parameter DIRECTION erhält den Wert VERTICAL,falls Zeilen gedroppt werden, oder HORIZONTAL, falls Spaltengedroppt werden.

� ROW_ELEMENT: Der Parameter ROW_ELEMENT hält das Context-Ele-ment aus der dataSource der CTable, auf das der Drop durchge-führt wurde.

CTableColumn.onDrop

Das Ereignis onDrop von CTableColumn wird ausgelöst, wenn ein Ele-ment auf eine Tabellenspalte oder zwischen die Tabellenspaltengedroppt wird.

DropTargetCellEditor.onDrop

Das Ereignis onDrop des UI-Elements DropTargetCellEditor wirdausgelöst, wenn ein Element auf eine Zelle gedroppt wird.

5.7 Accordion

Items In einem Accordion werden anklickbare AccordionItem- und Multi-pleAccordionItem-Elemente vertikal aufgelistet (siehe Abschnitt3.2.1, »Accordion«). Diese Items kann der Benutzer im Accordionverschieben, d. h. ein Item vor oder nach einem anderen Item plat-zieren. Darüber hinaus ist es möglich, dass andere UI-Elemente ineiner Drag-&-Drop-Operation auf ein Item gezogen werden.

DragSource

Beispiel Falls Sie ein Item eines Accordion als DragSource verwenden möch-ten, müssen Sie ein Unterelement zum Accordion vom Typ Drag-

Accordion 5.7

567

SourceInfo im View Designer definieren (siehe Abschnitt 5.1.1). InAbbildung 5.23 sehen Sie eine eingefügte DragSourceInfo für einAccordion 1. Zudem erkennen Sie unter Punkt 2 und 3 die Eigen-schaft dragData des AccordionItem und des UI-Elements Multiple-AccordionItem, in der Sie Daten für den Drag-Vorgang hinterlegenkönnen.

Abbildung 5.23 Accordion – DragSourceInfo

BeschreibungIm unteren Bereich der Abbildung sehen Sie die optische Darstellungdes Drag-Vorgangs. Wir unterscheiden zwischen einem Drag einzel-ner Items 4 und einem Drag auf ein Item 5. Voraussetzung für denDrag auf ein Item ist die Definition einer DropTargetInfo.

Page 23: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

568

DropTargetinfo

Wird das Accordion als Drop Target verwendet, stehen die folgen-den Einfügepositionen zur Verfügung:

� zwischen existierenden Items

� an erster und letzter Position der Items

� auf ein Item

Beispiel In Abbildung 5.24 finden Sie zwei Drop-Beispiele. Für den Drop zwi-schen den Items müssen Sie zunächst die DropTargetInfo zumAccordion definieren 1. Andererseits benötigen Sie die DropTarget-Info-Definition für jene Items, auf denen Sie einen Drop ausführenmöchten, in unserem Beispiel das AccordionItem und das Multiple-AccordionItem.

Abbildung 5.24 Accordion, MultipleAccordionItem, AccordionItem DropTargetInfo

Beschreibung Im unteren Bereich der Abbildung sehen Sie die Visualisierung desFallenlassens auf eine Einfügeposition durch den Benutzer 4. Dieser

PanelStack 5.8

569

hat sich im linken Beispiel für das Einfügen zwischen den Items ent-schieden. Im rechten Beispiel wird ein Drop auf ein Item ausgeführtund bewirkt eine Reaktion, die im Ereignis onDrop des Accordionimplementiert ist.

Mit den Attribuierungen der UI-Elemente ist nur die halbe Streckezum Ziel genommen. In der Aktionsbehandler-Methode des onDrop-Ereignisses müssen Sie die Elemente entsprechend der Aktion desBenutzers programmatisch verschieben, verändern und anpassen.Dazu benötigen Sie die Parameter der Aktionsbehandler-Methode,die durch das Ereignis onDrop definiert sind.

Ereignis »onDrop«

ParameterDas Ereignisobjekt WDEVENT, das an die Behandlermethode des Ereig-nisses übergeben wird, liefert neben den bereits in Abschnitt 5.2,»Tree«, besprochenen Parametern ID, MIME_TYPE und TAGS die fol-genden Informationen für die Implementierung:

� CONTEXT_ELEMENT: Der Parameter CONTEXT_ELEMENT ist immerinitial.

� ITEM: Der Parameter ITEM liefert die Bezeichnung des betroffenenItems aus dem Accordion.

� ITEM_PATH: Der Parameter ITEM_PATH hält den Pfad zum Elementim Context, falls das betroffene Item ein MultipleAccordionItemist. Ist das Element ein AccordionItem, ist ITEM_PATH leer.

� OFFSET: Der Parameter OFFSET hält die Position relativ zum ITEM.Falls OFFSET den Wert 1 hat, wurde nach dem (unterhalb des)Item(s) gedroppt, und falls er den Wert -1 hat, wurde vor dem(oberhalb des) Item(s) gedroppt. OFFSET nimmt den Wert 0 an,wenn ein Drop auf ein Item durchgeführt wird.

5.8 PanelStack

Ein PanelStack umfasst mehrere Panel-UI-Elemente, die immersichtbar sind, geöffnet und kollabiert werden können. Die inaktivenPanels werden entweder als Tabs dargestellt oder als Eintrag ineinem Menü. Im PanelStack können mithilfe von Drag & Drop einoder mehrere Panels verschoben werden.

Page 24: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

570

Voraussetzung für Drag & Drop

Drag & Drop wird für den gesetzten Anwendungsparameter WDUIGUIDE-LIND=GL20 unterstützt. Weitere Informationen zum Setzen der Anwen-dungsparameter finden Sie in Anhang A, »Anwendungsparameter undURL-Parameter«.

DragSource

Ein Panel im PanelStack kann als Drag Source verwendet werden. InAbbildung 5.25 sehen Sie die DragSourceInfo des PanelStack 1,über die Sie definieren, dass der Benutzer den Drag für ein Panel aus-führen kann.

Abbildung 5.25 PanelStack – DragSourceInfo und DropTargetInfo

DropTarget

In der DropTargetInfo des PanelStack 2 werden die bekanntenEigenschaften gepflegt. Dabei werden unterschiedliche Einfügeposi-tionen für den Drop im PanelStack zur Verfügung gestellt:

� als erstes Panel (im unteren Teil von Abbildung 5.25 dargestellt)

� als letztes Panel

Operationsmodi 5.9

571

� zwischen den Panels

Ereignis »onDrop«

Das Ereignis onDrop des UI-Elements PanelStack wird ausgelöst,wenn ein Panel auf dem PanelStack losgelassen wird. Das Ereignis-objekt WDEVENT, das an die Behandlermethode des Ereignisses über-geben wird, liefert neben den bereits in Abschnitt 5.2, »Tree«,besprochenen Parametern ID, CONTEXT-ELEMENT und TAGS die folgen-den Informationen für die Implementierung:

� DATA: Der Parameter DATA beinhaltet die Daten aus der DragSource, d. h. die Eigenschaft data der DragSourceInfo.

� MIME_TYPE: Der Parameter MIME_TYPE beinhaltet den MIME-Typaus der Drag Source, wird derzeit aber nicht verwendet.

� PANEL_ID: Der Parameter PANEL_ID beinhaltet die ID des Panels,auf das, vor das oder hinter das gedroppt wurde.

� OFFSET: Der Parameter OFFSET liefert die Position des Drops relativzur PANEL_ID. Der Wert –1 bedeutet, dass der Drop über (vor) demPanel erfolgt, und der Wert +1 bedeutet, dass er unter (hinter)dem Panel erfolgt.

5.9 Operationsmodi

Beim Drag & Drop kristallisieren sich bestimmte Verwendungsmus-ter des Benutzers heraus. Wir beschreiben diese im Folgenden.

5.9.1 Browse & Collect

Beim Browse & Collect wählt ein Benutzer einen Eintrag bzw. meh-rere Einträge aus und zieht diese an eine bestimmte Position aufeinem anderen UI-Element. Dadurch werden Daten entweder ver-schoben oder kopiert. Für alle Zeilen wird die gleiche DragSource-Info verwendet. Überall, wo ein DropTargetInfo definiert ist, kön-nen Einträge hineinkommen. Browse & Collect steht für diefolgenden UI-Elemente zur Verfügung:

� ItemListBox

� Table

Page 25: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Drag & Drop für UI-Elemente5

572

� CTable

� Tree

5.9.2 Generisches Drag & Drop

Beim generischen Drag & Drop zieht der Benutzer ein UI-Elementfort und lässt es auf ein DropTarget fallen. Dazu können Image, Grid-Layout und MatrixLayout verwendet werden. Wie Sie in Abschnitt5.1.3 erfahren haben, wird in diesem Fall ein DropTarget als verscha-lendes UI-Element verwendet.

5.9.3 Laufzeit-Authoring

Beim Laufzeit-Authoring zieht der Benutzer ein UI-Element an eineandere Stelle in einem GridLayout oder MatrixLayout (sieheAbschnitt 5.3). Dabei klickt er den Griff des UI-Elements an undzieht diesen an die gewünschte Stelle. Damit ein UI-Element als Griffdefiniert werden kann, muss es die Eigenschaft isDragHandle besit-zen. Die folgenden UI-Elemente bieten diese Eigenschaft an:

� Image

� Caption

� SectionHeader

� PanelStack

Zu einer Drag-&-Drop-Operation gehört nicht nur die Quelle, son-dern auch ein Ziel, das das Ereignis onDrop für die Behandlung desDrops anbietet. Für die folgenden UI-Elemente steht das EventonDrop zur Verfügung:

� Tree (über AbstractTreeNodeType)

� Accordion

� DropTarget

� GridLayout

� MatrixLayout

� ItemListBox

� Table

� CTable

� PanelStack

Page 26: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

7

Inhalt

Einleitung ................................................................................ 19

TEIL I Grundlagen

1 Schnelleinstieg in Web Dynpro ABAP .................. 27

1.1 Was ist Web Dynpro? ........................................... 271.2 Model-View-Controller ......................................... 29

1.2.1 Model-View-Controller in der Theorie ..... 301.2.2 Varianten ................................................ 311.2.3 Model-View-Controller und

Web Dynpro ........................................... 321.3 Funktionalität und Beispielanwendung ................. 33

1.3.1 Web-Dynpro-Technologie ....................... 331.3.2 UI-Elemente ............................................ 341.3.3 Fortgeschrittene Funktionen .................... 381.3.4 Wiederverwendung von Web-Dynpro-

Elementen ............................................... 40

2 Web-Dynpro-Architektur ...................................... 43

2.1 Entwicklungsumgebung ........................................ 442.1.1 Web Dynpro Explorer .............................. 442.1.2 Web-Dynpro-Code-Wizard ...................... 512.1.3 Template Gallery ..................................... 54

2.2 Components und Anwendungen ........................... 562.2.1 Components ............................................ 562.2.2 Anwendungen ......................................... 572.2.3 Zusammenhang zwischen Components

und Anwendungen .................................. 582.2.4 Anwendung – dynamische Änderung

des Browser-Titels ................................... 582.2.5 Schritt für Schritt: Anlegen von

Components und Anwendungen ............. 592.3 View ..................................................................... 64

2.3.1 Views ...................................................... 64

Page 27: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Inhalt

8

2.3.2 Windows und Plugs ................................. 792.3.3 Nachrichten – Message Manager

und Message Area .................................... 932.4 Controller .............................................................. 104

2.4.1 Controller-Typen ...................................... 1042.4.2 Attribute .................................................. 1052.4.3 Methoden ................................................ 1062.4.4 Phasenmodell .......................................... 1092.4.5 Verwendung und Sichtbarkeit .................. 1122.4.6 Aktionen und Ereignisse ........................... 1162.4.7 Controller-Interface-Typen ....................... 1202.4.8 Assistance-Klasse ..................................... 121

2.5 Context ................................................................. 1222.5.1 Aufbau des Contexts ................................ 1232.5.2 Context-Editor ......................................... 1252.5.3 Eigenschaften ........................................... 1302.5.4 Lead-Selection ......................................... 1342.5.5 Rekursive Context-Knoten ........................ 1352.5.6 Datenbindung .......................................... 1362.5.7 Mapping .................................................. 1402.5.8 Supply-Funktionen ................................... 1432.5.9 Context-Attribut-Eigenschaften ................ 1452.5.10 Context-Change-Log ................................ 149

2.6 Context-Programmierung ...................................... 1522.6.1 Navigation durch den Context .................. 1532.6.2 Setzen der Lead-Selection ........................ 1552.6.3 Erzeugen und Löschen von

Context-Elementen .................................. 1562.6.4 Auslesen und Änderung existierender

Context-Knoten/-Elemente ...................... 1592.6.5 Range-Context-Knoten ............................ 161

2.7 Multi-Component-Architekturen ........................... 1632.7.1 Component-Verwendungen ..................... 1642.7.2 Verwendung von Interface-Views ............. 1712.7.3 Verwendung des Interface-Controllers ..... 1722.7.4 Componentübergreifendes Mapping ........ 1742.7.5 Component-Interfaces .............................. 181

Inhalt

9

TEIL II Referenz

3 Container und Layouts .......................................... 187

3.1 Container .............................................................. 1873.1.1 Hierarchische Struktur von UI-Elementen

in Views .................................................. 1883.1.2 Eigenschaften für alle Unterklassen von

CL_WD_SCROLL_CONTAINER ................ 1903.1.3 ScrollContainer ........................................ 1953.1.4 TransparentContainer .............................. 1953.1.5 LayoutContainer ...................................... 2003.1.6 Group ...................................................... 2003.1.7 Tray ......................................................... 2043.1.8 Panel ....................................................... 2083.1.9 Splitter .................................................... 214

3.2 Quasi-Container ................................................... 2203.2.1 Accordion ................................................ 2213.2.2 RowRepeater ........................................... 2263.2.3 ContextualPanel ...................................... 2293.2.4 HorizontalContextualPanel ...................... 2323.2.5 NavigationList ......................................... 2363.2.6 PageHeader ............................................. 2453.2.7 MultiPane ............................................... 2503.2.8 TabStrip ................................................... 2523.2.9 ViewContainerUIElement ........................ 258

3.3 Layouts ................................................................. 2583.3.1 Grundlagen ............................................. 2593.3.2 FlowLayout ............................................. 2613.3.3 RowLayout .............................................. 2653.3.4 MatrixLayout ........................................... 2673.3.5 GridLayout .............................................. 2703.3.6 PageLayout .............................................. 2733.3.7 FormLayout ............................................. 2753.3.8 FormLayoutAdvanced .............................. 2783.3.9 FormDesignLayout .................................. 2823.3.10 RasterLayout ........................................... 290

Page 28: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Inhalt

10

4 UI-Elemente und ihre Eigenschaften .................... 293

4.1 Eigenschaften für alle UI-Elemente ........................ 2944.2 Kategorie »text« .................................................... 297

4.2.1 Allgemeines ............................................. 2974.2.2 InputField ................................................ 2984.2.3 Label ........................................................ 3114.2.4 Caption .................................................... 3154.2.5 Explanation .............................................. 3174.2.6 TextView .................................................. 3224.2.7 TextEdit ................................................... 3264.2.8 FormattedTextView .................................. 3304.2.9 FormattedTextEdit ................................... 3364.2.10 SectionHeader .......................................... 3374.2.11 RatingIndicator ........................................ 340

4.3 Kategorie »action« ................................................. 3424.3.1 Allgemein ................................................ 3424.3.2 Button ..................................................... 3434.3.3 ButtonChoice ........................................... 3454.3.4 IconButton ............................................... 3484.3.5 LinkChoice ............................................... 3504.3.6 LinkToAction ............................................ 3514.3.7 LinkToURL ............................................... 3544.3.8 TimedTrigger ............................................ 356

4.4 Kategorie »selection« ............................................. 3604.4.1 Allgemein ................................................ 3604.4.2 ToggleButton ........................................... 3614.4.3 ToggleLink ............................................... 3634.4.4 TagCloud ................................................. 364

4.5 Kategorie »complex« ............................................. 3674.5.1 Allgemein ................................................ 3674.5.2 BreadCrumb ............................................. 3684.5.3 DateNavigator .......................................... 3714.5.4 Legend ..................................................... 3774.5.5 PhaseIndicator ......................................... 3814.5.6 RoadMap ................................................. 3854.5.7 Shuttle ..................................................... 3914.5.8 Tree ......................................................... 395

4.6 Kategorie »layout« ................................................. 4044.6.1 Allgemein ................................................ 405

Inhalt

11

4.6.2 HorizontalGutter ..................................... 4054.6.3 InvisibleElement ...................................... 4074.6.4 MessageArea ........................................... 408

4.7 Kategorie »graphic« .............................................. 4114.7.1 Allgemein ................................................ 4114.7.2 BusinessGraphics ..................................... 4124.7.3 Chart ....................................................... 4344.7.4 Gantt ....................................................... 4394.7.5 GeoMap .................................................. 4484.7.6 ValueComparison .................................... 4574.7.7 Image ...................................................... 4614.7.8 Network .................................................. 4634.7.9 ProgressIndicator ..................................... 4644.7.10 ThresholdSlider ....................................... 466

4.8 Kategorie »integration« ......................................... 4714.8.1 Allgemein ................................................ 4714.8.2 AcfExecute .............................................. 4724.8.3 AcfUpDownload ...................................... 4774.8.4 FileDownload .......................................... 4804.8.5 FileUpload ............................................... 4874.8.6 IFrame ..................................................... 4884.8.7 InteractiveForm ....................................... 4914.8.8 OfficeControl ........................................... 498

4.9 Aggregierte Elemente ........................................... 5074.9.1 Allgemein ................................................ 5074.9.2 Menu ...................................................... 5084.9.3 MenuBar ................................................. 5134.9.4 ToolBar ................................................... 514

4.10 PanelStack ............................................................ 522

5 Drag & Drop für UI-Elemente ............................... 527

5.1 Allgemeines .......................................................... 5315.1.1 DragSourceInfo ....................................... 5315.1.2 DropTargetInfo ........................................ 5335.1.3 DropTarget .............................................. 5345.1.4 Ereignis »onDrop« ................................... 536

5.2 Tree ...................................................................... 5395.3 GridLayout/MatrixLayout ...................................... 5425.4 ItemListBox .......................................................... 548

Page 29: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Inhalt

12

5.5 Table ..................................................................... 5515.5.1 Nicht hierarchische Tabellen .................... 5515.5.2 Hierarchische Tabellen ............................. 556

5.6 CTable ................................................................... 5575.7 Accordion ............................................................. 5665.8 PanelStack ............................................................. 5695.9 Operationsmodi .................................................... 571

5.9.1 Browse & Collect ...................................... 5715.9.2 Generisches Drag & Drop ......................... 5725.9.3 Laufzeit-Authoring ................................... 572

6 Dynamische Programmierung ............................... 573

6.1 Arten dynamischer Programmierung ...................... 5746.2 Context ................................................................. 575

6.2.1 Context-Knoten-Metainformation ............ 5766.2.2 Context-Knoten anlegen .......................... 5776.2.3 Context-Attribute anlegen ........................ 5836.2.4 Context-Mapping ..................................... 5926.2.5 Weitere Methoden .................................. 595

6.3 View ..................................................................... 5986.3.1 ABAP-Klassenhierarchie für

UI-Elemente ............................................. 5996.3.2 Referenz eines UI-Elements ermitteln ....... 6016.3.3 Eigenschaft und Layout eines

UI-Elements ändern ................................. 6036.3.4 UI-Elemente anlegen ................................ 604

6.4 Aktion ................................................................... 6136.4.1 Implementierung der Methode

»wddomodifyview( )« ............................... 6156.4.2 Implementierung Aktionsbehandler-

Methode .................................................. 6186.5 Component-Verwendung ...................................... 619

6.5.1 Verwendung von Components ................. 6196.5.2 Klonen von Verwendungserklärungen ...... 6236.5.3 Dynamische View-Einbettung .................. 6326.5.4 Dynamische Ereignisregistrierung ............. 636

Inhalt

13

7 Eingabe- und semantische Hilfen ......................... 641

7.1 Implementierung von Auswahlmöglichkeiten ........ 6427.1.1 Dropdown-Menüs ................................... 6427.1.2 Radiobutton ............................................ 6517.1.3 Checkbox ................................................ 6557.1.4 ItemListBox ............................................. 6597.1.5 TriStateCheckBox .................................... 661

7.2 Wertehilfen .......................................................... 6627.2.1 Wertehilfe-Modus »Deaktiviert« .............. 6647.2.2 Wertehilfe-Modus »Automatisch« ........... 6647.2.3 Wertehilfe-Modus

»Dictionary-Suchhilfe« ............................. 6737.2.4 Wertehilfe-Modus

»Object Value Selector« ........................... 6737.2.5 Wertehilfe-Modus »Frei Programmiert« ... 686

7.3 Select-Options ...................................................... 6977.3.1 Select-Options in ABAP-Programmen ...... 6977.3.2 Klassische Select-Options ........................ 6997.3.3 Select-Options 2.0 .................................. 712

7.4 Semantische Hilfen ............................................... 7227.4.1 Hilfetexte mit Quick-Infos ....................... 7227.4.2 Erläuterungstexte .................................... 7237.4.3 ABAP-Dictionary-Hilfe ............................. 7247.4.4 Erläuterungen .......................................... 7267.4.5 SAP-Knowledge-Warehouse-

Dokumente ............................................. 729

TEIL III Fortgeschrittene Techniken

8 Erweiterung, Konfiguration, Customizing und Personalisierung ............................................. 737

8.1 Erweiterungen mit dem SAP Enhancement Framework .............................. 7418.1.1 Anlegen einer Erweiterung ...................... 7428.1.2 Erweiterung von Web-Dynpro-

Objekten ................................................. 7438.2 Konfiguration im Überblick ................................... 7478.3 Berechtigungen ..................................................... 748

Page 30: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Inhalt

14

8.4 Component-Konfiguration ..................................... 7498.4.1 Bestandteile ............................................. 7498.4.2 Anlegen einer Component-

Konfiguration ........................................... 7508.4.3 Web-Dynpro-Built-In-Konfiguration ......... 7528.4.4 Component-defined-Konfiguration .......... 7538.4.5 Erstellung eigener Component-

Konfigurationseditoren ............................ 7588.4.6 Component-Konfigurations-

eigenschaften ........................................... 7638.5 Anwendungskonfiguration ..................................... 764

8.5.1 Anlegen und Bearbeiten von Anwendungskonfigurationen .................... 765

8.5.2 Anwendungsparameter ............................ 7678.5.3 Auswahl der zu verwendenden

Component-Konfiguration ....................... 7688.6 Customizing .......................................................... 769

8.6.1 Anlegen des Customizings ........................ 7718.6.2 Transport des Customizings ...................... 7728.6.3 Dekorative UI-Elemente ........................... 773

8.7 Personalisierung .................................................... 7748.7.1 Verwendung der Web-Dynpro-Built-In-

Personalisierung ....................................... 7748.7.2 Explizites Speichern eines Configuration-

Controllers ............................................... 7758.7.3 Abschalten der Personalisierung ............... 777

9 Integration komplexer UI-Elemente und Components ................................................... 779

9.1 FlashIsland/SilverlightIsland (*Island) ..................... 7809.1.1 Adobe Flash ............................................. 7809.1.2 Microsoft Silverlight ................................. 7829.1.3 Vorgehen ................................................. 7839.1.4 Eigenschaften von *Island ......................... 7889.1.5 Aggregierte Elemente ............................... 7889.1.6 Barrierefreiheit ......................................... 793

9.2 HtmlContainer und HtmlIsland .............................. 7959.2.1 HtmlContainer ......................................... 7969.2.2 HtmlIsland ............................................... 805

Inhalt

15

9.3 Table .................................................................... 8159.3.1 Einfache Tabelle anlegen ......................... 8179.3.2 Eigenschaften .......................................... 8219.3.3 Ereignisse ................................................ 8359.3.4 Aggregierte Elemente .............................. 8479.3.5 Weitere Funktionen ................................. 850

9.4 TableColumn ........................................................ 8539.4.1 Eigenschaften .......................................... 8539.4.2 Barrierefreiheit ........................................ 8599.4.3 Aggregierte Elemente .............................. 8599.4.4 Ereignis ................................................... 864

9.5 TablePopin ........................................................... 8649.5.1 Eigenschaften .......................................... 8659.5.2 Ereignis ................................................... 8669.5.3 Aggregierte Elemente .............................. 8669.5.4 Verwendung ............................................ 867

9.6 TableColumnGroup ............................................... 8709.7 TableRowGrouping, TreeByKeyTableColumn

und TreeByNestingTableColumn ........................... 8729.7.1 TableRowGrouping .................................. 8729.7.2 TreeByKeyTableColumn und

TreeByNestingTableColumn ..................... 8749.8 CTable .................................................................. 879

9.8.1 Eigenschaften .......................................... 8809.8.2 Ereignisse ................................................ 8849.8.3 Aggregierte Elemente .............................. 885

9.9 CTableColumn ...................................................... 8859.9.1 Ereignis ................................................... 8889.9.2 Aggregierte Elemente .............................. 888

9.10 CTableHeaderArea ................................................ 8889.10.1 Eigenschaften .......................................... 888

9.11 CTableHierarchicalCell .......................................... 8899.11.1 Eigenschaften .......................................... 8899.11.2 Ereignis ................................................... 8909.11.3 Aggregierte Elemente .............................. 890

9.12 CTableSymbolCell ................................................. 8909.13 SAP List Viewer .................................................... 891

9.13.1 Integration des SAP List Viewers in drei Schritten ....................................... 893

9.13.2 Methoden und Ereignisse der ALV-Component ..................................... 895

Page 31: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Inhalt

16

9.13.3 ALV Configuration Model ........................ 9029.13.4 Änderungen an den Tabellen-

einstellungen ........................................... 9099.13.5 Änderungen am Spaltenvorrat .................. 9119.13.6 Änderungen an der Toolbar ...................... 913

10 Weiterführende Konzepte .................................... 917

10.1 Pop-up-Fenster ..................................................... 91710.1.1 Fensterebenen ......................................... 91710.1.2 Pop-up-Fenster erzeugen ......................... 91810.1.3 Standard-Button-Aktionen ....................... 92110.1.4 Anlegen eines Pop-up-Fensters ................ 922

10.2 Kontextmenüs ....................................................... 92510.2.1 Standardkontextmenü .............................. 92710.2.2 Kontextmenü anlegen .............................. 92910.2.3 Zuweisung eines Kontextmenüs ............... 934

10.3 Fokus-Handling ..................................................... 93610.3.1 Cursor-Beeinflussung über Meldungen ..... 93610.3.2 Gezieltes Setzen des Cursors auf

ein UI-Element ......................................... 93710.3.3 Gezieltes Setzen des Cursors auf ein

Context-Element-Attribut ........................ 93810.3.4 Gezieltes Scrollen zu einem UI-Element ... 938

10.4 Nachrichten und Internationalisierung ................... 93910.4.1 Texte aus dem ABAP Dictionary ............... 94010.4.2 Texte aus dem Online Text Repository .... 94110.4.3 Texte aus der Assistenzklasse ................... 94410.4.4 Nachrichten ............................................. 949

10.5 Portalintegration ................................................... 96210.5.1 Voraussetzungen ...................................... 96310.5.2 Portal-Eventing ........................................ 96510.5.3 Navigation ............................................... 96910.5.4 WorkProtect-Modus ................................ 97210.5.5 Interface IF_WD_PORTAL_

INTEGRATION ......................................... 97310.6 Performance- und Speicheroptimierung ................. 974

10.6.1 Checklisten für die performante Web-Dynpro-Entwicklung ........................ 978

10.6.2 Performance-Tools ................................... 980

Inhalt

17

10.6.3 On-Demand-Component- und View-Instanziierung ................................. 983

10.6.4 Delta-Rendering ...................................... 98710.7 Debuggen von Web-Dynpro-Anwendungen ......... 992

10.7.1 Debugger einrichten ................................ 99310.7.2 Verwendung des Web-Dynpro-

Werkzeugs .............................................. 99410.8 Barrierefreiheit ...................................................... 996

10.8.1 Barrierefreie Entwicklung ......................... 99810.8.2 Barrierefreiheit aktivieren und testen ....... 99910.8.3 Unterstützung von Accessible Rich

Internet Applications (ARIA) .................... 100010.9 Mashups ............................................................... 1001

10.9.1 CHIP anlegen ........................................... 100410.9.2 Sidepanel anlegen ................................... 100610.9.3 Automatisches Wiring konfigurieren ........ 100910.9.4 IFrame-CHIP mit dem Page

Builder anlegen ....................................... 101110.9.5 IFrame-CHIP in Sidepanel einbinden ....... 1017

10.10 Testen mit eCATT ................................................. 101810.10.1 Aufzeichnung mithilfe von eCATT ............ 101910.10.2 eCATT-Aufzeichnungen bearbeiten .......... 102110.10.3 Testen von eCATT-Testskripten ............... 1022

10.11 Testen mit ABAP-Unit-Tests .................................. 102310.12 Trace-Tool zur Fehleranalyse ................................. 102810.13 Karten mithilfe von Visual Business visualisieren ... 103110.14 Themes ................................................................. 103410.15 Floorplan Manager ............................................... 1038

10.15.1 Grundprinzipien des Floorplan Managers ................................................ 1038

10.15.2 Erstellen von FPM-Anwendungen ............ 1041

Anhang ......................................................................... 1047

A Anwendungsparameter und URL-Parameter ............................................................... 1049

B Web-Dynpro-Programmierschnittstellen ......................... 1069

C Die Autoren .................................................................... 1113

Index ...................................................................................... 1115

Page 32: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1115

Index

*Impl.swf 783*Island 779, 780, 786, 787

Aggregat 788aggregiertes Element 788Barrierefreiheit 793Bibliothek 783Caching 795Container 780Datentransfer 785Debugging 786, 794Entkopplung 785Ereignis 780height 788kein Dialogfenster 794Konvertierungs-Exit 785Library-Download 784Personalisierung 794Registrierung 785Übersetzungsanschluss 794Vorgehen 783width 788

1 aus n 642, 65212-Stunden-Format 304

A

ABAP Debugger � DebuggerABAP Dictionary 662, 941

Bindung 941Text 939, 940Wertehilfe 662Wiederverwendung 662

ABAP Workbench 44, 59ABAP_INTFDESCR 592ABAP-Klassenhierarchie 189Ablauflogik 27Absatz 319Abstand 406, 469ACC 310Accessibility 310ACCESSIBILITY_MODE 999, 1051accessibilityDescription 190, 199,

373, 520Accessible Rich Internet Applications

1000

Accordion 221, 566aggregiertes Element 224Eigenschaft 222Ereignis 223Scroll-Balken 226visuelle Darstellung 222

AccordionItem 221, 224ACF 492, 496, 1028

Formular 497Protokoll 477

AcfExecute 472AcfUpDownload 477activateAccessKey 202, 299, 928activateInPlace 500Active Component Framework � ACFActiveX

Control 498Installation 500

add_attributes( ) 714, 717, 721add_child( ) 605, 613add_event_handler( ) 636add_new_child_node( ) 580additionalArchives 442adjustImageSize 462adjustRowsToText 328Administrationsservice 57Admin-Modus 771Adobe

Document Services 492Entwicklungsumgebung 781Flash 780Flash Player 781Flex 2.0 783Flex 3.0 783Flex 4.0 784Flex Library 781LiveCycle Designer 493

ADS 492Aggregation 188AIO_FOR_HELP_LINKS 730Ajax 34, 987Aktion 64, 70, 72, 119, 613

Anlegen 73, 77, 91, 119, 120Ausführen 111Lesen 1074Roundtrip 112Standard 120, 961

Page 33: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1116

Index

Typ 73, 120validierungsunabhängige 73, 103,

111, 120, 961Aktionstaste 193, 345Aktionstaste, Kombination 194Aliasname 942Aliastext 941, 943alignment 300allowDeselect 222ALV � SAP List ViewerAnimation, Performance 977Anker 335Anmeldesprache 1050Anordnung

horizontale 266, 324Richtung 393tabellenartige 267, 270UI-Element 258

Antwortgeschwindigkeit 255Anwendung 34, 47, 140

Anlegen 62, 93Beenden 86Beispiel 58Browser-Titel ändern 58Client-Umgebung 1076Definition 57Editor 48, 93Eigenschaft 47, 62externe 473Konfiguration 748, 764, 765, 766,

1039, 1043konfigurieren 1012Metadaten 1076Name 964Parameter 48Port 57Testen 49, 93

Anwendungsparameter 964, 976, 1049, 1050Animation 976Anwendungskonfiguration 1049Auswertungsreihenfolge 1050Benutzerparameter 1050globaler 764, 1049URL-Parameter 1050Web-Dynpro-Anwendung 1049

Apache Flex 781Applikation, externe 472apply_filter( ) 839apply_sorting( ) 846

Arbeitsablauf 386Arbeitsgeschwindigkeit 641ARIA 190, 1000ariaLandmark 190, 523Assistance-Klasse 121, 645, 944

Anwendungsfall 121CL_WD_COMPONENT_AS-

SISTANCE 121Eintragung 122Singleton 122Text 939

associatedCellIds 284Asterisk 277attach_file_to_response( ) 486Attribut 105, 1106

Anlegen 127dynamisch anlegen 583Information 646Registerkarte 90, 106zum Knoten 583

ATTRIBUTE 589Attributeigenschaft 132, 145

Attributname 132Binden 146Formatierung 133Null-Wert 133Read-only 133Typisierung 132Wertehilfe-Modus 133

attributes 589Attributtabelle 590Aufzählung 319

nummerierte 319Symbol 319

Ausgabedarstellung 311Ausnahme 94Ausnahmeklasse, Ausnahmetext 939Ausrichtung, horizontale 324Auswahlliste 392, 643, 646

Domänenfestwert 646Implementierung 646, 648

Auswahlmöglichkeit 360availableListId 392

B

background 275backgroundColor 414backgroundDesign 382

1117

Index

Balkenbreite 458Balkendiagramm 414barColor 465Barrierefreiheit 199, 996

Anforderung 997Anwendung 199Anwendungskonfiguration 999einschalten 999Entwicklung 998Fehler 310Prüfung 46, 199Prüfung zur Designzeit 998Test 999Voraussetzung 998

barValue 458Basisklasse 189Baumhierarchie 396beginBorder 275beginPadding 275behaviour 369, 481Behinderung 199Benutzer

blinder 199Einstellung 774, 775

Benutzerfreundlichkeit 641Berechtigungskonfiguration 748Bereichsauswahl 834Beschreibungsobjekt 576BIApplicationFrame 1056Bildlaufleiste 816Bildschirmleseprogramm 199bind_<Eigenschaft>( ) 612bind_element( ) 1092bind_elements( ) 1092bind_structure( ) 1092bind_table( ) 1092Blatt 395, 404Blatt, Standardbild 399Blätterspalte 816Blättertaste 882border 217, 462bottom 450bottomBorder 275bottomPadding 275bound_<Eigenschaft>( ) 612Box, Breite 459boxValue 459BreadCrumb 368BreadCrumbStep 369, 371Breakpoint 993

Breitengrad 448Browse & Collect 391, 571Browse-Button 487Browser-History 1078BSP 969BulletedList 319Burn-Down-Chart 427Business Add-in 374Business Server Page 969BusinessGraphics 412, 429

customizing 417Diagrammtyp 412

Business-Objekt 970Button 70, 75, 249, 343, 361, 651

Emphasized 345gedrückter 362hotkey 345Next 345Previous 345Standard 921, 924

ButtonChoice 249, 345ButtonRow 248

aggregiertes Element 249Barrierefreiheit 249Buttonleiste 248visuelle Darstellung 249

C

CALENDAR_DEFINITION 374cancel_navigation 961Caption 165, 201, 204, 257, 315, 816,

818, 940Carriage-Return 329Cascading Stylesheets � CSSCATCH 953, 958Category 414, 420, 428, 429categorySource 414cellDesign 262cellPadding 271cellSpacing 271CHANGE_KIND 151Change-Log 149

Aktivieren 149Änderungsart 151Auslesen 151erfasste Änderung 150Verwendung 149

Chart 434, 436

Page 34: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1118

Index

Chart Designer 412, 417, 425Eigenschaftenliste 426Grafikelement 426Grafikvorschau 425XML 426

Chart Engine 425chartType 414CHECK_MANDATORY_ATTR_ON_

VIEW 307CheckBox 642, 655CheckBoxGroup 642, 657checked 362, 656, 657, 661, 662, 930checkedImageSource 362CHIP 1001, 1015

Anlegen 1004, 1013context 1014Detaildaten 1011Eigenschaften 1002, 1004Hinzufügen 1009Konfigurationseditor 1013mit Outport 1015Testen 1015Verbinden 1003

CHIP_IFRAME_CONFIG 1013CHIP-Katalog 1001, 1009, 1013

Auffrischen 1015Öffnen 1013

CHOOSE_FILE 478CL_ABAP_CHAR_UTILITIES 486CL_ABAP_CONV_OUT_CE 484CL_ABAP_COV_OUT 486CL_ABAP_STRUCTDESCR 592CL_ABAP_TYPEDESCR 592CL_ABAP_UNIT_ASSERT 1027CL_MIME_REPOSITORY 494CL_TEXT_IDENTIFIER 941CL_WD_<UI-Element> 612CL_WD_ABSTR_FORM_DSGN_

DATA 260CL_WD_ABSTRACT_HTML_

ELEMENT 796CL_WD_ACF_EXECUTE 475CL_WD_BUSINESS_GRAPHICS 427CL_WD_CAPTION 609, 610CL_WD_COMPONENT_

ASSISTANCE 944CL_WD_CTX_MENU_PROVIDER

189, 296, 600CL_WD_CUSTOM_EVENT 537CL_WD_DYNAMIC_TOOL 244, 307,

578, 580, 817, 960

CL_WD_FLOW_DATA 260CL_WD_FORM_DATA 261CL_WD_FORM_DATA_ADV 261CL_WD_FORM_DSGN_DATA 260cl_wd_form_dsgn_layout 286

set_on_[cell_resize|drop|select]() 286CL_WD_FORM_DSGN_TOP_DATA

260CL_WD_FORM_HEAD_DATA 261CL_WD_FORMATTED_TEXT 319,

335, 728, 729CL_WD_GEO_LINE 455CL_WD_GEO_OBJECT 451, 454CL_WD_GEO_POINT 454CL_WD_GEO_POLYGON 455CL_WD_GRID_DATA 260CL_WD_LAYOUT 259CL_WD_LAYOUT_DATA 259, 601CL_WD_MATRIX_DATA 259, 260,

601CL_WD_MATRIX_HEAD_DATA 259,

260, 601, 606CL_WD_MATRIX_LAYOUT 259, 604CL_WD_MENU 932, 933CL_WD_MENU_ACTION_ITEM 933CL_WD_MENU_CHECKBOX 933,

934CL_WD_MENU_ITEM 933CL_WD_MENU_RADIOBUTTON 934CL_WD_MENU_SEPARATOR 934CL_WD_NOTIFICATION_SERVICE

358CL_WD_RASTER_DATA 261CL_WD_ROW_DATA 260CL_WD_ROW_HEAD_DATA 260CL_WD_RUN_TIME_SERVICES 486CL_WD_TAB 600, 608, 610, 611CL_WD_TABSTRIP 587, 600, 605CL_WD_TOOLBAR 617CL_WD_TOOLBAR_BUTTON 617CL_WD_TOOLBAR_SEPARATOR 517CL_WD_UIELEMENT 189, 296, 722CL_WD_UIELEMENT_CONTAINER

189, 602, 603CL_WD_UTILITIES 943CL_WD_VIEW_CONTAINER_

UIELEMENT 611CL_WD_VIEW_ELEMENT 259, 600CL_WD_VIEW_SWITCH 232CL_WD_WEB_DYNPRO_TESTER

1023, 1024, 1025

1119

Index

CL_WDR_ACFEXECUTE_HNDL 472CL_WDR_ACFUPDOWN-

LOAD_HNDL 477CL_WDR_PORTAL_OBNWEB_

SERVICE 972CL_WDR_SAPGUI_INTEGRATION2

1070CL_WDR_SELECT_OPTIONS 702CL_WDR_SELECT_OPTIONS_20 717CL_WDR_VIEW_ELEMENT 189, 296,

599Client-Cache 802Client-Plattform 44Client-Server-Technologie 27closeable 257Code-Wizard 947, 965

Meldung 953Textsymbol-Zugriff 947

colCount 251, 271, 276, 279, 283, 291, 379, 654, 655, 658

Collaborative Human Interface Part 1001

collapseDirection 217collapseMode 523collapsible 515, 518color 470colorAboveThreshold 459colorBelowThreshold 460colorBetweenThreshold 460cols 328colSpan 276, 283columnDragInfo 559columnResizeMode 823Colums 885Common Visualization Framework

434Common Visualization Object

Modeler 36Component 33, 40, 56, 58

Anlegen 45, 60Aufbau 56Bestandteil 61fremde 920Hierarchie 766Instanziieren 53, 978Konfiguration 747Konfigurationseigenschaft 763, 767Lesen 1074Schnittstelle 619Verstecken 767

verwendete 179Verwendung 918Wiederverwendung 40, 56

Component-Controller 56, 104, 919Component-Editor 46Component-Interface 181

Bestandteil 181Definieren 182Implementieren 183Interface-Editor 182Interface-View anlegen 183Verwendung 181

Component-Konfiguration 1039, 1044Anlegen 1011, 1012Zuordnen 1011

Component-Verwendung 46, 176, 619, 621Anlegen 165Anwendungskonfiguration 767Definition 164dynamische 619Eintragen 168, 174erweiterte 743Erzeugen 1072Gruppe 630Instanziierung 165, 169, 170, 171Interface-Controller 165Klonen 619Lesen 1070, 1073Löschen 1072Mapping 174Performance 164statische 619Verwaltung 624

CONCATENATE 486Configuration-Controller 105, 749,

753, 758, 759, 925Anlage 754Implementierung 756Regel 755Speichern 775Verwendungsbeispiel 776

CONFIGURE_APPLICATION 1049CONFIGURE_COMPONENT 770Container 187

ABAP-Klasse 190Kindelement 258

Content-Administration 964contentDesign 210, 257

Page 35: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1120

Index

contentHeight 231, 243contentPadding 211Context 72, 122, 127

Anlegen 128Attribut 127Attributanlage mit RTTI 591Attributanlage mit Strukturtyp 588Attributeigenschaft lesen 1095Bestandteil 152Change-Log 149Code-Wizard 158Controller-Verwendung 125Datenbindung 123Editor 125Eigenschaft 125, 1096Eingabe löschen 1071Einsatzgebiet 123Element 124, 154, 1092, 1093Kardinalität 154Kindknoten lesen 1093Knoten 124, 125, 126, 576,

577, 583Laufzeit 124Manipulation 574Mapping 123, 592Navigation 152, 153Operation 153Programmierung 152Range-Knoten 145Registerkarte 142Rückwärtsnavigation 155Sichtbarkeit 122Speicheroptimierung 161Struktur 123, 156, 1092Tabelle binden 157Tabelle finden 1092Unterknoten lesen 154

CONTEXT_ELEMENT 538CONTEXT_MENU_BEHAVIOUR 189CONTEXT_MENU_ID 189CONTEXT_MENUS 929, 930Context-Änderungen analysieren

1029Context-Element

Attribut auslesen 159Attribut finalisieren 1103Attribut lesen 1100Attribut setzen 159, 1101Attributeigenschaft 1101Einfügen 156

Erzeugen 156Index lesen 1100Kindknoten lesen 1100Löschen 156, 157Zeilenstruktur auslesen 160Zeilenstruktur setzen 160

Context-KnotenIndexnummer 153Nicht-Singleton 399Singleton 399

contextMenuBehaviour 191, 294, 935

contextMenuID 191contextMenuId 295, 935ContextualPanel 229

aggregiertes Element 230Ereignis 230visuelle Darstellung 229

controlId 501Controller 33, 49, 104

Attribut 71Bestandteil 105Editor 49Interface 120Typ 104

Controller-Verwendung 756Anlegen 114, 180Beispiel 113Eintragen 113Sichtbarkeit 115

controlMenuDisabling 352convert( ) 486CR_LF 486create_component( ) 170, 703, 1072create_element( ) 1092create_external_window( ) 1084create_from_sapscript( ) 728create_nodeinfo_from_struct( ) 579create_popup_to_confirm( ) 1084create_table_from_node( ) 817CSS 269, 310

CSS3 434Größe 353Klasse 192, 295Maßeinheit 310

CTable 779, 803Colums 885CTableFixedCell 880Drag & Drop 557, 883Eigenschaften 880

1121

Index

Einfügefunktionalität 884firstVisibleRow 881gridMode 881Handle 879HeaderArea 885headerRowHeight 882heightMode 882Höhe 879Menü 880MultiEditor 890navigationModeTabelle 882Pager 880Personalisierung 883personalizationMode 883rowHeight 883scrollbar 882Scrollen 879Selektionsverhalten 887Spaltenbreiten 884Spaltenüberschrift 882Tabellenhöhe 882tableBodyDropInfo 883TableScrollTipProvider 885textMarkers 883ToolBar 885transparencyMode 883WDEVENT 565Zellvarianten 880

CTableColumn 885aggregierte Elemente 888cellBorderOmitting 886cellMerging 887colSelectionState 887columnResizable 887Eigenschaften 885Ereignis 888fixierte Zelle 888Header 888Menu 888Zelleneditor 888Zellenvarianten 888

CTableFixedCell 880, 888cellBorderOmitting 890cellDesign 890Eigenschaften 890

CTableHeaderArea 885, 888Eigenschaften 888headerDesign 889titleEditable 889

CTableHierarchicalCellaggregierte Elemente 890Eigenschaften 889Ereignisse 890hierarchicalState 889level 889

CTableStandardCell 888CTableSymbolCell 888

Eigenschaften 891symbol 891symbolDesign 891

CTblHierarchicalCell 888CTblMultiEditorCell 888Cursor 936Custom-Controller 56, 105, 754CUSTOMIZE_COMPONENT 770Customizing 738, 775, 1039

Berechtigung 749Component-defined 770Editor 770, 771Merkmal 769Transport 772Web-Dynpro-Built-In 770, 771Zeitpunkt 769

customizingID 421CustomScriptAttribute 799CVOM 36

D

Darstellungsposition 408DATA 538data 483, 532Data Binding � DatenbindungdataBeginIndex 421datafeedingstring 435dataLength 422dataSource 228, 331, 366, 377, 398,

402, 492, 501, 660datastring 435date 377Datei 481

Export 486Name 481, 483

Datenbidirektionale 780Datenreihe 420Invalidierung 483Konvertierung 486

Page 36: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1122

Index

DateNavigator 371, 378DateNavigatorMarking 376, 378Datenbindung 72, 123, 136

Anlegen 138Beispiel 146UI-Element 137, 147

Datenmodell 29Datentyp, einfacher 657Datenzeile 815datePickerReferenceId 301DATS 672Datum dynamisch vorbelegen 776Datumsbereich 372daySemantics 377DDIC � ABAP DictionaryDebugger 917, 992, 993

einrichten 993Layout sichern 994Web-Dynpro-Debugger 992,

994, 995Werkzeug ersetzen 994

Debug-SWF-Datei 781defaultButtonID 191defaultButtonId 823defaultItemIconSource 399defaultNodeIconSource 400delay 357delete_component( ) 170, 1072Deltadiagramm 414Delta-Rendering 974, 976, 987Dereferenzieren 704description 385, 390, 420descriptiveText 659deselectable 644design 202, 206, 228, 231, 234, 246,

520, 824Button 344Explanation 318Label 312LinkToAction 352MessageArea 410SectionHeader 339TextEdit 328TextView 323ToggleButton 362ToolBar 516TreeNodeType 402

Designelement 200Designtime 575

Diagramm 33, 36, 434gestapeltes 417Typ 412

Dialogfenster � Pop-up-FensterDictionary-Struktur 166dimension 418Dirty-Kennzeichen 973, 988displayAsText 301displayEmptyRows 825displayMode 341displayOnly 302displayType 492displayValue 466do_dynamic_navigation( ) 634DOCU_CREATE 729DOCU_GET 728Document Object Model � DOMdocumentName 502documentType 502Dokument 321

Klasse 321Pflege 317, 321

DOM 189Domäne

SEOEXPOSE 646WDUI_TRI_STATE 662

DOM-Tree 189Download 429, 480Drag 527Drag & Drop 40, 527

Allgemeines 531ALV 909auf eine Zeile 554Barrierefreiheit 527Benutzervorgehen 527Caption 542Context-Element 556Datenquelle 555dynamische Programmierung 545einfacher Modus 556Element 847Entwicklervorgehen 528Geisterbild 527generisches 572Handle 542hierarchische Tabelle 556Image 542komplexer Modus 556Layout 542

1123

Index

Layoutbeispiel 542nicht hierarchische Tabelle 551Operationsmodus 571Position 555Quelle 527Sicherheit 532Table 551UI-Element 528Zeilen-Drop bei Tabelle 552Ziel 527zwischen Tabellenzeilen 553

dragData 548DragSource 527, 542, 552, 566DragSourceInfo 224, 528, 531, 539,

549, 885DragSourceInfo, dynamische 548Drop Target 527DROP_ROW_TRG_INF 552, 554DropDown 642DropDownByIndex 134, 167, 642,

643, 650DropDownByKey 642, 643, 646DropDownListBox 642, 643, 650dropOnRowName 552, 825dropOnRowTargetInfos 554DropTarget 534, 544, 553

Erzeugung 535Kapsel 534Vorgehen 535

DropTargetInfo 224, 528, 533, 540, 549, 568, 883, 885dynamische 548mehrere 555

Druck, Szenario 495dynamische Datenbindung 138dynamische Programmierung 573,

604Aktion 573, 575, 613Component 573Component-Verwendung 575, 619Context 573, 575Ereignis 613Laufzeit 573Layout 575, 598UI-Element 573View 573, 599

dynamischer Navigationslink 1081Dynpro 27

E

E_TAG 335E_WAD_TAG 319eCATT 1018, 1023

Aufzeichnung 1019bearbeiten 1021Rendering 1053Test 1022

editable 312Eigenschaft

Erweiterung 746finale 752, 757, 777primäre 309Primary-Attribut 755Sichtbarkeit 774

Einbettungsposition 258Einfachselektion 659Einführungsleitfaden 474Eingabe

Konvertierung 311Prüfung 306Sperre 305

Eingabebereitschaft 145Eingabehilfe 641

Auswahlmöglichkeit 641Wertehilfe 641

Einstellung, globale 1064Einzelauswahl 834Element

rechtsbündiges 519unsichtbares 774, 927

ELEMENT_<Knotenname> 128ELEMENTS_<Knotenname> 128Ellipse 277Emphasized 345Empty View 74emptyItemIconSource 341emptyTableText 825emptyText 252EMPTYVIEW 985enableAddButtons 393enabled 118, 145, 191, 257, 295,

383, 385, 390, 392, 400, 407, 450, 492, 516, 532

enableReadWrite 502enableRemoveButtons 393endBorder 275endPadding 275

Page 37: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1124

Index

endPointDesign 387Enhancement Builder 741Enhancement Framework 737, 741Entwicklungsumgebung 44, 59Enumeration 587Ereignis 116, 117

Definieren 117periodisches 356Registrieren 116, 117, 619, 636Web-Dynpro-Code-Wizard 54

Ereignisbehandler 71, 73, 109, 116, 119Definieren 117Ereignis OVS 675Implementieren 78implementierungsfreier 167Registrieren 1071, 1072

Erläuterung 377Erläuterungstext 319Ersetzungswert 955Erweiterung 737

Abgleich nach Upgrade 747Anlage 742Component 743Context 743, 745Controller 743, 744explizite 741Implementierung 743implizite 741Löschen 745Navigationslink 746Plug 743, 746UI-Element 746View anlegen 745View-Layout 743, 745Window 743zusammengesetzte Implemen-

tierung 742eventId 420Excel-Blatt 482expandable 206, 244ExpandableTitle 231, 244expanded 206, 244, 401, 402, 524Expandierung 400, 402expertMode 502Explanation 317, 723, 726

design 729emphasized 729text 727

explanation 198, 302, 723, 928

extended Computer Aided Test Tool � eCATT

Extensible Markup Language � XML

F

F1-Hilfe 928F4-Hilfe � WertehilfeFarbe 418

ändern 1036semantische 325

favicon 1054Favorites Icon 1054Feeder-Klasse 1040Fehleranalyse 1028Fehlermeldung 936Fehlernachricht 961

mit Context-Bezug 961ohne Context-Bezug 961

Feldbezeichner 940Felddokumentation 725Feldhilfe 725, 925, 928FIELD-SYMBOLS 704FileDownload 429, 432, 480fileName 492FileUpload 487fill 206fire_* 634fire_<EreignisName>_evt( ) 116fire_plug( ) 1075fire() 973fireEvent( ) 792firstActualPane 251firstActualRow 825firstVisiblePane 252firstVisiblePhase 383firstVisibleRow 228, 826firstVisibleScrollableCol 826fixedTableLayout 826Flächendiagramm 414Flash/Silverlight-Anwendung 784FlashIsland 779, 787Flattersatz 265Flavor 528, 533Floorplan 1038Floorplan Manager 28, 739, 1038Floorplan Manager-Anwendung erstel-

len 1041FlowData 262, 611FlowLayout 68, 261

1125

Index

Fokus setzen 1075, 1080Fokus-Handling 936fontFamily 418Footer 250footerVisible 252, 827Form Builder 491, 493Formatierung 324FormattedTextEdit 336FormattedTextView 330FormData 277FormDataAdvanced 279FormDesignData 283, 285FormDesignLayout 282

Ereignisse 286Interaktivität 282Menü 289Schnittstellenparameter 286

FormDesignTopData 283FormHeadData 277formLanguage 492FormLayout 275FormLayout, Spaltenberechnung 277FormLayoutAdvanced 278, 378

Kaskadierung 278, 281Zellenanordnung 280

FormTopData 276Formular

Skripting 497Überschrift 337

Fortschrittsanzeige 464FPM � Floorplan ManagerFPM_FORM_UIBB_GL2 1041FPM_GAF_COMPONENT 1041FPM_LIST_UIBB 1041FPM_OVP_COMPONENT 1041framework controlled 74FrameworkLegendItem 381frameworkSemantics 381FreeContextualArea 230, 231Fremdschlüsselverprobung 670fullItemIconSource 341Funktion 815Fußzeile 250

G

GACDataSource 788, 789GACEvent 788, 791, 792GACEventParameter 788, 792GACProperty 788, 790

GAF-Floorplan 1038Gantt 439Geisterbild 527Generic UIBB 1039Geo-Koordinate 448, 451GeoMap 448, 453, 1031geoObjectSource 450Geo-Objekt 453Gerätetyp 1079get_<Eigenschaft>( ) 612get_<Element>_info( ) 1111get_attribute_properties( ) 1095get_attribute( ) 1094, 1100get_child_node( ) 1093, 1100get_child( ) 613get_children( ) 613get_component_usage( ) 1070, 1073get_context_menu_manager( ) 1075get_current_action( ) 960get_element_count( ) 1092get_element( ) 601get_input_complete( ) 717get_input_per_attribute( ) 717get_lead_selection_index( ) 1093get_lead_selection( ) 1093get_message_area( ) 951get_message_manager( ) 1074get_node_info( ) 649get_on_<Ereignis>( ) 613get_parent_element( ) 1093get_personalization_manager( ) 1069,

1074get_range_table_of_sel_field( ) 704get_root_element( ) 599, 601get_service( ) 358get_static_attributes_ref( ) 1095get_static_attributes_table( ) 1095get_static_attributes( ) 1094, 1101get_text( ) 947get_window_manager( ) 1070get_window( ) 1076Ghost Image 527GIF 461Gitterzelle 261globale Einstellung 1049, 1064Google Maps 1014Grafik 461GridLayout 270, 542gridMode 827Griff 529

Page 38: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1126

Index

Group 187, 200, 651Abstand 203aggregiertes Element 203Barrierefreiheit 203Default-Button 201Eigenschaft 201farbige 202Toolbar 201visuelle Darstellung 200Zugangstaste 202

Gruppenspalte 36GUIBB 1039

H

Häkchen 656hAlign 266, 324Handle 542handle<InboundPlugName>( ) 119handleHotkeys 191has_active_component( ) 170, 703,

1072hasChildren 402hasContentPadding 203, 207, 257,

520Header 336, 819headerDesign 211HeaderFunctions 213HeaderToolbar 214Heatmap 416height 189, 192, 212, 328, 407heightImpact 207heightOfContent 207heightOfTray 207Help Center 733, 1054hideIfEmpty 517hideIfNoVisibleOptions 346hideTitle 246Hierarchie 395Hierarchiestufe anlegen 580Hilfe

Component 695technische 725Uhrzeit-Hilfe 672

Hilfetext mit Quick-Info 722Hintergrundbild einfügen 1036Hintergrundfarbe 382, 414Histogramm 415History-Funktion 304

Hook-Methode 71, 106HorizontalContextualPanel 232

Eigenschaft 233Ereignis 236Rekursionsknoten 233Voraussetzung 233

HorizontalGutter 405horizontalSpan 291Hotkey 39, 192, 193Hotkey-Behandler 194hoverItemIconSource 342HSB 414, 418HTML

<div> 324<hr> 405<p> 324<span> 324GUI 424HTML5 434Integration 798statisches 796

HtmlContainer 795, 796, 798, 1065HtmlEvent 799HtmlFragment 796, 797, 798, 1065HtmlIsland 795, 805, 1065HtmlScript 797, 799HtmlStyle 797, 802HTTP_GET 477HTTP_PUT 477HTTP-Komprimierung 976, 977Hypertext

HTTPS 1055Link 351, 363, 364Verknüpfung 354

I

ICF-Service 57IconButton 348iconSource 402, 659Id 190, 294, 532IETF 484IF_<Controller-Name> 120IF_FPM_GUIBB_LIST 1042IF_IOS_DOCUMENT 504IF_IOS_FACTORY 504IF_IOS_PROJECT 504IF_MR_API 495IF_WD_ACFEXECUTE 473, 475

1127

Index

IF_WD_ACFUPDOWNLOAD_SWFS 478

IF_WD_ACTION 1074IF_WD_APPLICATION 969, 1069,

1076IF_WD_BROWSER_HISTORY 1078IF_WD_BUSIN_GRAPHICS_

MTD_HNDL 427IF_WD_CFG_COMP_EDITOR 762IF_WD_CLIENT_INFORMATION

1078IF_WD_COMPONENT 112, 629, 919,

1069, 1070, 1071, 1074IF_WD_COMPONENT_ASSISTANCE

944, 945IF_WD_COMPONENT_USAGE 622,

624, 626, 639, 979, 1072IF_WD_COMPONENT_USAGE_

GROUP 627, 630, 1070IF_WD_CONFIG_CONTEXT 1087IF_WD_CONTEXT_ELEMENT 124,

152, 659, 683, 980, 1099, 1103IF_WD_CONTEXT_MENU_

MANAGER 932IF_WD_CONTEXT_NODE 124, 152,

542, 551, 577, 644, 658, 659, 1093, 1094, 1095

IF_WD_CONTEXT_NODE_INFO 134, 162, 577, 580, 582, 583, 584, 592, 593, 595, 1099, 1104, 1106, 1108, 1110

IF_WD_CONTEXT_NODE_RANGE 162

IF_WD_CONTROLLER 635, 1074IF_WD_EVENT 617IF_WD_GANTT_METHODS 447IF_WD_IACTIVE_FORM_

METHOD_HNDL 497IF_WD_MESSAGE_AREA 96, 951,

1076IF_WD_MESSAGE_AREAMETHOD

410IF_WD_MESSAGE_MANAGER 97,

409, 937, 952, 1074IF_WD_NAVIGATION_SERVICES

633, 635, 1079, 1081IF_WD_NAVIGATION_SERVICES_

NEW 634, 1081IF_WD_OVS 677IF_WD_PERS_TABLE_READER 1088

IF_WD_PERSONALIZATION 1069, 1087

IF_WD_PORTAL_INTEGRATION 966, 967, 973, 1070, 1090

IF_WD_RR_<Element> 1111IF_WD_RR_APPLICATION

1076, 1111IF_WD_RR_CMP_USAGE_

GROUP 1111IF_WD_RR_COMPONENT

1069, 1111IF_WD_RR_COMPONENT_USAGE

1112IF_WD_RR_CONTROLLER

1074, 1111IF_WD_RR_VIEW 1075, 1112IF_WD_RR_VIEW_CNT_

ASSIGNMENT 1112IF_WD_RR_VIEW_USAGE 1075,

1080, 1112IF_WD_RR_WINDOW 1076, 1112IF_WD_SELECT_OPTIONS 700, 701,

702, 705, 708, 709, 710, 712, 717IF_WD_SELECT_OPTIONS_20

713, 721IF_WD_TABLE_METHOD_HNDL

838, 846IF_WD_VALIDATION 1086IF_WD_VALUE_HELP_LISTENER 689IF_WD_VIEW 330, 937, 938, 1079IF_WD_VIEW_CONTROLLER 633,

922, 924, 932, 1074IF_WD_VIEW_ELEMENT 296, 599,

602, 1080IF_WD_WINDOW 920, 921, 922,

1075, 1076, 1082IF_WD_WINDOW_CONTROLLER

96, 410, 1076IF_WD_WINDOW_MANAGER 919,

920, 1070IF_WDT_INPUT_FIELD 1026IFrame 488, 1011IFrame-CHIP

Einbinden 1017Kontextmenü 1013Menü 1016

IG_<ControllerName> 113, 120IG_COMPONENTCONTROLLER 629ignoreAction 403IGS 418, 424, 451

Page 39: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1128

Index

IGS, Standalone Engine 425igsUrl 418, 451Image 353, 461, 820imageData 418imageFirst 316, 818imageIsDecorative 316imageSource 212, 257, 316, 380, 818IME 302imeMode 302IMG 474Implementation Guide 474Inbound Port � InportInfoObject 646, 729Informationsbox 200Informationsobjekt 576Informationstafel 412Inhalt, zustandsloser 489Inhaltsbereich 256init_select_options( ) 713Inline-CSS 976Inline-Frame 488Inport 1002

anlegen 1004, 1014Parameter anlegen 1006, 1015Tag anlegen 1006

Input Method Editor 302Input-Element 178, 179, 940InputField 75, 139, 298

Historie 775, 928Wertehilfe 663

inputPrompt 303Instanziierung, pauschale 978Instanzrestriktion 919InteractiveForm 491, 498Interaktionsform 527Interface

implementiertes 46View 632

Interface-Controller 56, 105, 121, 172, 173, 178, 182Ereignis 173Methode 173

Interface-Knoten 176, 179Interface-View 168, 963

Anlegen 89Einbinden 171

Internationalisierung 939Internet Communication Frame-

work 57Internet Engineering Task Force 484

Internet Graphics Service � IGSIntervall 467Intervalleingabe 697, 698invalidate( ) 1093invalidTextHandling 331InvisibleElement 271, 407is_validation_independent( ) 961isCollapsed 218isDecorative 463isDragHandle 212, 317, 463Island-Framework 780isLayoutContainer 195, 198itemDataSource 650itemEnabled 231, 234itemIcon 232itemKey 650ItemListBox 395, 548, 642, 659

text 659visibleItems 660

itemOverflow 517itemSelectable 243itemSource 231, 235itemText 231, 235, 650itemTextDirection 235itemVisible 231, 235ITS 969iView 962, 964iView-Wizard 964IWCI_<ComponentName> 121IWD_CFG_COMP_EDITOR 759, 764IWD_VALUE_HELP 621, 686, 688,

689

J

JAR 442Java

Applet 440Archiv 442Design 442Runtime 440

JavaScript 796JavaScript Object Notation 36, 435JavaScript, Quelle 802JGantt-Control 440JNet 440, 448

signed 440unsigned 440

jobProfile 492

1129

Index

Joker 663JPG 461JSON 36, 435JSONData 797JsonDataSource 798JsonParameter 798

K

Kalender 371Kalender-Hilfe 672Kardinalität 131, 166, 582Key-Technik 647keyToSelect 652, 653keyVisible 647Klassenhierarchie 295Klonen 623Knoten 395

Anlegen 126Attribut 1094, 1104, 1105, 1106Collection 606contextübergreifender 140Elemente zählen 1092Finalisieren 1098Indexparameter 155Invalidieren 158, 1093Kindknoten hinzufügen 1104Kindknoten lesen 1093Lead-Selection lesen 1093Manipulieren 1104Mapping anlegen 1109Metadaten 1099, 1104Metaobjekt 152nicht rekursiver 395Nicht-Singleton 398Pfad 151, 1094rekursiver 395, 396, 1105RTTI-Objekt 1106Standardbild 400statisches Attribut lesen 1094Tabelle lesen 1095Web-Dynpro-Code-Wizard 52Wertehilfe 1108

Knoteneigenschaft 130Dictionary-Struktur 131dynamisch setzen 134Input-Element 131Interface-Knoten 130Kardinalität 131Knotenname 130

Lead-Selection 132Selection 131Singleton 132Supply-Funktion 132

Knoteninfo 646Knowledge Provider 477Kollabierung 400, 402Komponentenmodell 40Konfiguration 737, 741, 758, 775,

1039aktuelle 771Anlegen 1008Anpassungshierarchie 739Anwendung 748, 764, 771Berechtigung 748Bestandteil 749Component 747, 749Component-defined 738, 739, 749,

753, 757, 764Datensatz 738, 747, 749, 750, 757,

764, 768, 769Eigenschaft 777explizite 749Findungsregel 768ID 765, 769implizite 750Laden 1089Überblick 747Variante 764, 1089Web-Dynpro-Built-In 738, 739, 750,

752, 764Konfigurations-Context 1013Konfigurationseditor 738, 749, 750,

753, 757CHIP 1013Component-defined 757Eintragung 762Interface 759selbst bauen 758Web-Dynpro-Built-In 752

Konfigurationseigenschaft, Compo-nent 763

Konfigurationsmodus 771Konfigurationsname 964Konstante 587Kontextmenü 38, 925

Anlegen 926, 929, 930, 931Anregung 925Erzeugen 932Manager 1075

Page 40: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1130

Index

Personalisierung 925Standard 927Standardmenü 927Systemmenü 925Zuweisung 934, 935

Konvertierungsobjekt 486Koordinatensystem 258KPro 477Kreisdiagramm 412Kuchendiagramm 415Kurztext 722

L

Label 167, 262, 311, 421, 940labeledBy 198labelFor 313, 940Laden, dynamisches 404Landkarte 411, 448Länge 945

definierte 945maximale 945

Längengrad 448Laufzeit 573Laufzeitanalyse 983Laufzeit-Authoring 572Laufzeitfehler 313Layout 67, 187, 258, 259, 324

ABAP-Klassenhierarchie 259Container 195Daten 258, 259Eigenschaft 258Strukturierung 405tabellarische Darstellung 68Unterschied 68

LayoutContainer 187, 200Layoutdaten 265Layout-Editor 49Lead-Selection 148, 153, 155, 583,

654, 818Change-Log 152Definition 134Fehlersituation 158Setzen 134, 155, 1098

leadSelectionCustomizingID 422left 451leftSpace 291Legende 372, 377Legenden-Pop-in 377, 847

legendID 279LegendItem 378, 380length 303Lesen, nur 145Level 232, 339lifeTime 442, 788Lightspeed 1054Lightspeed-Rendering 987Liniendiagramm 415LinkChoice 350LinkToAction 351LinkToURL 354Linux 440Listbox 659Liste 36Liste einblenden 409List-GUIBB 1041, 1044ListItem 319Literal, sprachenrelevantes 939Load-on-Demand 224lokaler Plug 83lookAndFeel 442lowerThresholdValue 460

M

m aus n 657map_on_<Ereignis>( ) 617Mapping 123, 140, 141, 174, 175,

177Aktualisieren 143Anlegen 142Definieren 167, 180einfaches 175externes 176, 178primärer Knoten 175, 177Typisierung 176

markerType 460markerValue 461Markierspalte 816Markierung 468Mashup 1001Mashup, Vernetzung 1006Maskendefinition 27MatrixData 268, 269MatrixHeadData 75, 267, 268, 269MatrixLayout 68, 167, 267, 542maxTickMarks 468maxValue 342, 461

1131

Index

Mehrfachselektion 549, 659Meilenstein-Trendanalysen-

Diagramm 415Meldung 38, 408

Art 962Bereich 408permanente 962Protokoll 411Standard 962Web-Dynpro-Code-Wizard 53

Memory Inspector 983Menu 205, 326, 404, 508, 929MenuActionItem 205, 347, 351, 510,

511, 930MenuBar 513, 514MenuCheckBox 205, 511, 930menuIndicator 325Menüpunkt erzeugen 932MenuRadioButton 205, 512, 930MenuSeparator 205, 510, 930MESSAGE 949Message Manager 97, 111, 409, 951,

954Anwendungsmeldung 103Ausnahme 94, 101, 958Code-Wizard 97Context-Verknüpfung 98Cursor-Position 936Framework-Meldung 103Gültigkeitsdauer von Meldungen 102Lesen 1074Meldung ausgeben 100Methode 99Nachricht 93Nachrichtenquelle 94Navigationsverhalten 102Parametertabelle 98T100 94, 101

MESSAGE WITH 949MessageArea 38, 93, 95, 96, 408

Attribuierung 950Design 949Einführung 95Erscheinungsbild 96Liste einblenden 950Sichtbarkeit 95

Metadaten, Component 1069Metadatenmodell 28, 33Metainformationsobjekt 576

MethodeHook-Methode 71, 106Registerkarte 89Supply-Function 144Typ 71, 109

MicrosoftExcel 482, 498Paint 472Project 498, 504Visual Studio 782Word 498

MIME 484Darstellung 486Typ 481, 484

MIME Repository 783, 786mimeType 484, 532minHeight 400Model-View-Controller 29, 33, 43, 79

Ebenen 30Varianten 31Web Dynpro 32

Model-View-Presenter 31moveType 451multiColSorting 828MultiEditor 890MultiMenuActionItem 205, 347, 351,

930MultiPane 250, 928, 980

aggregiertes Element 252Eigenschaft 251Ereignis 252Fußzeile 250identisches Aussehen 250Paginator-Element 250Raster 250Subelement 252visuelle Darstellung 250Voraussetzung 251

MultiPhase 385MultipleAccordionItem 221, 225,

566MultipleBreadCrumbStep 369, 371MultipleLegendItem 381MultipleRoadMapStep 391multipleSelection 660MultipleThreshold 471Multipurpose Internet Mail Extensions

� MIMEMultiStep 386

Page 41: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1132

Index

Muss-Eingabe 306Muss-Feld 306, 959

N

Nachricht 939, 949Bereich 408Navigationsverhalten 959Verlinkung 955

Nachrichtenkategorie 952Nachrichtenklasse 94, 949, 957Nachrichtennummer 949, 956Nachrichtenpflege 949Nachrichtenprotokoll 962Nachrichtentext 949Nachrichtentyp 949, 957

Fehler 949Information 949

name 534Namensraum 964navigate_absolute( ) 969navigate_absolute() 973navigate_relative( ) 969, 970navigate_relative() 974navigate_to_object( ) 970navigate_to_object() 974Navigation

Abbrechen 1071absolute 969Element 253Menü 253, 255objektbasierte 970, 971relative 969Szenario 969

Navigation, objektbasierte 970NavigationList 230, 236, 241, 242

aggregiertes Element 244Baumstruktur 236Context-Knoten 237Context-Programmierung 238Eigenschaft 242Ereignis 243Rekursionsknoten 237rekursiver Context-Knoten 236Setzen der Lead-Selection 243Tree 236visuelle Darstellung 236Voraussetzung 237

NavigationPath 319Navigationslink 80, 81, 742

Anlegen 84, 88dynamischer 1081

Navigationsliste 319Navigationspfad 368Network 440, 463new_<UI-Element> 613new_<UI-Element>( ) 611, 612newRow 280, 283, 285Next-Button 345noHistory 304Notepad 472Notification ID 358Notification Service 358NumberedList 319NumericValue 423, 432NWBC � SAP NetWeaver

Business ClientNWBC � SAP NetWeaver Business

Client

O

Object Value Selector � OVSObjektinstanz 124Objektliste 61OBN 970occupied 284OfficeControl 499Office-Dokument 498Offline-Szenario 493on_execute 715onAction 332, 349, 357, 403, 419,

469onAdd 393onCellEdited 443onCellResize 286onCellsSelected 443onChange 314, 469onClose 256, 503, 522onColSelect 835onColumnAdded 443onColumnMoved 443onColumnRemoved 443onCompleted 479onCustomCommand 443onCustomFilter 835On-Demand-Instanziierung 983

1133

Index

onDrop 223, 286, 525, 536, 540, 541, 544, 550, 555, 565, 569dynamisches 544, 548ID 538INDEX 538MIME_TYPE 538OFFSET 538TAGS 538

One Click Actions 860onEdgeAdded 443onEdgePropsChanged 444onEdgeRemoved 444onEdgeSelected 444onEnter 310onError 503onExpandAll 400onFilter 836onFrameSwitched 444onGeneric 444onGraphAdded 444onGraphRemoved 444onInitialized 444onLayoutChanged 444onLeadSelection 842Online Text Repository � OTRonLinkAdded 444onLinkChanged 444onLinkRemoved 445onLoadChildren 404onLoadSteps 389onModelAdded 445onModelDirty 445onModelExtracted 445onModelSaved 445onNavigate 409onNodeAdded 445onNodeDoubleClicked 445onNodePropsChanged 445onNodeRemoved 445onNodeSelected 445onObjectAction 453onPersonalize 230onRate 342onRectangleSelected 445onRemove 394onResize 219onRowAdded 446onRowCollapsed 446onRowExpanded 446onRowMoved 446onRowRemoved 446

onRowSelected 446onSave 503OnScreenExplanation 319onScroll 843onSelect 223, 232, 236, 243, 255,

286, 369, 383, 388, 436, 525, 643, 646, 647, 650

onSelectionChanged 446onSort 844onStatusAction 890onSubmit 493onTagSelect 366onToggle 207, 213, 245, 363, 525onTraceLevelChanged 446Operationsmodus 571Optionsstring 436orientation 218OTR 94, 303, 319, 723, 939, 941

Aliaskurztext 723, 943Browser 941Grundwortschatz 941Kurztext 941Namensaufbau 942Pflege 943

Outbound 1003Outbound Port 1003Outport anlegen 1006Overflow-Mechanismus 214Overwrite-Exit 744OVP-Floorplan 1038OVS 664, 673, 681

Aufruf 677Component-Verwendung 675Dereferenzierung 686Eingabefeld 678Ereignis 677, 681, 683, 685Ereignisbehandler 676Ergebnismenge ermitteln 683Ergebnis-View 676Fenstertitel 677Gruppenüberschrift 678Konfigurationsaspekt 678Label 678Phase 677Phasenmodell 676selection 686Selektions-View 676Überschrift 677Verwendung anlegen 674Wertehilfe 673, 674

Page 42: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1134

Index

P

paddingBottom 272paddingLeft 272paddingRight 272paddingTop 272Page Builder 1001

Anwendungskonfiguration 1011einfügen 1016Tagging 1017Test 1012Verwendung 1011

PageFullWidthPanel 274PageHeader 245, 926, 1006

aggregiertes Element 247Bereich 247Eigenschaft 245visuelle Darstellung 245

PageHeaderArea 247PageLayout 273PagePanel 274Pager 880Paginator

Element 250Symbol 226

Paint 472PAM 477, 1052paneCount 251Panel 187, 208, 273

aggregiertes Element 213Barrierefreiheit 213Eigenschaft 209, 275Ereignis 213HeaderToolbar 209Hinzufügen 1016Komprimieren 209Typ 273Verbinden 1016visuelle Darstellung 209

PanelStack 522Parameter

Mapping 615Query-String 1049

paramInfo 1015passwordField 305PDB-Datei 783, 787PDF-Dokument 491, 495

interaktives 491nicht interaktives 491

pdfSource 492

percentValue 466Performance

Analysegebiet 974Animation 977Backend 975Checkliste 978Component-Checkliste 978Context-Checkliste 979Debugger 996Frontend 975Monitor 981Netzwerk 975Optimierung 974Scrolling 980Singleton 979Speicherbedarf 983Systemkonfiguration 975Tool 980Tree 980UI-Element 980

Performance-Checkliste 978Performance-Optimierung 223periodisches Ereignis 356Personalisierung 738, 774, 1039

Berechtigung 749Component-defined 764Deaktivieren 777Laden 1089Möglichkeit 774Reichweite 1088Sichtbarkeit 774Standardwert 774Tabelle 775Web-Dynpro-Built-In 764, 774Web-Dynpro-Code-Wizard 53

Personalisierungs-Manager 1069Personalize 229Pfad 610, 633

absoluter 487Aufbau 595Segment 595Tabelle 594

Pfadtabelle 594Pfeiltaste 834Pflichtfeld 146Phase 381, 384

ausgewählte 383Objekt 381sichtbare 383status 385

1135

Index

PhaseIndicator 381Phasenmodell 109, 309

Component-Instanziierung 110Roundtrip 110

plain 206Platzhalter 407, 408, 945, 953Plug

Anlegen 82, 91Auslösen 73Behandlermethode 83Beispiel 82, 90DEFAULT 80dynamisch auslösen 1075Exit 84, 86globaler 83HANDLE<Inbound-Plug-Name> 84Inbound 73, 84, 119lokaler 83Namenskonvention 82Outbound 73Parameter 83Resume 84, 86Standard-Inbound 84Standard-Outbound 84, 85Startup 84Suspend 84, 86Typ 84Verwendung 83

PNG 461Point 422, 431pointSource 422Polardiagramm 415Polygon 1031Pop-in 821, 847, 848Pop-up 917

Beispiel 39einfaches 920einfaches Dialogfenster 1084Erzeugen 53, 918, 919, 1085Fenstertitel 1083Meldung 1082modales 39, 917Öffnen 921, 923, 1083Schließen 1083Titel 919

Port 57Portabilität 28Portal � SAP Enterprise PortalPortal-Manager 966

Portal-Manager-Referenz 971Portfoliodiagramm 415Positionierung 259Post-Exit 741, 744Präsentationsgrafik 411, 412Präsentationsschicht 29Pre-Exit 741, 744prepare_dynamic_navigation( ) 633,

634Previous-Button 345Primäreigenschaft 313, 819print_page( ) 1078Product Availability Matrix 477, 1052Profildiagramm 416Profilflächendiagramm 416Programmierschnittstelle 1069Programmierung, dynamische

� dynamische ProgrammierungProgrammsteuerung 29ProgressIndicator 464Projekt

Fortschritt 427Verlauf 439

Proportionalschrift 303Prüftabelle 670Public 90, 106Pull-Prinzip 357Punktdiagramm 416Push-Prinzip 358

Q

Quasi-Container 220Quelle 527Quellliste 392Quelltext-Gerüst 676query_parameters 683Query-String-Parameter 1049Quickviews 1052Quirks-Modus 1077

R

Radardiagramm 416RadioButton 642, 651

Gruppierung 653text 653

RadioButtonGroupByIndex 642, 652, 653

Page 43: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1136

Index

RadioButtonGroupByKey 642, 652, 654

Rahmen 462Rahmen, Zelle 886Range-Context-Knoten 145, 161Raster 259Raster, Anordnung 250RasterData 291RasterLayout 290RatingIndicator 340readOnly 145, 305, 468, 828reference 355Referenzfeld 1055Register

Karte 165, 253Leiste 253

register_new_event( ) 358Registerkarte 165, 252Rekursion 395Rekursionsknoten 135, 397remove_all_children( ) 613remove_child( ) 613Rendering 1054

Modus 1055, 1077Technologie 34

repeatSelectedAction 346request_focus_on_view_elem( ) 330required 145resizableX 284RFC, IGS_RFC_DEST 425, 451RFC-Verbindung 730RGB 414, 418RIA 781Rich Internet Application 781right 452Right-to-Left-Unterstützung 794Ringdiagramm 415RoadMap 381, 385

Anfangspunkt 386Endpunkt 386, 387

RoadMapStep 390Rolle 962Root-Element austauschen 273Root-Element-Austausch 69, 787rootText 400ROOTUIELEMENTCONTAINER 67,

69, 188rootVisible 400Roundtrip 386

beschleunigter 309Start 386

rowBackgroundDesign 266rowCount 252, 283, 829RowData 265rowDescription 228rowDesign 266rowDragInfo 559rowDropInfo 561rowEdgeDropInfo 883RowHeadData 265RowLayout 265RowRepeater 36, 226, 928, 980

aggregiertes Element 229Anwendungsbeispiel 36Eigenschaft 227visuelle Darstellung 226

rows 328rowSelectable 829rowSpan 276, 280RTTI-Klasse 941RTTI-Struktur, Beschreibungsobjekt

591RTTS 585Rule 263ruleType 407Run Time Type Services 585Runtime 575Runtime Repository, API 1110

S

S_MEMORY_INSPECTOR 983S_WDR_P13N 749SACF 479SALV_WD_TABLE 620, 756SAP Content Server 477SAP Enhancement Framework 737,

741SAP Enterprise Portal 962, 1090

ABAP-System 964ABAP-User 964Benutzer 964Content 969Content-Administration 964Ereignis 963, 965, 967Ereignisbehandlung 968Eventing 965Funktion 963Integration 54, 962, 963Navigation 963, 969Portal-Manager 1070

1137

Index

Rolle 964Seite 964Voraussetzung 963

SAP Fiori 33SAP GUI 27SAP Knowledge Provider 477SAP Knowledge Warehouse (SAP KW)

729Bereich 730Dokument 729Kontext 730Mappe 730Strukur 730Suchkontext 730Thema 731Titel 731

SAP Library 784SAP List Viewer 35, 41, 756, 779SAP NetWeaver Application Server

Java 962SAP NetWeaver Business Client 215,

350, 1001SAP NetWeaver Portal � SAP Enter-

prise Portalsap_theme 1058sap-accessibility 1051sap-accessibility=X 999sap-accessibility-debug=X 1000SAP-ACCESSIBILITYMODE 1001sap-accessibilitymode 1051sap-config-mode 1010, 1012sap-config-mode=X 771SAP-GUI-Design 442sap-ls-useanimation 1059SAPscript 322, 335, 728sap-theme 1038SAPUI5 33, 1034sap-wd-configId 771, 1012, 1061sap-wd-deltarendering 1053sap-wd-displaysplashscreen 1063sap-wd-inlinecss 1063sap-wd-lightspeed 1054sap-wd-perfMonitor=X 981sap-wd-remotedesktop 1055Sash � TrennbalkensashDesign 218sashPosition 218sashType 219Satellitennavigation 448Säulendiagramm 412, 414

Schalter 655Schaltfläche 343Schichtentrennung 31Schieber 466Schlüsselwert 647Schnittstelle 619, 620Schrift

bearbeiten 1036nicht proportionale 328Standardschrift 328

Schritt 385Schwellenwert � Thresholdscope 532Screenreader 196, 199scrollableColCount 829Scroll-Balken 326, 490, 882ScrollContainer 187, 195, 269Scrolling 936scrollingMode 192scrollLeft 192scrollTop 192Secondary Selection 830SectionHeader 196, 337, 542Secure Sockets Layer 1055Seite

Effekt 255Überschrift 245

selectedActionItem 347selectedItem 223selectedKey 648, 650, 652, 653, 654selectedListId 393selectedPanel 524selectedPhase 383selectedPopin 830selectedStep 388selectedTab 254Selection 552, 582, 818, 833selectionChangeBehaviour 254, 524,

643, 660selectionColumnDesign 830selectionMode 833selectionState 284Select-Option 697

Bedingung 700Einzeleingabe 698Ereignis 701Interface-Controller 703Kriterium 698Mehrfachselektion 699SELECT-OPTIONS 41, 697

Page 44: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1138

Index

Spalte 698Standardfunktion 701

Select-Option 2.0Attribute 715Attributgruppen 713Attributtyp 715Ereignis 715Selektionsbedingung 713Standardfunktion 715Titel 713Zeilenaufbau 713

Select-Options 2.0 712Selektionsbild, Standard 697Selektionsspalte 821semanticColor 280, 325semantics 380semantische Hilfe 642, 722

&DEFINITION& 724&USE& 724Ausblenden 729Erläuterung 722, 726Erläuterungstext 722, 723F1-Hilfe 722, 724Soforthilfe 724technische Hilfe 725

semantische Information 722SEO_CLASS_LIB_INTROSPECTION

684SEOEXPOSE 646separatorImageSource 369separatorText 369Series 421, 430seriesSource 418Service-Aufruf-Wizard 684set_<Eigenschaft>( ) 612set_application_dirty_flag( ) 973set_application_dirty_flag() 974set_attribut_value_set( ) 650set_attribute_property( ) 1096set_attribute( ) 1095, 1101set_configuration( ) 678, 681, 686set_display_attributes( ) 951set_initial_elements 156set_input_structure( ) 681, 683set_lead_selection_index( ) 1098set_lead_selection( ) 1098set_on_<Ereignis>( ) 613set_output_table( ) 683set_selected( ) 658set_static_attributes( ) 1101

set_table_range( ) 163set_virus_scan_profile 479set_window_title( ) 59, 1078, 1083set_work_protect_mode( ) 973set_work_protected_mode( ) 974SFBECLNAME 673, 703SFP_ZCI_UPDATE 496Shockwave Flash 781Shortcut 39showAllButtons 393showDecoration 502showMarker 471showSelectedOnly 422showTickMarks 468showValue 466Shuttle 391Sicherheit 532Sicherheitsaspekt 473Sichtbarkeit 146Sidepanel 1001

Anlegen 1006Anwendungskonfiguration 1008Customizing, mandantenspezifisches

1008Customizing, mandantenunab-

hängiges 1008Initialisierung 1007Konfiguration 1006Konfigurationseditor 1008Konfigurationslink 1006Konfigurieren 1008Öffnen 1007Titelbereich 1007Verwenden 1008

signed 440Silverlight 780, 782, 784

Library 783Plug-in 782

Silverlight Island 780, 787Silverlight Island Source 788SimpleSeries 420, 430Singleton 399, 582, 755Singleton, Performance 979Skala 464Smartmap 416Soforthilfe 314, 928

Anzeigen 315, 928Ausblenden 317Einblenden 317

Softwareentwicklung, agile 427

1139

Index

sortState 844SOTR_EDIT 942SOTR_VOCABULARY_BASIC 942source 463, 527, 788SOURCE_COMPONENT_ID 537Spalte 815

Einfügen 819Sortieren 821

Spalten-Scrolling 821Spaltenüberschrift 678Speicheroptimierung 974Splitter 214

aggregiertes Element 220Eigenschaft 216Ereignis 219visuelle Darstellung 215

Sprache, ostasiatische 302SPRO 474SSL, Protokoll 1055stackDesign 524Standard-Button 345, 918, 919, 921,

923Standard-Component 41Standardschritt 386Standardsoftware 737Standardwert 38, 928state 146, 306, 959static_element_rtti 591static_element_type 587staticHtml 805stretchedHorizontally 267stretchedVertically 267striped 381Struktur, hierarchische 395styleClassName 192, 295Stylesheet 764, 1057Subklasse 600Submenü 513subscribe_event() 974subscribe_to_button_event( ) 1084SubStep 386Suchhilfe 641

Anbindung 665, 673Datenelement 671direkte 673Exportparameter 663Feature 666Feldebene 671Importparameter 663Kontext 671

Prüftabelle 671Selektionsmethode 663Treffermenge 663

Suchhistorie 308Suchilfekontext 682Suggest 35suggestFilterMethod 307suggestValues 307Superklasse 600Supply-Funktion 71, 109, 143, 167,

179Anlegen 144Mapping 144Range-Supply-Funktion 161Vater-Kind-Beziehung 143

suppressValueHelp 309SVG 434SWDP_UIEL_ACTIVE_COMPONENT

479SWF-Datei 781swfFile 788Switch Framework 741Systemalias 964Systemmenü 927

Ausblenden 927Benutzereinstellung 927

T

T100 956Tab 232, 600

Page 256Register 252, 256Subelement 257Toolbar 256Wechsel 254Werkzeugleiste 256

tabAlignment 255Tabelle

dynamische 817Funktionen 779Generieren 55Inhalt sortieren 845T100 100, 939, 952Template 817VSCAN_PROOF 479

Tabellenkalkulation 282Tabellenselektionsmenü 832

Page 45: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1140

Index

Table 35, 377, 551, 552, 779, 815, 819Caption 816Datenzeilenbereich 816design 824Drag & Drop 821, 847Eigenschaft 821Ereignis 835Gruppenspalte 847Header 847Hierarchie 821Kardinalität 817manuelle 817, 818Spalte 815Summierung 821Toolbar 815Überschrift 815, 818, 821Variante 821

TableCellDesign 378TableColumn 378, 816, 819, 940TableColumnGroup 847TableHeaderMenu 842TableScrollTipProvider 848, 885tabOrder 271Tabstop 197TabStrip 165, 252, 600

aggregiertes Element 256Ausrichten 255Eigenschaft 253Ereignis 255Hotkey-Behandler 195Navigationselement 253Navigationsmenü 253, 255View-Element 256visuelle Darstellung 253

Tachometer 416Tag 319, 332, 1003

Abkürzung 332Absatz 333Adresse 332Akronym 332Anzeigen 1010Bild 333definieren 1010Definition 332Emphasis 319Gruppierungselement 333Liste 333Output 333Paragraph 319

Programmtext 332Referenz 332SAP 334SAP-Feld 334SAP-spezifisches 330ScreenElement 319Text 332Textblock 332Überschrift 333Verwalten 1010vorformatierter Text 333Zeilenumbruch 332Zitat 332

TagCloud 364tagEnabled 366Tagging 1017tagHitcount 366tags 533tagSize 366tagText 366tagTooltip 366target 355, 527Taste 193Tastenkombination 39Template 54templateSource 493Testklasse, lokale 1024Text

Edition 326Ermittlung 313Formatierung 336mehrzeiliger 317Positionierung 324Richtung 309Tag 319Textfluss 328übersetzungsrelevanter 939

text 257, 313, 319, 332, 339, 381, 403, 522

TextBar 522textDirection 246, 309textDocumentName 321TextEdit 326Textelement anlegen 945Textkennung 945Textliteral 948Text-Pool 944texts 657, 658Textsymbol 939, 944Textsymbol, Konstante 946

1141

Index

Texttabelle 671TextView 167, 322, 848Theme Designer 1034Threshold 461, 467, 470ThresholdSlider 466TickMark 467tickMarkSpacing 469TimedTrigger 356TimeValue 424TIMS 672title 212, 244, 247, 315, 400TitleContent 248titleDesign 520titleEditable 212titleText 521titleVisible 400ToggleButton 249, 361ToggleIcon 222ToggleLink 363ToolBar 514, 518, 885Toolbar 204, 214, 257, 926ToolBarButton 519ToolBarButtonChoice 519ToolBarDropDownByIndex 519ToolBarDropDownByKey 519ToolBarDropDownListBox 519ToolBarIconButton 519ToolBarInputField 519ToolBarLinkToAction 519ToolBarLinkToURL 519ToolbarPopin 519ToolBarToggleButton 519tooltip 39, 192, 295, 407, 420top 452topBorder 275Topmenü 513topPadding 275topSpace 291Trace-Tool 917, 981, 982, 990, 1028Transaktion

ACF_WHITELIST_SETUP 474FPM_WB 1036ICON 610S_MEMORY_INSPECTOR 983SE17 484SE24 587, 600, 1024SE30 983SE61 317, 321SE63 940SE80 440, 783

SE91 949SECATT 1022SFP 493SFP_ZCI_UPDATE 496SICF 977SM59 451, 730SOTR_EDIT 942SPRO 474STAD 983SU01 999WD_TRACE_TOOL 982, 1028, 1053WDR_ACF_WLIST 473, 1032

Transformation Editor 440transparencyMode 803transparent 206transparentColor 418TransparentContainer 75, 187, 195

Barrierefreiheit 197, 198Default-Taste 197Eigenschaft 198Gruppentitel 200gruppierender Container 196, 200Layout-Container 195semantische Bedeutung 196visuelle Darstellung 197

Tray 187, 204, 208, 962aggregiertes Element 208Barrierefreiheit 207Eigenschaft 205Ereignis 207Klappen 204

Tree 395, 539Context-Struktur 396dynamisches Laden 404nicht rekursiver 395Performance 396, 980Rekursionsknoten 397rekursiver 395Rendering 399

TreeByKeyTableColumn 556, 889TreeByNestingTableColumn 556, 889TreeItemType 398, 404TreeNodeType 398, 402Trennbalken 214Trennzeichen 369TriStateCheckBox 642, 661TRY 958type 353, 390Typgruppe 585Typgruppe, ABAP 592

Page 46: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1142

Index

U

Überschrift 315Übersetzungsrelevanz 939Uhrzeit-Hilfe 672UIBB 1039UI-Element

ABAP-Klassenrepräsentation 599Aktion 72aktives 215Anlegen 74Anordnung 187, 258, 259Container 68dekoratives 770, 773Drag & Drop 527Eigenschaft 67, 70, 604Einblenden 187Einfügeposition 599Favorit 66Gruppieren 187Hierarchie 67Klassenhierarchie 295Konstante 587kundeneigenes 780Laufzeitobjekt 604Primäreigenschaft 146, 313Standardeigenschaft 71Template 55Toolbar 66Typ 599Übersicht 34unsichtbares 774Verknüpfung 313zusammengesetztes 816

UIElement 220UIElementContainer 189UI-Kategorie 293

action 342complex 367, 818graphic 411Integration 471layout 404selection 360text 297

Umbruch 314, 328undecidedStateSelectable 661Unified Rendering 442Unit 467Unit-Test 1023unitWidth 469

Unsichtbarkeit 927unsigned 440unsubscribe_event() 974Untermenü 513update_event_status( ) 359upperThresholdValue 461URL 354, 355, 417, 418, 451URL-Parameter 1049

allgemeiner 1066sap_theme 1058sap-accessibility 1051sap-accessibilitymode 1051sap-wd-configid 1061sap-wd-deltarendering 1053sap-wd-displaysplashscreen 1063sap-wd-inlinecss 1063sap-wd-lightspeed 1054sap-wd-remotedesktop 1055WDALLOWMULTIPLEACTIONS

1052WDALLOWVALUESUGGEST 1053WDSTYLE_LABELALIGNMENT

1058WDSTYLE_TOOLBARDESIGN 1058WDUIGUIDELINE 1059Web Dynpro 1064

URL-Schema 1049Usage � Component-VerwendungUtility-Klasse 578

V

Validierung, Fehler 112vAlign 278, 280value 309, 342, 421, 469, 471ValueComparison 457VBC_WDC_GEOMAP_GEN2 1033Vererbungshierarchie, Navigation

600Verfügbarkeitsprüfung

Flash 1079Java 1079PDF 1079Silverlight 1079

Vernetzung, Mashup 1006vertical 393verticalSpan 291Verwendungserklärung, statische 623Verzögerung 357

1143

Index

vGutter 262, 263, 266View 90, 932

aktuelles Window lesen 1075Anlegen 65, 91Anzeigeverhalten 145Aufbau 64Definition 187Editor 49Eigenschaft 50, 74Einbettung 619, 632Formular-Generierung 54Hierarchie 67, 86, 87, 188Layout-Editor 65Lebensdauer 74, 984mehrere anzeigen 86Metadaten 1080Metadatenobjekt 1075Modifizierung zur Laufzeit 108pro Component 978Schachtelungstiefe 69Sichtbarkeit 984Wechseln 81

View Designer 66ViewContainer 86ViewContainerUIElement 166, 258,

605, 610View-Controller 64, 104View-Einbettung 80View-Layout 49ViewSwitch 230, 231ViewSwitch-Schalter 231virusScanProfile 478visible 145, 192, 257, 258, 295, 407,

502, 521, 522visibleItems 659visibleRowCount 229, 835Visual Business 1031visuelle Darstellung 204Vorgang 381, 385Vorgehensmodell 427Vorlage � TemplateVorschlagswert 307Vorwärtsnavigation 942

W

W_SELECT_OPTIONS 714, 717W3C ARIA 1051W3C, HTML-Standard 355

WAD 729Währungsfeld 1055Warnung 598wd_assist 946wd_assist( ) 121WD_COMP_CONTROLLER 72, 90,

106WD_COMPONENT_USAGE_GROUP

626WD_CONTEXT 72, 90, 106wd_cpifc_<Component-Verwen-

dung>( ) 121wd_cpuse_<Component-Verwen-

dung>( ) 170wd_get_api( ) 1069WD_GLOBAL_SETTING 976, 1064WD_SELECT_OPTIONS_20 712, 717WD_THIS 72, 106wd_this( ) 71, 90WD_TRACE_TOOL 982, 1053WD_VALUE_HELP 688, 689WDACCESSIBILITY 999, 1051WDACCESSIBILITYMODE 1001,

1051WDALLOWMULTIPLEACTIONS

1052WDALLOWQUICKVIEWS 1052WDALLOWUSERAGENTS 1052WDALLOWVALUESUGGEST 1052WDAPI_COMPONENT_USAGE 626WDCONFIGURATIONID 1061WDCTX_<Knotenname> 128WDDELTARENDERING 1053WDDISABLEDYNAMICRE-

SOURCESDN 1053WDDISABLEUSERPERSONALIZA-

TION 777, 1056WDDISPLAYSPLASHSCREEN 1063wddoafteraction( ) 108, 111wddoapplicationstatechange( ) 108wddobeforeaction( ) 108, 959wddobeforenavigation( ) 103, 108,

112wddoexit( ) 90, 107wddoinit( ) 90, 107wddomodifyview( ) 108, 112, 598wddoonclose( ) 90, 108wddooncontextmenu( ) 926, 934, 935wddoonopen( ) 90, 108wddopostprocessing( ) 108, 111, 112

Page 47: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

1144

Index

WDENABLEFIELDHISTORY 775, 928, 1053

WDENABLEUIELEMENTSHIDE 1057WDENABLEXBCMLCLIENT 1053WDEVENT 536, 541, 545, 550, 555,

569, 571wdevent( ) 614, 618, 637WDFAVICON 1054WDFORCEEXTERNALSTYLESHEET

1057WDINLINECSS 1063WDIslandLibrary*.swc 783, 784WDIslandLibrary*-debug.swc 784,

786WDLIGHTSPEED 350, 409, 1054WDPROTECTEDAPPLICATION 1055WDR_CHIP_PAGE 1008, 1011WDR_CONTEXT_ATTR_VALUE 649WDR_CONTEXT_ATTRIBUTE_INFO

584, 589WDR_CONTEXT_CHANGE 151WDR_CONTEXT_CHANGE_LIST 150WDR_CONTEXT_MAPPING_INFO

593WDR_CONTEXT_PROPERTIES 1096WDR_CTX_ELEMENT_PATH_

SEGMENTS 593WDR_NAME_VALUE_LIST 617, 955WDR_OVS 620, 674WDR_SELECT_OPTIONS 620, 699,

700, 701, 702Protokoll 701

WDR_TEXT_KEY 946WDREMOTEDESKTOP 1055WDSHAREDREPOSITORY 1056WDSIDEPANELCONFIGURATIONID

1060WDSIDEPANELOPEN 1060WDSIDEPANELREMOTECONSU-

MER 1061WDSIDEPANELREMOTEPRODUCER

1061WDSIDEPANELRESIZABLE 1060WDSilverlightIslandIbrary.dll 784WDSilverlightIslandlibrary.dll 784WDSTYLE_LABELALIGNMENT

1057, 1058WDSTYLE_TOOLBARDESIGN 1058WDSUPPORTSFULLHEIGHT 1061WDTABLENAVIGATION 816, 1063

WDTHEMEROOT 1058WDUI_C_TABLE_CELL_MERGING

887WDUI_C_TABLE_TEXT_MARKERS

883WDUI_C_TBL_CELL_BORDER-

OMITTING 886WDUI_TABLE_CELL_DESIGN 890WDUI_TRI_STATE 661, 662WDUIGUIDELINE 1058, 1059WDUSEANIMATION 1059WDUSEEXTERNALSTYLESHEET

1059WDUSESIGNEDAPPLETS 1056Web Application Documentation 729Web Dynpro

Autorenumgebung 726Beispielanwendung 33, 34Client 964Client-Plattform 44Einbettung 962Entwicklungsumgebung 35, 44Framework 33Funktionsumfang 33globale Einstellung 976Laufzeit 1049Merkmal 43Metadatenmodell 28Metamodell 43Model-View-Controller 32Native Library 493, 497Portabilität 28Programmiermodell 34Text-Browser 727

Web Dynpro Explorer 44, 45, 59Webbrowser

externes Fenster erzeugen 1084Fenster 355Scrollen 1080Titelzeile 1078unterstützter 44

Web-Dynpro-Code-Wizard 51, 817Funktion 52Meldung 53Starten 54

Web-Dynpro-Component, verwendete 179

Wertehilfe 641, 662Art 663Datumsauswahl 663

1145

Index

Domäne 671Domänenfestwert 663Festwert 671keine 673Modus 586, 663, 664, 673, 686OVS setzen 675Prüftabelle 663Schlüsselfeld 671Suchalgorithmus 664Typ 586

Wertehilfe-Modus 663Wertevergleich 457WGS84 448when visible 74, 442, 979, 983whenAlive 442Whitelist 473width 189, 193, 274, 278, 310, 343Wiederverwendung, ABAP Dictio-

nary 662Window 80, 90

Anlegen 79, 92API 410, 951Context 90Controller 104Default-View 81, 88, 92, 985Eigenschaft 89Interface-Eigenschaft 89Manager 1070Metadaten 1076Öffnen 1083Pop-up 918Standard-Button 1082Struktur 87View einbetten 80, 92View-Sichtbarkeit 984Wiederverwendung 89

Window-Editor 51, 81, 87, 88Window-Manager 918, 919Wiring 1003, 1009

automatisches 1009Tagging 1017

WND_SELECT_OPTIONS 702WND_SELECTION_SCREEN 700Workload Monitor 983WorkProtect-Modus 963, 972Workset 962World Geodetic System 1984 448

wrapping 261, 264, 314, 328WTS, Performance 976Wurzelknoten 576Wurzelsichtbarkeit 400Wurzeltext 400WYSIWYG 65

X

X11 414, 418XAP-Datei 782XML 330, 417

Gantt 440InteractiveForm 496konform 331Parser 440Whitelist 478Wohlgeformtheit 319

XML-Datei 447

Z

ZCI 492, 496ZCI-Formular 492, 497Zeile 815Zeilenanordnung 848Zeilengruppierung 821Zeilenumbruch 268, 314, 328, 486Zeilenvorsprung 486Zeilenwiederholer 226Zeitbalkendiagramm 417Zeitpunktdiagramm 417Zeitraum 374Zeitsäulendiagramm 417Zeitungsseite 275Zelle, leere 407Zelleneditor 817, 819Zelleneditor einfügen 820Zero Client Installation 492Zertifikat 474Zertifikat installieren 1032Ziel 527zoomType 452Zugangstaste 299, 927Zweidimensionalität 815

Page 48: Web Dynpro ABAP – Das umfassende Handbuch · PDF file527 Einfache und effiziente Interaktivität des Benutzers mit dem User Interface ist das höchste Ziel. Drag & Drop ist ein effek-tiver

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Gerne dürfen Sie diese Leseprobe empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Die vorliegende Leseprobe ist in all ihren Teilen urheberrecht-lich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Dr. Roland Schwaiger ist seit 1999 als freiberuflicher Trainer, Lektor, Berater und Entwickler tätig (zertifizier-ter Development Consultant SAP NetWeaver 2004 – Application Development Focus ABAP).

Roland Schwaiger, Dominik Ofenloch

Web Dynpro ABAP – Das umfassende Handbuch 1.145 Seiten, gebunden, 2. Auflage 2014 69,90 Euro, ISBN 978-3-8362-2751-3

www.sap-press.de/3532

Dominik Ofenloch begann seine Karriere bei SAP im Jahr 2006 in der SCM-Entwicklung. Dort entwickelte er für das Transportation Management Web-Dynpro- Benutzeroberflächen.

Wissen aus erster Hand.